home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume14 / xpilot / part20 < prev    next >
Encoding:
Internet Message Format  |  1992-08-30  |  57.9 KB

  1. Path: uunet!zephyr.ens.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v14i022:  xpilot - Multiplayer gravity war game hand-shake program, Part20/24
  5. Message-ID: <3317@master.CNA.TEK.COM>
  6. Date: 4 Aug 92 19:31:11 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 1489
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Bjoern Stabell <bjoerns@staff.cs.uit.no>
  12. Posting-number: Volume 14, Issue 22
  13. Archive-name: xpilot/Part20
  14. Environment: X11, ANSI C
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 20 (of 24)."
  25. # Contents:  maps/labyrinth.uue src/Imakefile src/draw.h src/event.c
  26. #   src/object.h
  27. # Wrapped by billr@saab on Tue Aug  4 10:38:58 1992
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f 'maps/labyrinth.uue' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'maps/labyrinth.uue'\"
  31. else
  32. echo shar: Extracting \"'maps/labyrinth.uue'\" \(30712 characters\)
  33. sed "s/^X//" >'maps/labyrinth.uue' <<'END_OF_FILE'
  34. Xbegin 644 labyrinth.map
  35. XM,3<P>#$S,`HT"E1H92!,86)Y<FEN=&@*4F]N;GD@2"X@07)I;&0*>'AX>'AX
  36. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  37. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  38. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  39. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*>"`@("`@("`@("`@("`@
  40. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  41. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  42. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  43. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  44. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  45. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  46. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  47. XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  48. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  49. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  50. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  51. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  52. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  53. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  54. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
  55. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  56. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  57. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  58. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
  59. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  60. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  61. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  62. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  63. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  64. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  65. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  66. XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  67. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  68. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  69. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  70. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  71. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  72. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  73. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
  74. XM("`@('%X>'AX>'AX>'AW("`@("`@("`@("`@("`@("`@('$@("`@("`@("!Q
  75. XM>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX
  76. XM>'AX>'AX>'AX>'AX>'AW("`@("`@("`@<2`@("`@("`@('<@("`@("`@("!A
  77. XM>'AX>'AX>'AX=R`@("`@("`@<2`@("`@("`@('@*>"`@("`@("`@('@@("`@
  78. XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  79. XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  80. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  81. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
  82. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  83. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
  84. XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  85. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
  86. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@
  87. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
  88. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  89. XM('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@9'@@
  90. XM("`@("`@("!X9B`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@
  91. XM("!Q=R`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
  92. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  93. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  94. XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("!A<R`@("`@
  95. XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
  96. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  97. XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  98. XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  99. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  100. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
  101. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  102. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
  103. XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  104. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("!R("`@("`@("`@
  105. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@
  106. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@($9X("`@("`@("`@>"`@
  107. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  108. XM('@*>"`@("`@("`@('@@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>',@
  109. XM("`@("`@("!X("`@("`@("`@=R`@("`@("`@('@@("`@("`@("!X("`@("`@
  110. XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@(&%X
  111. XM>'AX>'AX>'AW("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  112. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  113. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
  114. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
  115. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  116. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  117. XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  118. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  119. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  120. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  121. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  122. XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  123. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  124. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  125. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  126. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  127. XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  128. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@
  129. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
  130. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  131. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  132. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
  133. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
  134. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  135. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  136. XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  137. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  138. XM>"`@("`@("!D>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  139. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  140. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  141. XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  142. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  143. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  144. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  145. XM("`@("`@("`@("`@("`@*B!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  146. XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  147. XM>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!A>'AX>'AX
  148. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@87AX>'AX>'AX>'AX
  149. XM>'AX>'AX>$9S("`@("`@("`@82`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  150. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  151. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  152. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  153. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  154. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  155. XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  156. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  157. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  158. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  159. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  160. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  161. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  162. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  163. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  164. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  165. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  166. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@
  167. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  168. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  169. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  170. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  171. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  172. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  173. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  174. XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  175. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  176. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  177. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  178. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  179. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  180. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  181. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"!R("`@("`@('@@("`@("`@
  182. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  183. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  184. XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@
  185. XM("`@("`@("!Q("`@("`@("`@87AX>'AX>'AX>',@("`@("`@("!Q>'AX>'AX
  186. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AW("`@("`@("`@<7AX>'AX>'AX>'AX
  187. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@*>"`@("`@
  188. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  189. XM("`@("`@("`@("`@("!C("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@
  190. XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
  191. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  192. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  193. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  194. XM("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  195. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  196. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  197. XM("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
  198. XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  199. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  200. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
  201. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
  202. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  203. XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@
  204. XM("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
  205. XM("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@
  206. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
  207. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  208. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@
  209. XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
  210. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  211. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  212. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  213. XM("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  214. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  215. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  216. XM("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@
  217. XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  218. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  219. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
  220. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
  221. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!R("`@("`@("`@("`@
  222. XM('@*>"`@("`@("`@('@@("`@<2`@("!Q>'AX>'AX>'AX=R`@("`@("`@(&$@
  223. XM("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!X("`@("`@
  224. XM("`@<7AX>'AX>'AX>'<@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('%X
  225. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX=R`@("`@("`@('@*>"`@("`@
  226. XM("`@('@@("`@>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  227. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
  228. XM("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
  229. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  230. XM>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  231. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@
  232. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  233. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@
  234. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  235. XM("`@("`@("`@("!X("`@("`@("`@>"`@(')R<B`@('@@("`@("`@("!X("`@
  236. XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  237. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@("`@("`@("`@
  238. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  239. XM("!X("`@("`@("`@>"`@9$9&1F8@('@@("`@("`@("!X("`@("`@("`@>"`@
  240. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  241. XM('@*>"`@("`@("`@('@@("`@1B`@("!X("`@("`@("`@("`@("`@("`@("`@
  242. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
  243. XM("`@>"`@9$9X1F8@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
  244. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  245. XM("`@('@@("`@>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  246. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@9$9&
  247. XM1F8@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@
  248. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  249. XM>"`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  250. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@(&-C8R`@('@@("`@
  251. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  252. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@>"`@("!X("`@
  253. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  254. XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@
  255. XM("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  256. XM>"`@("`@("`@('@*>"`@("`@("`@('@@*B`@>"`@*B!X("`@("`@("`@("`@
  257. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  258. XM("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@
  259. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  260. XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX
  261. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX("`@("`@
  262. XM("`@>"`@("`@87AX>',@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
  263. XM("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  264. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
  265. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
  266. XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
  267. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  268. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  269. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@
  270. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  271. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  272. XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  273. XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@
  274. XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  275. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  276. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  277. XM(&1X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
  278. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  279. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
  280. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@
  281. XM("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@
  282. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  283. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@
  284. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@
  285. XM("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
  286. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  287. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  288. XM("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@
  289. XM("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  290. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  291. XM("`@("`@>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  292. XM("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X9B`@
  293. XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  294. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  295. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  296. XM("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@
  297. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  298. XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('%X
  299. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'<@("`@("`@("!X("`@("`@
  300. XM("`@87AX>'AX>'AX>'AX>'AX>'AX>'AS("`@("`@("`@>"`@("`@("`@('@@
  301. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@<R`@("`@("`@('@*>"`@("`@
  302. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
  303. XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
  304. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
  305. XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  306. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  307. XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  308. XM("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  309. XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  310. XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  311. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  312. XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  313. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@<B`@("`@("`@("`@("`@
  314. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
  315. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  316. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@
  317. XM('@*>"`@("`@("`@('@@("`@("!D1F8@("`@("`@("`@("`@("`@("`@('@@
  318. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@
  319. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@
  320. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@
  321. XM("`@('@@("`@("`@8R`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
  322. XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
  323. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X
  324. XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  325. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  326. XM("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  327. XM("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  328. XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  329. XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  330. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  331. XM("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  332. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  333. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
  334. XM("!X("!R("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  335. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@("`@("`@("`@
  336. XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@
  337. XM("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@('@@("`@("`@("!X>'AX>'AX
  338. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@@
  339. XM("`@("`@("!X("`@("`@("`@87AX>'AX>'AX=R`@("`@("`@('@*>"`@("`@
  340. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  341. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("!C
  342. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  343. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  344. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  345. XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  346. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  347. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  348. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  349. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  350. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  351. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  352. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  353. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  354. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  355. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  356. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@
  357. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@
  358. XM("`@("`@("!X("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  359. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  360. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@
  361. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  362. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  363. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  364. XM>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@
  365. XM("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  366. XM("`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  367. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  368. XM('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  369. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  370. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  371. XM("`@("`@("`@("`@("`@("!X("H@("`@("`@>"`@("`@("`@('@@("`@("`@
  372. XM("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  373. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("H@>"`@("`@("`@
  374. XM('@*>"`@("`@("`@('%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@("`@
  375. XM("`@("`@("!A1GAX<R`@("`@>"`@("`@("`@('@@("`@("`@("!A("`@("`@
  376. XM("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>',@
  377. XM("`@("`@("!A("`@("`@("`@<7AX>'AX>'A&<R`@("`@("`@('@*>"`@("`@
  378. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  379. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  380. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  381. XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  382. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  383. XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  384. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  385. XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  386. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  387. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  388. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  389. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  390. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  391. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  392. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@
  393. XM('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  394. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@
  395. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  396. XM("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@
  397. XM("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  398. XM("`@("`@("`@>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  399. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  400. XM("`@("`@("`@>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@
  401. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  402. XM>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  403. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  404. XM>"`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@
  405. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  406. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  407. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@
  408. XM("`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@
  409. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@('@@("`@("`@
  410. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  411. XM("`@("`@("`@('(@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@
  412. XM('@*>"`@("`@("`@('@@("`@("`@("!Q>'AX>'AX>'AX=R`@("`@("`@('%X
  413. XM>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('@@("`@("`@("!A>'AX>'AX
  414. XM>'AX>'AX>'AX>'AX>'<@("`@("`@("!Q("`@("`@("`@87AX>'AX>'AX>'AX
  415. XM>'AX>'AX>'AW("`@("`@("`@>"`@("`@("`@=R`@("`@("`@('@*>"`@("`@
  416. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
  417. XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  418. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  419. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  420. XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  421. XM("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
  422. XM("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  423. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
  424. XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  425. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
  426. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  427. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
  428. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@
  429. XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
  430. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  431. XM('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@
  432. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@
  433. XM("`@("`@("`@<7AX>'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@
  434. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  435. XM("`@9'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@
  436. XM("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@
  437. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X
  438. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@
  439. XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@
  440. XM("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
  441. XM("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  442. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@
  443. XM("`@("`@("`@("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  444. XM('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
  445. XM("`@("`@("`@("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  446. XM>"`@("`@("`@('@*>"`@("`@("`@('@@("`@("`@("!X("`@("`@("`@("`@
  447. XM("`@("`@('@@("`@("`@("`@("`@("`@("`@("`@("`@("`@('AF("`@("`@
  448. XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
  449. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  450. XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>',@
  451. XM("`@("`@("!Q>'AX>'AX>'AX>'AX>'AX>'AX>',@("`@("`@("!Q>'AX>$9X
  452. XM>'AX>'AX>'AX>'AX>'@@("`@("`@("!X("`@("`@("`@<7AX>'AX>'AX>'<@
  453. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  454. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
  455. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  456. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("!D1G@@("`@("`@("!X
  457. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  458. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  459. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
  460. XM("`@("!X("`@("`@("`@("`@("`@("`@8W@@("`@("`@("!X("`@("`@("`@
  461. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  462. XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  463. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
  464. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  465. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  466. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
  467. XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
  468. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  469. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@
  470. XM("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  471. XM("`@("`@("`@87AX>'@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@
  472. XM("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@
  473. XM("`@("`@("`@("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X
  474. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  475. XM("`@('@@("`@("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X
  476. XM("`@("`@("`@>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@
  477. XM("`@("`@("`@("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@
  478. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@
  479. XM("`@("!X("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@
  480. XM>"`@("`@("`@>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  481. XM("`@("`@>"`@("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@
  482. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@
  483. XM("`@("`@("`@("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@
  484. XM>"`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@>"`@
  485. XM("`@("`@("`@("`@("`@("!X("`@("`@("`@("`@("`@("`@("`@("`@("`@
  486. XM("`@("`@("`@("`@("`@("`@("`J('@@("`@("`@("!X("`@("`@("`@("`@
  487. XM("`@("`@('@@("`@("`@("!X("`@("`@("`@>"`@("`@("`@>"`@("`@("`@
  488. XM('@*>"`@("`@("`@(&%X>'AX>'AX>'AX>'AX>'AX>'AX<R`@("`@("`@('%X
  489. XM>'AX>'AX>'AS("`@("`@("`@<7AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  490. XM>'AX>'AX>'AX>'AX>',@("`@("`@("!A>'AX>'AX>'AX>'AX>'AX>'AX>',@
  491. XM("`@("`@("!A("`@("`@("`@87AX>'AX>'AX<R`@("`@("`@('@*>"`@("`@
  492. XM("`@("`@("`@("`@8R`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  493. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  494. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  495. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
  496. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  497. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  498. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  499. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  500. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  501. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  502. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  503. XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  504. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  505. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  506. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  507. XM('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  508. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  509. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  510. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@
  511. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  512. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  513. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  514. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@
  515. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  516. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  517. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  518. XM("`@("`@("`@("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@
  519. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  520. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  521. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  522. XM("`@("`@("`@('@*>"`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  523. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  524. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@
  525. XM("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@<B`@("`@("`@
  526. XM('@*>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  527. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  528. XM>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX
  529. XG>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'AX>'@*
  530. X`
  531. Xend
  532. END_OF_FILE
  533. if test 30712 -ne `wc -c <'maps/labyrinth.uue'`; then
  534.     echo shar: \"'maps/labyrinth.uue'\" unpacked with wrong size!
  535. fi
  536. # end of 'maps/labyrinth.uue'
  537. fi
  538. if test -f 'src/Imakefile' -a "${1}" != "-c" ; then 
  539.   echo shar: Will not clobber existing file \"'src/Imakefile'\"
  540. else
  541. echo shar: Extracting \"'src/Imakefile'\" \(3733 characters\)
  542. sed "s/^X//" >'src/Imakefile' <<'END_OF_FILE'
  543. X/* Imakefile,v 1.17 1992/06/28 06:12:12 bjoerns Exp
  544. X *
  545. X *      This file is part of the XPilot project, written by
  546. X *
  547. X *          Bjxrn Stabell (bjoerns@stud.cs.uit.no)
  548. X *          Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
  549. X *
  550. X *      Copylefts are explained in the LICENSE file.
  551. X */
  552. X
  553. X#
  554. X# Imakefile - XPilot
  555. X# /users/staff/bjoerns/src/cvs/xpilot/src/Imakefile,v 1.17 1992/06/28 06:12:12 bjoerns Exp
  556. X#
  557. X
  558. X
  559. X############################################################################
  560. X#
  561. X# Miscellaneous flags.
  562. X#
  563. XMATHLIB = -lm
  564. XSOCKLIB = lib/libsocklib.a
  565. X
  566. X/*
  567. X * Specify an ANSI compiler.
  568. X */
  569. XCC = cc #-Aa -D_HPUX_SOURCE
  570. X#CC = cc -Aa -D_HPUX_SOURCE        #HPUX
  571. X#CC = cc -xansi -D__STDC__        #SGI Indigo?
  572. X
  573. X/*
  574. X * DEFINES should be used for program specific defines.
  575. X * Currently supported flags are:
  576. X *
  577. X *  LIMIT_ACCESS    - extremely local, cannot be used without modification.
  578. X *  NO_LOG          - don't try to keep a log.
  579. X *  SCROLL          - scroll a message in the window title, this is intended
  580. X *                    for you people who really wanna burn CPU cycles.
  581. X *  DRAW_GRAV_VECTORS   - slows the game down to an unbearable speed, you
  582. X *                        might try it once, the effect is quite ... er...
  583. X *  THRUST_TURN     - makes turning look a bit more, er... stupid actually!
  584. X *  CHEAT           - define this for fun, but don't make it a habit... :)
  585. X *  SILENT          - makes the server real silent.
  586. X *
  587. X * You should also set these appropriately (see config.h):
  588. X *
  589. X *  LOCALGURU           - define to the person in charge of xpilot on this site.
  590. X *  LIBDIR              - define to where you want the help-files etc.
  591. X *                        (HELPFILE, MOTDFILE, LOGFILE and MAPDIR)
  592. X *  XHOST               - Do and xhost +serverhost and xhost -serverhost if
  593. X *                        the server couldn't open your display. (see config.h)
  594. X *  UPDATES_PR_FRAME=1  - number of 'ticks' per drawing (1 is default).
  595. X */
  596. XDEFINES = -DNO_LOG
  597. X
  598. X/*
  599. X * CDEBUGFLAGS should specify optimalization or debug information (or both).
  600. X */
  601. XCDEBUGFLAGS = +O3 +OS +ESlit    #HPUX cc
  602. X#CDEBUGFLAGS = -O        #gcc for instance?
  603. X#HPUX: CDEBUGFLAGS = +O3 +OS +ESlit ... LDFLAGS: -Wl,-I first, then -Wl,-P
  604. X
  605. X/*
  606. X * Uncomment this line if your system doesn't have usleep().
  607. X */
  608. XUSLEEP_OBJ = usleep.o
  609. X
  610. X/*
  611. X * Uncomment this line if you don't have strcasecmp() (case insensitive compare)
  612. X */
  613. X/* STRCASECMP_OBJ = strcasecmp.o */
  614. X
  615. X
  616. X
  617. X############################################################################
  618. X#
  619. X# Source and object files.
  620. X#
  621. X/*
  622. X * 'Server' program, xpilots...
  623. X */
  624. XOBJS1 = server.o xinit.o dbuff.o draw.o event.o map.o math.o cmdline.o \
  625. X        play.o player.o rules.o update.o collision.o default.o error.o \
  626. X    robot.o $(STRCASECMP_OBJ)
  627. XSRCS1 = server.c xinit.c dbuff.c draw.c event.c map.c math.c cmdline.c \
  628. X        play.c player.c rules.c update.c collision.c default.c error.c \
  629. X    robot.c
  630. X
  631. X
  632. X/*
  633. X * Hand-shake program, xpilot...
  634. X */
  635. XOBJS2 = xpilot.o syslimit.o error.o $(USLEEP_OBJ)
  636. XSRCS2 = xpilot.c syslimit.c error.c
  637. X
  638. X
  639. X
  640. X############################################################################
  641. X#
  642. X# Make subdirectories, socklib...
  643. X#
  644. XSUBDIRS = lib
  645. X
  646. X#define IHaveSubdirs
  647. X#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
  648. X
  649. XMakeSubdirs($(SUBDIRS))
  650. XDependSubdirs($(SUBDIRS))
  651. X
  652. X
  653. X
  654. X############################################################################
  655. X#
  656. X# Make handshake and server program
  657. X#
  658. XAllTarget(xpilot xpilots)
  659. X
  660. XComplexProgramTarget_1(xpilots, $(SOCKLIB), $(MATHLIB) $(XLIB))
  661. XComplexProgramTarget_2(xpilot, $(SOCKLIB), )
  662. X
  663. X
  664. X
  665. X############################################################################
  666. X#
  667. X# Special rules
  668. X#
  669. Xlocked::
  670. X    rlog -L -R RCS/?*,v
  671. X
  672. Xrcslog::
  673. X    rlog RCS/?*,v >RCS.log
  674. X
  675. Xclean::
  676. X    rm -f RCS.log
  677. X
  678. Xetags::
  679. X    etags -t *.[chips]
  680. END_OF_FILE
  681. echo shar: 1 control character may be missing from \"'src/Imakefile'\"
  682. if test 3733 -ne `wc -c <'src/Imakefile'`; then
  683.     echo shar: \"'src/Imakefile'\" unpacked with wrong size!
  684. fi
  685. # end of 'src/Imakefile'
  686. fi
  687. if test -f 'src/draw.h' -a "${1}" != "-c" ; then 
  688.   echo shar: Will not clobber existing file \"'src/draw.h'\"
  689. else
  690. echo shar: Extracting \"'src/draw.h'\" \(1710 characters\)
  691. sed "s/^X//" >'src/draw.h' <<'END_OF_FILE'
  692. X/* draw.h,v 1.9 1992/06/28 05:38:11 bjoerns Exp
  693. X *
  694. X *    This file is part of the XPilot project, written by
  695. X *
  696. X *        Bjxrn Stabell (bjoerns@stud.cs.uit.no)
  697. X *        Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
  698. X *
  699. X *    Copylefts are explained in the LICENSE file.
  700. X */
  701. X
  702. X#ifndef    DRAW_H
  703. X#define    DRAW_H
  704. X
  705. X#define NUM_COLORS        4
  706. X
  707. X#define BLACK            0
  708. X#define WHITE            1
  709. X#define BLUE            2
  710. X#define RED            3
  711. X
  712. X#define FULL            768
  713. X#define CENTER            (FULL/2)
  714. X#define SMART_SHOT_LEN        15
  715. X#define DSIZE            4        /* Size of diamond (on radar) */
  716. X
  717. X#define MSG_DURATION        1024
  718. X#define MSG_FLASH        892
  719. X
  720. X#define SCROLL_DELAY        10
  721. X#define SCROLL_LEN        100
  722. X
  723. X#define TITLE_DELAY        500
  724. X
  725. X#define CLOAK_FAILURE        130
  726. X
  727. X#ifndef NO_ROTATING_DASHES
  728. X#define NO_OF_DASHES        2
  729. X#define DASHES_LENGTH        12
  730. Xextern char dashes[];
  731. X#endif
  732. X
  733. X#define HUD_SIZE        90            /* Size/2 of HUD lines */
  734. X#define HUD_OFFSET        20            /* Hud line offset */
  735. X#define FUEL_GAUGE_OFFSET   6
  736. X#define HUD_ITEMS_SPACE        (2*(HUD_SIZE-HUD_OFFSET)/7.0)
  737. X#define HUD_FUEL_GAUGE_SIZE (2*(HUD_SIZE-HUD_OFFSET-FUEL_GAUGE_OFFSET))
  738. X
  739. X#define HELP_PAGES        2
  740. X
  741. Xtypedef struct {
  742. X    char txt[MSG_LEN];
  743. X    long life;
  744. X} message_t;
  745. X
  746. X#define HavePlanes(d) (DisplayPlanes(d, DefaultScreen(d)) > 2)
  747. X#define HaveColor(d)  (DefaultVisual(d, DefaultScreen(d))->class == PseudoColor)
  748. X
  749. X#define FRAC(py)        ((int)((py) * 1024.0/768.0))
  750. X#define ShadowDrawString(i, d, w, gc, x, y, str, fg, bg)    \
  751. X{                                \
  752. X    if (BIT(Players[i]->disp_type, DT_HAVE_COLOR)) {    \
  753. X        XSetForeground(d, gc, bg);                \
  754. X        XDrawString(d, w, gc, x+1, y+1, str, strlen(str));    \
  755. X    }                            \
  756. X    XSetForeground(d, gc, fg);                \
  757. X    XDrawString(d, w, gc, x-1, y-1, str, strlen(str));    \
  758. X}
  759. X
  760. X#endif
  761. END_OF_FILE
  762. echo shar: 1 control character may be missing from \"'src/draw.h'\"
  763. if test 1710 -ne `wc -c <'src/draw.h'`; then
  764.     echo shar: \"'src/draw.h'\" unpacked with wrong size!
  765. fi
  766. # end of 'src/draw.h'
  767. fi
  768. if test -f 'src/event.c' -a "${1}" != "-c" ; then 
  769.   echo shar: Will not clobber existing file \"'src/event.c'\"
  770. else
  771. echo shar: Extracting \"'src/event.c'\" \(8958 characters\)
  772. sed "s/^X//" >'src/event.c' <<'END_OF_FILE'
  773. X/* $Id: event.c,v 1.13 1992/07/10 21:41:01 bjoerns Exp $
  774. X *
  775. X *    This file is part of the XPilot project, written by
  776. X *
  777. X *        Bjxrn Stabell (bjoerns@stud.cs.uit.no)
  778. X *        Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
  779. X *
  780. X *    Copylefts are explained in the LICENSE file.
  781. X */
  782. X
  783. X#include <X11/Xproto.h>
  784. X#include <X11/Xlib.h>
  785. X#include <X11/Xos.h>
  786. X#include <X11/keysym.h>
  787. X#ifdef    apollo
  788. X#    include <X11/ap_keysym.h>
  789. X#endif
  790. X
  791. X#include "global.h"
  792. X#include "score.h"
  793. X#include "map.h"
  794. X
  795. X#ifndef    lint
  796. Xstatic char sourceid[] =
  797. X    "@(#)$Id: event.c,v 1.13 1992/07/10 21:41:01 bjoerns Exp $";
  798. X#endif
  799. X
  800. X#define SWAP(_a, _b)        {double _tmp = _a; _a = _b; _b = _tmp;}
  801. X
  802. X#define CONTROL_DELAY    100
  803. X
  804. X
  805. X/*
  806. X * Globals.
  807. X */
  808. Xstatic char        msg[MSG_LEN];
  809. X
  810. X
  811. X
  812. Xvoid Refuel(int ind)
  813. X{
  814. X    player *pl = Players[ind];
  815. X    int i, min;
  816. X    double l, min_dist=DBL_MAX;
  817. X
  818. X
  819. X    if (!BIT(pl->have, OBJ_REFUEL))
  820. X    return;
  821. X
  822. X    for (i=0; i<World.NumFuels; i++) {
  823. X    l=LENGTH(pl->pos.x-World.fuel[i].pos.x, 
  824. X         pl->pos.y-World.fuel[i].pos.y);
  825. X    if (min_dist > l) {
  826. X        min_dist = l;
  827. X        min = i;
  828. X    }
  829. X    }
  830. X
  831. X    SET_BIT(pl->used, OBJ_REFUEL);
  832. X    pl->fs=min;
  833. X}
  834. X
  835. X
  836. Xstatic keys_t Lookup_key(KeySym ks, player *pl)
  837. X{
  838. X    keys_t ret = KEY_DUMMY;
  839. X    int i = 0;
  840. X
  841. X
  842. X    while (i < MAX_KEY_DEFS && pl->keyDefs[i].key)
  843. X    if (pl->keyDefs[i].keysym == ks) {
  844. X        ret = pl->keyDefs[i].key;
  845. X        break;
  846. X    }
  847. X    else
  848. X    i++;
  849. X
  850. X    return (ret);
  851. X}
  852. X
  853. X
  854. Xvoid Key_event(int ind, XEvent *event)
  855. X{
  856. X    KeySym      KS;
  857. X    int            i, xi, yi, min_ind;
  858. X    player      *pl;
  859. X    double      min, l;
  860. X    keys_t    key;
  861. X
  862. X
  863. X    pl = Players[ind];
  864. X
  865. X    KS = XLookupKeysym(&(event->xkey), 0);
  866. X    key = Lookup_key(KS, pl);
  867. X
  868. X    if (!BIT(pl->status, PLAYING))        /* Allow these functions */
  869. X    switch (key) {                /* while you're 'dead'. */
  870. X    case KEY_PAUSE:
  871. X    case KEY_LOCK_NEXT:
  872. X    case KEY_LOCK_PREV:
  873. X    case KEY_ID_MODE:
  874. X    case KEY_TOGGLE_VELOCITY:
  875. X    case KEY_TOGGLE_COMPASS:
  876. X    case KEY_SWAP_SETTINGS:
  877. X    case KEY_INCREASE_POWER:
  878. X    case KEY_DECREASE_POWER:
  879. X    case KEY_INCREASE_TURNSPEED:
  880. X    case KEY_DECREASE_TURNSPEED:
  881. X    case KEY_SLOWDOWN:
  882. X    case KEY_SPEEDUP:
  883. X        break;
  884. X    default:
  885. X        return;
  886. X    }
  887. X
  888. X
  889. X    if (event->type == KeyPress) {    /* --- KEYPRESS --- */
  890. X    switch (key) {
  891. X
  892. X    case KEY_SLOWDOWN:
  893. X        if (Owner(pl->realname)) {
  894. X        Delay += 5;
  895. X        break;
  896. X        }
  897. X    case KEY_SPEEDUP:
  898. X        if (Owner(pl->realname)) {
  899. X        Delay -= 5;
  900. X        if (Delay < 0)
  901. X            Delay = 0;
  902. X        break;
  903. X        }
  904. X    case KEY_LOCK_NEXT:
  905. X    case KEY_LOCK_PREV:
  906. X        i = GetInd[pl->lock.pl_id];
  907. X        if (NumPlayers > 1)
  908. X        do {
  909. X            if ((KS==XK_Prior) || (KS==XK_Left))
  910. X            i--;
  911. X            else
  912. X            i++;
  913. X            i = MOD(i, NumPlayers);
  914. X            pl->lock.pl_id = Players[i]->id;
  915. X            pl->lock.tagged = LOCK_PLAYER;
  916. X        } while (i == ind);
  917. X        break;
  918. X
  919. X    case KEY_LOCK_CLOSE:
  920. X        min = DBL_MAX;
  921. X        for (i=0; i<NumPlayers; i++) {
  922. X        if (TEAM(ind, i) || !BIT(Players[i]->status, PLAYING))
  923. X            continue;
  924. X        l=LENGTH(Players[i]->pos.x - pl->pos.x,
  925. X             Players[i]->pos.y - pl->pos.y);
  926. X        if (BIT(Players[i]->status, PLAYING) && l<min && i!=ind) {
  927. X            min=l;
  928. X            min_ind=i;
  929. X        }
  930. X        }
  931. X        if (min < DBL_MAX) {
  932. X        pl->lock.pl_id=Players[min_ind]->id;
  933. X        pl->lock.tagged = LOCK_PLAYER;
  934. X        } else
  935. X        pl->lock.tagged = LOCK_NONE;
  936. X        break;
  937. X
  938. X    case KEY_CHANGE_HOME:
  939. X        xi=(int)pl->pos.x/BLOCK_SZ;
  940. X        yi=(int)pl->pos.y/BLOCK_SZ;
  941. X        if (/*(pl->velocity<(0.5 + LENGTH(World.gravity[xi][yi].x,
  942. X                        World.gravity[xi][yi].y))) && */
  943. X        (World.block[xi][yi]==BASE)) {
  944. X        msg[0]='\0';
  945. X        for (i=0; i<World.NumBases; i++) {
  946. X            if ((World.base[i].x==xi) &&
  947. X            (World.base[i].y==yi) && (i!=pl->home_base)) {
  948. X            pl->home_base=i;
  949. X            sprintf(msg, "%s has changed home base.", pl->name);
  950. X            }
  951. X        }
  952. X        for (i=0; i<NumPlayers; i++)
  953. X            if ((i!=ind) && (pl->home_base==Players[i]->home_base)) {
  954. X            Pick_startpos(i);
  955. X            sprintf(msg, "%s has taken over %s's home base.",
  956. X                pl->name, Players[i]->name);
  957. X            }
  958. X        if (msg[0])
  959. X            Set_message(msg);
  960. X        }
  961. X        break;
  962. X
  963. X    case KEY_SHIELD:
  964. X        if (BIT(pl->have, OBJ_SHIELD))
  965. X        SET_BIT(pl->used, OBJ_SHIELD);
  966. X        break;
  967. X
  968. X    case KEY_FIRE_SHOT:
  969. X        Fire_shot(ind, OBJ_SHOT, pl->dir);
  970. X        for (i=0; i<pl->extra_shots; i++) {
  971. X        Fire_shot(ind, OBJ_SHOT,
  972. X              MOD(pl->dir + (1+i)*SHOTS_ANGLE, RES));
  973. X        Fire_shot(ind, OBJ_SHOT,
  974. X              MOD(pl->dir - (1+i)*SHOTS_ANGLE, RES));
  975. X        }
  976. X        if (BIT(pl->have, OBJ_REAR_SHOT))
  977. X        Fire_shot(ind, OBJ_SHOT,
  978. X              MOD(pl->dir+RES/2, RES));
  979. X        break;
  980. X        
  981. X    case KEY_FIRE_MISSILE:
  982. X        if (pl->missiles > 0)
  983. X        Fire_shot(ind, OBJ_SMART_SHOT, pl->dir);
  984. X        break;
  985. X        
  986. X    case KEY_DROP_MINE:
  987. X        if (pl->mines > 0) {
  988. X        Place_mine(ind);
  989. X        pl->mines--;
  990. X        }
  991. X        break;
  992. X
  993. X    case KEY_TURN_LEFT:
  994. X        pl->turnacc+=pl->turnspeed;
  995. X        break;
  996. X        
  997. X    case KEY_TURN_RIGHT:
  998. X        pl->turnacc-=pl->turnspeed;
  999. X        break;
  1000. X
  1001. X    case KEY_SELF_DESTRUCT:
  1002. X        TOGGLE_BIT(pl->status, SELF_DESTRUCT);
  1003. X        if (BIT(pl->status, SELF_DESTRUCT))
  1004. X        pl->count = 150;
  1005. X        break;
  1006. X
  1007. X    case KEY_ID_MODE:
  1008. X        TOGGLE_BIT(pl->status, ID_MODE);
  1009. X        break;
  1010. X
  1011. X    case KEY_PAUSE:
  1012. X        xi = (int)pl->pos.x / BLOCK_SZ;
  1013. X        yi = (int)pl->pos.y / BLOCK_SZ;
  1014. X        if ((pl->velocity<(0.5 + LENGTH(World.gravity[xi][yi].x,
  1015. X                        World.gravity[xi][yi].y))) &&
  1016. X        (World.base[pl->home_base].x == xi &&
  1017. X         World.base[pl->home_base].y == yi)) {
  1018. X        if (!BIT(pl->status, PAUSE)) {        /* Turn pause mode on */
  1019. X            pl->count = MIN_PAUSE;
  1020. X            SET_BIT(pl->status, PAUSE);
  1021. X            CLR_BIT(pl->status, SELF_DESTRUCT|PLAYING);
  1022. X            XAutoRepeatOn(pl->disp);        /* Auto repeat on */
  1023. X        } else
  1024. X            if (pl->count <= 0) {
  1025. X            CLR_BIT(pl->status, PAUSE);
  1026. X            if (!BIT(pl->status, GAME_OVER))
  1027. X                SET_BIT(pl->status, PLAYING);
  1028. X            }
  1029. X        }
  1030. X        break;
  1031. X        
  1032. X    case KEY_TOGGLE_VELOCITY:
  1033. X        TOGGLE_BIT(pl->status, VELOCITY_GAUGE);
  1034. X        break;
  1035. X
  1036. X    case KEY_TOGGLE_COMPASS:
  1037. X        if (!BIT(pl->have, OBJ_COMPASS))
  1038. X        break;
  1039. X        TOGGLE_BIT(pl->used, OBJ_COMPASS);
  1040. X        if (BIT(pl->used, OBJ_COMPASS))
  1041. X        if (NumPlayers > 1) {
  1042. X            pl->lock.tagged = LOCK_PLAYER;
  1043. X        } else
  1044. X            pl->lock.tagged = LOCK_NONE;
  1045. X        break;
  1046. X
  1047. X    case KEY_SWAP_SETTINGS:
  1048. X        SWAP(pl->power, pl->power_s);
  1049. X        SWAP(pl->turnspeed, pl->turnspeed_s);
  1050. X        SWAP(pl->turnresistance, pl->turnresistance_s);
  1051. X        pl->control_count = CONTROL_DELAY;
  1052. X        break;
  1053. X
  1054. X    case KEY_REFUEL:
  1055. X        pl->fuel_count = 150;
  1056. X        Refuel(ind);
  1057. X        break;
  1058. X
  1059. X    case KEY_INCREASE_POWER:
  1060. X        pl->power *= 1.10;
  1061. X        pl->power=MIN(pl->power, MAX_PLAYER_POWER);
  1062. X        pl->control_count = CONTROL_DELAY;
  1063. X        break;
  1064. X
  1065. X    case KEY_DECREASE_POWER:
  1066. X        pl->power *= 0.90;
  1067. X        pl->power=MAX(pl->power, MIN_PLAYER_POWER);
  1068. X        pl->control_count = CONTROL_DELAY;
  1069. X        break;
  1070. X
  1071. X    case KEY_INCREASE_TURNSPEED:
  1072. X        if (pl->turnacc == 0.0)
  1073. X        pl->turnspeed *= 1.05;
  1074. X        pl->turnspeed=MIN(pl->turnspeed, MAX_PLAYER_TURNSPEED);
  1075. X        pl->control_count = CONTROL_DELAY;
  1076. X        break;
  1077. X
  1078. X    case KEY_DECREASE_TURNSPEED:
  1079. X        if (pl->turnacc == 0.0)
  1080. X        pl->turnspeed *= 0.95;
  1081. X        pl->turnspeed=MAX(pl->turnspeed, MIN_PLAYER_TURNSPEED);
  1082. X        pl->control_count = CONTROL_DELAY;
  1083. X        break;
  1084. X/*
  1085. X    case XK_KP_0:
  1086. X    case XK_0:
  1087. X        if (BIT(pl->used, OBJ_TRAINER))
  1088. X        pl->vel.x=pl->vel.y=0.0;
  1089. X        pl->turnacc = 0.0;
  1090. X        break;
  1091. X*/
  1092. X    case KEY_THRUST:
  1093. X        SET_BIT(pl->status, THRUSTING);
  1094. X        break;
  1095. X
  1096. X    case KEY_CLOAK:
  1097. X        if (pl->cloaks > 0)
  1098. X        {
  1099. X        pl->updateVisibility = 1;
  1100. X        TOGGLE_BIT(pl->used, OBJ_CLOAKING_DEVICE);
  1101. X        }
  1102. X        break;
  1103. X
  1104. X#ifdef    CHEAT
  1105. X    case XK_KP_F1:
  1106. X        if (!BIT(pl->have, OBJ_TRAINER))
  1107. X        return;
  1108. X        if (BIT(pl->used, OBJ_TRAINER)) {
  1109. X        SET_BIT(pl->status, GRAVITY);
  1110. X        sprintf(msg, "%s is no longer cheating on us.", pl->name);
  1111. X        Set_message(msg);
  1112. X        pl->mychar=' ';
  1113. X        } else {
  1114. X        sprintf(msg, "%s has started cheating.", pl->name);
  1115. X        Set_message(msg);
  1116. X        pl->mychar='C';
  1117. X        }
  1118. X        TOGGLE_BIT(pl->used, OBJ_TRAINER);
  1119. X        Set_label_strings();
  1120. X        break;
  1121. X
  1122. X    case XK_KP_F4:
  1123. X        if (!BIT(pl->have, OBJ_TRAINER))
  1124. X        return;
  1125. X        if (BIT(pl->used, OBJ_TRAINER)) {
  1126. X        SET_BIT(pl->status, GRAVITY);
  1127. X        sprintf(msg, "%s has reentered our dimension.", pl->name);
  1128. X        Set_message(msg);
  1129. X        pl->mychar=' ';
  1130. X        } else {
  1131. X        CLR_BIT(pl->status, GRAVITY);
  1132. X        sprintf(msg, "%s has entered the twilight zone.", pl->name);
  1133. X        Set_message(msg);
  1134. X        pl->mychar='T';
  1135. X        }
  1136. X        TOGGLE_BIT(pl->used, OBJ_TRAINER);
  1137. X        Set_label_strings();
  1138. X        break;
  1139. X
  1140. X    case XK_KP_Tab:
  1141. X        pl->mines+=100;
  1142. X        break;
  1143. X    case XK_KP_Enter:
  1144. X        pl->missiles+=100;
  1145. X        break;
  1146. X    case XK_KP_Separator:
  1147. X        pl->extra_shots+=5;
  1148. X        break;
  1149. X    case XK_KP_Decimal:
  1150. X        pl->fuel=pl->max_fuel;
  1151. X        break;
  1152. X#endif
  1153. X
  1154. X    default:
  1155. X        break;
  1156. X    }
  1157. X    }
  1158. X
  1159. X
  1160. X
  1161. X    else if (event->type == KeyRelease) {    /* --- KEYRELEASE --- */
  1162. X    switch (key) {
  1163. X    case KEY_TURN_LEFT:
  1164. X        if (pl->turnacc)
  1165. X        pl->turnacc -= pl->turnspeed;
  1166. X        break;
  1167. X
  1168. X    case KEY_TURN_RIGHT:
  1169. X        if (pl->turnacc)
  1170. X        pl->turnacc += pl->turnspeed;
  1171. X        break;
  1172. X
  1173. X    case KEY_REFUEL:
  1174. X        CLR_BIT(pl->used, OBJ_REFUEL);
  1175. X        pl->fuel_count = 20;
  1176. X        break;
  1177. X
  1178. X    case KEY_SHIELD:
  1179. X        CLR_BIT(pl->used, OBJ_SHIELD);
  1180. X        break;
  1181. X
  1182. X    case KEY_THRUST:
  1183. X        CLR_BIT(pl->status, THRUSTING);
  1184. X        break;
  1185. X
  1186. X    default:
  1187. X        break;
  1188. X    }
  1189. X    }
  1190. X}
  1191. END_OF_FILE
  1192. echo shar: 1 control character may be missing from \"'src/event.c'\"
  1193. if test 8958 -ne `wc -c <'src/event.c'`; then
  1194.     echo shar: \"'src/event.c'\" unpacked with wrong size!
  1195. fi
  1196. # end of 'src/event.c'
  1197. fi
  1198. if test -f 'src/object.h' -a "${1}" != "-c" ; then 
  1199.   echo shar: Will not clobber existing file \"'src/object.h'\"
  1200. else
  1201. echo shar: Extracting \"'src/object.h'\" \(9041 characters\)
  1202. sed "s/^X//" >'src/object.h' <<'END_OF_FILE'
  1203. X/* object.h,v 1.6 1992/06/28 05:38:20 bjoerns Exp
  1204. X *
  1205. X *    This file is part of the XPilot project, written by
  1206. X *
  1207. X *        Bjxrn Stabell (bjoerns@stud.cs.uit.no)
  1208. X *        Ken Ronny Schouten (kenrsc@stud.cs.uit.no)
  1209. X *
  1210. X *    Copylefts are explained in the LICENSE file.
  1211. X */
  1212. X
  1213. X#ifndef    OBJECT_H
  1214. X#define    OBJECT_H
  1215. X
  1216. X#include "limits.h"
  1217. X#include "types.h"
  1218. X#include "dbuff.h"
  1219. X
  1220. X
  1221. X#define OBJ_PLAYER        (1L<<0)        /* Types of objects */
  1222. X#define OBJ_DEBRIS        (1L<<1)
  1223. X#define OBJ_SPARK        (1L<<2)
  1224. X#define OBJ_SHOT        (1L<<8)        /* Misc. objects */
  1225. X#define OBJ_SMART_SHOT        (1L<<9)
  1226. X#define OBJ_SMART_SHOT_PACK    (1L<<10)
  1227. X#define OBJ_CLOAKING_DEVICE    (1L<<11)
  1228. X#define OBJ_ENERGY_PACK        (1L<<12)
  1229. X#define OBJ_WIDEANGLE_SHOT    (1L<<13)
  1230. X#define OBJ_TRAINER        (1L<<14)
  1231. X#define OBJ_SHIELD        (1L<<15)
  1232. X#define OBJ_REFUEL        (1L<<16)
  1233. X#define OBJ_COMPASS        (1L<<17)
  1234. X#define OBJ_REAR_SHOT        (1L<<18)
  1235. X#define OBJ_MINE        (1L<<19)
  1236. X#define OBJ_MINE_PACK        (1L<<20)
  1237. X#define OBJ_SENSOR_PACK     (1L<<21)
  1238. X#define OBJ_CANNON_DEBRIS    (1L<<30)    /* Cannon objects */
  1239. X#define OBJ_CANNON_SHOT        (1L<<31)
  1240. X
  1241. X#define PLAYING            (1L<<0)        /* Possible player status bits */
  1242. X#define WAITING_SHOTS        (1L<<1)
  1243. X#define KILLED            (1L<<2)
  1244. X#define THRUSTING        (1L<<3)
  1245. X#define SELF_DESTRUCT        (1L<<4)
  1246. X#define GRAVITY            (1L<<5)
  1247. X#define SHOT_GRAVITY        (1L<<6)
  1248. X#define ID_MODE            (1L<<8)
  1249. X#define LOOSE_MASS        (1L<<9)
  1250. X#define PAUSE            (1L<<10)
  1251. X#define GAME_OVER        (1L<<11)
  1252. X#define INACTIVE        (1L<<12)    /* Accept keyboard input etc... */
  1253. X#define FUEL_GAUGE        (1L<<13)
  1254. X#define VELOCITY_GAUGE        (1L<<14)
  1255. X#define POWER_GAUGE        (1L<<15)
  1256. X#define INVISIBLE        (1L<<16)
  1257. X#define WARPING            (1L<<17)
  1258. X
  1259. X#define LOCK_NONE        1
  1260. X#define LOCK_PLAYER        2
  1261. X
  1262. Xtypedef struct {            /* Defines wire-obj, i.e. ship */
  1263. X    position    *pts;
  1264. X    int        num_points;
  1265. X} wireobj;
  1266. X
  1267. Xtypedef struct {
  1268. X    int        color;            /* Color of object */        
  1269. X    int        id;            /* For shots => id of player */
  1270. X    position    pos;            /* World coordinates */
  1271. X    vector    vel;
  1272. X    vector    acc;
  1273. X    int        dir;
  1274. X    double    max_speed;
  1275. X    double    velocity;
  1276. X    double    turnspeed;
  1277. X    double    mass;
  1278. X    int        type;
  1279. X    long    info;            /* Miscellaneous info */
  1280. X    int        life;            /* No of ticks left to live */
  1281. X    int        count;            /* Misc timings */
  1282. X    long    status;
  1283. X} object;
  1284. X
  1285. X
  1286. X/*
  1287. X * The following enum type defines the possible actions as a result of
  1288. X * a keypress.
  1289. X */
  1290. Xtypedef enum {
  1291. X    KEY_DUMMY,
  1292. X    KEY_LOCK_NEXT,
  1293. X    KEY_LOCK_PREV,
  1294. X    KEY_LOCK_CLOSE,
  1295. X    KEY_CHANGE_HOME,
  1296. X    KEY_SHIELD,
  1297. X    KEY_FIRE_SHOT,
  1298. X    KEY_FIRE_MISSILE,
  1299. X    KEY_DROP_MINE,
  1300. X    KEY_TURN_LEFT,
  1301. X    KEY_TURN_RIGHT,
  1302. X    KEY_SELF_DESTRUCT,
  1303. X    KEY_ID_MODE,
  1304. X    KEY_PAUSE,
  1305. X    KEY_TOGGLE_VELOCITY,
  1306. X    KEY_TOGGLE_COMPASS,
  1307. X    KEY_SWAP_SETTINGS,
  1308. X    KEY_REFUEL,
  1309. X    KEY_INCREASE_POWER,
  1310. X    KEY_DECREASE_POWER,
  1311. X    KEY_INCREASE_TURNSPEED,
  1312. X    KEY_DECREASE_TURNSPEED,
  1313. X    KEY_THRUST,
  1314. X    KEY_CLOAK,
  1315. X    KEY_SLOWDOWN,
  1316. X    KEY_SPEEDUP
  1317. X} keys_t;
  1318. X
  1319. X
  1320. X/*
  1321. X * This is the player structure, the first part is similar to object_t, this
  1322. X * makes it possible to use the same basic operations on both of them (mainly
  1323. X * used in update.c).
  1324. X */
  1325. Xtypedef struct {
  1326. X    byte    color;            /* Color of object */        
  1327. X    int        id;            /* Unique id of object */
  1328. X    position    pos;            /* World coordinates */
  1329. X    vector    vel;            /* Velocity of object */
  1330. X    vector    acc;            /* Acceleration constant */
  1331. X    int        dir;            /* Direction of acceleration */
  1332. X    double    max_speed;        /* Maximum speed of object */
  1333. X    double    velocity;        /* Absolute speed */
  1334. X    double    turnspeed;        /* How fast player acc-turns */
  1335. X    double    mass;            /* Mass of object (incl. cargo) */
  1336. X    int        type;            /* Type of object */
  1337. X    long    info;            /* Miscellaneous info */
  1338. X    int        life;            /* Zero is dead. One is alive */
  1339. X    int        count;            /* Miscellaneous timings */
  1340. X    long    status;            /** Status, currently **/
  1341. X
  1342. X    long    used;            /** Items you use **/
  1343. X    long    have;            /** Items you have **/
  1344. X
  1345. X    long    control_count;        /* Display control for how long? */
  1346. X    long    fuel_count;        /* Display fuel for how long? */
  1347. X    double    fuel;            /* How long can you stay in the air? */
  1348. X    double    fuel1;            /* Fuel critical level */
  1349. X    double    fuel2;            /* Fuel warning level */
  1350. X    double    fuel3;            /* Fuel notify level */
  1351. X    double    max_fuel;        /* How much fuel can you take */
  1352. X    double    emptymass;        /* Mass of empty ship */
  1353. X    double    double_dir;        /* Direction, in double var */
  1354. X    double    turnresistance;        /* How much is lost in % */
  1355. X    double    turnvel;        /* Current velocity of turn (right) */
  1356. X    double    turnacc;        /* Current acceleration of turn */
  1357. X    long    mode;            /* Player mode, currently */
  1358. X    long    instruments;        /* Instruments on screen (bitmask) */
  1359. X#define SHOW_HUD_INSTRUMENTS    (1<<0)            
  1360. X#define SHOW_HUD_VERTICAL    (1<<1)
  1361. X#define SHOW_HUD_HORIZONTAL    (1<<2)
  1362. X#define SHOW_FUEL_METER        (1<<3)
  1363. X#define SHOW_FUEL_GAUGE        (1<<4)
  1364. X#define SHOW_TURNSPEED_METER    (1<<5)
  1365. X#define SHOW_POWER_METER    (1<<6)
  1366. X    long    score;            /* Current score of player */
  1367. X    double    power;            /* Force of thrust */
  1368. X    double    power_s;        /* Saved power fiks */
  1369. X    double    turnspeed_s;        /* Saved turnspeed */
  1370. X    double    turnresistance_s;    /* Saved (see above) */
  1371. X    double    sensor_range;        /* Range of sensors (radar) */
  1372. X    int        shots;            /* Number of active shots by player */
  1373. X    int        extra_shots;        /* Number of extra shots / 2 */
  1374. X    int        mines;            /* Number of mines. */
  1375. X    int        cloaks;            /* Number of cloaks. */
  1376. X    int        sensors;        /* Number of sensors */
  1377. X    int        missiles;        /* Number of missiles. */
  1378. X    int        shot_max;        /* Maximum number of shots active */
  1379. X    int        shot_life;        /* Number of ticks shot will live */
  1380. X    double    shot_speed;        /* Speed of shots fired by player */
  1381. X    double    shot_mass;        /* Mass of shots fired by player */
  1382. X    int        fs;            /* Connected to fuel station fs */
  1383. X    int        check;            /* Next check point to pass */
  1384. X    int        time;            /* The time aa player has used */
  1385. X    int        round;            /* Number of rounds player have done */
  1386. X    int        best_lap;        /* Players best lap time */
  1387. X    int        best_run;        /* Best race time */
  1388. X    int        last_lap;        /* Time on last pass */
  1389. X    int        last_lap_time;        /* What was your last pass? */
  1390. X    int        last_time;        /* What was the time? */
  1391. X    position    world;            /* Lower left hand corner is this */
  1392. X                    /* world coordinate */
  1393. X
  1394. X    int        home_base;        /* No of home base */
  1395. X    struct {
  1396. X    int        tagged;        /* Flag, what is tagged? */
  1397. X    int        pl_id;        /* Tagging player id */
  1398. X    position    pos;        /* Position of locked object */
  1399. X    double        distance;        /* Distance to object */
  1400. X    } lock;
  1401. X
  1402. X    char    mychar;            /* Special char for player */
  1403. X    char    lblstr[MAX_CHARS];    /* Label string for player */
  1404. X    char    name[MAX_CHARS];    /* Nick-name of player */
  1405. X    char    realname[MAX_CHARS];    /* Real name of player */
  1406. X    Display    *disp;            /* Display of player (pointer) */
  1407. X    bool    info_press;        /* Player pressed the info button? */ 
  1408. X    bool    help_press;        /* Player pressed the help button? */
  1409. X    int        help_page;        /* Which page is the player on? */
  1410. X    u_byte    team;            /* What team is the player on? */
  1411. X
  1412. X    /*
  1413. X     * Robot variables
  1414. X     */
  1415. X    u_byte    robot_mode;        /* For players -> RM_NOT_ROBOT */
  1416. X    long    robot_count;        /* Misc timings, minimizes rand() use */
  1417. X    int        robot_ind;        /* Index in the robot array */
  1418. X     
  1419. X    /* Miscellaneous graphic variables */
  1420. X    u_byte    disp_type;        /* Display type */
  1421. X#define    DT_NONE            0
  1422. X#define    DT_HAVE_COLOR               1
  1423. X#define    DT_HAVE_PLANES        2
  1424. X#define    DT_IS_DISPLAY        4
  1425. X    int        name_length;        /* Length of name in pixels */
  1426. X    GC        gc;            /* GC for the drawing area */
  1427. X    GC        gcr;            /* GC for the radar */
  1428. X    GC        gcb;            /* GC for the buttons */
  1429. X    GC        gcp;            /* GC for the player list */
  1430. X    GC        gctxt;            /* GC for the info/help text */
  1431. X    Window    top;            /* Top-level window (topshell) */
  1432. X    Window    draw;            /* Main play window */
  1433. X    Pixmap    p_draw;            /* Saved pixmap for the drawing */
  1434. X                        /* area (monochromes use this) */
  1435. X    Window    radar;            /* Radar window */
  1436. X    Window    players;        /* Player list window */
  1437. X    Pixmap    p_radar, s_radar;    /* Pixmaps for the radar (implements */
  1438. X                    /* the planes hack on the radar for */
  1439. X                        /* monochromes) */
  1440. X    long    dpl_1[2], dpl_2[2];    /* Used by radar hack */
  1441. X    Window    quit_b;            /* Quit button */
  1442. X    Window    help_b;            /* Help window button */
  1443. X    Window    info_b;            /* Info button */
  1444. X    Window    help_w;            /* Help window */
  1445. X    Window    info_w;            /* Info window */
  1446. X    Window    info_close_b;        /* Info window's close button */
  1447. X    Window    help_close_b;        /* Help window's close button */
  1448. X    Window    help_next_b;        /* Help window's next button */
  1449. X    Window    help_prev_b;        /* Help window's prevsious button */
  1450. X    XColor    colors[4];        /* Colors */
  1451. X    Colormap    colormap;        /* Private colormap */
  1452. X
  1453. X    dbuff_state_t   *dbuf_state;        /* Holds current dbuff state */
  1454. X
  1455. X#ifdef SCROLL
  1456. X    char    scroll[MAX_SCROLL_LEN]; /* Scrolling string */
  1457. X    int        scroll_len;        /* Scrolling string length */
  1458. X#endif
  1459. X
  1460. X    struct {
  1461. X    int        canSee;
  1462. X    unsigned long    lastChange;
  1463. X    } visibility[MAX_PLAYERS];
  1464. X
  1465. X    int updateVisibility, forceVisible;
  1466. X    int wormDrawCount;
  1467. X
  1468. X    struct _keyDefs {
  1469. X        KeySym    keysym;            /* Keysym-to-action array */
  1470. X        keys_t    key;
  1471. X    } keyDefs[MAX_KEY_DEFS];
  1472. X} player;
  1473. X
  1474. X#endif
  1475. END_OF_FILE
  1476. echo shar: 1 control character may be missing from \"'src/object.h'\"
  1477. if test 9041 -ne `wc -c <'src/object.h'`; then
  1478.     echo shar: \"'src/object.h'\" unpacked with wrong size!
  1479. fi
  1480. # end of 'src/object.h'
  1481. fi
  1482. echo shar: End of archive 20 \(of 24\).
  1483. cp /dev/null ark20isdone
  1484. MISSING=""
  1485. 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
  1486.     if test ! -f ark${I}isdone ; then
  1487.     MISSING="${MISSING} ${I}"
  1488.     fi
  1489. done
  1490. if test "${MISSING}" = "" ; then
  1491.     echo You have unpacked all 24 archives.
  1492.     echo "\nNow run 'bldmaps.sh' to build the map files"
  1493.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1494. else
  1495.     echo You still need to unpack the following archives:
  1496.     echo "        " ${MISSING}
  1497. fi
  1498. ##  End of shell archive.
  1499. exit 0
  1500.