home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v14i022: xpilot - Multiplayer gravity war game hand-shake program, Part20/24
- Message-ID: <3317@master.CNA.TEK.COM>
- Date: 4 Aug 92 19:31:11 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1489
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Bjoern Stabell <bjoerns@staff.cs.uit.no>
- Posting-number: Volume 14, Issue 22
- Archive-name: xpilot/Part20
- Environment: X11, ANSI C
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 20 (of 24)."
- # Contents: maps/labyrinth.uue src/Imakefile src/draw.h src/event.c
- # src/object.h
- # Wrapped by billr@saab on Tue Aug 4 10:38:58 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'maps/labyrinth.uue' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'maps/labyrinth.uue'\"
- else
- echo shar: Extracting \"'maps/labyrinth.uue'\" \(30712 characters\)
- sed "s/^X//" >'maps/labyrinth.uue' <<'END_OF_FILE'
- Xbegin 644 labyrinth.map
- XM,3<P>#$S,`HT"E1H92!,86)Y<FEN=&@*4F]N;GD@2"X@07)I;&0*>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@('%X>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@('$@("`@("`@("!Q
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AW("`@("`@("`@<2`@("`@("`@('<@("`@("`@("!A
- XM>'AX>'AX>'AX=R`@("`@("`@<2`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@9'@@
- XM("`@("`@("!X9B`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@
- XM("!Q=R`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("!A<R`@("`@
- XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("!R("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@($9X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("!X("`@("`@("`@=R`@("`@("`@('@@("`@("`@("!X("`@("`@
- XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@(&%X
- XM>'AX>'AX>'AW("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("!D>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@*B!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!A>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@87AX>'AX>'AX>'AX
- XM>'AX>'AX>$9S("`@("`@("`@82`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"!R("`@("`@('@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@
- XM("`@("`@("!Q("`@("`@("`@87AX>'AX>'AX>',@("`@("`@("!Q>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@<7AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@("`@("!C("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!R("`@("`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@<2`@("!Q>'AX>'AX>'AX=R`@("`@("`@(&$@
- XM("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!X("`@("`@
- XM("`@<7AX>'AX>'AX>'<@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@>"`@(')R<B`@('@@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!X("`@("`@("`@>"`@9$9&1F8@('@@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@1B`@("!X("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
- XM("`@>"`@9$9X1F8@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@9$9&
- XM1F8@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@(&-C8R`@('@@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@*B`@>"`@*B!X("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@
- XM("`@>"`@("`@87AX>',@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
- XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM(&1X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
- XM("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
- XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@
- XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X9B`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!X("`@("`@
- XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@<R`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@<B`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("!D1F8@("`@("`@("`@("`@("`@("`@('@@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@8R`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
- XM("!X("!R("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@('@@("`@("`@("!X>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@87AX>'AX>'AX=R`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("!C
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("H@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("H@>"`@("`@("`@
- XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@
- XM("`@("`@("!A1GAX<R`@("`@>"`@("`@("`@('@@("`@("`@("!A("`@("`@
- XM("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("!A("`@("`@("`@<7AX>'AX>'A&<R`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('(@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@('%X
- XM>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@@("`@("`@("!A>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'<@("`@("`@("!Q("`@("`@("`@87AX>'AX>'AX>'AX
- XM>'AX>'AX>'AW("`@("`@("`@>"`@("`@("`@=R`@("`@("`@('@*>"`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@
- XM("`@("`@("`@<7AX>'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@9'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AF("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>',@
- XM("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("!Q>'AX>$9X
- XM>'AX>'AX>'AX>'AX>'@@("`@("`@("!X("`@("`@("`@<7AX>'AX>'AX>'<@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("!D1G@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@8W@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
- XM("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@87AX>'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@
- XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
- XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
- XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
- XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
- XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
- XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
- XM("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
- XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
- XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('%X
- XM>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>',@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>',@
- XM("`@("`@("!A("`@("`@("`@87AX>'AX>'AX<R`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@8R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
- XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<B`@("`@("`@
- XM('@*>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
- XG>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*
- X`
- Xend
- END_OF_FILE
- if test 30712 -ne `wc -c <'maps/labyrinth.uue'`; then
- echo shar: \"'maps/labyrinth.uue'\" unpacked with wrong size!
- fi
- # end of 'maps/labyrinth.uue'
- fi
- if test -f 'src/Imakefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/Imakefile'\"
- else
- echo shar: Extracting \"'src/Imakefile'\" \(3733 characters\)
- sed "s/^X//" >'src/Imakefile' <<'END_OF_FILE'
- X/* Imakefile,v 1.17 1992/06/28 06:12:12 bjoerns Exp
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#
- X# Imakefile - XPilot
- X# /users/staff/bjoerns/src/cvs/xpilot/src/Imakefile,v 1.17 1992/06/28 06:12:12 bjoerns Exp
- X#
- X
- X
- X############################################################################
- X#
- X# Miscellaneous flags.
- X#
- XMATHLIB = -lm
- XSOCKLIB = lib/libsocklib.a
- X
- X/*
- X * Specify an ANSI compiler.
- X */
- XCC = cc #-Aa -D_HPUX_SOURCE
- X#CC = cc -Aa -D_HPUX_SOURCE #HPUX
- X#CC = cc -xansi -D__STDC__ #SGI Indigo?
- X
- X/*
- X * DEFINES should be used for program specific defines.
- X * Currently supported flags are:
- X *
- X * LIMIT_ACCESS - extremely local, cannot be used without modification.
- X * NO_LOG - don't try to keep a log.
- X * SCROLL - scroll a message in the window title, this is intended
- X * for you people who really wanna burn CPU cycles.
- X * DRAW_GRAV_VECTORS - slows the game down to an unbearable speed, you
- X * might try it once, the effect is quite ... er...
- X * THRUST_TURN - makes turning look a bit more, er... stupid actually!
- X * CHEAT - define this for fun, but don't make it a habit... :)
- X * SILENT - makes the server real silent.
- X *
- X * You should also set these appropriately (see config.h):
- X *
- X * LOCALGURU - define to the person in charge of xpilot on this site.
- X * LIBDIR - define to where you want the help-files etc.
- X * (HELPFILE, MOTDFILE, LOGFILE and MAPDIR)
- X * XHOST - Do and xhost +serverhost and xhost -serverhost if
- X * the server couldn't open your display. (see config.h)
- X * UPDATES_PR_FRAME=1 - number of 'ticks' per drawing (1 is default).
- X */
- XDEFINES = -DNO_LOG
- X
- X/*
- X * CDEBUGFLAGS should specify optimalization or debug information (or both).
- X */
- XCDEBUGFLAGS = +O3 +OS +ESlit #HPUX cc
- X#CDEBUGFLAGS = -O #gcc for instance?
- X#HPUX: CDEBUGFLAGS = +O3 +OS +ESlit ... LDFLAGS: -Wl,-I first, then -Wl,-P
- X
- X/*
- X * Uncomment this line if your system doesn't have usleep().
- X */
- XUSLEEP_OBJ = usleep.o
- X
- X/*
- X * Uncomment this line if you don't have strcasecmp() (case insensitive compare)
- X */
- X/* STRCASECMP_OBJ = strcasecmp.o */
- X
- X
- X
- X############################################################################
- X#
- X# Source and object files.
- X#
- X/*
- X * 'Server' program, xpilots...
- X */
- XOBJS1 = server.o xinit.o dbuff.o draw.o event.o map.o math.o cmdline.o \
- X play.o player.o rules.o update.o collision.o default.o error.o \
- X robot.o $(STRCASECMP_OBJ)
- XSRCS1 = server.c xinit.c dbuff.c draw.c event.c map.c math.c cmdline.c \
- X play.c player.c rules.c update.c collision.c default.c error.c \
- X robot.c
- X
- X
- X/*
- X * Hand-shake program, xpilot...
- X */
- XOBJS2 = xpilot.o syslimit.o error.o $(USLEEP_OBJ)
- XSRCS2 = xpilot.c syslimit.c error.c
- X
- X
- X
- X############################################################################
- X#
- X# Make subdirectories, socklib...
- X#
- XSUBDIRS = lib
- X
- X#define IHaveSubdirs
- X#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
- X
- XMakeSubdirs($(SUBDIRS))
- XDependSubdirs($(SUBDIRS))
- X
- X
- X
- X############################################################################
- X#
- X# Make handshake and server program
- X#
- XAllTarget(xpilot xpilots)
- X
- XComplexProgramTarget_1(xpilots, $(SOCKLIB), $(MATHLIB) $(XLIB))
- XComplexProgramTarget_2(xpilot, $(SOCKLIB), )
- X
- X
- X
- X############################################################################
- X#
- X# Special rules
- X#
- Xlocked::
- X rlog -L -R RCS/?*,v
- X
- Xrcslog::
- X rlog RCS/?*,v >RCS.log
- X
- Xclean::
- X rm -f RCS.log
- X
- Xetags::
- X etags -t *.[chips]
- END_OF_FILE
- echo shar: 1 control character may be missing from \"'src/Imakefile'\"
- if test 3733 -ne `wc -c <'src/Imakefile'`; then
- echo shar: \"'src/Imakefile'\" unpacked with wrong size!
- fi
- # end of 'src/Imakefile'
- fi
- if test -f 'src/draw.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/draw.h'\"
- else
- echo shar: Extracting \"'src/draw.h'\" \(1710 characters\)
- sed "s/^X//" >'src/draw.h' <<'END_OF_FILE'
- X/* draw.h,v 1.9 1992/06/28 05:38:11 bjoerns Exp
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#ifndef DRAW_H
- X#define DRAW_H
- X
- X#define NUM_COLORS 4
- X
- X#define BLACK 0
- X#define WHITE 1
- X#define BLUE 2
- X#define RED 3
- X
- X#define FULL 768
- X#define CENTER (FULL/2)
- X#define SMART_SHOT_LEN 15
- X#define DSIZE 4 /* Size of diamond (on radar) */
- X
- X#define MSG_DURATION 1024
- X#define MSG_FLASH 892
- X
- X#define SCROLL_DELAY 10
- X#define SCROLL_LEN 100
- X
- X#define TITLE_DELAY 500
- X
- X#define CLOAK_FAILURE 130
- X
- X#ifndef NO_ROTATING_DASHES
- X#define NO_OF_DASHES 2
- X#define DASHES_LENGTH 12
- Xextern char dashes[];
- X#endif
- X
- X#define HUD_SIZE 90 /* Size/2 of HUD lines */
- X#define HUD_OFFSET 20 /* Hud line offset */
- X#define FUEL_GAUGE_OFFSET 6
- X#define HUD_ITEMS_SPACE (2*(HUD_SIZE-HUD_OFFSET)/7.0)
- X#define HUD_FUEL_GAUGE_SIZE (2*(HUD_SIZE-HUD_OFFSET-FUEL_GAUGE_OFFSET))
- X
- X#define HELP_PAGES 2
- X
- Xtypedef struct {
- X char txt[MSG_LEN];
- X long life;
- X} message_t;
- X
- X#define HavePlanes(d) (DisplayPlanes(d, DefaultScreen(d)) > 2)
- X#define HaveColor(d) (DefaultVisual(d, DefaultScreen(d))->class == PseudoColor)
- X
- X#define FRAC(py) ((int)((py) * 1024.0/768.0))
- X#define ShadowDrawString(i, d, w, gc, x, y, str, fg, bg) \
- X{ \
- X if (BIT(Players[i]->disp_type, DT_HAVE_COLOR)) { \
- X XSetForeground(d, gc, bg); \
- X XDrawString(d, w, gc, x+1, y+1, str, strlen(str)); \
- X } \
- X XSetForeground(d, gc, fg); \
- X XDrawString(d, w, gc, x-1, y-1, str, strlen(str)); \
- X}
- X
- X#endif
- END_OF_FILE
- echo shar: 1 control character may be missing from \"'src/draw.h'\"
- if test 1710 -ne `wc -c <'src/draw.h'`; then
- echo shar: \"'src/draw.h'\" unpacked with wrong size!
- fi
- # end of 'src/draw.h'
- fi
- if test -f 'src/event.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/event.c'\"
- else
- echo shar: Extracting \"'src/event.c'\" \(8958 characters\)
- sed "s/^X//" >'src/event.c' <<'END_OF_FILE'
- X/* $Id: event.c,v 1.13 1992/07/10 21:41:01 bjoerns Exp $
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#include <X11/Xproto.h>
- X#include <X11/Xlib.h>
- X#include <X11/Xos.h>
- X#include <X11/keysym.h>
- X#ifdef apollo
- X# include <X11/ap_keysym.h>
- X#endif
- X
- X#include "global.h"
- X#include "score.h"
- X#include "map.h"
- X
- X#ifndef lint
- Xstatic char sourceid[] =
- X "@(#)$Id: event.c,v 1.13 1992/07/10 21:41:01 bjoerns Exp $";
- X#endif
- X
- X#define SWAP(_a, _b) {double _tmp = _a; _a = _b; _b = _tmp;}
- X
- X#define CONTROL_DELAY 100
- X
- X
- X/*
- X * Globals.
- X */
- Xstatic char msg[MSG_LEN];
- X
- X
- X
- Xvoid Refuel(int ind)
- X{
- X player *pl = Players[ind];
- X int i, min;
- X double l, min_dist=DBL_MAX;
- X
- X
- X if (!BIT(pl->have, OBJ_REFUEL))
- X return;
- X
- X for (i=0; i<World.NumFuels; i++) {
- X l=LENGTH(pl->pos.x-World.fuel[i].pos.x,
- X pl->pos.y-World.fuel[i].pos.y);
- X if (min_dist > l) {
- X min_dist = l;
- X min = i;
- X }
- X }
- X
- X SET_BIT(pl->used, OBJ_REFUEL);
- X pl->fs=min;
- X}
- X
- X
- Xstatic keys_t Lookup_key(KeySym ks, player *pl)
- X{
- X keys_t ret = KEY_DUMMY;
- X int i = 0;
- X
- X
- X while (i < MAX_KEY_DEFS && pl->keyDefs[i].key)
- X if (pl->keyDefs[i].keysym == ks) {
- X ret = pl->keyDefs[i].key;
- X break;
- X }
- X else
- X i++;
- X
- X return (ret);
- X}
- X
- X
- Xvoid Key_event(int ind, XEvent *event)
- X{
- X KeySym KS;
- X int i, xi, yi, min_ind;
- X player *pl;
- X double min, l;
- X keys_t key;
- X
- X
- X pl = Players[ind];
- X
- X KS = XLookupKeysym(&(event->xkey), 0);
- X key = Lookup_key(KS, pl);
- X
- X if (!BIT(pl->status, PLAYING)) /* Allow these functions */
- X switch (key) { /* while you're 'dead'. */
- X case KEY_PAUSE:
- X case KEY_LOCK_NEXT:
- X case KEY_LOCK_PREV:
- X case KEY_ID_MODE:
- X case KEY_TOGGLE_VELOCITY:
- X case KEY_TOGGLE_COMPASS:
- X case KEY_SWAP_SETTINGS:
- X case KEY_INCREASE_POWER:
- X case KEY_DECREASE_POWER:
- X case KEY_INCREASE_TURNSPEED:
- X case KEY_DECREASE_TURNSPEED:
- X case KEY_SLOWDOWN:
- X case KEY_SPEEDUP:
- X break;
- X default:
- X return;
- X }
- X
- X
- X if (event->type == KeyPress) { /* --- KEYPRESS --- */
- X switch (key) {
- X
- X case KEY_SLOWDOWN:
- X if (Owner(pl->realname)) {
- X Delay += 5;
- X break;
- X }
- X case KEY_SPEEDUP:
- X if (Owner(pl->realname)) {
- X Delay -= 5;
- X if (Delay < 0)
- X Delay = 0;
- X break;
- X }
- X case KEY_LOCK_NEXT:
- X case KEY_LOCK_PREV:
- X i = GetInd[pl->lock.pl_id];
- X if (NumPlayers > 1)
- X do {
- X if ((KS==XK_Prior) || (KS==XK_Left))
- X i--;
- X else
- X i++;
- X i = MOD(i, NumPlayers);
- X pl->lock.pl_id = Players[i]->id;
- X pl->lock.tagged = LOCK_PLAYER;
- X } while (i == ind);
- X break;
- X
- X case KEY_LOCK_CLOSE:
- X min = DBL_MAX;
- X for (i=0; i<NumPlayers; i++) {
- X if (TEAM(ind, i) || !BIT(Players[i]->status, PLAYING))
- X continue;
- X l=LENGTH(Players[i]->pos.x - pl->pos.x,
- X Players[i]->pos.y - pl->pos.y);
- X if (BIT(Players[i]->status, PLAYING) && l<min && i!=ind) {
- X min=l;
- X min_ind=i;
- X }
- X }
- X if (min < DBL_MAX) {
- X pl->lock.pl_id=Players[min_ind]->id;
- X pl->lock.tagged = LOCK_PLAYER;
- X } else
- X pl->lock.tagged = LOCK_NONE;
- X break;
- X
- X case KEY_CHANGE_HOME:
- X xi=(int)pl->pos.x/BLOCK_SZ;
- X yi=(int)pl->pos.y/BLOCK_SZ;
- X if (/*(pl->velocity<(0.5 + LENGTH(World.gravity[xi][yi].x,
- X World.gravity[xi][yi].y))) && */
- X (World.block[xi][yi]==BASE)) {
- X msg[0]='\0';
- X for (i=0; i<World.NumBases; i++) {
- X if ((World.base[i].x==xi) &&
- X (World.base[i].y==yi) && (i!=pl->home_base)) {
- X pl->home_base=i;
- X sprintf(msg, "%s has changed home base.", pl->name);
- X }
- X }
- X for (i=0; i<NumPlayers; i++)
- X if ((i!=ind) && (pl->home_base==Players[i]->home_base)) {
- X Pick_startpos(i);
- X sprintf(msg, "%s has taken over %s's home base.",
- X pl->name, Players[i]->name);
- X }
- X if (msg[0])
- X Set_message(msg);
- X }
- X break;
- X
- X case KEY_SHIELD:
- X if (BIT(pl->have, OBJ_SHIELD))
- X SET_BIT(pl->used, OBJ_SHIELD);
- X break;
- X
- X case KEY_FIRE_SHOT:
- X Fire_shot(ind, OBJ_SHOT, pl->dir);
- X for (i=0; i<pl->extra_shots; i++) {
- X Fire_shot(ind, OBJ_SHOT,
- X MOD(pl->dir + (1+i)*SHOTS_ANGLE, RES));
- X Fire_shot(ind, OBJ_SHOT,
- X MOD(pl->dir - (1+i)*SHOTS_ANGLE, RES));
- X }
- X if (BIT(pl->have, OBJ_REAR_SHOT))
- X Fire_shot(ind, OBJ_SHOT,
- X MOD(pl->dir+RES/2, RES));
- X break;
- X
- X case KEY_FIRE_MISSILE:
- X if (pl->missiles > 0)
- X Fire_shot(ind, OBJ_SMART_SHOT, pl->dir);
- X break;
- X
- X case KEY_DROP_MINE:
- X if (pl->mines > 0) {
- X Place_mine(ind);
- X pl->mines--;
- X }
- X break;
- X
- X case KEY_TURN_LEFT:
- X pl->turnacc+=pl->turnspeed;
- X break;
- X
- X case KEY_TURN_RIGHT:
- X pl->turnacc-=pl->turnspeed;
- X break;
- X
- X case KEY_SELF_DESTRUCT:
- X TOGGLE_BIT(pl->status, SELF_DESTRUCT);
- X if (BIT(pl->status, SELF_DESTRUCT))
- X pl->count = 150;
- X break;
- X
- X case KEY_ID_MODE:
- X TOGGLE_BIT(pl->status, ID_MODE);
- X break;
- X
- X case KEY_PAUSE:
- X xi = (int)pl->pos.x / BLOCK_SZ;
- X yi = (int)pl->pos.y / BLOCK_SZ;
- X if ((pl->velocity<(0.5 + LENGTH(World.gravity[xi][yi].x,
- X World.gravity[xi][yi].y))) &&
- X (World.base[pl->home_base].x == xi &&
- X World.base[pl->home_base].y == yi)) {
- X if (!BIT(pl->status, PAUSE)) { /* Turn pause mode on */
- X pl->count = MIN_PAUSE;
- X SET_BIT(pl->status, PAUSE);
- X CLR_BIT(pl->status, SELF_DESTRUCT|PLAYING);
- X XAutoRepeatOn(pl->disp); /* Auto repeat on */
- X } else
- X if (pl->count <= 0) {
- X CLR_BIT(pl->status, PAUSE);
- X if (!BIT(pl->status, GAME_OVER))
- X SET_BIT(pl->status, PLAYING);
- X }
- X }
- X break;
- X
- X case KEY_TOGGLE_VELOCITY:
- X TOGGLE_BIT(pl->status, VELOCITY_GAUGE);
- X break;
- X
- X case KEY_TOGGLE_COMPASS:
- X if (!BIT(pl->have, OBJ_COMPASS))
- X break;
- X TOGGLE_BIT(pl->used, OBJ_COMPASS);
- X if (BIT(pl->used, OBJ_COMPASS))
- X if (NumPlayers > 1) {
- X pl->lock.tagged = LOCK_PLAYER;
- X } else
- X pl->lock.tagged = LOCK_NONE;
- X break;
- X
- X case KEY_SWAP_SETTINGS:
- X SWAP(pl->power, pl->power_s);
- X SWAP(pl->turnspeed, pl->turnspeed_s);
- X SWAP(pl->turnresistance, pl->turnresistance_s);
- X pl->control_count = CONTROL_DELAY;
- X break;
- X
- X case KEY_REFUEL:
- X pl->fuel_count = 150;
- X Refuel(ind);
- X break;
- X
- X case KEY_INCREASE_POWER:
- X pl->power *= 1.10;
- X pl->power=MIN(pl->power, MAX_PLAYER_POWER);
- X pl->control_count = CONTROL_DELAY;
- X break;
- X
- X case KEY_DECREASE_POWER:
- X pl->power *= 0.90;
- X pl->power=MAX(pl->power, MIN_PLAYER_POWER);
- X pl->control_count = CONTROL_DELAY;
- X break;
- X
- X case KEY_INCREASE_TURNSPEED:
- X if (pl->turnacc == 0.0)
- X pl->turnspeed *= 1.05;
- X pl->turnspeed=MIN(pl->turnspeed, MAX_PLAYER_TURNSPEED);
- X pl->control_count = CONTROL_DELAY;
- X break;
- X
- X case KEY_DECREASE_TURNSPEED:
- X if (pl->turnacc == 0.0)
- X pl->turnspeed *= 0.95;
- X pl->turnspeed=MAX(pl->turnspeed, MIN_PLAYER_TURNSPEED);
- X pl->control_count = CONTROL_DELAY;
- X break;
- X/*
- X case XK_KP_0:
- X case XK_0:
- X if (BIT(pl->used, OBJ_TRAINER))
- X pl->vel.x=pl->vel.y=0.0;
- X pl->turnacc = 0.0;
- X break;
- X*/
- X case KEY_THRUST:
- X SET_BIT(pl->status, THRUSTING);
- X break;
- X
- X case KEY_CLOAK:
- X if (pl->cloaks > 0)
- X {
- X pl->updateVisibility = 1;
- X TOGGLE_BIT(pl->used, OBJ_CLOAKING_DEVICE);
- X }
- X break;
- X
- X#ifdef CHEAT
- X case XK_KP_F1:
- X if (!BIT(pl->have, OBJ_TRAINER))
- X return;
- X if (BIT(pl->used, OBJ_TRAINER)) {
- X SET_BIT(pl->status, GRAVITY);
- X sprintf(msg, "%s is no longer cheating on us.", pl->name);
- X Set_message(msg);
- X pl->mychar=' ';
- X } else {
- X sprintf(msg, "%s has started cheating.", pl->name);
- X Set_message(msg);
- X pl->mychar='C';
- X }
- X TOGGLE_BIT(pl->used, OBJ_TRAINER);
- X Set_label_strings();
- X break;
- X
- X case XK_KP_F4:
- X if (!BIT(pl->have, OBJ_TRAINER))
- X return;
- X if (BIT(pl->used, OBJ_TRAINER)) {
- X SET_BIT(pl->status, GRAVITY);
- X sprintf(msg, "%s has reentered our dimension.", pl->name);
- X Set_message(msg);
- X pl->mychar=' ';
- X } else {
- X CLR_BIT(pl->status, GRAVITY);
- X sprintf(msg, "%s has entered the twilight zone.", pl->name);
- X Set_message(msg);
- X pl->mychar='T';
- X }
- X TOGGLE_BIT(pl->used, OBJ_TRAINER);
- X Set_label_strings();
- X break;
- X
- X case XK_KP_Tab:
- X pl->mines+=100;
- X break;
- X case XK_KP_Enter:
- X pl->missiles+=100;
- X break;
- X case XK_KP_Separator:
- X pl->extra_shots+=5;
- X break;
- X case XK_KP_Decimal:
- X pl->fuel=pl->max_fuel;
- X break;
- X#endif
- X
- X default:
- X break;
- X }
- X }
- X
- X
- X
- X else if (event->type == KeyRelease) { /* --- KEYRELEASE --- */
- X switch (key) {
- X case KEY_TURN_LEFT:
- X if (pl->turnacc)
- X pl->turnacc -= pl->turnspeed;
- X break;
- X
- X case KEY_TURN_RIGHT:
- X if (pl->turnacc)
- X pl->turnacc += pl->turnspeed;
- X break;
- X
- X case KEY_REFUEL:
- X CLR_BIT(pl->used, OBJ_REFUEL);
- X pl->fuel_count = 20;
- X break;
- X
- X case KEY_SHIELD:
- X CLR_BIT(pl->used, OBJ_SHIELD);
- X break;
- X
- X case KEY_THRUST:
- X CLR_BIT(pl->status, THRUSTING);
- X break;
- X
- X default:
- X break;
- X }
- X }
- X}
- END_OF_FILE
- echo shar: 1 control character may be missing from \"'src/event.c'\"
- if test 8958 -ne `wc -c <'src/event.c'`; then
- echo shar: \"'src/event.c'\" unpacked with wrong size!
- fi
- # end of 'src/event.c'
- fi
- if test -f 'src/object.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/object.h'\"
- else
- echo shar: Extracting \"'src/object.h'\" \(9041 characters\)
- sed "s/^X//" >'src/object.h' <<'END_OF_FILE'
- X/* object.h,v 1.6 1992/06/28 05:38:20 bjoerns Exp
- X *
- X * This file is part of the XPilot project, written by
- X *
- X * Bjxrn Stabell (bjoerns@stud.cs.uit.no)
- X * Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
- X *
- X * Copylefts are explained in the LICENSE file.
- X */
- X
- X#ifndef OBJECT_H
- X#define OBJECT_H
- X
- X#include "limits.h"
- X#include "types.h"
- X#include "dbuff.h"
- X
- X
- X#define OBJ_PLAYER (1L<<0) /* Types of objects */
- X#define OBJ_DEBRIS (1L<<1)
- X#define OBJ_SPARK (1L<<2)
- X#define OBJ_SHOT (1L<<8) /* Misc. objects */
- X#define OBJ_SMART_SHOT (1L<<9)
- X#define OBJ_SMART_SHOT_PACK (1L<<10)
- X#define OBJ_CLOAKING_DEVICE (1L<<11)
- X#define OBJ_ENERGY_PACK (1L<<12)
- X#define OBJ_WIDEANGLE_SHOT (1L<<13)
- X#define OBJ_TRAINER (1L<<14)
- X#define OBJ_SHIELD (1L<<15)
- X#define OBJ_REFUEL (1L<<16)
- X#define OBJ_COMPASS (1L<<17)
- X#define OBJ_REAR_SHOT (1L<<18)
- X#define OBJ_MINE (1L<<19)
- X#define OBJ_MINE_PACK (1L<<20)
- X#define OBJ_SENSOR_PACK (1L<<21)
- X#define OBJ_CANNON_DEBRIS (1L<<30) /* Cannon objects */
- X#define OBJ_CANNON_SHOT (1L<<31)
- X
- X#define PLAYING (1L<<0) /* Possible player status bits */
- X#define WAITING_SHOTS (1L<<1)
- X#define KILLED (1L<<2)
- X#define THRUSTING (1L<<3)
- X#define SELF_DESTRUCT (1L<<4)
- X#define GRAVITY (1L<<5)
- X#define SHOT_GRAVITY (1L<<6)
- X#define ID_MODE (1L<<8)
- X#define LOOSE_MASS (1L<<9)
- X#define PAUSE (1L<<10)
- X#define GAME_OVER (1L<<11)
- X#define INACTIVE (1L<<12) /* Accept keyboard input etc... */
- X#define FUEL_GAUGE (1L<<13)
- X#define VELOCITY_GAUGE (1L<<14)
- X#define POWER_GAUGE (1L<<15)
- X#define INVISIBLE (1L<<16)
- X#define WARPING (1L<<17)
- X
- X#define LOCK_NONE 1
- X#define LOCK_PLAYER 2
- X
- Xtypedef struct { /* Defines wire-obj, i.e. ship */
- X position *pts;
- X int num_points;
- X} wireobj;
- X
- Xtypedef struct {
- X int color; /* Color of object */
- X int id; /* For shots => id of player */
- X position pos; /* World coordinates */
- X vector vel;
- X vector acc;
- X int dir;
- X double max_speed;
- X double velocity;
- X double turnspeed;
- X double mass;
- X int type;
- X long info; /* Miscellaneous info */
- X int life; /* No of ticks left to live */
- X int count; /* Misc timings */
- X long status;
- X} object;
- X
- X
- X/*
- X * The following enum type defines the possible actions as a result of
- X * a keypress.
- X */
- Xtypedef enum {
- X KEY_DUMMY,
- X KEY_LOCK_NEXT,
- X KEY_LOCK_PREV,
- X KEY_LOCK_CLOSE,
- X KEY_CHANGE_HOME,
- X KEY_SHIELD,
- X KEY_FIRE_SHOT,
- X KEY_FIRE_MISSILE,
- X KEY_DROP_MINE,
- X KEY_TURN_LEFT,
- X KEY_TURN_RIGHT,
- X KEY_SELF_DESTRUCT,
- X KEY_ID_MODE,
- X KEY_PAUSE,
- X KEY_TOGGLE_VELOCITY,
- X KEY_TOGGLE_COMPASS,
- X KEY_SWAP_SETTINGS,
- X KEY_REFUEL,
- X KEY_INCREASE_POWER,
- X KEY_DECREASE_POWER,
- X KEY_INCREASE_TURNSPEED,
- X KEY_DECREASE_TURNSPEED,
- X KEY_THRUST,
- X KEY_CLOAK,
- X KEY_SLOWDOWN,
- X KEY_SPEEDUP
- X} keys_t;
- X
- X
- X/*
- X * This is the player structure, the first part is similar to object_t, this
- X * makes it possible to use the same basic operations on both of them (mainly
- X * used in update.c).
- X */
- Xtypedef struct {
- X byte color; /* Color of object */
- X int id; /* Unique id of object */
- X position pos; /* World coordinates */
- X vector vel; /* Velocity of object */
- X vector acc; /* Acceleration constant */
- X int dir; /* Direction of acceleration */
- X double max_speed; /* Maximum speed of object */
- X double velocity; /* Absolute speed */
- X double turnspeed; /* How fast player acc-turns */
- X double mass; /* Mass of object (incl. cargo) */
- X int type; /* Type of object */
- X long info; /* Miscellaneous info */
- X int life; /* Zero is dead. One is alive */
- X int count; /* Miscellaneous timings */
- X long status; /** Status, currently **/
- X
- X long used; /** Items you use **/
- X long have; /** Items you have **/
- X
- X long control_count; /* Display control for how long? */
- X long fuel_count; /* Display fuel for how long? */
- X double fuel; /* How long can you stay in the air? */
- X double fuel1; /* Fuel critical level */
- X double fuel2; /* Fuel warning level */
- X double fuel3; /* Fuel notify level */
- X double max_fuel; /* How much fuel can you take */
- X double emptymass; /* Mass of empty ship */
- X double double_dir; /* Direction, in double var */
- X double turnresistance; /* How much is lost in % */
- X double turnvel; /* Current velocity of turn (right) */
- X double turnacc; /* Current acceleration of turn */
- X long mode; /* Player mode, currently */
- X long instruments; /* Instruments on screen (bitmask) */
- X#define SHOW_HUD_INSTRUMENTS (1<<0)
- X#define SHOW_HUD_VERTICAL (1<<1)
- X#define SHOW_HUD_HORIZONTAL (1<<2)
- X#define SHOW_FUEL_METER (1<<3)
- X#define SHOW_FUEL_GAUGE (1<<4)
- X#define SHOW_TURNSPEED_METER (1<<5)
- X#define SHOW_POWER_METER (1<<6)
- X long score; /* Current score of player */
- X double power; /* Force of thrust */
- X double power_s; /* Saved power fiks */
- X double turnspeed_s; /* Saved turnspeed */
- X double turnresistance_s; /* Saved (see above) */
- X double sensor_range; /* Range of sensors (radar) */
- X int shots; /* Number of active shots by player */
- X int extra_shots; /* Number of extra shots / 2 */
- X int mines; /* Number of mines. */
- X int cloaks; /* Number of cloaks. */
- X int sensors; /* Number of sensors */
- X int missiles; /* Number of missiles. */
- X int shot_max; /* Maximum number of shots active */
- X int shot_life; /* Number of ticks shot will live */
- X double shot_speed; /* Speed of shots fired by player */
- X double shot_mass; /* Mass of shots fired by player */
- X int fs; /* Connected to fuel station fs */
- X int check; /* Next check point to pass */
- X int time; /* The time aa player has used */
- X int round; /* Number of rounds player have done */
- X int best_lap; /* Players best lap time */
- X int best_run; /* Best race time */
- X int last_lap; /* Time on last pass */
- X int last_lap_time; /* What was your last pass? */
- X int last_time; /* What was the time? */
- X position world; /* Lower left hand corner is this */
- X /* world coordinate */
- X
- X int home_base; /* No of home base */
- X struct {
- X int tagged; /* Flag, what is tagged? */
- X int pl_id; /* Tagging player id */
- X position pos; /* Position of locked object */
- X double distance; /* Distance to object */
- X } lock;
- X
- X char mychar; /* Special char for player */
- X char lblstr[MAX_CHARS]; /* Label string for player */
- X char name[MAX_CHARS]; /* Nick-name of player */
- X char realname[MAX_CHARS]; /* Real name of player */
- X Display *disp; /* Display of player (pointer) */
- X bool info_press; /* Player pressed the info button? */
- X bool help_press; /* Player pressed the help button? */
- X int help_page; /* Which page is the player on? */
- X u_byte team; /* What team is the player on? */
- X
- X /*
- X * Robot variables
- X */
- X u_byte robot_mode; /* For players -> RM_NOT_ROBOT */
- X long robot_count; /* Misc timings, minimizes rand() use */
- X int robot_ind; /* Index in the robot array */
- X
- X /* Miscellaneous graphic variables */
- X u_byte disp_type; /* Display type */
- X#define DT_NONE 0
- X#define DT_HAVE_COLOR 1
- X#define DT_HAVE_PLANES 2
- X#define DT_IS_DISPLAY 4
- X int name_length; /* Length of name in pixels */
- X GC gc; /* GC for the drawing area */
- X GC gcr; /* GC for the radar */
- X GC gcb; /* GC for the buttons */
- X GC gcp; /* GC for the player list */
- X GC gctxt; /* GC for the info/help text */
- X Window top; /* Top-level window (topshell) */
- X Window draw; /* Main play window */
- X Pixmap p_draw; /* Saved pixmap for the drawing */
- X /* area (monochromes use this) */
- X Window radar; /* Radar window */
- X Window players; /* Player list window */
- X Pixmap p_radar, s_radar; /* Pixmaps for the radar (implements */
- X /* the planes hack on the radar for */
- X /* monochromes) */
- X long dpl_1[2], dpl_2[2]; /* Used by radar hack */
- X Window quit_b; /* Quit button */
- X Window help_b; /* Help window button */
- X Window info_b; /* Info button */
- X Window help_w; /* Help window */
- X Window info_w; /* Info window */
- X Window info_close_b; /* Info window's close button */
- X Window help_close_b; /* Help window's close button */
- X Window help_next_b; /* Help window's next button */
- X Window help_prev_b; /* Help window's prevsious button */
- X XColor colors[4]; /* Colors */
- X Colormap colormap; /* Private colormap */
- X
- X dbuff_state_t *dbuf_state; /* Holds current dbuff state */
- X
- X#ifdef SCROLL
- X char scroll[MAX_SCROLL_LEN]; /* Scrolling string */
- X int scroll_len; /* Scrolling string length */
- X#endif
- X
- X struct {
- X int canSee;
- X unsigned long lastChange;
- X } visibility[MAX_PLAYERS];
- X
- X int updateVisibility, forceVisible;
- X int wormDrawCount;
- X
- X struct _keyDefs {
- X KeySym keysym; /* Keysym-to-action array */
- X keys_t key;
- X } keyDefs[MAX_KEY_DEFS];
- X} player;
- X
- X#endif
- END_OF_FILE
- echo shar: 1 control character may be missing from \"'src/object.h'\"
- if test 9041 -ne `wc -c <'src/object.h'`; then
- echo shar: \"'src/object.h'\" unpacked with wrong size!
- fi
- # end of 'src/object.h'
- fi
- echo shar: End of archive 20 \(of 24\).
- cp /dev/null ark20isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 24 archives.
- echo "\nNow run 'bldmaps.sh' to build the map files"
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-