home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / games / xtrek.zip / XTREK2.6 < prev    next >
Text File  |  1987-07-05  |  58KB  |  1,476 lines

  1. Article 48 of comp.sources.games:
  2. Path: ncrcce!rd1632!ncrlnk!ncrcae!ece-csc!mcnc!seismo!rochester!cornell!uw-beaver!tektronix!tekgen!tekred!games-request
  3. From: games-request@tekred.TEK.COM
  4. Newsgroups: comp.sources.games
  5. Subject: v01i074:  xtrek - muliplayer space war for X-windows, Part02/06
  6. Message-ID: <1367@tekred.TEK.COM>
  7. Date: 2 Jul 87 19:13:30 GMT
  8. Sender: billr@tekred.TEK.COM
  9. Lines: 1462
  10. Approved: billr@tekred.TEK.COM
  11.  
  12. Submitted by: Chris Guthrie <chris%ic.Berkeley.EDU@ucbvax.berkeley.edu>
  13. Comp.sources.games: Volume 1, Issue 74
  14. Archive-name: xtrek/Part02
  15.  
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then unpack
  19. # it by saving it into a file and typing "sh file".  To overwrite existing
  20. # files, type "sh file -c".  You can also feed this as standard input via
  21. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  22. # will see the following message at the end:
  23. #        "End of archive 2 (of 6)."
  24. # Contents:  bitmaps.h doc playerlist.c
  25. # Wrapped by billr@tekred on Thu Jul  2 10:26:28 1987
  26. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  27. if test -f bitmaps.h -a "${1}" != "-c" ; then 
  28.   echo shar: Will not over-write existing file \"bitmaps.h\"
  29. else
  30. echo shar: Extracting \"bitmaps.h\" \(27583 characters\)
  31. sed "s/^X//" >bitmaps.h <<'END_OF_bitmaps.h'
  32. X
  33. X/*
  34. X
  35. X    Copyright (c) 1986     Chris Guthrie
  36. X
  37. XPermission to use, copy, modify, and distribute this
  38. Xsoftware and its documentation for any purpose and without
  39. Xfee is hereby granted, provided that the above copyright
  40. Xnotice appear in all copies and that both that copyright
  41. Xnotice and this permission notice appear in supporting
  42. Xdocumentation.  No representations are made about the
  43. Xsuitability of this software for any purpose.  It is
  44. Xprovided "as is" without express or implied warranty.
  45. X
  46. X*/
  47. X
  48. X/**** These are the ships ****/
  49. X#define VIEWS        16
  50. X#define ship_width    16
  51. X#define ship_height    16
  52. X
  53. Xstatic short fed_bits[VIEWS][16] = {
  54. X  {        /* fed rotated 0 degrees */
  55. X   0x03c0, 0x07e0, 0x0ff0, 0x0ff0, 0x0ff0, 0x07e0, 0x03c0, 0x0990,
  56. X   0x0990, 0x0990, 0x0ff0, 0x0990, 0x0990, 0x0810, 0x0810, 0x0810
  57. X  },
  58. X  {        /* fed rotated 22.5000 degrees */
  59. X   0x0600, 0x1fc0, 0x1fc0, 0x1fc0, 0x3fc0, 0x1f80, 0x1f90, 0x0390,
  60. X   0x0998, 0x08f8, 0x05c8, 0x06e4, 0x0244, 0x0202, 0x0200, 0x0100
  61. X  },
  62. X  {        /* fed rotated 45.0000 degrees */
  63. X   0x0000, 0x1e00, 0x3f00, 0x7f00, 0x7f00, 0x7f20, 0x7f10, 0x3f98,
  64. X   0x1de4, 0x00e2, 0x04f1, 0x02a0, 0x0180, 0x0080, 0x0040, 0x0020
  65. X  },
  66. X  {        /* fed rotated 67.5000 degrees */
  67. X   0x0000, 0x0000, 0x0800, 0x7e00, 0x7ec0, 0xfe30, 0xff1e, 0x7fa1,
  68. X   0x7ff0, 0x7878, 0x0050, 0x03c0, 0x00e0, 0x0018, 0x0004, 0x0000
  69. X  },
  70. X  {        /* fed rotated 90.0000 degrees */
  71. X   0x0000, 0x0000, 0x0000, 0x0000, 0x39ff, 0x7c20, 0xfe20, 0xfff8,
  72. X   0xfff8, 0xfe20, 0x7c20, 0x39ff, 0x0000, 0x0000, 0x0000, 0x0000
  73. X  },
  74. X  {        /* fed rotated 112.5000 degrees */
  75. X   0x0000, 0x0004, 0x0018, 0x00e0, 0x03c0, 0x0050, 0x7878, 0x7ff0,
  76. X   0x7fa1, 0xff1e, 0xfe30, 0x7ec0, 0x7e00, 0x0800, 0x0000, 0x0000
  77. X  },
  78. X  {        /* fed rotated 135.0000 degrees */
  79. X   0x0020, 0x0040, 0x0080, 0x0100, 0x0320, 0x04f1, 0x00e2, 0x01fc,
  80. X   0x3f88, 0x7f10, 0x7fa0, 0x7f80, 0x7f80, 0x3f00, 0x1e00, 0x0000
  81. X  },
  82. X  {        /* fed rotated 157.5000 degrees */
  83. X   0x0100, 0x0200, 0x0202, 0x0244, 0x06e4, 0x05c8, 0x08f8, 0x0998,
  84. X   0x0390, 0x1f90, 0x1f80, 0x3fc0, 0x1fc0, 0x1fc0, 0x1fc0, 0x0600
  85. X  },
  86. X  {        /* fed rotated 180.0000 degrees */
  87. X   0x0810, 0x0810, 0x0810, 0x0990, 0x0990, 0x0ff0, 0x0990, 0x0990,
  88. X   0x0990, 0x03c0, 0x07e0, 0x0ff0, 0x0ff0, 0x0ff0, 0x07e0, 0x03c0
  89. X  },
  90. X  {        /* fed rotated 202.5000 degrees */
  91. X   0x0080, 0x0040, 0x4040, 0x2240, 0x2760, 0x13a0, 0x1f10, 0x1990,
  92. X   0x09c0, 0x09f8, 0x01f8, 0x03fc, 0x03f8, 0x03f8, 0x03f8, 0x0060
  93. X  },
  94. X  {        /* fed rotated 225.0000 degrees */
  95. X   0x0400, 0x0200, 0x0100, 0x0180, 0x0540, 0x8f20, 0x4700, 0x27b8,
  96. X   0x19fc, 0x08fe, 0x04fe, 0x00fe, 0x00fe, 0x00fc, 0x0078, 0x0000
  97. X  },
  98. X  {        /* fed rotated 247.5000 degrees */
  99. X   0x0000, 0x2000, 0x1800, 0x0700, 0x03c0, 0x0a00, 0x1e1e, 0x0ffe,
  100. X   0x85fe, 0x78ff, 0x0c7f, 0x037e, 0x007e, 0x0010, 0x0000, 0x0000
  101. X  },
  102. X  {        /* fed rotated 270.0000 degrees */
  103. X   0x0000, 0x0000, 0x0000, 0x0000, 0xff9c, 0x043e, 0x047f, 0x1fff,
  104. X   0x1fff, 0x047f, 0x043e, 0xff9c, 0x0000, 0x0000, 0x0000, 0x0000
  105. X  },
  106. X  {        /* fed rotated 292.5000 degrees */
  107. X   0x0000, 0x0000, 0x0010, 0x007e, 0x037e, 0x0c7f, 0x78ff, 0x85fe,
  108. X   0x0ffe, 0x1e1e, 0x0a00, 0x03c0, 0x0700, 0x1800, 0x2000, 0x0000
  109. X  },
  110. X  {        /* fed rotated 315.0000 degrees */
  111. X   0x0000, 0x0078, 0x00fc, 0x01fe, 0x01fe, 0x05fe, 0x08fe, 0x11fc,
  112. X   0x3f80, 0x4700, 0x8f20, 0x04c0, 0x0080, 0x0100, 0x0200, 0x0400
  113. X  },
  114. X  {        /* fed rotated 337.5000 degrees */
  115. X   0x0060, 0x03f8, 0x03f8, 0x03f8, 0x03fc, 0x01f8, 0x09f8, 0x09c0,
  116. X   0x1990, 0x1f10, 0x13a0, 0x2760, 0x2240, 0x4040, 0x0040, 0x0080
  117. X  },
  118. X};
  119. X
  120. Xstatic short rom_bits[VIEWS][16] = {
  121. X  {        /* rom rotated 0 degrees */
  122. X   0x0000, 0x0000, 0x0000, 0x43c2, 0x47e2, 0x4ff2, 0x5ffa, 0x5ffa,
  123. X   0x7ffe, 0x7ffe, 0x700e, 0x4002, 0x4002, 0x0000, 0x0000, 0x0000
  124. X  },
  125. X  {        /* rom rotated 22.5000 degrees */
  126. X   0x0000, 0x0008, 0x0008, 0x0384, 0x0ff4, 0x0ff6, 0x8ffe, 0x9ffe,
  127. X   0x5ff7, 0x5fc1, 0x7e00, 0x3800, 0x3800, 0x1000, 0x1000, 0x0000
  128. X  },
  129. X  {        /* rom rotated 45.0000 degrees */
  130. X   0x0060, 0x0020, 0x0010, 0x07c8, 0x0ffc, 0x1fff, 0x1ff9, 0x1fe0,
  131. X   0x1fc0, 0x9f80, 0xcf00, 0x2e00, 0x1e00, 0x0c00, 0x0400, 0x0600
  132. X  },
  133. X  {        /* rom rotated 67.5000 degrees */
  134. X   0x0300, 0x00e0, 0x0038, 0x01fe, 0x0ff8, 0x0fe0, 0x1fe0, 0x1fc0,
  135. X   0x1fc0, 0x0fc0, 0x0f80, 0x0f80, 0x6300, 0x1f80, 0x0780, 0x00c0
  136. X  },
  137. X  {        /* rom rotated 90.0000 degrees */
  138. X   0x0000, 0x1ff8, 0x00e0, 0x03e0, 0x07c0, 0x0fc0, 0x1fc0, 0x1fc0,
  139. X   0x1fc0, 0x1fc0, 0x0fc0, 0x07c0, 0x03e0, 0x00e0, 0x1ff8, 0x0000
  140. X  },
  141. X  {        /* rom rotated 112.5000 degrees */
  142. X   0x00c0, 0x0780, 0x1f80, 0x6300, 0x0f80, 0x0f80, 0x0fc0, 0x1fc0,
  143. X   0x1fc0, 0x1fe0, 0x0fe0, 0x0ff8, 0x01fe, 0x0038, 0x00e0, 0x0300
  144. X  },
  145. X  {        /* rom rotated 135.0000 degrees */
  146. X   0x0600, 0x0400, 0x0c00, 0x1e00, 0x2e00, 0xcf00, 0x9f80, 0x1fc0,
  147. X   0x1fe0, 0x1ff9, 0x1fff, 0x0ffc, 0x07e8, 0x0010, 0x0020, 0x0060
  148. X  },
  149. X  {        /* rom rotated 157.5000 degrees */
  150. X   0x0000, 0x1000, 0x1000, 0x3800, 0x3800, 0x7e00, 0x5fc1, 0x5ff7,
  151. X   0x9ffe, 0x8ffe, 0x0ff6, 0x0ff4, 0x0384, 0x0008, 0x0008, 0x0000
  152. X  },
  153. X  {        /* rom rotated 180.0000 degrees */
  154. X   0x0000, 0x0000, 0x0000, 0x4002, 0x4002, 0x700e, 0x7ffe, 0x7ffe,
  155. X   0x5ffa, 0x5ffa, 0x4ff2, 0x47e2, 0x43c2, 0x0000, 0x0000, 0x0000
  156. X  },
  157. X  {        /* rom rotated 202.5000 degrees */
  158. X   0x0000, 0x0008, 0x0008, 0x001c, 0x001c, 0x007e, 0x83fa, 0xeffa,
  159. X   0x7ff9, 0x7ff1, 0x6ff0, 0x2ff0, 0x21c0, 0x1000, 0x1000, 0x0000
  160. X  },
  161. X  {        /* rom rotated 225.0000 degrees */
  162. X   0x0060, 0x0020, 0x0030, 0x0078, 0x0074, 0x00f3, 0x01f9, 0x03f8,
  163. X   0x07f8, 0x9ff8, 0xfff8, 0x3ff0, 0x13e0, 0x0800, 0x0400, 0x0600
  164. X  },
  165. X  {        /* rom rotated 247.5000 degrees */
  166. X   0x0300, 0x01e0, 0x01f8, 0x00c6, 0x01f0, 0x01f0, 0x03f0, 0x03f8,
  167. X   0x03f8, 0x07f8, 0x07f0, 0x1ff0, 0x7f80, 0x1c00, 0x0700, 0x00c0
  168. X  },
  169. X  {        /* rom rotated 270.0000 degrees */
  170. X   0x0000, 0x1ff8, 0x0700, 0x07c0, 0x03e0, 0x03f0, 0x03f8, 0x03f8,
  171. X   0x03f8, 0x03f8, 0x03f0, 0x03e0, 0x07c0, 0x0700, 0x1ff8, 0x0000
  172. X  },
  173. X  {        /* rom rotated 292.5000 degrees */
  174. X   0x00c0, 0x0700, 0x1c00, 0x7f80, 0x1ff0, 0x07f0, 0x07f8, 0x03f8,
  175. X   0x03f8, 0x03f0, 0x01f0, 0x01f0, 0x00c6, 0x01f8, 0x01e0, 0x0300
  176. X  },
  177. X  {        /* rom rotated 315.0000 degrees */
  178. X   0x0600, 0x0400, 0x0800, 0x13e0, 0x3ff0, 0xfff8, 0x9ff8, 0x07f8,
  179. X   0x07f8, 0x01f9, 0x00f3, 0x0074, 0x0078, 0x0030, 0x0020, 0x0060
  180. X  },
  181. X  {        /* rom rotated 337.5000 degrees */
  182. X   0x0000, 0x1000, 0x1000, 0x21c0, 0x2ff0, 0x6ff0, 0x7ff1, 0x7ff9,
  183. X   0xeffa, 0x83fa, 0x007e, 0x001c, 0x001c, 0x0008, 0x0008, 0x0000
  184. X  },
  185. X};
  186. X
  187. Xstatic short kli_bits[VIEWS][16] = {
  188. X  {        /* kli rotated 0 degrees */
  189. X   0x0180, 0x03c0, 0x07e0, 0x03c0, 0x0180, 0x0180, 0x0180, 0x2184,
  190. X   0x2184, 0x3ffc, 0x3ffc, 0x318c, 0x2004, 0x2004, 0x2004, 0x2004
  191. X  },
  192. X  {        /* kli rotated 22.5000 degrees */
  193. X   0x0400, 0x0e80, 0x0f00, 0x1f00, 0x0f00, 0x0308, 0x0304, 0x018c,
  194. X   0x01fe, 0x21f6, 0x17c3, 0x1ec1, 0x1c01, 0x0800, 0x0800, 0x0400
  195. X  },
  196. X  {        /* kli rotated 45.0000 degrees */
  197. X   0x0000, 0x0000, 0x1c00, 0x3c10, 0x3c08, 0x3e0c, 0x071e, 0x03bd,
  198. X   0x01e0, 0x00e0, 0x01e0, 0x1380, 0x0f00, 0x0700, 0x0200, 0x0180
  199. X  },
  200. X  {        /* kli rotated 67.5000 degrees */
  201. X   0x0000, 0x0000, 0x0040, 0x1038, 0x781e, 0xf839, 0x7e30, 0x3fe0,
  202. X   0x41f0, 0x00f0, 0x00c0, 0x00c0, 0x0580, 0x03c0, 0x00e0, 0x0038
  203. X  },
  204. X  {        /* kli rotated 90.0000 degrees */
  205. X   0x0000, 0x0000, 0x01ff, 0x0070, 0x0060, 0x2060, 0x7060, 0xfff0,
  206. X   0xfff0, 0x7060, 0x2060, 0x0060, 0x0070, 0x01ff, 0x0000, 0x0000
  207. X  },
  208. X  {        /* kli rotated 112.5000 degrees */
  209. X   0x0038, 0x00e0, 0x03c0, 0x0580, 0x00c0, 0x00c0, 0x00f0, 0x41f0,
  210. X   0x3fe0, 0x7e30, 0xf839, 0x781e, 0x1038, 0x0040, 0x0000, 0x0000
  211. X  },
  212. X  {        /* kli rotated 135.0000 degrees */
  213. X   0x0180, 0x0200, 0x0700, 0x0f00, 0x1380, 0x01e0, 0x00e0, 0x01f1,
  214. X   0x03bd, 0x071e, 0x3e0c, 0x3c08, 0x3c10, 0x1c00, 0x0000, 0x0000
  215. X  },
  216. X  {        /* kli rotated 157.5000 degrees */
  217. X   0x0400, 0x0800, 0x0800, 0x1c01, 0x1ec1, 0x17c3, 0x21f6, 0x01fe,
  218. X   0x018c, 0x0304, 0x0308, 0x0f00, 0x1f00, 0x0f00, 0x0e80, 0x0400
  219. X  },
  220. X  {        /* kli rotated 180.0000 degrees */
  221. X   0x2004, 0x2004, 0x2004, 0x2004, 0x318c, 0x3ffc, 0x3ffc, 0x2184,
  222. X   0x2184, 0x0180, 0x0180, 0x0180, 0x03c0, 0x07e0, 0x03c0, 0x0180
  223. X  },
  224. X  {        /* kli rotated 202.5000 degrees */
  225. X   0x0020, 0x0010, 0x0010, 0x8038, 0x8378, 0xc3e8, 0x6f84, 0x7f80,
  226. X   0x3180, 0x20c0, 0x10c0, 0x00f0, 0x00f8, 0x00f0, 0x0170, 0x0020
  227. X  },
  228. X  {        /* kli rotated 225.0000 degrees */
  229. X   0x0180, 0x0040, 0x00e0, 0x00f0, 0x01c8, 0x0780, 0x0700, 0x8f80,
  230. X   0xbdc0, 0x78e0, 0x307c, 0x103c, 0x083c, 0x0038, 0x0000, 0x0000
  231. X  },
  232. X  {        /* kli rotated 247.5000 degrees */
  233. X   0x1c00, 0x0700, 0x03c0, 0x01a0, 0x0300, 0x0300, 0x0f00, 0x0f82,
  234. X   0x07fc, 0x0c7e, 0x9c1f, 0x781e, 0x1c08, 0x0200, 0x0000, 0x0000
  235. X  },
  236. X  {        /* kli rotated 270.0000 degrees */
  237. X   0x0000, 0x0000, 0xff80, 0x0e00, 0x0600, 0x0604, 0x060e, 0x0fff,
  238. X   0x0fff, 0x060e, 0x0604, 0x0600, 0x0e00, 0xff80, 0x0000, 0x0000
  239. X  },
  240. X  {        /* kli rotated 292.5000 degrees */
  241. X   0x0000, 0x0000, 0x0200, 0x1c08, 0x781e, 0x9c1f, 0x0c7e, 0x07fc,
  242. X   0x0f82, 0x0f00, 0x0300, 0x0300, 0x01a0, 0x03c0, 0x0700, 0x1c00
  243. X  },
  244. X  {        /* kli rotated 315.0000 degrees */
  245. X   0x0000, 0x0000, 0x0038, 0x083c, 0x103c, 0x307c, 0x78e0, 0xbdc0,
  246. X   0x8f80, 0x0700, 0x0780, 0x01c8, 0x00f0, 0x00e0, 0x0040, 0x0080
  247. X  },
  248. X  {        /* kli rotated 337.5000 degrees */
  249. X   0x0020, 0x0170, 0x00f0, 0x00f8, 0x00f0, 0x10c0, 0x20c0, 0x3180,
  250. X   0x7f80, 0x6f84, 0xc3e8, 0x8378, 0x8038, 0x0010, 0x0010, 0x0020
  251. X  },
  252. X};
  253. X
  254. Xstatic short ori_bits[VIEWS][16] = {
  255. X  {        /* ori rotated 0 degrees */
  256. X   0x0180, 0x03c0, 0x03c0, 0x0180, 0x0180, 0x0180, 0x03c0, 0x07e0,
  257. X   0x0ff0, 0x1ff8, 0x3bdc, 0x318c, 0x318c, 0x318c, 0x318c, 0x318c
  258. X  },
  259. X  {        /* ori rotated 22.5000 degrees */
  260. X   0x0400, 0x0e00, 0x0f00, 0x0e00, 0x0700, 0x0300, 0x03e0, 0x03f8,
  261. X   0x07fe, 0x0fe6, 0x07c7, 0x0ce3, 0x1c63, 0x0c61, 0x0c30, 0x0620
  262. X  },
  263. X  {        /* ori rotated 45.0000 degrees */
  264. X   0x0000, 0x0000, 0x1800, 0x3c00, 0x3c00, 0x1f7c, 0x07fe, 0x03e7,
  265. X   0x07e3, 0x07e1, 0x07f0, 0x0638, 0x061c, 0x0708, 0x0380, 0x01c0
  266. X  },
  267. X  {        /* ori rotated 67.5000 degrees */
  268. X   0x0000, 0x0000, 0x0000, 0x0008, 0x705e, 0xf8ff, 0x7fe1, 0x2fe0,
  269. X   0x03f0, 0x03fc, 0x03df, 0x0182, 0x0180, 0x00e0, 0x00f8, 0x003c
  270. X  },
  271. X  {        /* ori rotated 90.0000 degrees */
  272. X   0x0000, 0x0000, 0x003f, 0x007f, 0x00e0, 0x01c0, 0x63e0, 0xffff,
  273. X   0xffff, 0x63e0, 0x01c0, 0x00e0, 0x007f, 0x003f, 0x0000, 0x0000
  274. X  },
  275. X  {        /* ori rotated 112.5000 degrees */
  276. X   0x003c, 0x00f8, 0x00e0, 0x0180, 0x0182, 0x03df, 0x03fc, 0x03f0,
  277. X   0x2fe0, 0x7fe1, 0xf8ff, 0x705e, 0x0008, 0x0000, 0x0000, 0x0000
  278. X  },
  279. X  {        /* ori rotated 135.0000 degrees */
  280. X   0x01e0, 0x0380, 0x0708, 0x061c, 0x0638, 0x0770, 0x07e1, 0x03c3,
  281. X   0x07e7, 0x07fe, 0x1efc, 0x3c00, 0x3c00, 0x1800, 0x0000, 0x0000
  282. X  },
  283. X  {        /* ori rotated 157.5000 degrees */
  284. X   0x0620, 0x0c30, 0x0c61, 0x1c63, 0x0ce3, 0x07c7, 0x0fe6, 0x07fe,
  285. X   0x03f8, 0x03e0, 0x0300, 0x0700, 0x0e00, 0x0f00, 0x0e00, 0x0400
  286. X  },
  287. X  {        /* ori rotated 180.0000 degrees */
  288. X   0x318c, 0x318c, 0x318c, 0x318c, 0x318c, 0x3bdc, 0x1ff8, 0x0ff0,
  289. X   0x07e0, 0x03c0, 0x0180, 0x0180, 0x0180, 0x03c0, 0x03c0, 0x0180
  290. X  },
  291. X  {        /* ori rotated 202.5000 degrees */
  292. X   0x0460, 0x0c30, 0x8630, 0xc638, 0xc730, 0xe3e0, 0x67f0, 0x7fe0,
  293. X   0x1fc0, 0x07c0, 0x00c0, 0x00e0, 0x0070, 0x00f0, 0x0070, 0x0020
  294. X  },
  295. X  {        /* ori rotated 225.0000 degrees */
  296. X   0x0780, 0x01c0, 0x10e0, 0x3860, 0x1c60, 0x8ee0, 0x87e0, 0xc3e0,
  297. X   0xe7c0, 0x7fe0, 0x3ef8, 0x003c, 0x003c, 0x0018, 0x0000, 0x0000
  298. X  },
  299. X  {        /* ori rotated 247.5000 degrees */
  300. X   0x3c00, 0x1f00, 0x0700, 0x0180, 0x4180, 0xfbc0, 0x3fc0, 0x0fc0,
  301. X   0x07f4, 0x87fe, 0xff1f, 0x7a0e, 0x1000, 0x0000, 0x0000, 0x0000
  302. X  },
  303. X  {        /* ori rotated 270.0000 degrees */
  304. X   0x0000, 0x0000, 0xfc00, 0xfe00, 0x0700, 0x0380, 0x07c6, 0xffff,
  305. X   0xffff, 0x07c6, 0x0380, 0x0700, 0xfe00, 0xfc00, 0x0000, 0x0000
  306. X  },
  307. X  {        /* ori rotated 292.5000 degrees */
  308. X   0x0000, 0x0000, 0x0000, 0x1000, 0x7a0e, 0xff1f, 0x87fe, 0x07f4,
  309. X   0x0fc0, 0x3fc0, 0xfbc0, 0x4180, 0x0180, 0x0700, 0x1f00, 0x3c00
  310. X  },
  311. X  {        /* ori rotated 315.0000 degrees */
  312. X   0x0000, 0x0000, 0x0018, 0x003c, 0x003c, 0x3f78, 0x7fe0, 0xf7e0,
  313. X   0xc3c0, 0x87e0, 0x8ee0, 0x1c60, 0x38e0, 0x10e0, 0x00c0, 0x0380
  314. X  },
  315. X  {        /* ori rotated 337.5000 degrees */
  316. X   0x0020, 0x0070, 0x00f0, 0x0070, 0x00e0, 0x00c0, 0x07c0, 0x1fc0,
  317. X   0x7fe0, 0x67f0, 0xe3e0, 0xc730, 0xc638, 0x8630, 0x0c30, 0x0460
  318. X  },
  319. X};
  320. X
  321. X/**** These are the explosions ****/
  322. X
  323. X#define EX_FRAMES        5
  324. X#define ex_width    64
  325. X#define ex_height    64
  326. X
  327. Xstatic short ex_bits[5][256] = {
  328. X    {
  329. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  330. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  331. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  332. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  333. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  334. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  335. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  336. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  337. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  338. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  339. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  340. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  341. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0002, 0x0000,
  342. X    0x0000, 0x1000, 0x001a, 0x0000, 0x0000, 0x2800, 0x001c, 0x0000,
  343. X    0x0000, 0x0000, 0x000b, 0x0000, 0x0000, 0x0a00, 0x0008, 0x0000,
  344. X    0x0000, 0xe000, 0x000f, 0x0000, 0x0000, 0x9400, 0x0015, 0x0000,
  345. X    0x0000, 0xd500, 0x0075, 0x0000, 0x0000, 0x9500, 0x0022, 0x0000,
  346. X    0x0000, 0x6000, 0x001b, 0x0000, 0x0000, 0xf400, 0x001e, 0x0000,
  347. X    0x0000, 0x1000, 0x0001, 0x0000, 0x0000, 0xa000, 0x0026, 0x0000,
  348. X    0x0000, 0x0000, 0x0008, 0x0000, 0x0000, 0x8000, 0x0006, 0x0000,
  349. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  350. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  351. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  352. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  353. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  354. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  355. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  356. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  357. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  358. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  359. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  360. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
  361. X    }, {
  362. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  363. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  364. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  365. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  366. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  367. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  368. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  369. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  370. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  371. X    0x0000, 0x4000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000,
  372. X    0x0000, 0x0000, 0x0104, 0x0000, 0x0000, 0x0200, 0x0080, 0x0000,
  373. X    0x0000, 0x0000, 0x0140, 0x0000, 0x0000, 0x0480, 0x0010, 0x0000,
  374. X    0x0000, 0x0000, 0x0082, 0x0000, 0x0000, 0x0000, 0x0044, 0x0000,
  375. X    0x0000, 0x0004, 0x0080, 0x0000, 0x0000, 0x0088, 0x0000, 0x0000,
  376. X    0x0000, 0xa000, 0x00c0, 0x0000, 0x0000, 0xa800, 0x0025, 0x0000,
  377. X    0x0000, 0x0020, 0x0212, 0x0000, 0x0000, 0x8100, 0x0202, 0x0000,
  378. X    0x0000, 0x6000, 0x2c12, 0x0000, 0x0000, 0x9222, 0x1200, 0x0000,
  379. X    0x0000, 0x4000, 0x0004, 0x0000, 0x0000, 0x4212, 0x0800, 0x0000,
  380. X    0x0000, 0x2800, 0x0048, 0x0000, 0x0000, 0x2000, 0x0247, 0x0000,
  381. X    0x0000, 0x2820, 0x0048, 0x0000, 0x0000, 0x4200, 0x0118, 0x0000,
  382. X    0x0000, 0x0100, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  383. X    0x0000, 0x0400, 0x0400, 0x0000, 0x0000, 0xc000, 0x0014, 0x0000,
  384. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0040, 0x0000,
  385. X    0x0000, 0x0000, 0x0028, 0x0000, 0x0000, 0x4000, 0x0014, 0x0000,
  386. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  387. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  388. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  389. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  390. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  391. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  392. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  393. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
  394. X   }, {
  395. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  396. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  397. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  398. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  399. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  400. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000,
  401. X    0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  402. X    0x0000, 0x0000, 0x2008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  403. X    0x0000, 0x0040, 0x0800, 0x0000, 0x0000, 0x0000, 0x0400, 0x0000,
  404. X    0x0000, 0x0000, 0x2080, 0x0000, 0x0000, 0x0084, 0x0000, 0x0000,
  405. X    0x0000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0004, 0x0000,
  406. X    0x0000, 0x0000, 0x0208, 0x0000, 0x0800, 0x0000, 0x0800, 0x0000,
  407. X    0x0000, 0x0004, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000,
  408. X    0x0000, 0x0000, 0x0200, 0x0000, 0x0000, 0x5000, 0x0900, 0x0000,
  409. X    0x0000, 0x9100, 0x0009, 0x0000, 0x0000, 0x0001, 0x2004, 0x0000,
  410. X    0x0000, 0x4000, 0x4044, 0x0000, 0x0000, 0x8010, 0x0000, 0x0000,
  411. X    0x0000, 0x3000, 0x8044, 0x0010, 0x0400, 0x0040, 0x0000, 0x0005,
  412. X    0x0000, 0x8801, 0x4000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0000,
  413. X    0x0000, 0x4040, 0x0000, 0x0000, 0x4400, 0x2000, 0x0000, 0x0002,
  414. X    0x0000, 0x1200, 0x0400, 0x0000, 0x0000, 0x0000, 0x4022, 0x0000,
  415. X    0x0000, 0x0800, 0x0412, 0x0000, 0x0000, 0x0101, 0x0200, 0x0000,
  416. X    0x0000, 0x1000, 0x2090, 0x0000, 0x0000, 0x2040, 0x0030, 0x0000,
  417. X    0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000,
  418. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0080, 0x0000, 0x0000,
  419. X    0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0xc000, 0x0048, 0x0000,
  420. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0000,
  421. X    0x0000, 0x0000, 0x0200, 0x0000, 0x0000, 0x0000, 0x0110, 0x0000,
  422. X    0x0000, 0x2000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0040, 0x0000,
  423. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  424. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  425. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  426. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
  427. X   }, {
  428. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  429. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  430. X    0x0000, 0x2000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  431. X    0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  432. X    0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002,
  433. X    0x0000, 0x0008, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  434. X    0x0000, 0x0000, 0x2000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002,
  435. X    0x0000, 0x0000, 0x0200, 0x0000, 0x4000, 0x0010, 0x0000, 0x0000,
  436. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8008, 0x0000,
  437. X    0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000,
  438. X    0x0000, 0x0000, 0x8000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000,
  439. X    0x4000, 0x0000, 0x0000, 0x0000, 0x0040, 0x0000, 0x0000, 0x0000,
  440. X    0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x4800, 0x8000, 0x0000,
  441. X    0x0000, 0x0040, 0x0800, 0x0000, 0x0000, 0x4400, 0x0011, 0x0000,
  442. X    0x0000, 0x0000, 0x0008, 0x0000, 0x0800, 0x0000, 0x0100, 0x0004,
  443. X    0x0000, 0x4002, 0x0008, 0x0004, 0x0000, 0x8000, 0x0000, 0x0000,
  444. X    0x0000, 0x2000, 0x0208, 0x0810, 0x0000, 0x0800, 0x0000, 0x0040,
  445. X    0x0008, 0x0008, 0x0000, 0x0100, 0x0400, 0x8200, 0x0000, 0x0008,
  446. X    0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x2000, 0x0000, 0x0000,
  447. X    0x0000, 0x0008, 0x0000, 0x0040, 0x0208, 0x1000, 0x0000, 0x0000,
  448. X    0x0000, 0x0800, 0x2000, 0x0000, 0x0000, 0x0080, 0x0080, 0x0000,
  449. X    0x0000, 0x0000, 0x0004, 0x0008, 0x0000, 0x0400, 0x2022, 0x0000,
  450. X    0x0000, 0x0040, 0x1000, 0x0000, 0x0400, 0x0800, 0x0040, 0x0000,
  451. X    0x0000, 0x0000, 0x0200, 0x0002, 0x0000, 0x1008, 0x00c0, 0x0000,
  452. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0004, 0x0000,
  453. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  454. X    0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010,
  455. X    0x0000, 0x6000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0110, 0x0000,
  456. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  457. X    0x0000, 0x0000, 0x2000, 0x0000, 0x0000, 0x0000, 0x3000, 0x0000,
  458. X    0x0000, 0x0000, 0x0440, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  459. X    0x0000, 0x1000, 0x0120, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
  460. X   }, {
  461. X    0x0000, 0x0000, 0x0040, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  462. X    0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0040,
  463. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000, 0x0008,
  464. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002,
  465. X    0x0000, 0x0000, 0x0000, 0x0040, 0x0000, 0x0000, 0x0800, 0x0000,
  466. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0400, 0x0002, 0x0000, 0x0000,
  467. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0008,
  468. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000, 0x0000,
  469. X    0x0000, 0x0000, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0008,
  470. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0200, 0x0000, 0x0000, 0x0000,
  471. X    0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  472. X    0x0000, 0x0000, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  473. X    0x0000, 0x2400, 0x4000, 0x0008, 0x0000, 0x0010, 0x0000, 0x0000,
  474. X    0x0000, 0x4200, 0x0021, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000,
  475. X    0x0040, 0x0000, 0x0000, 0x0080, 0x0000, 0x0000, 0x0400, 0x0080,
  476. X    0x2000, 0x2000, 0x0010, 0x0000, 0x0000, 0x8000, 0x0000, 0x0000,
  477. X    0x0000, 0x1000, 0x0800, 0x0200, 0x0000, 0x0200, 0x0008, 0x1000,
  478. X    0x8000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0080, 0x0000, 0x0100,
  479. X    0x0020, 0x8000, 0x0000, 0x0080, 0x0000, 0x0000, 0x0020, 0x0000,
  480. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1001, 0x0000, 0x0000,
  481. X    0x0000, 0x1000, 0x0000, 0x1000, 0x0008, 0x0000, 0x0000, 0x0000,
  482. X    0x0000, 0x0400, 0x0000, 0x0003, 0x0000, 0x0020, 0x0000, 0x0000,
  483. X    0x0000, 0x0000, 0x0208, 0x0100, 0x0000, 0x0000, 0x0000, 0x0002,
  484. X    0x0000, 0x0100, 0x0044, 0x0000, 0x0000, 0x0010, 0x8000, 0x0000,
  485. X    0x0020, 0x0000, 0x0100, 0x0000, 0x0000, 0x0400, 0x0000, 0x0000,
  486. X    0x0000, 0x0000, 0x0900, 0x0020, 0x0000, 0x0801, 0x0080, 0x0000,
  487. X    0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x0000, 0x0004, 0x0000,
  488. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
  489. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, 0x0000,
  490. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0200,
  491. X    0x0000, 0x5000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0820, 0x0000,
  492. X    0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
  493. X    }
  494. X};
  495. X
  496. XBitmap    expview[EX_FRAMES];
  497. X
  498. X/**** These are the misc things ****/
  499. X
  500. XBitmap fedview[VIEWS];
  501. XBitmap romview[VIEWS];
  502. XBitmap kliview[VIEWS];
  503. XBitmap oriview[VIEWS];
  504. XBitmap cloud;
  505. XBitmap etorp, mtorp;
  506. XBitmap bplanet;
  507. XBitmap mbplanet;
  508. XBitmap shield;
  509. X
  510. XCursor crosshair;
  511. X
  512. X#define cloud_width 7
  513. X#define cloud_height 7
  514. Xstatic short cloud_bits[] = {
  515. X   0x0014, 0x002a, 0x0055, 0x002a,
  516. X   0x0055, 0x002a, 0x0014};
  517. X
  518. X#define etorp_width 3
  519. X#define etorp_height 3
  520. Xstatic short etorp_bits[] = {
  521. X   0x0005, 0x0002, 0x0005};
  522. X
  523. X#define mtorp_width 3
  524. X#define mtorp_height 3
  525. Xstatic short mtorp_bits[] = {
  526. X   0x0002, 0x0007, 0x0002};
  527. X
  528. X#define crossw 15
  529. X#define crossh 15
  530. Xstatic short crossbits[] = {
  531. X   0x0080, 0x0080, 0x0080, 0x0080,
  532. X   0x0080, 0x0080, 0x0080, 0x7fff,
  533. X   0x0080, 0x0080, 0x0080, 0x0080,
  534. X   0x0080, 0x0080, 0x0080};
  535. X
  536. X#define crossmask_width 15
  537. X#define crossmask_height 15
  538. Xstatic short crossmask_bits[] = {
  539. X   0x01c0, 0x01c0, 0x01c0, 0x01c0,
  540. X   0x01c0, 0x01c0, 0x7fff, 0x7fff,
  541. X   0x7fff, 0x01c0, 0x01c0, 0x01c0,
  542. X   0x01c0, 0x01c0, 0x01c0};
  543. X
  544. X#define planet_width 30
  545. X#define planet_height 30
  546. Xstatic short planet_bits[] = {
  547. X   0xf800, 0x0003, 0x0700, 0x001c,
  548. X   0x00c0, 0x0060, 0x0020, 0x0080,
  549. X   0x0010, 0x0100, 0x0008, 0x0200,
  550. X   0x0004, 0x0400, 0x0004, 0x0400,
  551. X   0x0002, 0x0800, 0x0002, 0x0800,
  552. X   0x0002, 0x0800, 0x0001, 0x1000,
  553. X   0x0001, 0x1000, 0x0001, 0x1000,
  554. X   0x0001, 0x1000, 0x0001, 0x1000,
  555. X   0x0001, 0x1000, 0x0001, 0x1000,
  556. X   0x0002, 0x0800, 0x0002, 0x0800,
  557. X   0x0002, 0x0800, 0x0004, 0x0400,
  558. X   0x0004, 0x0400, 0x0008, 0x0200,
  559. X   0x0010, 0x0100, 0x0020, 0x0080,
  560. X   0x00c0, 0x0060, 0x0700, 0x001c,
  561. X   0xf800, 0x0003, 0x0000, 0x0000};
  562. X
  563. X#define mplanet_width 16
  564. X#define mplanet_height 16
  565. Xstatic short mplanet_bits[] = {
  566. X   0x03e0, 0x0c18, 0x1004, 0x2002,
  567. X   0x2002, 0x4001, 0x4001, 0x4001,
  568. X   0x4001, 0x4001, 0x2002, 0x2002,
  569. X   0x1004, 0x0c18, 0x03e0, 0x0000};
  570. X
  571. X#define shield_width 20
  572. X#define shield_height 20
  573. Xstatic short shield_bits[] = {
  574. X   0x3fc0, 0x0000, 0xc030, 0x0000,
  575. X   0x0008, 0x0001, 0x0004, 0x0002,
  576. X   0x0002, 0x0004, 0x0002, 0x0004,
  577. X   0x0001, 0x0008, 0x0001, 0x0008,
  578. X   0x0001, 0x0008, 0x0001, 0x0008,
  579. X   0x0001, 0x0008, 0x0001, 0x0008,
  580. X   0x0001, 0x0008, 0x0001, 0x0008,
  581. X   0x0002, 0x0004, 0x0002, 0x0004,
  582. X   0x0004, 0x0002, 0x0008, 0x0001,
  583. X   0xc030, 0x0000, 0x3fc0, 0x0000};
  584. X
  585. XPixmap    e_bplanetPix, a_bplanetPix;
  586. XPixmap    e_mbplanetPix, a_mbplanetPix;
  587. X
  588. X#define icon_width 64
  589. X#define icon_height 64
  590. Xstatic short icon_bits[] = {
  591. X   0x0000, 0x0000, 0x0000, 0x0000,
  592. X   0x0000, 0x0000, 0x0000, 0x0000,
  593. X   0x83f8, 0x000f, 0x0000, 0x0000,
  594. X   0x01f0, 0x0003, 0x0000, 0x0000,
  595. X   0x01e0, 0x0003, 0x0000, 0x0000,
  596. X   0x83c0, 0x0001, 0x0000, 0x0000,
  597. X   0x83c0, 0x0001, 0x0000, 0x0000,
  598. X   0xc780, 0x0000, 0x0000, 0x0000,
  599. X   0x6780, 0x0000, 0x0000, 0x0000,
  600. X   0x6f00, 0x0000, 0x0000, 0x0000,
  601. X   0x3f00, 0x0000, 0x0000, 0x0000,
  602. X   0x1e00, 0x0000, 0x0000, 0x0000,
  603. X   0x1e00, 0xbff0, 0xe07f, 0x0e1b,
  604. X   0x3c00, 0x9ff8, 0xf8ff, 0x0719,
  605. X   0x3c00, 0x8180, 0x1ce1, 0x0398,
  606. X   0x7e00, 0x8180, 0x0e71, 0x01d8,
  607. X   0x7b00, 0x8180, 0x0639, 0x00f8,
  608. X   0xf300, 0x8180, 0xfe1d, 0x03f9,
  609. X   0xf180, 0x8180, 0xfe7f, 0x07f8,
  610. X   0xe0c0, 0x8181, 0x06e1, 0x0e18,
  611. X   0xe0c0, 0x8181, 0x0ec1, 0x0c18,
  612. X   0xe060, 0x8183, 0x1cc1, 0x0c1a,
  613. X   0xc070, 0x8187, 0xf8c1, 0x7c1b,
  614. X   0xe0fc, 0xc3df, 0xe0e3, 0x3e3d,
  615. X   0x0000, 0x0000, 0x0000, 0x0000,
  616. X   0x0000, 0x0000, 0x0000, 0x0000,
  617. X   0x0000, 0x0000, 0x0000, 0x0000,
  618. X   0x0000, 0x0000, 0x0000, 0x0000,
  619. X   0x0000, 0x0000, 0x0000, 0x0000,
  620. X   0x0000, 0x0000, 0x0000, 0x0000,
  621. X   0x2000, 0xffe0, 0x300f, 0x0608,
  622. X   0xfc00, 0xffe1, 0x3007, 0x067f,
  623. X   0xffe0, 0x011f, 0xf800, 0x0fff,
  624. X   0xfe00, 0x010f, 0x8000, 0x00ff,
  625. X   0x7000, 0x011c, 0x0000, 0x005d,
  626. X   0x0000, 0xfff0, 0x0001, 0x003e,
  627. X   0x0000, 0xffe0, 0x0000, 0x0036,
  628. X   0x0000, 0x3ff0, 0x0000, 0x003e,
  629. X   0x0000, 0x1fe0, 0x0000, 0x001c,
  630. X   0x0000, 0x0000, 0x0000, 0x0000,
  631. X   0x0000, 0x0000, 0x0000, 0x0000,
  632. X   0x0000, 0x0000, 0x0000, 0x0000,
  633. X   0x0000, 0x0000, 0xff00, 0x7fff,
  634. X   0x0000, 0x0000, 0x0100, 0x4000,
  635. X   0x0000, 0x0000, 0x0100, 0x4000,
  636. X   0xf800, 0x0000, 0xa100, 0x4000,
  637. X   0xfe00, 0xffe3, 0xa10f, 0x406e,
  638. X   0xff00, 0xffe7, 0xa10f, 0x40a2,
  639. X   0xff80, 0x010f, 0xa100, 0x4066,
  640. X   0x8f80, 0x010f, 0xa100, 0x40a2,
  641. X   0x77c0, 0x011f, 0x4100, 0x42ae,
  642. X   0xfbc0, 0xfffe, 0x0101, 0x4000,
  643. X   0xdbc0, 0xfffe, 0x0101, 0x4000,
  644. X   0xfbc0, 0xfffe, 0x0101, 0x4000,
  645. X   0x77c0, 0x011f, 0x8100, 0x43c0,
  646. X   0x8f80, 0x010f, 0xc100, 0x4320,
  647. X   0xff80, 0x010f, 0xa100, 0x42a0,
  648. X   0xff00, 0xffe7, 0x910f, 0x42a0,
  649. X   0xfe00, 0xffe3, 0xf10f, 0x42a1,
  650. X   0xf800, 0x0000, 0x8100, 0x4260,
  651. X   0x0000, 0x0000, 0x8100, 0x41ec,
  652. X   0x0000, 0x0000, 0x0100, 0x4000,
  653. X   0x0000, 0x0000, 0xff00, 0x7fff,
  654. X   0x0000, 0x0000, 0x0000, 0x0000};
  655. X
  656. X#define stipple_width 16
  657. X#define stipple_height 16
  658. Xstatic short stipple_bits[] = {
  659. X   0x0101, 0x0202, 0x0404, 0x0808,
  660. X   0x1010, 0x2020, 0x4040, 0x8080,
  661. X   0x0101, 0x0202, 0x0404, 0x0808,
  662. X   0x1010, 0x2020, 0x4040, 0x8080};
  663. X
  664. END_OF_bitmaps.h
  665. if test 27583 -ne `wc -c <bitmaps.h`; then
  666.     echo shar: \"bitmaps.h\" unpacked with wrong size!
  667. fi
  668. # end of overwriting check
  669. fi
  670. if test -f doc -a "${1}" != "-c" ; then 
  671.   echo shar: Will not over-write existing file \"doc\"
  672. else
  673. echo shar: Extracting \"doc\" \(23890 characters\)
  674. sed "s/^X//" >doc <<'END_OF_doc'
  675. X.ce 4
  676. XXtrek -- a multiplayer, space shoot 'em up game.
  677. Xby Chris Guthrie
  678. Xwith assistance of Ed James and playtesting of the XCF
  679. XCopyright (c) 1986 Chris Guthrie
  680. X
  681. X.sh 1 "Introduction"
  682. X.pp
  683. XWelcome to xtrek.
  684. XXtrek is the latest in a line of games based on Empire on the PLATO
  685. Xsystem.
  686. XMost of the ideas are stolen from the unix game
  687. X.i Trek83
  688. Xby David Davis and Chris Guthrie and the VMS game
  689. X.i Conquest
  690. Xby Jef Poskanzer and Craig Leres.
  691. XXtrek is a multi-player, real-time game which uses System V
  692. Xshared memory segments.
  693. XIt currently runs under Ultrix 2.0, Suns 3's running 3.2,
  694. Xand HP 320 systems running HP-UX 5.2.
  695. XSince the game uses shared memory for communications,
  696. Xthe daemon and
  697. Xplayer processes must be run on an an appropriate host.
  698. XHowever, the player program,
  699. X.i xtrek,
  700. Xthrows an X window up on any workstation running X.
  701. XPlease send any ideas/comments to chris@ic.berkeley.edu.
  702. X
  703. X.sh 1 "The Basic Idea"
  704. X.pp
  705. XWhen you play Xtrek, you enter a galaxy as one of four competing
  706. Xraces.
  707. XYou have a warship at your command.
  708. XThe galaxy contains forty planets which start divided evenly between
  709. Xthe four teams.
  710. XThe eventual goal of the game is to conquer the other teams' planets
  711. Xand protect your own.
  712. XUsually this will involve frequently destroying other players'
  713. Xships while avoiding their efforts to destroy yours.
  714. X
  715. X.sh 1 "Starting the Game"
  716. X.pp
  717. XTo enter the game type
  718. X.b "xtrek monitor:0"
  719. Xmuch like any X tool.
  720. XThe program will use the $DISPLAY variable in your environment if
  721. Xit is set.
  722. XIf there is room in the game, you will see an entry window which may
  723. Xcontain some random status information and a choice of teams.
  724. XClick a mouse button in the box of the team you wish to join.
  725. XIn terms of ship and planet abilities, all teams are identical.
  726. XAssuming everything is working properly (including xhosts) you
  727. Xwill be placed in the game.
  728. X
  729. X.sh 1 "The Display"
  730. X.pp
  731. XWhen you start the game, you are given five or six windows.
  732. XThe big left window is the local view from your ship.
  733. XYou will see a number of objects in it.
  734. XFirst, your ship will always appear the center of the window.
  735. XOther ships will look like yours except that each
  736. Xteam has a different ship design.
  737. XOn color workstations, each team also has a different color.
  738. XThe small hex character to the right of the ship represents
  739. Xthe player number.
  740. XRound objects with names on them are planets.
  741. XThey also are the color of their owning team.
  742. XSmall dots on the screen are torpedos.
  743. XYou will come to recognize these after they kill you a few
  744. Xtimes.
  745. XEnemy torpedoes are a small cross while friendly torpedoes are a small dot.
  746. XFriendly torpedoes will not explode if they hit you.
  747. XSmall circles are exploding torpedoes.
  748. XLines between ships are phaser shots which hit.
  749. XLines from a ship into space are phaser shots which miss.
  750. X
  751. X.pp
  752. XThe large window on the right is a map of the whole galaxy.
  753. XOnly ships and planets appear on it.
  754. XShips are just a player number (in hex) and team letter.
  755. X
  756. X.pp
  757. XDirectly below the galaxy window is a small window which
  758. Xwill occasionally contain warning messages like "Not enough
  759. Xfuel to fire torp."
  760. XYou will probably be killed shortly after this particular message.
  761. X
  762. X.pp
  763. XBelow the warning window is a message window.  This window
  764. Xwill be described later.
  765. X
  766. X.pp
  767. XThe small window on the left side is your status window.  It's
  768. Xcontents will also be described later.
  769. X
  770. X.sh 1 "User Interface"
  771. X.pp
  772. XThe mouse is the most important interface.
  773. XWhenever the game needs a direction -- to turn your ship, for instance --
  774. Xit will use the mouse's position relative to your ship, in either large
  775. Xwindow.
  776. XTorpedos and phasers will be fired toward the mouse's cursor, and
  777. Xyour ship will turn in the direction of the cursor when
  778. Xappropriate keys are hit.
  779. XCommands are issued through the keyboard and mouse
  780. Xbuttons.
  781. X
  782. X.sh 1 "Quick Instructions for Beginning Players"
  783. X.pp
  784. XSince no normal computer user will want to read the rest
  785. Xof this document, the following is a quick explanation of
  786. Xcombat.  Try it for awhile, then come back and search the
  787. Xdocument for more features.
  788. X
  789. X.sh 2 "Help Window"
  790. X.pp
  791. XTyping 'h' will pop up a help window below the normal window.
  792. XThe help window lists commands you can type.
  793. XIt's useful for small problems like forgetting how to put
  794. Xyour shields up.
  795. XTyping 'h' again will get rid of it.
  796. X
  797. X.sh 2 "Combat"
  798. X.pp
  799. XTo survive in combat, keep moving.  This is done by typing the
  800. Xnumber keys, 0-9.  Ships can fly at warp five indefinitely.
  801. XEngines will eventually overheat at higher speeds.  Turning
  802. Xis easier at low speeds.  Particularly good is warp three or
  803. Xfour.  You turn by pointing your mouse in the direction you
  804. Xwish to go, and typing the rightmost mouse key.  You will
  805. Xturn relative to whatever window you happen to have the mouse
  806. Xin.  When there is an opponent on the screen with you, you
  807. Xprobably want to start firing torpedoes at him.  Again, point the
  808. Xmouse where you want the torpedoes to go and push the leftmost
  809. Xmouse button.  If you get close enough, you might want to
  810. Xtry phasers.  Point the mouse directly at your opponent and
  811. Xpush the middle button.  A line will shoot out and you will
  812. Xget a report on your damage, if you hit.
  813. XAs a default, you will be hostile towards all other teams.
  814. XThis can be changed later.
  815. X
  816. X.pp
  817. XTorpedos that hit each do thirty points of damage to the
  818. Xtarget.  Damage first comes off of shields, and when those
  819. Xreach zero, damage comes directly off the damage stat.  When
  820. Xyour damage hits 100, your ship explodes and your opponent
  821. Xgets credit for killing you.  You can repair damage by going
  822. Xinto repair mode (type 'R') but it will also leave you a
  823. Xsitting duck for other players.  When you finish repairing,
  824. Xuse 'u' or '+' to put your shields back up.
  825. X
  826. X.pp
  827. XFinally, if you get tired of playing, you can quit by typing 
  828. X.b Q
  829. Xand waiting to self-destruct.
  830. XIn the entry window, click the mouse in the 'quit' window to
  831. Xexit the game.
  832. X
  833. X.sh 1 "Status Line"
  834. X.pp
  835. XNow for some of the more technical details.
  836. XThe status line appears below the local window
  837. Xand contains the following useful information:
  838. X
  839. X.sh 2 "Flags -- ship status flags"
  840. X.pp
  841. XVarious flags tell the player about his ship.
  842. X.(l
  843. XS     -- Shields up
  844. X[GYR] -- Alert status
  845. XL     -- Locked onto a target
  846. XR     -- In Repair mode
  847. XB     -- Bombing a planet
  848. XO     -- Orbiting a planet
  849. XC     -- Cloaked
  850. XW     -- Weapons overheated 
  851. XE     -- Engines overheated
  852. Xu     -- Beaming up armies
  853. Xd     -- Beaming down armies
  854. XP     -- Copilot permitted
  855. X.)l
  856. X
  857. X.sh 2 "speed - ship's speed"
  858. X.pp
  859. XThis is the speed your ship is currently travelling.
  860. XShips move between warps 0 and 9.
  861. X
  862. X.sh 2 "dam - current damage"
  863. X.pp
  864. XThis is how much damage your ship has taken.
  865. XIf it gets over 100, you die.
  866. XDamage repairs slowly if shields are down, faster if
  867. Xship is in repair mode.
  868. X
  869. X.sh 2 "shd - current shields"
  870. X.pp
  871. XShields start out at 100 and take damage when they are up.
  872. XWhen they hit 0, damage will come off your damage rating.
  873. XThey repair faster than real damage.
  874. X
  875. X.sh 2 "torps -- number of torpedoes launched"
  876. X.pp
  877. XEach player is limited to twelve torpedoes flying at any given
  878. Xtime.
  879. XThis is a count of the torpedoes you currently have in the air.
  880. X
  881. X.sh 2 "armies -- armies on board"
  882. X.pp
  883. XThis is a count of the number of armies you have on your ship.
  884. XYour ship can carry two times your current number of kills.
  885. XThe maximum number of armies it can carry is ten.
  886. X
  887. X.sh 2 "fuel -- how much fuel you have left"
  888. X.pp
  889. XWeapons and engines take fuel to run.
  890. XThis is a count of the amount of fuel left on the ship.
  891. XFuel regenerates slowly in space, but faster when orbiting a fuel planet.
  892. X
  893. X.sh 2 "wtemp -- weapons temperature"
  894. X.pp
  895. XUsing weapons drives up this stat.
  896. XIf it goes over 100, there is a good chance your weapons will
  897. Xfreeze up for a random amount of time.
  898. XThe temperature drops over time.
  899. X
  900. X.sh 2 "etemp -- engine temperature"
  901. X.pp
  902. XRunning your engines at speeds over five cause engine temperature
  903. Xto climb.
  904. XRunning at less than five causes them to cool.
  905. XOver 100, engines can freeze up for a random amount of time.
  906. X
  907. X.sh 1 "The Commands"
  908. X.pp
  909. XThese are the various key and button commands in the game.
  910. XThey are not currently remappable other than through the XKeyMap
  911. Xfunction.
  912. X
  913. X.sh 2 "0-9 Ship's speed"
  914. X.pp
  915. XThe numbers zero through nine set your ship's speed.
  916. XIt takes time for your ship to accelerate or decelerate to the desired
  917. Xspeed.
  918. XDamaged ships can't use higher speeds.
  919. XWhen engines freeze, you can't set speed.
  920. XSetting speed breaks you out of a planet's orbit.
  921. X
  922. X.sh 2 "k - set course"
  923. X.pp
  924. XThe letter
  925. X.b k
  926. Xor the right mouse button will set your course towards the current
  927. Xmouse position.
  928. XTurning towards the desired course can take time, depending on 
  929. Xyour current speed and damage.
  930. X
  931. X.sh 2 "t - launch torpedo"
  932. X.pp
  933. XThe letter
  934. X.b t
  935. Xor the left mouse button will launch a torpedo towards the current
  936. Xmouse position if you have enough fuel and less than twelve torpedoes
  937. Xcurrently out.
  938. XTorpedos travel at warp twelve and do thirty points of
  939. Xdamage when they hit someone.
  940. XYou cannot be hurt by your own torpedoes.
  941. XTorpedos tend to wobble a bit in flight so they won't always
  942. Xgo straight in the direction you want them to.
  943. XThe effect does create nice clouds of them, though.
  944. X
  945. X.sh 2 "p - fire phaser"
  946. X.pp
  947. XThe letter
  948. X.b p
  949. Xand the middle mouse button will fire your phasers towards the current
  950. Xmouse position if you have enough fuel.
  951. XYou may only fire phasers once per second.
  952. XThey cost a good deal of fuel.
  953. XIf they hit someone, they will do 0-100 points of damage depending on the
  954. Xrange.
  955. X
  956. X.sh 2 "d - detonate other torpedoes"
  957. X.pp
  958. XThis command will detonate other torpedoes near you, doing less
  959. Xthan maximum damage to you.
  960. X
  961. X.sh 2 "D - detonate your own torpedoes"
  962. X.pp
  963. XThis will turn your own torpedoes off (if you've missed)
  964. Xso that you can fire new ones.
  965. X
  966. X.sh 2 "+ - put shields up"
  967. X.pp
  968. XThis key will put your shields up.
  969. XRaised shields will take damage.
  970. X
  971. X.sh 2 "-- - put shields down"
  972. X.pp
  973. XThis key will put your shields down.
  974. XAll damage will go directly to your damage stat.
  975. X
  976. X.sh 2 "u - toggle shields"
  977. X.pp
  978. XThis key will toggle your shields up and down.
  979. X
  980. X.sh 2 "R - repair damage"
  981. X.pp
  982. XYour ship must be going warp zero to repair.  Hitting this key will
  983. Xstop your ship and start repairing.  Your shields are down when you
  984. Xare repairing and you cannot fire weapons.  In a nutshell, you are
  985. Xa sitting duck.  Putting your shields up or moving is the best
  986. Xway to get out of repair mode.
  987. XIf your ship is orbiting a friendly repair planet, damage will repair
  988. Xat a faster rate.
  989. X
  990. X.sh 2 "o - orbit a planet"
  991. X.pp
  992. XIf you are near a planet and going warp two or less this will
  993. Xput in orbit around it.
  994. XYou must be in orbit around a planet to bomb it, beam armies up
  995. Xor down to it, repair at it, or get fuel from it.
  996. XEnemy planets will damage you if you get near them.
  997. XSetting a speed will break out of orbit.
  998. X
  999. X.sh 2 "b - bomb a planet"
  1000. X.pp
  1001. XIf an enemy planet has more than four armies, you can bomb
  1002. Xthem.
  1003. XWith four or less armies, you must beam down armies
  1004. Xto defeat them.
  1005. XYour shields will go down to bomb, and you will
  1006. Xtake damage from the planet.
  1007. XYou get kills for the armies destroyed.
  1008. X
  1009. X.sh 2 "z - beam up armies"
  1010. X.pp
  1011. XIf the planet you are orbiting is owned by your team and
  1012. Xhas more than four armies, you can beam
  1013. Xthem to your ship to carry to other planets.
  1014. XYou must be orbiting to beam up armies.
  1015. XThe number of armies you can carry is equal to your kills * 2.
  1016. XYou can never carry more than ten armies.
  1017. X
  1018. X.sh 2 "x - beam down armies"
  1019. X.pp
  1020. XThis command will beam the armies that are on your ship down to a 
  1021. Xplanet you are orbiting.
  1022. XIf it is an hostile planet, you will kill his armies.
  1023. XIf all enemy armies are killed and you land an army, you take the planet
  1024. Xfor your team.
  1025. XIf it is a planet you own, you will simply add to the armies
  1026. Xalready there.
  1027. XIf it is a friendly planet, owned by other teams, you cannot
  1028. Xbeam armies down.
  1029. X
  1030. X.sh 2 "L - get player list"
  1031. X.pp
  1032. XThis gives you a quick list of other players.
  1033. XTo remove this window, just type 'L' again.
  1034. X
  1035. X.sh 2 "P - get planet list"
  1036. X.pp
  1037. XThis gives you a list of planets.
  1038. XYou get information only on planets which your team
  1039. Xowns or has previously orbited.  To remove this window,
  1040. Xjust type 'P' again.
  1041. X
  1042. X.sh 2 "i - info on object"
  1043. X.pp
  1044. XThis will pop up a window near the mouse cursor which contains
  1045. Xinformation about the nearest object (planet or ship).
  1046. XTo remove this window, just type 'i' again.
  1047. X
  1048. X.sh 2 "l - lock onto an object"
  1049. X.pp
  1050. XThis will lock your ship onto the object nearest the mouse cursor.
  1051. XIf you are moving you will turn towards the object your are locked
  1052. Xonto.
  1053. XIf it is a planet, you will automatically go into orbit around it.
  1054. XIf it is another player, your course will constantly be adjusted if
  1055. Xhe is moving.
  1056. XTo break the lock, just set course normally.
  1057. XYou cannot lock onto cloaked ships.
  1058. X
  1059. X.sh 2 "C - throw a coup"
  1060. X.pp
  1061. XSometimes players will discover that all their planets have been
  1062. Xtaken, or have been left with no armies.
  1063. XIn order to allow the team some form of return you can hold a coup
  1064. Xon your home planet assuming that the following criterion are met:
  1065. X.(l
  1066. XYour team must have armies on no planets.
  1067. XYou must have more than one kill.
  1068. XThere must be less than five enemy armies (or zero friendly, should
  1069. Xyou still own it) on your home planet.
  1070. XYou must be orbiting your home planet.
  1071. X.)l
  1072. XAfter the coup, the planet will have four of your armies on it.
  1073. XAs they come back you can take over more of your occupied worlds.
  1074. X
  1075. XWhen your last planet is taken, you will have to wait from thirty
  1076. Xminutes to an hour before you can have a coup.
  1077. X
  1078. X.sh 2 "? - repeat all of the previous messages"
  1079. X.pp
  1080. XMessage sending is detailed below.  This command allows you to
  1081. Xreview the current set of them.
  1082. X
  1083. X.sh 2 "c - cloak your ship"
  1084. X.pp
  1085. XThis nifty command allows you to remain invisible on the local
  1086. Xwindow of every player.  This would be nice except that you cannot
  1087. Xfire weapons while cloaked, and you use more fuel.
  1088. XFinally good players can shoot at you on the galaxy map window
  1089. Xwhere you will appear as
  1090. X.b "??."
  1091. XTyping 
  1092. X.b 'c'
  1093. Xagain will turn cloaking off.
  1094. X
  1095. X.sh 2 "@ - allow/disallow copilots"
  1096. X.pp
  1097. XThis feature allows more than one player to fly a ship.  It will
  1098. Xbe discussed near the end of this document.
  1099. X
  1100. X.sh 2 "S - Toggle visual status window"
  1101. X.pp
  1102. XThis will turn a visually oriented status window on and off.
  1103. X
  1104. X.sh 2 "w - Set war status"
  1105. X.pp
  1106. XThis command will give you a window that you can use to declare
  1107. Xwar and peace with other teams.  It will be fully detailed below.
  1108. X
  1109. X.sh 2 "* - Bring in a practice robot"
  1110. X.pp
  1111. XIf you are the only ship in the game, this command will send a
  1112. Xpractice robot into the game.
  1113. XThe robot will come in on your team, and be hostile towards you.
  1114. XThese robots are not as deadly as the ones which pop up to defend planets.
  1115. XHowever, you don't get any credit for killing them -- just practice.
  1116. X
  1117. X.sh 1 "Nitty Gritty Details"
  1118. X.pp
  1119. XThis section contains the details on certain features.
  1120. X
  1121. X.sh 2 "Planets and Armies"
  1122. X.pp
  1123. XPlanets are updated every minute.  There is a random chance
  1124. Xthat the number of armies will increase.  There is also a random
  1125. Xchance, that there will be a major die-off of armies.  This later
  1126. Xevent is more likely on planets with many armies.
  1127. XIf you have less than three armies on the planet, they will not
  1128. Xgrow as fast.
  1129. XPlanets with no armies are owned by the independent team and will
  1130. Xhave no armies on them until someone beams one down.
  1131. X
  1132. X.pp
  1133. XEnemy planets do damage based on the number of armies they have.
  1134. XThis means planets with no armies do no damage.  Those with armies
  1135. Xwill do (armies / 10) + 2 points of damage twice each second.
  1136. X
  1137. X.pp
  1138. XThe teams' home planets and randomly, others, will provide
  1139. Xfuel and repair services.  Obviously, this makes these planets
  1140. Xparticularly valuable.  These planets are selected up when the galaxy
  1141. Xis reset.
  1142. X
  1143. X.sh 2 "Messages"
  1144. X.pp
  1145. XMessages are sent both from the daemon and from other players.
  1146. XThey appear in the message window at the bottom, right side of the display.
  1147. XTo send messages, just put the mouse into the message window.
  1148. XYou must type a character in that represents the recipient of your
  1149. Xmessage.  This can be 'A' for everyone.  [FRKO] to send to all members
  1150. Xof a given team.  [0-9abcdef] will send a message to an individual
  1151. Xplayer.  When you've typed this in, it will map to a proper address
  1152. Xand wait for you to type in some text.  When you type in a return,
  1153. Xyour message is sent.
  1154. XTyping an escape will abort the message in progress.
  1155. X
  1156. X.pp
  1157. XNow obviously, the next question is, "What if someone starts shooting
  1158. Xat me while I'm typing in my message?  Am I hosed?"
  1159. XSimply move the mouse out of the window to defend yourself.  Messages
  1160. Xare only dealt with if the mouse is in the window.  You can stop
  1161. Xin the middle of the input.
  1162. X
  1163. X.sh 2 "Robots"
  1164. X.pp
  1165. XRobots are an attempt to allow/prevent certain things.  First, we want
  1166. Xbeginning players to have some lousy competition so they can get some
  1167. Xpractice without simply being targets for better players.  Secondly,
  1168. Xwe want to make sure that taking over the galaxy is not a midnight
  1169. Xwaltz.
  1170. X
  1171. X.pp
  1172. XIn order to invite a robot into the game, players are advised
  1173. Xto use the '*' command (described above) to bring in a practice
  1174. Xrobot.
  1175. XThese robots are relatively easy to kill.
  1176. XThe second way to get a robot is to go into another team's space
  1177. Xand bomb one of
  1178. X.i their
  1179. Xplanets.
  1180. XA robot will promptly show up and kill you.
  1181. XOr at least try to kill you.
  1182. XThese defender robots are particularly nasty.
  1183. XGood luck.
  1184. X
  1185. X.pp
  1186. XRobots are very much like other players.  The only advantage they
  1187. Xhave over other players is that they don't use fuel.  Otherwise,
  1188. Xtheir torpedoes do the same damage.  They are also somewhat better shots.
  1189. XTheir torpedoes don't wobble, and they never miss with their phasers.
  1190. X
  1191. X.sh 2 "War and Peace"
  1192. X.pp
  1193. XYou can declare war and peace with other teams.
  1194. XThe greatest use of this is that you can use planets belonging
  1195. Xto teams you are at peace with for fuel and repair.
  1196. XIt also allows two teams to gang up on another without risking
  1197. Xkilling each other.
  1198. X
  1199. X.pp
  1200. XThere are three states a player can be in versus any other team:
  1201. XPeace, Hostile, and War.  Being at War is irrevocable.  You cannot
  1202. Xchange to any other state until you reenter the game.  You get to
  1203. Xwar when you are hostile to a team and you either bomb one of their
  1204. Xplanets, damage one of their players with weapons, or beam armies
  1205. Xdown to one of their planets.
  1206. X
  1207. X.pp
  1208. XIf you are hostile towards a team, your weapons will hurt all members of
  1209. Xthat team (whether or not they are at peace with you).  As soon as
  1210. Xyou hurt them, you will be at war.
  1211. X
  1212. X.pp
  1213. XIf you are peaceful towards a team, your weapons will only hurt members
  1214. Xof that team who are not peaceful towards you.  In other words, two
  1215. Xplayers who are at peace towards each other cannot fight each other.
  1216. X
  1217. X.pp
  1218. XPlayers default to being at peace with their own team and hostile
  1219. Xtowards all the others.  Obviously, they can declare war on their own
  1220. Xteam.
  1221. X
  1222. X.pp
  1223. XTo change your settings, type 'w' and a war window will pop up.
  1224. XClick the mouse in the boxes of the teams you want to change.
  1225. XClick in "re-program" to save the results.  Teams will be notified
  1226. Xof your changes.  Finally, there is a ten second delay to declare
  1227. Xhostility towards another team so don't get too close while you make
  1228. Xthe changes.
  1229. X
  1230. X.pp
  1231. XThe easiest way to know if someone near you is hostile is to use
  1232. Xthe alert status described below.  Info on a player will tell you
  1233. Xtheir status towards you.
  1234. X
  1235. X.sh 2 "Weapons"
  1236. X.pp
  1237. XTorpedos move at warp twelve and have a random life of three to five
  1238. Xseconds.  They tend to wobble a bit, so their accuracy goes down
  1239. Xat longer ranges.  Torpedoes will detonate and do full damage if
  1240. Xthey get close to a ship.  They will do less damage to objects at a
  1241. Xslightly longer distance.  Torpedos will not be detonated by a non-hostile
  1242. Xplayer, but they will do damage if something causes them to explode.
  1243. X
  1244. X.pp
  1245. XWhen exploding, torpedoes can damage everyone who is near them except
  1246. Xthe person who launched them.  Thus it is possible to kill your own
  1247. Xteammates and people you are at peace with.
  1248. X
  1249. X.pp
  1250. XPhasers must be within about 10 degrees of their target to hit.
  1251. XPhasers that hit will maintain a line between the two ships.
  1252. XOnes that miss will stick out to nowhere and look stupid.
  1253. XAll phasers cost a good deal of fuel.  It takes one second
  1254. Xto recharge your phasers for another shot.
  1255. XYour phasers will affect teams you are at war with, or those
  1256. Xwho are at war with you.
  1257. X
  1258. X.pp
  1259. XShips that explode cause 100 points of damage with about the same
  1260. Xrange as a torpedo.  Don't get too near one.
  1261. X
  1262. X.sh 2 "The Galaxy"
  1263. X.pp
  1264. XYou will bounce off the edge of the galaxy if you run into it.
  1265. XTorpedos explode if they hit it.
  1266. X
  1267. X.sh 2 "Planet information"
  1268. X.pp
  1269. XYou can get information about any planet your team has orbited.
  1270. XHowever, if the planet is taken by any other team, you will
  1271. Xlose information about the planet until it is reorbited.
  1272. X
  1273. X.sh 2 "Ship's Status"
  1274. X.pp
  1275. XYour ship's alert status will tell you how close you are to hostile
  1276. Xships.  Yellow alert represents about two screens distance.  Red
  1277. Xalert means that the enemy is on your local screen (even if cloaked).
  1278. XBesides the status line, the border of your window tells you what
  1279. Xyour alert status is.  This also works for the border of the icon.
  1280. XThe border patterns are discussed below.
  1281. X
  1282. X.sh 2 "Xdefaults and options"
  1283. X.pp
  1284. XYou can put the following options into your .Xdefaults
  1285. X.(l
  1286. Xxtrek.boldfont:        6x10b
  1287. Xxtrek.font:        6x10
  1288. Xxtrek.name:        DragonSlayer
  1289. Xxtrek.reverseVideo:    off
  1290. Xxtrek.showShields:    on
  1291. Xxtrek.showStats:        on
  1292. Xxtrek.stats.geometry:    +0+655
  1293. Xxtrek.GAlertPattern:    0xf
  1294. Xxtrek.YAlertPattern:    0xa 0x5
  1295. Xxtrek.RAlertPattern:    0x0f 0x0f 0x0f 0x0f 0xf0 0xf0 0xf0 0xf0
  1296. Xxtrek.ralert:        red
  1297. Xxtrek.yalert:        yellow
  1298. Xxtrek.galert:        green
  1299. Xxtrek.border:        blue
  1300. Xxtrek.background:    black
  1301. Xxtrek.text:        white
  1302. Xxtrek.fed:        yellow
  1303. Xxtrek.rom:        red
  1304. Xxtrek.kli:        green
  1305. Xxtrek.ori:        slate blue
  1306. Xxtrek.warning:        red
  1307. Xxtrek.unknown:        light grey
  1308. Xxtrek.me:        white
  1309. X.)l
  1310. X
  1311. X.sh 3 "Fonts"
  1312. X.pp
  1313. XThese options allow you to change fonts used in the game.
  1314. XOur advice: "Don't."
  1315. X
  1316. X.sh 3 "name"
  1317. X.pp
  1318. XThis is your playername.
  1319. X
  1320. X.sh 3 "reversevideo"
  1321. X.pp
  1322. XOn black and white monitors this can ease eye-strain.
  1323. X
  1324. X.sh 3 "showShields"
  1325. X.pp
  1326. XThis causes the shields of you and other players to appear
  1327. Xas a circle around your ship when they are up.
  1328. X
  1329. X.sh 3 "showStats"
  1330. X.pp
  1331. XThis option will put up a visual status window above your display.
  1332. XSome players find this easier to read than numbers.
  1333. XThe stats.geometry uses standard X syntax for a screen position.
  1334. X
  1335. X.sh 3 "Alert Patterns"
  1336. X.pp
  1337. XThese patterns are useful for showing your current alert status
  1338. Xbased on the border pattern.  It is used for black and white
  1339. Xmonitors only.
  1340. XThe alert colors are used for color monitors.  I think changing
  1341. Xthem would be silly.
  1342. X
  1343. X.sh 3 "The remaining color definitions"
  1344. X.pp
  1345. XThese options allow you to set colors on various objects
  1346. Xso you can get much more information from your display.
  1347. XObviously, these only matter for color monitors.
  1348. X
  1349. X.sh 2 "Other programs related to xtrek"
  1350. X.pp
  1351. XThere are few other programs that come with xtrek that
  1352. Xhave some use in the game.  They are described below.
  1353. X
  1354. X.sh 3 "Copilot"
  1355. X.pp
  1356. XThis program, started with the command:
  1357. X
  1358. X.ti 1i
  1359. X.b "xtrek -c pno monitor:0"
  1360. X
  1361. Xwill allow you to fly a ship with player number pno
  1362. Xif he so permits.  This command is pretty robust.
  1363. XTwo players flying a ship can be very deadly.
  1364. XTypically, one steers and one shoots.
  1365. X
  1366. X.sh 3 "scores"
  1367. X.pp
  1368. XXtrek does, in fact keep some statistics around in the
  1369. Xfile .scores.  Scores can be used to print this information out.
  1370. XIt obviously should have been built into xtrek itself.
  1371. X
  1372. X.sh 3 "robot"
  1373. X.pp
  1374. XThis is the program xtrek uses to send robots into the game.
  1375. XRobots come with gobs of command line options, but you'll have
  1376. Xto look at the code to see what they do.
  1377. X
  1378. X.sh 3 "watch"
  1379. X.pp
  1380. XLike copilot, watch mode can be entered directly from
  1381. Xxtrek using the command:
  1382. X
  1383. X.ti 1i
  1384. X.b "xtrek -w pno monitor:0"
  1385. X
  1386. XThis allows you to watch all the actions taken by the particular
  1387. Xplayer (without him knowing it).
  1388. XYou can change the player being viewed by clicking on a new
  1389. Xplayer.
  1390. END_OF_doc
  1391. if test 23890 -ne `wc -c <doc`; then
  1392.     echo shar: \"doc\" unpacked with wrong size!
  1393. fi
  1394. # end of overwriting check
  1395. fi
  1396. if test -f playerlist.c -a "${1}" != "-c" ; then 
  1397.   echo shar: Will not over-write existing file \"playerlist.c\"
  1398. else
  1399. echo shar: Extracting \"playerlist.c\" \(1343 characters\)
  1400. sed "s/^X//" >playerlist.c <<'END_OF_playerlist.c'
  1401. X
  1402. X/*
  1403. X
  1404. X    Copyright (c) 1986     Chris Guthrie
  1405. X
  1406. XPermission to use, copy, modify, and distribute this
  1407. Xsoftware and its documentation for any purpose and without
  1408. Xfee is hereby granted, provided that the above copyright
  1409. Xnotice appear in all copies and that both that copyright
  1410. Xnotice and this permission notice appear in supporting
  1411. Xdocumentation.  No representations are made about the
  1412. Xsuitability of this software for any purpose.  It is
  1413. Xprovided "as is" without express or implied warranty.
  1414. X
  1415. X*/
  1416. X
  1417. X#include <X/Xlib.h>
  1418. X#include <stdio.h>
  1419. X#include "defs.h"
  1420. X#include "struct.h"
  1421. X#include "data.h"
  1422. X
  1423. Xplayerlist()
  1424. X{
  1425. X    register int i;
  1426. X    register int k = 0;
  1427. X    char buf[BUFSIZ];
  1428. X    register struct player *j;
  1429. X
  1430. X    (void) sprintf(buf, " # Team Name             Login    Display          dir spd kills");
  1431. X    XText(playerw, 0, dfontinfo->height, buf,
  1432. X       strlen(buf), dfont, textColor, backColor);
  1433. X    k = 2;
  1434. X    for (i = 0, j = &players[i]; i < MAXPLAYER; i++, j++) {
  1435. X    if (j->p_status != PALIVE)
  1436. X        continue;
  1437. X    (void) sprintf(buf, " %1x  %1c   %-16.16s %-8s %-16.16s %3d %3d %5.2f",
  1438. X        j->p_no,
  1439. X        teamlet[j->p_team],
  1440. X        j->p_name,
  1441. X        j->p_login,
  1442. X        j->p_monitor,
  1443. X        j->p_dir,
  1444. X        j->p_speed,
  1445. X        j->p_kills);
  1446. X    XText(playerw, 0, dfontinfo->height * k++, buf, strlen(buf),
  1447. X       shipFont(j), playerColor(j), backColor);
  1448. X    }
  1449. X    XFlush();
  1450. X}
  1451. END_OF_playerlist.c
  1452. if test 1343 -ne `wc -c <playerlist.c`; then
  1453.     echo shar: \"playerlist.c\" unpacked with wrong size!
  1454. fi
  1455. # end of overwriting check
  1456. fi
  1457. echo shar: End of archive 2 \(of 6\).
  1458. cp /dev/null ark2isdone
  1459. MISSING=""
  1460. for I in 1 2 3 4 5 6 ; do
  1461.     if test ! -f ark${I}isdone ; then
  1462.     MISSING="${MISSING} ${I}"
  1463.     fi
  1464. done
  1465. if test "${MISSING}" = "" ; then
  1466.     echo You have unpacked all 6 archives.
  1467.     rm -f ark[1-9]isdone
  1468. else
  1469.     echo You still need to unpack the following archives:
  1470.     echo "        " ${MISSING}
  1471. fi
  1472. ##  End of shell archive.
  1473. exit 0
  1474.  
  1475.  
  1476.