home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume20 / xboing / part19 < prev    next >
Encoding:
Text File  |  1993-09-03  |  54.3 KB  |  1,277 lines

  1. Newsgroups: comp.sources.x
  2. From: jck@kimba.catt.citri.edu.au (Justin Kibell)
  3. Subject: v20i126:  xboing - a simple blockout type game, Part19/26
  4. Message-ID: <1993Sep3.123507.8253@sparky.sterling.com>
  5. X-Md4-Signature: 1ae4aed70205fa73c31193d927ba3eb0
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Fri, 3 Sep 1993 12:35:07 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: jck@kimba.catt.citri.edu.au (Justin Kibell)
  12. Posting-number: Volume 20, Issue 126
  13. Archive-name: xboing/part19
  14. Environment: X11, xpm, color
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  bitmaps/titleB.xpm bitmaps/titleG.xpm
  21. #   bitmaps/titleSmall.xpm keys.c paddle.c sounds/hyperspace.au.uue
  22. # Wrapped by chris@sparky on Fri Sep  3 07:14:48 1993
  23. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 19 (of 26)."'
  26. if test -f 'bitmaps/titleB.xpm' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'bitmaps/titleB.xpm'\"
  28. else
  29.   echo shar: Extracting \"'bitmaps/titleB.xpm'\" \(5946 characters\)
  30.   sed "s/^X//" >'bitmaps/titleB.xpm' <<'END_OF_FILE'
  31. X/* XPM */
  32. Xstatic char * titleB_xpm[] = {
  33. X/* width height ncolors chars_per_pixel */
  34. X"73 74 8 1",
  35. X/* colors */
  36. X"     s None    c None",
  37. X".    c #802F00",
  38. X"X    c #A06000",
  39. X"o    c #903F10",
  40. X"O    c #F0D040",
  41. X"+    c #D09E20",
  42. X"@    c #F0C030",
  43. X"#    c #C07F10",
  44. X/* pixels */
  45. X"                                                                         ",
  46. X"                                                                         ",
  47. X".XooooooooooooooooooooooooooooooooooooooooooooooXXXXXX                   ",
  48. X"XOO+++++++++++++++++++++++++++++++++++++++++++++@OOOOO#                  ",
  49. X"XOO@+++++@+++++++++++++++++++++++++++++++++++++++@@+OO#ooo               ",
  50. X"XOOO@++++O+++++++++++++++++++++++++++++++++++++++++++O++++X              ",
  51. X"XOOOO+@+@++++++++@+++@+@+++++++@+++@+++++++++@+++++++O++@++oXX           ",
  52. X"XOOOOOO@+++++++++O+++O@@+++++++O+++O+++++++++O+++++++O@++O@OOOX          ",
  53. X"XOOOOO+#X#XXXXX#+OO@+#X##XXXX#X##X##XXXXXXX#X#+@+@+++++@@@@@+++X         ",
  54. X"XOOOOO#....o.o..#OOO#.....o.o.......oo.o.o....#OOO@+++@@@@@@+++OX        ",
  55. X"XOOO+#oo..o#####+OOO#.o.......................o####X++@+@@@@@@OO+X       ",
  56. X"XOOO#.....#OOOOOO@OO#ooo.......o.......oo..o..o.oo..#O@++O@OOOOOOOX      ",
  57. X"XO+#ooo###+OOOOO@@OO#oooo.ooo..oo.........ooo.oooo..o+++OO@@O@OO@O+X     ",
  58. X"XO#.o.#OOOOOO@@@@@OO#ooXoooXo.oXoo.......ooXo.oX.oo.oo#OOOO+OOOOOOOO#    ",
  59. X" #    oX+OOO@@@@OOOO#oXoXoXXo.... . . . .oXXoo.XXooo.oX#+OOO@OOO@OOO#o   ",
  60. X"        XOO@@@@@OOOO+XoooXXXoo          .XXXXXXXXXXooooo+OOOOO@OOOOO+#o  ",
  61. X"        XO@@OOOOOOOO+XXX#XXXXX.          ....oX#XXXoooooX#+O@+@@+++++#o  ",
  62. X"        X@@@OOOOOOOO+XX####XXX.             .oX##XXXXXXXXo+O+#+O+#####o  ",
  63. X"        X@@@OOOOOOOO+XX####X#X.              .oXXX#XXX#XXo+O@+++##++++o  ",
  64. X"        X@OOOOOOO+@O+XX#######.               .XX####XX##X+OOO+XXX+OOOX  ",
  65. X"        XO@OOOOOO@OO+X#####X##.                .X####X###X+O@+##XX#+++o  ",
  66. X"        XOO@OOOOOOOO+#####XX##.                 .#########+O+######o##o  ",
  67. X"        XOO@OOOOO@@O@++++##X#+X                 .#####+++#+O+XX#XXX#X#.  ",
  68. X"        XOOOO+O+@@@OOOOO+###+OX                 .#####+O+#+O#ooXooX#XX   ",
  69. X"        XO@OO@@O@@OOOO@++#++@OX               .X+++++++++@@O+oXXXoXXXXo  ",
  70. X"        X@@@@@@OOOOOOO+###+OOOX               XOOOOOO@+#+OOO+XXXXXoooX.  ",
  71. X"        XO@OO@O@@O@OOO@+++++OOX              o#OOOOO@@@+OO+#XoXXoXoooo.  ",
  72. X"        XOOOO+@@@@@OOO@@OO@#+OX             .#+OOO@O@OOOOO#ooooXXooooo   ",
  73. X"        XOOOOO@O@@OOOOO@@O@+@@X          .oo#+@@@+@@OO@@+#Xoo.oooooo..   ",
  74. X"        XOOOOOOOOOOOOO@@O@OOO@X         .#+++O@O@++O@O@@#.....oooo..     ",
  75. X"        o+@O@+@OOOOOOO@@OOOOO@#oooXXoooo##++@@O@@+@+O@+#oo...o.oooo..    ",
  76. X"        o#+O+#+OOOOO@@@@@OOOOO@++++O@++++++O@@@@@@+++@#.oo...oo..o..     ",
  77. X"        o#++++++@OOOO@@OOO@@+@+++++++++++++@++O@@O@@+#X..o...o...o. .    ",
  78. X"        .###+O+#+OOO@@@OOO@++++++++++++++++++++@@+OO#oooo.........       ",
  79. X"        o++#+OO+@+@OOO@@@++++++++++++++++++++O@@+###oo........... .      ",
  80. X"        XO+#+OOO+#+OO@@+++++++++++++++++++++@OOO#...o...........         ",
  81. X"        o+++++++++OO+#XXXX#X#XXXXXXXXXXXXXXXX###ooo#XXXXXXXX##X#.        ",
  82. X"        .X+O++##@OOO#......o..........ooo...o.....#O@++++++++@@+o        ",
  83. X"        .X+++####+@O#.o...ooo.o........oo.........o#XX+@+++++@++#oXX     ",
  84. X"        .#######XX+O#oooo..oooooo......ooo.......ooo..#O@+++++@@++@O#    ",
  85. X"        .##X#####X+O#oooo.oooo.o.oo....oo.o.ooo.oo....X#+@+++@+O+++@#X   ",
  86. X"        .#XXX#####+O+ooooooXo...oXo...oo...ooXXoooooo.oo#O@++@@@@+++@O#  ",
  87. X"        .#XX######+O#ooooXoXoo. .. . . . ...oX..o.oo...oX#+@@@O@@++++@o  ",
  88. X"        .XXXX#####+O#ooXXXooXX.            o.oo...ooo..ooo#OO@@@@@++++o  ",
  89. X"        .XXXX##X#X+O+oXXXoXXoo.            . ...ooooooooooX#+@@O@@O@+@+X ",
  90. X"        .XXXX#XXXX+O+XXXoooXXo                 oXXXXXXXXXooo#@@OO@@OO@@O#",
  91. X"         oXXXXX#XX+O+XXXXXXXXXo               . o#XoXXX#XooX#OOOOOOO@OOOX",
  92. X"        .o.XooX##X+O+XXX###X##.                 o#XooX##X#XX+OOOOOOOO@@@o",
  93. X"        .ooXoooXoX#O+X#X#XX#X#.                  .oXX#X##XXX+OOO@+@@@@O@X",
  94. X"         ooooooooo#O+###XX####.                   o########X+OOO+#+@OO@Oo",
  95. X"        .ooooooooo+O@++##X####.                   .#+++#++##+O@++#++++@OX",
  96. X"        .XooooooXX+OOO+#######.                   .#+O+#+O+#+O+#######+OX",
  97. X"        ..XooooXoo+O@++++++#++o                   .#+++++@++@O+#######++o",
  98. X"         XoooooXXo#O+#+OOO+#+OX                   .###+O+#+OOO+o########o",
  99. X"        .ooooXoXoX#O+#+OO+++OOX                 .X++++OO+#++@O+XX######X.",
  100. X"        .XooXXoooX+O+#@O+#@OOOX                 X@OOOOOO+###+O+X######XX.",
  101. X"        ..XoXoXoXo+OO+@O+#+OOOX               .X+OOOOO@O@+++++#XX##X#X#o.",
  102. X"         XoXXooXXo#OOOO@+#+OOOX               XOOOOO@O@@@@OO@##XX##XXXXX.",
  103. X"        o+XoXoXooX#OOOO@@+@OOOX           .Xoo+OOOOO@@@@@@OO+#XoX#XXXX.. ",
  104. X"        XO+ooXooXX+OOOOOOOO@OOX           XOO++O+O+@@@O@@OOO+#XooXXXXX.  ",
  105. X".XooooXX+O+#XoXooo+OO@OOO@@@@+#ooooooooooo+++++O@+@+++++@O@+##XoXoXoXX.  ",
  106. X"XOO++++O@OOO+ooooo#OO@OO@@@@++++++++++++++++++@@++++++++@O+XXXXXoooooX.  ",
  107. X"XOO@+++@@@OO+###Xo#O@@@O@+@+@++++++++++++++++++++++++++@+#XooXooXooo..   ",
  108. X"XOOO@++++O@@OOOO#o#OO@@@@+++++++++++++++++++++++++++++O@#oooooooXXXo.    ",
  109. X"XOOOO+++++++@OOO+#@O@+@++++++++++++++++++++++++++#+##X##Xoooooo.oo.      ",
  110. X"XOOOOOO+++++@@@@OOOO@+++++++++++++++++++++++++++####Xoooo..ooo...o.      ",
  111. X"XOOOOO+XX#X#X########X#X#XXXXXXXXXXXXXXXXXXXXXXXXXoXoooo..oooo.o.        ",
  112. X"XOOOOO#oooooooooo.oooooo..........ooooooo.....ooooo.oooooooo...o.        ",
  113. X"XOOO+#Xoooo..ooo...oooooo...........ooooo.......o....oo.oooo...          ",
  114. X"XOOO#..ooo.....oo....ooo...............o.............o..oo....           ",
  115. X"XO+#oo.........o....o.oo.............................o... . . .          ",
  116. X"XO+oo...................................................                 ",
  117. X" # o   . . . . . . . . . . . . . . . . . . . . . . . . .                 ",
  118. X"                                                                         "};
  119. END_OF_FILE
  120.   if test 5946 -ne `wc -c <'bitmaps/titleB.xpm'`; then
  121.     echo shar: \"'bitmaps/titleB.xpm'\" unpacked with wrong size!
  122.   fi
  123.   # end of 'bitmaps/titleB.xpm'
  124. fi
  125. if test -f 'bitmaps/titleG.xpm' -a "${1}" != "-c" ; then 
  126.   echo shar: Will not clobber existing file \"'bitmaps/titleG.xpm'\"
  127. else
  128.   echo shar: Extracting \"'bitmaps/titleG.xpm'\" \(7056 characters\)
  129.   sed "s/^X//" >'bitmaps/titleG.xpm' <<'END_OF_FILE'
  130. X/* XPM */
  131. Xstatic char * titleG_xpm[] = {
  132. X/* width height ncolors chars_per_pixel */
  133. X"88 74 8 1",
  134. X/* colors */
  135. X"     s None    c None",
  136. X".    c #A06000",
  137. X"X    c #F0D040",
  138. X"o    c #F0C030",
  139. X"O    c #D09E20",
  140. X"+    c #802F00",
  141. X"@    c #903F10",
  142. X"#    c #C07F10",
  143. X/* pixels */
  144. X"                                  .XXXoooOOOOOOOOOOOOOoX.                               ",
  145. X"                                  .XXXooOOOOOOOOOOOOOOoX.                               ",
  146. X"                          +....@@@OOoOoOOOOOOOOOOOOOOOOo#@@@..      +.@@@@@@@@@@        ",
  147. X"                          .XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX#     .XXOOOOOOOOO.       ",
  148. X"                      +@@@OOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX#@@@  .XXoOOOOOOO#        ",
  149. X"                      @OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. .XXXoOOOOO#.+       ",
  150. X"                  +@@@#OOOOOOOOOOOOoOo#...............OOoOOOOOOOOO#@OXXXXOOOO#..        ",
  151. X"                  @OOOOOOOOOOOOOOOoXXX#+++++@++@++@+++#XXXXOOOOOOOOOoXXXXXoO#...+       ",
  152. X"              +.@@#OOOOOOOOoOOOo#..###@@++++++++++++++@###..OOoOOOOOOooXXXO#....        ",
  153. X"              .XOOOOOOOOOXooOOoX#+++++++++++++++++++++++++++#XXXoOOOOOOXXXO......       ",
  154. X"            +@#XoOOOOOOOOXOOO..#@@++++++++++++++++++++++++++@O##..#OOOXXXXO.....        ",
  155. X"            @OOooXOOOOOOOooO.@++@+++++++++++++++++++++++++++@@++@+#XOOOXXXO.....+       ",
  156. X"          +@#oooOOoOOOOOXoO.@++++++++++++++ + + + + +++++@++++++++@#OoooXXO.....+       ",
  157. X"          @OOoooOOOXXoXoXX#@@++++@+++++@++           ++++@@+++++++++#XOOOXO.....        ",
  158. X"        +.#oooooOOooooXXO#@@+++++++++++ + +          + + +++++++++++@#OXXXO.....+       ",
  159. X"        .XooooooOOOoXooo#+@++@+++++++@+                    +@@+++@++@+#XXXO.....        ",
  160. X"      +.OOXooooooOXoooOO@@++@@+++++ +                      + +++@@@+++@#OXO.....+       ",
  161. X"      .ooXoooooooooooX#@@++@@@++++                             @@@@@++@@#XO.....+       ",
  162. X"      .XoooooooooXoXOO.@@+@@@@@++ +                            ++@@@@+@@.#......        ",
  163. X"      .XXooooooooXXX#@@@@@@@@@@@+                               +@@@@@@@@@@.....+       ",
  164. X"    +.OXXXoooooooXO#.@@@@@@@@@+                                  ++@@@@@@@@.....+       ",
  165. X"    .oooXXooXXXooXO@@@@@@@@@@@+                                   +....@@@@.....        ",
  166. X"    .oooXoXoXoXoXX#@@@@@@@@@+                                     +@@@@@@@......+       ",
  167. X"    .oXXXooXoooXXXO....@@@@@+                                      @@@@@........+       ",
  168. X"  +.OooXXXXXXXoXOO#...@@@@@@                                       +@.@..#.@@...+       ",
  169. X"  .XXoXXXXXXXXXXO.....@@...@+                                       +....#@+@...+       ",
  170. X"  .XXoXXXXXXXXXX#@......@.++                                        +.....@+@@@.        ",
  171. X"  .XXXXXXXXXXXXXO@@.......+                                         +..#.+++++@.+       ",
  172. X"  .XXXXXXXXXXXOO.@........+                                          +@.@++++++@+       ",
  173. X"  .XXXXXXXXXXXO...........+                                            +++++++++        ",
  174. X" @OXoOoXXXXXXXO...........+                                            + + + + +        ",
  175. X"+#OXO#OXXXXXXXO##.........+                                                             ",
  176. X"@oOOOOOOOOOOoXO#........++                                                              ",
  177. X".XO#OXO##O##OXO##....##.+                                                               ",
  178. X"@OO#OOO####OXXO#..#.###.+                                                               ",
  179. X"@#########OXXXO#########+                                                               ",
  180. X"+#########OOoXO#########+                                                               ",
  181. X"+###########OXO#########+                                                               ",
  182. X"+##.######.#OXO#OOO#####+                       +.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..",
  183. X"+#...#####..OXO#OXO#####+                       .XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX",
  184. X"+#####..###.OXoOXXoOO#OO@                       .XXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOO",
  185. X"+######..#..OXXXXXXXO#OX.                       .XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO.",
  186. X"+#..##.####.OXXXXXXXoOoXO.                      .XXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOO#.",
  187. X"+....#####..OXXXXXXXXXXXXX#                     .XXXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO...",
  188. X" ++...#.#.#.#OoXXXXXXXXXXX.                     .XXXXXO...........OOooO##.........#O#...",
  189. X"  +........###OXXXXXXXXXXX.                     .XXXXX#+++++++++++#XXXO#@++@++++++@.....",
  190. X"  +........#.#OXXoXXXXoXoX.                     .XXXO#@@++++++@###OOoXO...@@+@+++++@+...",
  191. X"  +...........OXooXXXXXooo.                     .XXX#+++++++++#XXXO#OXO.###O.+++++++....",
  192. X"  +...........OXooXXXXXoooO@                    .XO#@@++++@###OXXXO#OXO..###.@@.@+++++..",
  193. X"  +...........OXoooXXXXXooXX.                   .X#+@+++++#XXXXoXXO#OXO..#######@++++++.",
  194. X"   ++..@@.....#OOXXXXoXooooX.                    #      @#OXXXXoXXOOOXO.########++ + + +",
  195. X"    +.++@@@.....OXXXXooooooX.                           #XXXXXXXXXO#OXO#########@       ",
  196. X"    +...@.......OXoXoooooooXO@                          @.OOoXoOOOO#OXoO##OOO#OO@       ",
  197. X"    +...........OXooooooooooXX#                           @#OXO#####OXXXO#OXO#OX.       ",
  198. X"     ++.+..@...@.#oooOoooooooo#.                          @OoXoOOOO#OXXooOoXoOoX.       ",
  199. X"       @...@@.@@@@#XoOOooooooXoX.                         .XXXXXXXO#OXoooooXXXXX.       ",
  200. X"      +@@.@@@.@@@@.#OooooooOOOoXO.                      @.OXXXXXXXoOXXXoooooXXXX.       ",
  201. X"       @...@@@@@@@@@#XXoooOOOOOooX.                     .XXXXoXXooXXXXooooooXXoo.       ",
  202. X"      + @@@@@@@@@@@@.#OXoOoOOooooX#.@@                  .XXoXooXooXXXXoooooooXoo.       ",
  203. X"        +@@@@@@@@@@@@@#XoOOOooooooXXOO.                 .oooooooXooooXXooooooooo.       ",
  204. X"         +++@@@@@@@@@@.#OoOOOooOOOOOoO#@@@           +@@#OOoOOooooooO###OOoooooo.       ",
  205. X"           ++@@@@@@@@@@+#XoOOoOOOOOOOOOOOO.         +#OOOOOOOOOXOooo#++@.#Oooooo.       ",
  206. X"           ++@@@@@@@@+++.##.OXoOOOOOOOOOOO#@@@@@@@@@##OOOOOOOOOoXoO#@@@@@.##OOoo.       ",
  207. X"            ++@@@@@@@+++@@++#XoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX#+@@@@@+@..#OX.       ",
  208. X"             +++++++++++@+++.#OoOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoO#@@++@+++@@..#O@       ",
  209. X"               +++++++@@++++@@#XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOoX#@@++++++++@++@.+       ",
  210. X"               + ++++++@+++@+@@####.#oOXOOOOOOOOOOOOOOOoOoO....#.+++++++++++@+++        ",
  211. X"                  ++++++++@@++@+@@++#XXXOOOOOOOOOOOOOOoXXX#@@++++++++++++++++@          ",
  212. X"                   + +++++++@++++@++@O###..............###@@+++++++++++++++ ++          ",
  213. X"                       +++++++++++++++++++++++++++++++++++@+++++++++++++++              ",
  214. X"                       + + ++++++++++++++++++++++++++++++++++++++++ + + + +             ",
  215. X"                             @++++++++++++++++++++++++++++++++++++                      ",
  216. X"                             + + + ++++++++++++++++++++++++  +  + +                     ",
  217. X"                                     +++++++++++++++++++++                              "};
  218. END_OF_FILE
  219.   if test 7056 -ne `wc -c <'bitmaps/titleG.xpm'`; then
  220.     echo shar: \"'bitmaps/titleG.xpm'\" unpacked with wrong size!
  221.   fi
  222.   # end of 'bitmaps/titleG.xpm'
  223. fi
  224. if test -f 'bitmaps/titleSmall.xpm' -a "${1}" != "-c" ; then 
  225.   echo shar: Will not clobber existing file \"'bitmaps/titleSmall.xpm'\"
  226. else
  227.   echo shar: Extracting \"'bitmaps/titleSmall.xpm'\" \(9170 characters\)
  228.   sed "s/^X//" >'bitmaps/titleSmall.xpm' <<'END_OF_FILE'
  229. X/* XPM */
  230. Xstatic char * titleSmall_xpm[] = {
  231. X/* width height ncolors chars_per_pixel */
  232. X"237 37 8 1",
  233. X/* colors */
  234. X"     s None    c None",
  235. X".    c #D09E20",
  236. X"X    c #F0D040",
  237. X"o    c #F0C030",
  238. X"O    c #A06000",
  239. X"+    c #802F00",
  240. X"@    c #903F10",
  241. X"#    c #C07F10",
  242. X/* pixels */
  243. X"                                                                                                .XXXXXXX.                                                                                                         ..oXXXXXXX.                ",
  244. X".XXXXXXXXXXXXXXXXXX..XXXXXXXXXXXXXX      .XXXXXXXXXXXXXXXXXXXXXXX...                        .XXXXXXXXXXXXXXX.               .XXXXXXXXXXXXXXXXXXX    .XXXXXXXXXXXXX             .XXXXXXXXXXXXXX                ..XXXXXXXXXXXXXXX.   .XXXXX    ",
  245. X"..XXXXXXXXXXXXXXXX.O..XXXXXXXXXXXXO      ..XXoXXXXXXXXXXXXXXXXXXXXXoXX                    XXXXXXXXXXXXXXXXXXXXX             ..XXXXXXXXXXXXXXXXXO    ..XXXXXXXXXX...            ..XXXXXXXXXXXXO              XXXXXXXXXXXXXXXXXXXXXX ..XXXO    ",
  246. X"...XXXXXXXXXXXXXX.OO...XXXXXXXXXXOO      ...oXXXXoXooXXXoXoXXXXoXXXoXooo                XXXXXXXX..+++++..XoXXXXXX           ...XXXXXXXXXXXXXXXOO    ...XXXXXX.......           ...XXXXXXXXXXOO            XXXXXXXX..++++++++..XXXXX...XOO    ",
  247. X"...++++++.+++++++OOO...+++++++++OOO      ...+++++..+++++++++++++..XXoooXo             .XXXoXXX.+++++++++++.oXXXXXX.         ...++++++..O+++++OOO    ...+++++.........          ...++++O.+++OOO          oXXXXooX.++++++++++++++..XXX..OOO    ",
  248. X"..++++..oo@@++++++OO..++++@.o.+++OO      ..+++...o.@@+++@+++@+@++@+.Xoo..o           XooooooO+++++++++++++++OXoXooXo        ..++++...o.@OO++++OO    ..++++...+........         ..+++@O@o.O++OO         XooXXXoX++++++++++++++++@++oX..OOO    ",
  249. X".+++..ooo..OOO@++++O.+++@O@oo...++O      .++...ooo.@O@O+O@+++@O+O@+@..o....         XoooooXO+++++++   ++++++@OoXXoooX       .+++...ooo.@@@OO+++O    .+++...o.++........        .+++OO@@oo.O++O        XooXooo.@++@++@+     ++@+++++.X.OOO    ",
  250. X"    .oo.o...OO@@O@    @O@Ooo...              .ooo..O@OO@     OOOOO@@@...o..#       oooooooO@+++++       ++@++@OoXooooX           ooooo.@@@@O             .oo.+++........            @@@oo.           ooooXoo.++@+++@          +@+@++..OOO    ",
  251. X"     ...o..oO##O#O   OO@@.oo..               oo....O##OO       @#OOOO@.#.###       ooooooO@@@@@@         @@@@++Ooooooo           ooooo.@@O@@             ooo.@+++........           @OOooo          ooooooo.@+@@++              @@@+@.OOO    ",
  252. X"     #..##...#O###O OOOO..##.                o...o.O####        O##O#O..OO..      ooooooo@@@@@@           @@@@@+...o.oo          o.oo..@@O@O             o...O++++........          O@Oooo          .oooo..@@@@@@                @@@@@OOO    ",
  253. X"      #.####..#####.OO#..#..                 .o....###O#         #####.###O#      ooooo.@@@@@@             O@O@@@oo.o.o          .oooo.O@@OO             o...O+@@++.....#..         @O@oo.         oo.o.o.@@@@@@                  OO@@OOO    ",
  254. X"       ###.###....#.#..#O##                  ..ooo...##.         ###.#.@O@#O     oooo.o.@@@@@O             O@O@@@....o.o         o.....OO@OO             ....O+@@+@+.#...#.#        OOO.o.         o.o.o..OO@@@                   @@@OOOO    ",
  255. X"        O#O##O#..#O.#.OO#O                   ooo....##..        ...o#..OOO@O     ..ooo.@OOOO@               @@O@@O...o.o         ......OOOOO             ..o.O@++++++...#....       OOOo..        .o.....OOO@O@                    OO#+OO    ",
  256. X"        OO##OOO...O#.OO@O                    ..ooo..o.#.       #o.o...@@O@@@     ......O@OO@O               O@@OO@......         ......OOOOO             ....OO@+++@@@#.#.....      O##o..        .......@OOOO                     O#+++O    ",
  257. X"         O@@OO#OooO#OO@O                     .......o..o     #Xo.Xo.o+++@@+     ...#...OOOOOO               OOOO#O.......        .#..#.O#O#O             ....OO+++@+@@@...#.##.     O##...        ......OOOOOO                      +++++    ",
  258. X"          OO@@O@Oo..O@@                      #.#...oo...XXoXXXooooXo+@+@+@+     #.##.#O#OO#O                 #OOOOO###...        ...#..O#OO#             .#..OO @@@@@@@+#..#.##.    ###...       #.#....#OOOOO                               ",
  259. X"          @OOO@@O..@@@o                      ##.#..o..XXXXXXXXXXoo.@@+++++      #.###.O#OOO#                 #OO##O.##.#.        ###...#O###             #...OO  @@@@@@@@.####.#.   ###.#.       .#.###.#OO#O                                ",
  260. X"           O@@@@@..ooooo                     .#..#..XXXXXXXXXXX..++++++++       ##########O#                 #######.##..        ####..##OO#             ##..##   @@@@@O@@##..#.##  ##.##.       #####..#####                                ",
  261. X"            @ooo.+@oooooo                    O.##..+++@+++++@+++++.XXXXoX       ######.##.##                 ############        .####.#####             ###.##    @@@@OO@@.###.### #..##.       ######.#####                                ",
  262. X"            .ooo@+O...ooo.                   ####O.@@+@@@+++@@+++@++.XXXoX.     ######.#.###                 #.###.#####O        #####.###.#             ###.#.     O@@O@@@@##.#.###.#.###       #O###O.#.###            .XXXXXXXXXXXXXXXXXX.",
  263. X"           ..oo@O+O@..o..o                   #O###.@@@O++O++@+@O@@@+@.XooXX.    ##OO###.....                 ##.#.####O##        #O#O#.####.             OOO.#.      @OO@@O@O#.#...#...###       ###O#O....#.            ..XXXXXXXXXXXXXXXX.O",
  264. X"          ..oo@@@O@O@..#...                  OO###.@OO@O      +@++@+@@.oooXX    O#O#OO.....#                 ...##.####OO        ###OO..#.#.             OOO..#       O@OOO@OO###.##o..###       OO###O.......           ...XXXXXXXXXXXXXX.OO",
  265. X"         .#...O@@#OOO@#.#.##                 OO#OO.OO@O@        @OOOO@@o.o.o.   ###O##.......               .#.....OOO#OO        #OOO#......             #OO.##        @OOO@@OO#####...O##        OOOO##......           ...++++++..#+++++OOO",
  266. X"        ##...OO#+OOOO#.#...#.                @O@#O.OO#O#         #@O#OO....oo    OO##O.o..o..               .......OOOOO         OOOOO...#..             OOO...         OOOOOOOO#####o.##O        OOOOOO.o..oo           ..+++++..#.O##++++OO",
  267. X"       ####.#O#O #O#O#O#.###.#               @@@@@.##O##          ####O..#o.o    OOO@OOo..oo.               o.....@OOOOO         OOOOO......             OOO...          OOOOOOOO####ooO#O        OOOOOO.o...oo          .++++..o.#.O####+++O",
  268. X"      O##O#O##O   .###.######O#              O@@@O..####          #.#.#.####.    O@OOO@..o.o.o             oooo.o.OOOOO@         @@OOO....oo             @@@.o.           OOOOO#OO###oo##O         O@@OOO..ooo.              .....#.#####    ",
  269. X"     ##OO#.###    ##.###.O###OO              @@@O@.#..#.          ##.#..O####     @@@O@Oooooo.             ooooo.@@@@@O          OOOO@..o.o.             @@O...            #O#OOOOO###oOOO         OOOOOO.oooooo              #.###.o#.#.    ",
  270. X"    ##OOO####      ##.###OO@O#OO             O@O@O.#.#..         o...##.O###O     @OOO@@#oooooo           oooooo#O@@OO@          @@@@O..oo.o             OOO..o             O##O###O##oOOO          @O@O@@.Xooooo             ....#.oo...    ",
  271. X"   OO@OO..##        o..o.o@@OOOO@            @O@O@..o#..        ...ooo.#O#OOO      O@@@@@.oXXoXo         .ooooo.@@@@@@           @@@@@.o.ooo             @@@.oo              #####O###.@OO          @O@@@@@.ooXXoo           ..o.o..ooo.o    ",
  272. X"  .O@OO.#.#          ..ooo.OO@@O@.           .@O@O....o.      .Xooooo..#@OOO       @@@@@@@.oooXXo       .oooXo.@@@@@@+           @@@@@.oooo.             .@@.oo               ##O##O#O.OOO           @@@@@@@.XXooooX         oooooo.ooooo    ",
  273. X"X...@@.....XX     .XXXX...o.@@@....XX.   .XXo..@@@.o.ooXXXXXXXXXoXXXX.OOO@@O        @@@+@@+.XXXooXX   .XXXXXX.@@@+@@@       .XXXX..@@@.ooo..XXXX     .XX...@.o..XXXo           ########O@@            +@@@@@+.XoXXXXXX     #XXXXooo+@#ooo    ",
  274. X"XXX..@...XXXO     ..XXXXX..o@@..XXXX.O   ..XXoo..@.ooXXXXXXXXXXXXXXX.@@@@O@          @@@@@@@.XXXXXXXXXXXXXXX.+++++++        ..XXXXX..@.o..XXXXXO     ..XXX.....XXX.O            #######O@@             @@@@++@+.XXXXXXXXXXXXXXXXX.+@@+O#.    ",
  275. X".XXXX..XXXXOO     ...XXXXXX...XXXXX.OO   ...XXXoo..XXXXXXXXXXXXXX##@@+@@+@            @+++@+++.XXXXXXXXXXX.@+@@++++         ...XXXXXX..XXXXXXXOO     ...XXX...XXX.OO             #####.@@@              ++++@++@..XXXXXXXXXXXXXX.@++++@+O    ",
  276. X".+++++++++OOO     ...++++++++++++++OOO   ...@@@@@+@@@+++++@@@+++@@+@@@@+@              @++++++@@..XXXXX..+++++++@+          ...++++++++++++++OOO     ...+++++++++OOO              ####.@@@                @+++@++@+..XXXXXXX..@++++++++@     ",
  277. X"+++++++++++OO     ..++++++++++++++++OO   ..+@@++@++@@+++++++@++++++@+@++                 +++++++++++++++++++++++            ..++++++++++++++++OO     ..+++++++++++OO               ##..O@@                  ++++++++++++++++++++++++++       ",
  278. X"++++++++++++O     .++++++++++++++++++O   .@++++++++++++++++++++++++++                       +++++++++++++++++               .++++++++++++++++++O     .+++++++++++++O                #.++O@                     +++++++++++++++++++           ",
  279. X"                                                                                                +++++++++                                                                            ++++O                         +++++++++++               "};
  280. END_OF_FILE
  281.   if test 9170 -ne `wc -c <'bitmaps/titleSmall.xpm'`; then
  282.     echo shar: \"'bitmaps/titleSmall.xpm'\" unpacked with wrong size!
  283.   fi
  284.   # end of 'bitmaps/titleSmall.xpm'
  285. fi
  286. if test -f 'keys.c' -a "${1}" != "-c" ; then 
  287.   echo shar: Will not clobber existing file \"'keys.c'\"
  288. else
  289.   echo shar: Extracting \"'keys.c'\" \(8567 characters\)
  290.   sed "s/^X//" >'keys.c' <<'END_OF_FILE'
  291. X#include "copyright.h"
  292. X
  293. X/*
  294. X *  Include file dependencies:
  295. X */
  296. X
  297. X#include <stdio.h>
  298. X#include <stdlib.h>
  299. X#include <stddef.h>
  300. X#include <X11/Xlib.h>
  301. X#include <X11/Xutil.h>
  302. X#include <X11/Xos.h>
  303. X#include <xpm.h>
  304. X
  305. X#include "bitmaps/mouse.xpm"
  306. X#include "bitmaps/leftarrow.xpm"
  307. X#include "bitmaps/rightarrow.xpm"
  308. X
  309. X#include "error.h"
  310. X#include "highscore.h"
  311. X#include "special.h"
  312. X#include "misc.h"
  313. X#include "main.h"
  314. X#include "init.h"
  315. X#include "stage.h"
  316. X#include "blocks.h"
  317. X#include "ball.h"
  318. X#include "score.h"
  319. X#include "paddle.h"
  320. X#include "level.h"
  321. X#include "mess.h"
  322. X#include "version.h"
  323. X#include "audio.h"
  324. X#include "intro.h"
  325. X
  326. X#include "keys.h"
  327. X
  328. X/*
  329. X *  Internal macro definitions:
  330. X */
  331. X
  332. X#define GAP 12
  333. X
  334. X/*
  335. X *  Internal type declarations:
  336. X */
  337. X
  338. X#if NeedFunctionPrototypes
  339. Xstatic void DoKeysWait(void);
  340. X#else
  341. Xstatic void DoKeysWait();
  342. X#endif
  343. X
  344. X
  345. X/*
  346. X *  Internal variable declarations:
  347. X */
  348. X
  349. Xstatic int endFrame = 0;
  350. Xstatic int startFrame = 0;
  351. Xenum KeysStates KeysState;
  352. Xstatic int waitingFrame, waitMode;
  353. Xstatic Pixmap mouse, leftarrow, rightarrow;
  354. Xstatic Pixmap mouseM, leftarrowM, rightarrowM;
  355. X
  356. X#if NeedFunctionPrototypes
  357. Xvoid SetUpKeys(Display *display, Window window, Colormap colormap)
  358. X#else
  359. Xvoid SetUpKeys(display, window, colormap)
  360. X    Display *display;
  361. X    Window window;
  362. X    Colormap colormap;
  363. X#endif
  364. X{
  365. X    XpmAttributes   attributes;
  366. X    int             XpmErrorStatus;
  367. X
  368. X    attributes.valuemask = XpmColormap;
  369. X    attributes.colormap = colormap;
  370. X
  371. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, mouse_xpm,
  372. X        &mouse, &mouseM, &attributes);
  373. X    HandleXPMError(display, XpmErrorStatus, "InitialiseKeys(mouse)");
  374. X
  375. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, leftarrow_xpm,
  376. X        &leftarrow, &leftarrowM, &attributes);
  377. X    HandleXPMError(display, XpmErrorStatus, "InitialiseKeys(leftarrow)");
  378. X
  379. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, rightarrow_xpm,
  380. X        &rightarrow, &rightarrowM, &attributes);
  381. X    HandleXPMError(display, XpmErrorStatus, "InitialiseKeys(rightarrow)");
  382. X
  383. X    /* Free the xpm pixmap attributes */
  384. X    XpmFreeAttributes(&attributes);
  385. X
  386. X    ResetKeys();
  387. X}
  388. X
  389. X#if NeedFunctionPrototypes
  390. Xstatic void DoText(Display *display, Window window)
  391. X#else
  392. Xstatic void DoText(display, window)
  393. X    Display *display;
  394. X    Window window;
  395. X#endif
  396. X{
  397. X    char string[80];
  398. X    int y;
  399. X    int x;
  400. X
  401. X    DrawShadowCentredText(display, window, titleFont, 
  402. X        "- Game Controls -", 140, red, PLAY_WIDTH);
  403. X
  404. X    SetCurrentMessage(display, messWindow, "Don`t use drugs!", False);
  405. X
  406. X    y = 190;
  407. X
  408. X    DrawLine(display, window, 32, y+2, PLAY_WIDTH - 28, y+2, black, 3);
  409. X    DrawLine(display, window, 30, y, PLAY_WIDTH - 30, y, white, 3);
  410. X    y += textFont->ascent + GAP/2;
  411. X
  412. X    x = (PLAY_WIDTH / 2) - 17 - 10 - 35;
  413. X    RenderShape(display, window, leftarrow, leftarrowM,
  414. X        x, y + 28, 35, 19, True);
  415. X
  416. X    DrawShadowText(display, window, textFont, "Paddle left", 
  417. X        x - 40 - 60, y + 28, green);
  418. X
  419. X    x = (PLAY_WIDTH / 2) - 17;
  420. X    RenderShape(display, window, mouse, mouseM,
  421. X        x, y, 35, 57, True);
  422. X
  423. X    x = (PLAY_WIDTH / 2) + 17 + 10;
  424. X    RenderShape(display, window, rightarrow, rightarrowM,
  425. X        x, y + 28, 35, 19, True);
  426. X
  427. X    DrawShadowText(display, window, textFont, "Paddle right", 
  428. X        x + 40, y + 28, green);
  429. X
  430. X    y = 290;
  431. X    x = 30;
  432. X
  433. X    strcpy(string, "<s> = Sfx On/Off");
  434. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  435. X    y += textFont->ascent + GAP;
  436. X
  437. X    strcpy(string, "<P> = Pause/Resume");
  438. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  439. X    y += textFont->ascent + GAP;
  440. X
  441. X    strcpy(string, "<I> = Iconify Quickly");
  442. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  443. X    y += textFont->ascent + GAP;
  444. X
  445. X    strcpy(string, "<h> = Roll of Honour");
  446. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  447. X    y += textFont->ascent + GAP;
  448. X
  449. X    strcpy(string, "<H> = Personal scores");
  450. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  451. X    y += textFont->ascent + GAP;
  452. X
  453. X    strcpy(string, "<d> = Kill Ball");
  454. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  455. X    y += textFont->ascent + GAP;
  456. X
  457. X    strcpy(string, "<q> = Quit XBoing");
  458. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  459. X    y += textFont->ascent + GAP;
  460. X
  461. X    y = 290;
  462. X    x = 280;
  463. X
  464. X    strcpy(string, "<j> = Paddle left");
  465. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  466. X    y += textFont->ascent + GAP;
  467. X
  468. X    strcpy(string, "<k> = Shoot");
  469. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  470. X    y += textFont->ascent + GAP;
  471. X
  472. X    strcpy(string, "<l> = Paddle right");
  473. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  474. X    y += textFont->ascent + GAP;
  475. X
  476. X    strcpy(string, "<a> = Audio On/Off");
  477. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  478. X    y += textFont->ascent + GAP;
  479. X
  480. X    strcpy(string, "<c> = Cycle intros");
  481. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  482. X    y += textFont->ascent + GAP;
  483. X
  484. X    strcpy(string, "<g> = Toggle control");
  485. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  486. X    y += textFont->ascent + GAP;
  487. X
  488. X    strcpy(string, "<1-9> = Game speed");
  489. X    DrawShadowText(display, window, textFont, string, x, y, yellow);
  490. X    y += textFont->ascent + GAP * 2;
  491. X
  492. X    if (GetPaddleControlMode() == CONTROL_KEYS)
  493. X        strcpy(string, "Game control: Keyboard");
  494. X    else
  495. X        strcpy(string, "Game control: Mouse");
  496. X    DrawShadowCentredText(display, window, textFont, 
  497. X        string, y, green, PLAY_WIDTH);
  498. X
  499. X    y += textFont->ascent + GAP;
  500. X
  501. X    DrawLine(display, window, 32, y+2, PLAY_WIDTH - 28, y+2, black, 3);
  502. X    DrawLine(display, window, 30, y, PLAY_WIDTH - 30, y, white, 3);
  503. X
  504. X    strcpy(string, "Press <Space> to start game");
  505. X    DrawShadowCentredText(display, window, textFont, string, 
  506. X        PLAY_HEIGHT - 40, tann, PLAY_WIDTH);
  507. X}
  508. X
  509. X#if NeedFunctionPrototypes
  510. Xstatic void DoSparkle(Display *display, Window window)
  511. X#else
  512. Xstatic void DoSparkle(display, window)
  513. X    Display *display;
  514. X    Window window;
  515. X#endif
  516. X{
  517. X    static Pixmap store;
  518. X    static int x = 100;
  519. X    static int y = 20;
  520. X    static int in = 0;
  521. X
  522. X    if (frame >= endFrame)
  523. X        KeysState = KEYS_FINISH;
  524. X
  525. X    if (!store)
  526. X    {
  527. X        store = XCreatePixmap(display, window, 20, 20,
  528. X            DefaultDepth(display, XDefaultScreen(display)));
  529. X    }
  530. X
  531. X    if (in == 0) 
  532. X        XCopyArea(display, window, store, gc, x, y, 20, 20, 0, 0);
  533. X
  534. X    if (frame == startFrame)
  535. X    {
  536. X        RenderShape(display, window, stars[in], starsM[in],
  537. X            x, y, 20, 20, False);
  538. X
  539. X         in++;
  540. X        startFrame = frame + 15;
  541. X
  542. X        if (in == 11) 
  543. X        {
  544. X            XCopyArea(display, store, window, gc, 0, 0, 20, 20, x, y);
  545. X            in = 0;
  546. X            startFrame = frame + 500;
  547. X            x = (rand() % 474) + 5;
  548. X            y = (rand() % 74) + 5;
  549. X        }    
  550. X    }
  551. X}
  552. X
  553. X#if NeedFunctionPrototypes
  554. Xstatic void DoFinish(Display *display, Window window)
  555. X#else
  556. Xstatic void DoFinish(display, window)
  557. X    Display *display;
  558. X    Window window;
  559. X#endif
  560. X{
  561. X    static int toggle = GLOBAL;
  562. X
  563. X    ResetHighScore(toggle);
  564. X    mode = MODE_HIGHSCORE;
  565. X
  566. X    /* Switch between the global highscores and personal version */
  567. X    if (toggle == GLOBAL)
  568. X        toggle = PERSONAL;
  569. X    else
  570. X        toggle = GLOBAL;
  571. X
  572. X    if (noSound == False)
  573. X        playSoundFile("weeek", 100);
  574. X}
  575. X
  576. X
  577. X#if NeedFunctionPrototypes
  578. Xvoid Keys(Display *display, Window window)
  579. X#else
  580. Xvoid Keys(display, window)
  581. X    Display *display;
  582. X    Window window;
  583. X#endif
  584. X{
  585. X    switch (KeysState)
  586. X    {
  587. X        case KEYS_TITLE:
  588. X            DoIntroTitle(display, window);
  589. X            KeysState = KEYS_TEXT;
  590. X            break;
  591. X
  592. X        case KEYS_TEXT:
  593. X            DoText(display, window);
  594. X            KeysState = KEYS_SPARKLE;
  595. X            break;
  596. X
  597. X        case KEYS_SPARKLE:
  598. X            DoSparkle(display, window);
  599. X            if ((frame % FLASH) == 0)
  600. X                RandomDrawSpecials(display);
  601. X            break;
  602. X
  603. X        case KEYS_FINISH:
  604. X            DoFinish(display, window);
  605. X            break;
  606. X
  607. X        case KEYS_WAIT:
  608. X            DoKeysWait();
  609. X            break;
  610. X
  611. X        default:
  612. X            break;
  613. X    }
  614. X}
  615. X
  616. X#if NeedFunctionPrototypes
  617. Xvoid RedrawKeys(Display *display, Window window)
  618. X#else
  619. Xvoid RedrawKeys(display, window)
  620. X    Display *display;
  621. X    Window window;
  622. X#endif
  623. X{
  624. X    DoIntroTitle(display, window);
  625. X    DoText(display, window);
  626. X}
  627. X
  628. X#if NeedFunctionPrototypes
  629. Xvoid FreeKeyControl(Display *display)
  630. X#else
  631. Xvoid FreeKeyControl(display)
  632. X    Display *display;
  633. X#endif
  634. X{
  635. X    if (mouse)             XFreePixmap(display, mouse);
  636. X    if (mouseM)         XFreePixmap(display, mouseM);
  637. X    if (leftarrow)        XFreePixmap(display, leftarrow);
  638. X    if (leftarrowM)        XFreePixmap(display, leftarrowM);
  639. X    if (rightarrow)        XFreePixmap(display, rightarrow);
  640. X    if (rightarrowM)       XFreePixmap(display, rightarrowM);
  641. X}
  642. X
  643. X#if NeedFunctionPrototypes
  644. Xvoid ResetKeys(void)
  645. X#else
  646. Xvoid ResetKeys()
  647. X#endif
  648. X{
  649. X    KeysState = KEYS_TITLE;
  650. X    startFrame     = frame + 100;
  651. X    endFrame     = frame + 4000;
  652. X}
  653. X
  654. X#if NeedFunctionPrototypes
  655. Xstatic void DoKeysWait(void)
  656. X#else
  657. Xstatic void DoKeysWait()
  658. X#endif
  659. X{
  660. X    if (frame == waitingFrame)
  661. X        KeysState = waitMode;
  662. X}
  663. END_OF_FILE
  664.   if test 8567 -ne `wc -c <'keys.c'`; then
  665.     echo shar: \"'keys.c'\" unpacked with wrong size!
  666.   fi
  667.   # end of 'keys.c'
  668. fi
  669. if test -f 'paddle.c' -a "${1}" != "-c" ; then 
  670.   echo shar: Will not clobber existing file \"'paddle.c'\"
  671. else
  672.   echo shar: Extracting \"'paddle.c'\" \(8732 characters\)
  673.   sed "s/^X//" >'paddle.c' <<'END_OF_FILE'
  674. X#include "copyright.h"
  675. X
  676. X/*
  677. X *  Include file dependencies:
  678. X */
  679. X
  680. X#include <stdio.h>
  681. X#include <xpm.h>
  682. X
  683. X#include "bitmaps/paddlesmall.xpm"
  684. X#include "bitmaps/paddlemedium.xpm"
  685. X#include "bitmaps/paddlehuge.xpm"
  686. X
  687. X#include "error.h"
  688. X#include "init.h"
  689. X#include "stage.h"
  690. X#include "blocks.h"
  691. X#include "misc.h"
  692. X#include "special.h"
  693. X
  694. X#include "paddle.h"
  695. X
  696. X/*
  697. X *  Internal macro definitions:
  698. X */
  699. X
  700. X/*
  701. X *  Internal type declarations:
  702. X */
  703. X
  704. X/*
  705. X *  Internal variable declarations:
  706. X */
  707. X
  708. Xstatic Pixmap paddleSmallPixmap, paddleMediumPixmap, paddleHugePixmap;
  709. Xstatic Pixmap paddleSmallMask, paddleMediumMask, paddleHugeMask;
  710. Xstatic Pixmap backingStorePaddle = (Pixmap) NULL;
  711. X
  712. Xint    paddlePos;
  713. Xint    currentPaddleSize;
  714. Xstatic int    oldX;
  715. Xint reverseOn, stickyOn;
  716. X
  717. X#if NeedFunctionPrototypes
  718. Xvoid DrawPaddle(Display *display, Window window, int x, int y, int size)
  719. X#else
  720. Xvoid DrawPaddle(display, window, x, y, size)
  721. X    Display *display;
  722. X    Window window;
  723. X    int x;
  724. X    int y;
  725. X    int size;
  726. X#endif
  727. X{
  728. X    /* Switch on the paddle size */
  729. X    switch (size)
  730. X    {
  731. X        case PADDLE_SMALL:
  732. X            RenderShape(display, window, paddleSmallPixmap, paddleSmallMask,
  733. X                x - 20, y, 40, 15, True);
  734. X            break;
  735. X
  736. X        case PADDLE_MEDIUM:
  737. X            RenderShape(display, window, paddleMediumPixmap, paddleMediumMask,
  738. X                x - 25, y, 50, 15, True);
  739. X            break;
  740. X
  741. X        case PADDLE_HUGE:
  742. X            RenderShape(display, window, paddleHugePixmap, paddleHugeMask,
  743. X                x - 35, y, 70, 15, True);
  744. X            break;
  745. X    }
  746. X}
  747. X
  748. X#if NeedFunctionPrototypes
  749. Xvoid InitialisePaddle(Display *display, Window window, Colormap colormap)
  750. X#else
  751. Xvoid InitialisePaddle(display, window, colormap)
  752. X    Display *display;
  753. X    Window window;
  754. X    Colormap colormap;
  755. X#endif
  756. X{
  757. X    XpmAttributes   attributes;
  758. X    int            XpmErrorStatus;
  759. X
  760. X    attributes.valuemask = XpmColormap;
  761. X    attributes.colormap = colormap;
  762. X
  763. X    /* Create the xpm pixmap paddles */
  764. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, paddlesmall_xpm,
  765. X        &paddleSmallPixmap, &paddleSmallMask, &attributes);
  766. X    HandleXPMError(display, XpmErrorStatus, "InitialisePaddle()");
  767. X
  768. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, paddlemedium_xpm,
  769. X        &paddleMediumPixmap, &paddleMediumMask, &attributes);
  770. X    HandleXPMError(display, XpmErrorStatus, "InitialisePaddle()");
  771. X
  772. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, paddlehuge_xpm,
  773. X        &paddleHugePixmap, &paddleHugeMask, &attributes);
  774. X    HandleXPMError(display, XpmErrorStatus, "InitialisePaddle()");
  775. X
  776. X    /* Free the xpm pixmap attributes */
  777. X    XpmFreeAttributes(&attributes);
  778. X}
  779. X
  780. X#if NeedFunctionPrototypes
  781. Xvoid SetReverseOff(void)
  782. X#else
  783. Xvoid SetReverseOff()
  784. X#endif
  785. X{
  786. X    /* Set the reverse state off */
  787. X    reverseOn = False;
  788. X}
  789. X
  790. X#if NeedFunctionPrototypes
  791. Xvoid ToggleReverse(Display *display)
  792. X#else
  793. Xvoid ToggleReverse(display)
  794. X    Display *display;
  795. X#endif
  796. X{
  797. X    /* Set the reverse state */
  798. X    if (reverseOn == True)
  799. X        reverseOn = False;
  800. X    else
  801. X        reverseOn = True;
  802. X
  803. X    DrawSpecials(display);
  804. X}
  805. X
  806. X#if NeedFunctionPrototypes
  807. Xvoid FreePaddle(Display *display)
  808. X#else
  809. Xvoid FreePaddle(display)
  810. X    Display *display;
  811. X#endif
  812. X{
  813. X     if (paddleSmallPixmap)        XFreePixmap(display, paddleSmallPixmap);
  814. X     if (paddleMediumPixmap)    XFreePixmap(display, paddleMediumPixmap);
  815. X     if (paddleHugePixmap)        XFreePixmap(display, paddleHugePixmap);
  816. X
  817. X     if (paddleSmallMask)        XFreePixmap(display, paddleSmallMask);
  818. X     if (paddleMediumMask)        XFreePixmap(display, paddleMediumMask);
  819. X     if (paddleHugeMask)        XFreePixmap(display, paddleHugeMask);
  820. X}
  821. X
  822. X#if NeedFunctionPrototypes
  823. Xvoid MovePaddle(Display *display, Window window, int direction, int size, 
  824. X    int xpos)
  825. X#else
  826. Xvoid MovePaddle(display, window, direction, size, xpos)
  827. X    Display *display;
  828. X    Window window;
  829. X    int direction;
  830. X    int size;
  831. X    int xpos;
  832. X#endif
  833. X{
  834. X    static int    y = (PLAY_HEIGHT - DIST_BASE);
  835. X
  836. X    if (reverseOn == True)
  837. X    {
  838. X        /* Handle the special reverse block for keys */
  839. X        if (direction == PADDLE_LEFT)
  840. X            direction = PADDLE_RIGHT;
  841. X        else if (direction == PADDLE_RIGHT)
  842. X            direction = PADDLE_LEFT;
  843. X
  844. X        /* Handle reverse for the mouse control */
  845. X        if (direction == PADDLE_NONE)
  846. X            xpos = PLAY_WIDTH - xpos;
  847. X    }
  848. X
  849. X    switch (direction)
  850. X    {
  851. X        case PADDLE_LEFT:
  852. X            paddlePos -= PADDLE_VEL;
  853. X            break;
  854. X
  855. X        case PADDLE_RIGHT:
  856. X            paddlePos += PADDLE_VEL;
  857. X            break;
  858. X
  859. X        case PADDLE_NONE:
  860. X            break;
  861. X    }
  862. X
  863. X    switch (size)
  864. X    {
  865. X        case PADDLE_SMALL:
  866. X            if (xpos > 0)
  867. X                paddlePos = xpos - (MAIN_WIDTH / 2) + 20;
  868. X
  869. X            if (paddlePos < 20) paddlePos = 20;
  870. X            if (paddlePos > (PLAY_WIDTH - 20)) 
  871. X                paddlePos = (PLAY_WIDTH - 20);
  872. X
  873. X            if (backingStorePaddle != (Pixmap) NULL)
  874. X                XCopyArea(display, backingStorePaddle, window,
  875. X                    gc, 0, 0, 40, 15, oldX, y);
  876. X            else
  877. X                backingStorePaddle = XCreatePixmap(display, window,
  878. X                    40, 15, DefaultDepth(display, XDefaultScreen(display)));
  879. X
  880. X            oldX = paddlePos - 20; 
  881. X
  882. X            if (backingStorePaddle != (Pixmap) NULL)
  883. X            {
  884. X                /* Clear the debris under the paddle first */
  885. X                XClearArea(display, window, 
  886. X                    paddlePos - 20, y, 40, 15, False);
  887. X                XCopyArea(display, window, backingStorePaddle, gc,
  888. X                    paddlePos - 20, y, 40, 15, 0, 0);
  889. X            }
  890. X
  891. X            DrawPaddle(display, window, paddlePos, PLAY_HEIGHT - DIST_BASE, 
  892. X                PADDLE_SMALL);
  893. X            break;
  894. X
  895. X        case PADDLE_MEDIUM:
  896. X            if (xpos > 0)
  897. X                paddlePos = xpos - (MAIN_WIDTH / 2) + 25;
  898. X
  899. X            if (paddlePos < 25) paddlePos = 25;
  900. X            if (paddlePos > (PLAY_WIDTH - 25)) 
  901. X                paddlePos = (PLAY_WIDTH - 25);
  902. X
  903. X            if (backingStorePaddle != (Pixmap) NULL)
  904. X                XCopyArea(display, backingStorePaddle, window,
  905. X                        gc, 0, 0, 50, 15, oldX, y);
  906. X            else
  907. X                backingStorePaddle = XCreatePixmap(display, window,
  908. X                    50, 15, DefaultDepth(display, XDefaultScreen(display)));
  909. X
  910. X            oldX = paddlePos - 25; 
  911. X
  912. X            if (backingStorePaddle != (Pixmap) NULL)
  913. X            {
  914. X                /* Clear the debris under the paddle first */
  915. X                XClearArea(display, window, 
  916. X                    paddlePos - 25, y, 50, 15, False);
  917. X                XCopyArea(display, window, backingStorePaddle, gc,
  918. X                    paddlePos - 25, y, 50, 15, 0, 0);
  919. X            }    
  920. X
  921. X            DrawPaddle(display, window, paddlePos, 
  922. X                PLAY_HEIGHT - DIST_BASE, PADDLE_MEDIUM);
  923. X            break;
  924. X
  925. X        case PADDLE_HUGE:
  926. X            if (xpos > 0)
  927. X                paddlePos = xpos - (MAIN_WIDTH / 2) + 35;
  928. X
  929. X            if (paddlePos < 35) paddlePos = 35;
  930. X            if (paddlePos > (PLAY_WIDTH - 35)) 
  931. X                paddlePos = (PLAY_WIDTH - 35);
  932. X
  933. X            if (backingStorePaddle != (Pixmap) NULL)
  934. X                XCopyArea(display, backingStorePaddle, window,
  935. X                    gc, 0, 0, 70, 15, oldX, y);
  936. X            else
  937. X                backingStorePaddle = XCreatePixmap(display, window,
  938. X                    70, 15, DefaultDepth(display, XDefaultScreen(display)));
  939. X                
  940. X            oldX = paddlePos - 35; 
  941. X
  942. X            if (backingStorePaddle != (Pixmap) NULL)
  943. X            {
  944. X                /* Clear the debris under the paddle first */
  945. X                XClearArea(display, window, 
  946. X                    paddlePos - 35, y, 70, 15, False);
  947. X                XCopyArea(display, window, backingStorePaddle, gc,
  948. X                    paddlePos - 35, y, 70, 15, 0, 0);
  949. X            }
  950. X
  951. X            DrawPaddle(display, window, paddlePos, 
  952. X                PLAY_HEIGHT - DIST_BASE, PADDLE_HUGE);
  953. X            break;
  954. X    }
  955. X}
  956. X
  957. X
  958. X#if NeedFunctionPrototypes
  959. Xvoid FlushPaddleBackingStore(Display *display)
  960. X#else
  961. Xvoid FlushPaddleBackingStore(display)
  962. X    Display *display;
  963. X#endif
  964. X{
  965. X    if (backingStorePaddle) XFreePixmap(display, backingStorePaddle);
  966. X    backingStorePaddle = (Pixmap) NULL;
  967. X}
  968. X
  969. X#if NeedFunctionPrototypes
  970. Xint GetPaddleSize(void)
  971. X#else
  972. Xint GetPaddleSize()
  973. X#endif
  974. X{
  975. X    switch (currentPaddleSize)
  976. X    {
  977. X        case PADDLE_SMALL:
  978. X            return 40;
  979. X
  980. X        case PADDLE_MEDIUM:
  981. X            return 50;
  982. X
  983. X        case PADDLE_HUGE:
  984. X            return 70;
  985. X    }
  986. X
  987. X    return 0;
  988. X}
  989. X
  990. X#if NeedFunctionPrototypes
  991. Xvoid ResetPaddleStart(Display *display, Window window)
  992. X#else
  993. Xvoid ResetPaddleStart(display, window)
  994. X    Display *display;
  995. X    Window window;
  996. X#endif
  997. X{
  998. X    paddlePos = PLAY_WIDTH / 2;
  999. X    oldX = PLAY_WIDTH / 2;
  1000. X
  1001. X    FlushPaddleBackingStore(display);
  1002. X    MovePaddle(display, window, PADDLE_NONE, currentPaddleSize, 0);
  1003. X}
  1004. X
  1005. X#if NeedFunctionPrototypes
  1006. Xvoid RedrawPaddle(Display *display, Window window)
  1007. X#else
  1008. Xvoid RedrawPaddle(display, window)
  1009. X    Display *display;
  1010. X    Window window;
  1011. X#endif
  1012. X{
  1013. X    DrawPaddle(display, window, paddlePos, 
  1014. X        PLAY_HEIGHT - DIST_BASE, currentPaddleSize);
  1015. X}
  1016. X
  1017. X#if NeedFunctionPrototypes
  1018. Xvoid ChangePaddleSize(Display *display, Window window, int type)
  1019. X#else
  1020. Xvoid ChangePaddleSize(display, window, type)
  1021. X    Display *display;
  1022. X    Window window;
  1023. X    int type;
  1024. X#endif
  1025. X{
  1026. X    static int    y = (PLAY_HEIGHT - DIST_BASE);
  1027. X
  1028. X    XClearArea(display, window, paddlePos - 50, y, 100, 15, False);
  1029. X
  1030. X    if (type == PAD_SHRINK_BLK)
  1031. X    {
  1032. X
  1033. X        if (currentPaddleSize == PADDLE_MEDIUM)
  1034. X        {
  1035. X            /* Shrink the paddle */
  1036. X            currentPaddleSize = PADDLE_SMALL;
  1037. X        } else if (currentPaddleSize == PADDLE_HUGE)
  1038. X        {
  1039. X            /* Shrink the paddle */
  1040. X            currentPaddleSize = PADDLE_MEDIUM;
  1041. X        }
  1042. X    }
  1043. X    else
  1044. X    {
  1045. X        if (currentPaddleSize == PADDLE_SMALL)
  1046. X        {
  1047. X            /* Grow the paddle */
  1048. X            currentPaddleSize = PADDLE_MEDIUM;
  1049. X        } else if (currentPaddleSize == PADDLE_MEDIUM)
  1050. X        {
  1051. X            /* Grow the paddle */
  1052. X            currentPaddleSize = PADDLE_HUGE;
  1053. X        }
  1054. X    }
  1055. X
  1056. X    /* Draw the new paddle in its new size */
  1057. X    RedrawPaddle(display, window);
  1058. X}
  1059. END_OF_FILE
  1060.   if test 8732 -ne `wc -c <'paddle.c'`; then
  1061.     echo shar: \"'paddle.c'\" unpacked with wrong size!
  1062.   fi
  1063.   # end of 'paddle.c'
  1064. fi
  1065. if test -f 'sounds/hyperspace.au.uue' -a "${1}" != "-c" ; then 
  1066.   echo shar: Will not clobber existing file \"'sounds/hyperspace.au.uue'\"
  1067. else
  1068.   echo shar: Extracting \"'sounds/hyperspace.au.uue'\" \(10464 characters\)
  1069.   sed "s/^X//" >'sounds/hyperspace.au.uue' <<'END_OF_FILE'
  1070. Xbegin 664 hyperspace.au
  1071. XM+G-N9    "   !UT     0  'T     !          #R>/;]^G'W]7%X]WEJ
  1072. XM>OQV_GU[^?E]]O)Y_O-Z=WKW?W5[]7K[]G7T_?]\]_YL]_1^;_KW;_SM;G[P
  1073. XM>'7U]V_R_7)X^/UN^?S[_G?]^_QZ_?1Z??KV_GWY^WG_??[O:?OP=71]['1L
  1074. XM]/9R]G7^^')\?>__<?;L<WSN?O%N>>QU__AT[WYP\/UV;_#[;';U]VOX\7/\
  1075. XM_GOX_WEYZ_QM]_+W;/+L:_K[>/5N>/)Q^WQ\]W?X_7CY[W5W[WAOZWIL\^]R
  1076. XM=.OZ;GCB;6_J>G_^>^]I=.EO=?CV<_WP>';T_&YZ[WYS?^]R_O5Y[OUU\7+^
  1077. XM\GMW^_=N_/=\>?-_>/'];OOJ;W3Z^OMM^/-N__=X?/[^_?5Q?/-X??[[\G+Z
  1078. XM\7OU=W[O_7QV^_-K__-S<W7S?WI[[_IKZ'QK\?E[<>]T<>5\9_/N<F;C^VGL
  1079. XM>?%S__5^\_]O[^]H[OI\_VWH<G7^]_IN??AQ\FEWY6EW^7[O:O/S__U_[G%V
  1080. XM[?MV=^WW=/_R=?I[:NK[:7WT]&EX[/]N?.YT^6WM[6[\_>WW:?KL^V9WZFQV
  1081. XM^_1Q=^YW^O-\>GWO:_[L;WGU^F]YZ'AO[WQY^GQU_/-Q_?5V<OWU=.[O;_7K
  1082. XM;?GP?7AY]FWQ?/QL]_AE^.US;/'X:>_H:/[B<V;TZ&IUZ'UHZ/ULXGE\^GOV
  1083. XM;/SO;F[M>F?V\'QP\NYH_.EO=>__;OSN;VG@=6[^[7YP^>Y[=_-T^/IM<^I]
  1084. XM>FOLXEW^Y'-N_WY[_6]T[7-YZ6[]]>UY=>]Y=?CM8_3N:'[K^7AYZ_MH[OER
  1085. XM^6[^]WS^<_Y[<77N?'OX;.EQ=?EXZG1SZ6UPY'MU[7![^O?V</_M<VCE>V?N
  1086. XM]&GR=_=S>._W;>[F7^[B8/SF;UW?[%WOZ6U^\_%L;^9N;^A\8^)L??1U\G/W
  1087. XM]GQPXWUDX_Q=[N1C>.[V;/SQ?'KQ>V/@_%_G[F?M>O'H:FS@=6SQ_/9V=/9O
  1088. XM]O=EZ.IB=^=S:N9_:_7Z;O3K9O/O<_EFZ_YL[O%L\&[R[W;Q<^YW</!T__;P
  1089. XM;'_O<NWV8^_O:NIL[7IJ<N_P8OSD_FKL]'#U^6KMY5]KX_-?\.IZ9OG>6^[I
  1090. XM8^[R<7CO]VAWYV]OZOMOZFGSXF']WVI][G'S\W1CY7YD>^SL6^O=7G/G=OWZ
  1091. XM^79KZ/[_?_#V:7OO>VST\FCJ>6]T[>)=<]AI8N%\[7/\^/]L_/OS<7KT>?-G
  1092. XM]=Y=]_GZ[UWNXV3_\&K=;FCC[WUL]^5DZOYMXVAO['YS[O]\>7YO^?9CXGIA
  1093. XMW7)LXV7H?F?F:W[E9OSD:?[G8N5R<-U<\>A9Y^UA^NIX\W#TX6;XZWEW_GY]
  1094. XM9.G]:>-X8NGL9>KW^W)FX6UX;V[>;&SH_/5H[OIW>?!Y[FCD9NCK7>)Y;N5Y
  1095. XM>_M_<7GF:&SA=VKTZ6MXY&]CZ'EU^6[Q=>]IY'Y?UFIH[NUB>.5U8G[85.O5
  1096. XM4>?;7';G;^QIZ7MGYOYDY_YJ[&[Q>?MW:NWU9.KM7^1X9]QU;OGD8W;R;.WE
  1097. XM8.MKX>Q9TV!OX&;H^6CH<US:7';75^_F8.E[=/1LYV]J^?9^^NUT_W;W?OSM
  1098. XM^U[=^5OB[&QQZVU\=^QP<>!B<>!G^.M?X7UCWOU;WO%<X?=?XVWJ[F#CZ5_[
  1099. XMW6+P:>5P6=AY5])D7-S[7^;R;^E[:^IM^/-@U%IUU51XU%UDXV?L9/;;6-_;
  1100. XM3]SY9=QE=^A]=&[O[V=OZ73U:^SN:>IA\N%@^OQKVUSQ[67I=&[@9F7C_?UF
  1101. XMX>93TW1,R6%6VV[U:O#G:V[=6M[C5=IU;O#S[?9[ZGKX[63=:5_F9VYM?7-?
  1102. XMXN]8W'5K>N?H6-_R9_;MZVSR[/_MZ6_O[ES>[U7@8FS?7.]_ZWI8^>AR:^ON
  1103. XM;7'D\7SC\VCS[?-K_]YF:>;Y9^-Y8?+V;_-\\_UJ<NSX:^SS9/MEZ-Y3U^]>
  1104. XMX5YTV61PYV=R[W3W[GWC:V#;>5[<^%W=7U[EZUA\X/9A:M5N9-1F<]]O[_IY
  1105. XM]7IJYV5]WF+I[WQHWVIL\6WL7/;C7VC<:F;<=FOC9^AB_]U9Z_QCZFKS]G;J
  1106. XM\W1MW_SI6^/O9]]8V6UDY%K@^5W9<F?L<]]E\.YE;-QR7^3E9F[?7OC83OC/
  1107. XM5/=I[=I1;=IV8>1[<?%L]NOT_7+R[VQ_['+Z^5_B[5_I['?WY'-:U6YFZF_S
  1108. XM8N5Q6MQH7^[;66O>:.]R=^%H\]Y@W6?MWV]R?.OF6FW56U[6;5ONY7A3U/Q7
  1109. XMVVQU<NCF4-O:4?33:US:ZV]IXNM?Y6UBX_5/V^)5WVSDZE[@]V/I;6K89&IT
  1110. XMWV5KXFKA6M=F:-Y?Z/]R[>E5VOU=^>Y]_>IL^E_65WG76_9P\>=F[M=3W]Q0
  1111. XMW>)=Y_=K9G[766?/:%KA;O5[Y6#AZT_?>.WS7N+=5^[:97)YXW]5UEUZXFCZ
  1112. XM[N5X5^#A4-]\YOE;X?!Z4]OG4>;F6MIH;M9L:EK0<F#E9M9:W&=USU9<T?5A
  1113. XM\6_A9VS16'G;6W7M_>EB=-I<:]]2WG/N:E_C=FWL^OSO6]9D=-]V]^GJ5.76
  1114. XM6&WDY&]7X7-NXF#GY6OR8=]KZ_EAUEEETUEG\&7><E?9Z%WH>>'?5=?J7-!?
  1115. XM8,Q/:>-H]FU2T&E8W5S=;V[O?NCD7-GP[6QAU&E>Z.I;V_YJ8N#J7_/J[E/5
  1116. XM6>7B5=1Q;7;G7.5H<O]KV5'D['M<^-S^5]?;4M-<[--6WV+QWDSLW5AF[VU8
  1117. XMY&?L\/WK6\]U5]#>5??79F77^FKF].YH^N%8X.=3^]=6<M=2T5?XXD[:Z5_^
  1118. XM>?1F>.%>Z/YJY_YAY?=9Y_Y^[5K7<E_99.GB7-ILY.56V_E=Y7A[X&%GW&]>
  1119. XMZV'FZU7<ZVUCUVWVWF;F<M]@7,]=7-_N3O#B5_YOZ5SC\7ON[?SZW7KY;]U\
  1120. XM7^!YY>IEZ.US]5IDTEA<>&C04VK36]YBY]]8]G[C\69BS5#MWE'/7W=TYN=9
  1121. XM[=I;ZNIN^?1PX6OEZ5WEZF%S=&1A7]U68-_P>6O8:_77:>GD<?U_]'+N^7'F
  1122. XM7-Y^3^-?YW=<W_M2S7%:S6YBUF'<]W[M8GCU?O)5VVON8%C0;&-^X7!D9<Q;
  1123. XM<^!M\>=I<M9?XUK<X$OA;7GL7%O.6UWPX/AN7]7Q7-=,R6Q,SM]G9]!.W^1L
  1124. XMX4_0Z4OPX5K>]%'27N[F3LS^9=99V_QFW7GR:=IA6]%@4N#E4/?+27'96NU\
  1125. XM]_]8U?%;UE9^V>]F;.+_]F5OVECK;7375-SS6,YC;]AX[^]_=W1M8]Y9[OU>
  1126. XM]>E:WGOB[EG.5F7)5VO+367/2>/P6]]B^-Q>ZM=+SEA@S%Y_ZN7[='=O]/[P
  1127. XM1\EJ3M!9T5#_STW>[5_@]6YGV672:5G/:UO?:/S:5-[A4-%J8]Q5;LM)8\M:
  1128. XM<.K>ZU_<>EOJU5Q:U^E7:M]?:5W88%7-6UW-ZT;+VT30Y5754OG,2^W9ZW7T
  1129. XM[=A>V]))S]1%9]-78EWN[TONT6Y2V]5U5-;:2\SZ2_C3YT+/U5%JSU=ERTUE
  1130. XMS5=VW//;XUUOTV=B[NQP7L]>2<!:1=383VO54F'%3DK$]TO>V/_P7]54U^=(
  1131. XMW''V\TW$=4O.<.O91]#H5L]5<,M(SU38UD3,:E7-5E#)5V[K6,Y0[M9/SF]N
  1132. XMRU;JTUA7S%)3T. _S\\_P75/SO14W]).5LYH2-+G3-1S8MSB6>_:<5[+4NG-
  1133. XM0]9RUEY*Q6)75L[K3MA=[,E'T'[WZEO);5#+4U[/[TOOTD]LUUCX2,SD/\3<
  1134. XM2,]T\O-<SU'=XUUVTV=)Q%Q;W^9?PU1DPDOAZFY67O;G2^#<0M/72=K1_4_9
  1135. XMY%[;<&W-ZW!UY.1-TWYQ7FM?:ME?3<O]3L=+R]E*R6C]R4QNVV#E5V/=5$O+
  1136. XM5GU5U^7Y\5?(V$K-REI]ZEONU4Y?U_-*R$ONVTC?<&EY]]MD3=#D5M7K7LER
  1137. XM66O;_%QGQ432?DS(3M-<5L9%;^Y?TFYCTN1=S_;?7]I<5\Q)WF;L6?/:6NIU
  1138. XMTUS_U%/0_F9<[$K6=$K>[>%2[LU+9L!.2KQ:6_?-<5#<SD' X#RYZTSMWM]!
  1139. XMX/E)Y5'Y?FMG7,MF>'W<QT;-XEG'4]AAQDQ+MTX]SM=42-;'/=K'1&G);%[P
  1140. XMSE5,T%G[8OU]]U;IQTU=WMCF3\_IWU[OSD70R3[BQ%A-RLI-3;Y1/<)-6T?(
  1141. XM5#[!=CN]V#_"8V7$7MW.4]-?WEKYSUU<TV57Q$?YWO-<7^O?6%'EY6I<QM\_
  1142. XMO5U:OT?O:.+<4$_6=4?3>%/PS5EKU<T^Q7I-OCO.V4G@:U7)2LM<4+](U65]
  1143. XMX5O'6T^\/MW<3^730-;"2='>1\1/R$I.NSUP_.3:3N[/U$_BR4=.OSY?RV="
  1144. XM6[](2]#2?&O?WLE/9^#D:MM1=<Y*2M[755_6QES;=M_;5\]37=%,==;F1M2_
  1145. XM.\!-\\Y'S$;'0>C+.L[B3/'69VO3QDMAR&A'SUK18%K,4]I0<^E1SFM.W<MS
  1146. XM3MFZ0%K0O54^L$LTM5L_U^Q'3L)/^-#K:DF]35;'4UO)36;'2.M*S',^P<A 
  1147. XM^[H_7;Y&:>!<YNM:QND_P<,\7K,W7L12[O,XO=0UO]Q P^M4X,M+>\%72M)0
  1148. XMWM!"]-AP4L_6W-KH3LW66S^^]#"V0EO*3'!HT$77Q3[ITU?:.;YL5KHSL^(V
  1149. XMKC[EO3_$1<K\/]?60M5N:]9#Q.?-2=K".'+87$[%S#>]]DYO6K]?-<.^24N^
  1150. XM2=_Y1L%-3<!%0K4_<MO=SSFP6LY4O4=.L#C$U330ZD]*NS7-T3.O.CZM/$:R
  1151. XM/4F[2O3(^L9 4+@_>KHYS]#V65Z_4CRX/%2S*ZUT+Z[--.*Y73;6N3=:N3U7
  1152. XMK2F]L2BQ6$6T3WQ78,LJO; GLT]&LUA+P'1<SVQ%MO<NI#PSKCH_L4!?U$?7
  1153. XM3\AGSEAJU%765&:Z--Z^1.3'/_A8O#=1K"G?K3++P5;0/K5K.LAE<6+L[[XI
  1154. XMO+ M7ZDI5K8_W$6_2SZT4S6O2N[&-[I.OBJHNQV<+#ZD(*Q%.[WO/-*N(Z5;
  1155. XM+JP[3']\2[ VYK4\OCR\RRNC+%NM)*HGN:TAK=PUP#Z\Q2^\TD-"KS+JKC'1
  1156. XMN"_&OSJR2;]0.+98)JI3+*$AJ$<YJ2J_N"V[S#NW04RK)U^R/T?$P#&N.\SC
  1157. XM.ZPV6:PHK44\IBJ^3[PCI;06FCTXSF>U*\VP-R^B-"J>)^RP+*Q0+:4LNFU-
  1158. XMMC^Z0\@GGCPEGBW/NR^VPC?:4<Q#6THZN3S.O#&F2E2D)-.D'\&X+?.R-->Y
  1159. XM)K+4[VM"R6ENR3G2V$M+QL4FJ?Y O%Y"4*<X.J<INDV[/D&J'ZE\-K9,+<RB
  1160. XM(-:?&Z=5*Z[:0/Q$JR=5I"B^N"NZ1K.Y&9H\+J0L\N+&1U[%3^-11K!!3[DU
  1161. XMV%]-KS[*/DRS.L$ZNE#*WBVJ-[8JO5A K"Z\TA^>)F6G*;G=/\BO)KC .]U4
  1162. XMS<Q"NSF^V,U82;W4(ZO*+KGAP2*HK1^I8S:Y2-A"M3;+TL=+_*PK;4BW<"ZI
  1163. XM)J4R1+ W2K$W6+DMK"^K0RNH/ES'NSG$S]W-*:@X+9LQ)9LO'YQF,?6WMQNH
  1164. XMKQRHK!2KIB->L:<:J[=.)YY)*J[()L'%P2FJMR3!.:0C:J(B5J$]-[0WK2^J
  1165. XM)\ZU-RZF.R^B_R6N3D]IQ,0\[LPY.*Q%0K3$,:$7GYT3JZ07G![)O"JI+KHN
  1166. XMI2UCO_,LHS\GDALYHQ^[L$\ZMC/-1-.B&)K9'9E%*[NR*KTSVZT[-:).'Y8<
  1167. XM/YL=OC;#KQ6;*,RR0=HTITTAJ;\FJ3ZW'Y8@*)(?3+_%S2VUS$*S6BJ?'J Z
  1168. XM.:(HUS.J*6N[5-]!HR^[IQJ<(3^T+;$PJSI'M/=!T<IA++V^-MM"MRV\5<[!
  1169. XM*Z8S.)]!'I<M(I4G/9P6F2K*P2.D*JDHORZA+=JN)<.U+L=!NK(BH^PIRYX4
  1170. XMG?0CF");K2_,9M-02K,ESZ<S.\S>+KT\0KY!IR!DHAVSGRDVEQNOS&S-*Y@@
  1171. XMO:L=SK@T["*4)BZ5&5N>&IXV-Y\O1:$8GC$WLS&A'K)5(9D6G[4:E1K-V$)/
  1172. XMRL4PO$)#W:8^K[Z_+:!.'IDC/KPGR;I+L\\YK"H^HR>U-2&9)76=O"(^KT4>
  1173. XMH<8;FB8[GA:B3\[8KV(>DS$;BQ1?FQN>.T$N,DZ[52BF(;,^Q<$TJ#D^Q+8W
  1174. XMJTTZP9X5KIP7QJX?F2\<G"VR/JSSZS7#IQ_-J#,R+:F\*YTP:*LDRC2L5B_=
  1175. XM.A6T0$JE:2*5(J=YG)H)DDTKBRW./](E+J40BR8ACPZ<232D*C_Q*SXJLCK9
  1176. XM'\RX(Z(OKML[**\IRKVN,!>7JAN)*0^)GA^6M)FDH)8J+AE$GE<@01X.HMX0
  1177. XMR2\E&Q6R)ZLD6*\;N:H7EIROB,.>FZ4DJ)L/JXL=C[TGN#9.*!^:'J:E$S 2
  1178. XM.1P=EY@^F4P?-2<PHYTQL)<.V:W-GQ$F6#.I&9\J6XP=W**J.*Z7#C*-ERD?
  1179. XM*2?*KV_3+;PIMXY?5A\>(4:;ER<NVBW7D:59GQLOS"TXUJ(=%RP1G)K 2QU(
  1180. XMEBY>FBT=)AS+F:DI%@HPD("-IAD))IJ'E@X7RBV7JA,IOQT<F]O>92DC/:R=
  1181. XMGBX;&""MEZ4F&B#.I9FI#QH[EXZ4J2X9()N>JR I)N*D'RDDIZZ[2C$O3:_&
  1182. XM)B"?IIS6#1+(C8W%'QDWHIV93!0MN"3WF[@<+IHX+\XT+)K&%U*K),"F,S2]
  1183. XMTKB7/ T/0)&+I# C'3BOH;-B&B*^F**?.Q<7Z)RJO/,T-[T\0"\>,BU2FY&E
  1184. XM+R7/P;T\(3">F+7H0!4?G9IV)Q8J0K.?62JYKYYK-](M\+C8/"$BK;3&L2TP
  1185. XM-U2>G:/R+A4;T*B;L3M&52Y)Q:BTIBPN1C//I6E;JT5')40LP;K!MB8E+K6I
  1186. XM3"Y-N,?>2+:ES.%,)2RRNJ?K/V-99Z^W_?DN*C VM:FZYT704=9R+T<I+K^O
  1187. XMM+9(0J_-5[ M1,([LDL^PBTL3"RTK::D*R$E/J>KTL$\23PW=L/$I*]VV2T_
  1188. XM/VVTR[Y!0L0U-RXLZ]_-V#U&0B[3QZF?KZ:_/3$K[[QHMK)8*QPLW+^TO44J
  1189. XM*C==O:N]15,_R+"OK.,]-##&S;:M.%U:1<;J.T T:<'-ST)^9;ZWR54N-30V
  1190. XM1WB[NL[$3C9>Q;78TLG"P5Y8.#HW.]IA[$) 7%B_X$DU-=NYN;JSQ+N_UU(\
  1191. XM\.G-M;GG-#8\2M'9O=/.OTT[,#K(WN=H3,9?9-L_7=M.R=Y+Q%R\PCKL+3I,
  1192. XM+GAGSJ^ZL:_1PO9BQ\N\SU;,[%9\]<7/.CE"<LE=Y%DT6DPX.3E8[L.QOM)9
  1193. XM/NV^N[[%N+6YRD%*S,7=YM'9;F!N07=6.UA:.S4O/'BWLUU4:/_HR<II/TS6
  1194. XM?,>^P\Y"0DW<O;W1R;2LL+C'[$)ERDH\,#K!R-783$],6TPZU/A2\'/?23]=
  1195. XM7T9-/D1/3];;P+S*S<OOY-[3SD]CZ&R]O<+#R\;BY]QE;$E*94YA6%/MU=3:
  1196. XMX]#N9GM,SK_'QTY0W.'?:^+27=SOX.)+9UQD;$EB9&-1/U)914E-X\G/^^*_
  1197. XMP<'"UL;,ULB[O\K(R,Y0/C@M+2DL.UR\K:_';=FOK<S<R\+*^'U<=-?JZ,MO
  1198. XM3&_D0S<Y.C<^5/U[[?WDR=/<[U]<5UWL[^?5W]J_OLC1Z=K,Q\K/VMK<8$Q-
  1199. XM4D](0$9*1U!05.WD>-[4W./BT\[H;6MNW-GPY6M?^6U<7512^];.W5M<;5E?
  1200. XM_&QG:6[RV]?2T.GAW6]95E9;65M=6E=444Y66WCQ:'+=W]K*R-#=[=G.V]O,
  1201. XMSM/1V=CD:UI/2T5 /S] 0D=-4%A@;^O;UM+3TL[-SM34VNWSW^7MW]OAWMO9
  1202. XMX.[L?6-;5T].4$Q,3$U/4E9=9VUV<WM_^GYO=G-L;F9NZMC2TLW-S\_/SL[3
  1203. XMV-WK^W1@65154E-755-24DU.3U!45UQ:6%A=:GSTZN;>U-'.SM/1S]7:V>'A
  1204. XMY/3W=&[_=G1J:6YG:FEB86%=6EQ8551665QD:6_RZ.;?W=W>XN+?Z.C@\GO\
  1205. XM<';W=_SL]>SM[>GZ^WYR=FYN;FQT=G1U>75N='=R<G-Q:VMO;&MO;6]O:&U[
  1206. XM>_[\[N;EX]_=X-_CYN3FZ?/M[/?OZ_+S\/__>6YL9U]=7EQ;7UY=9&=F;'UV
  1207. XM?O7U[NGHZ^KN^>SH[O'N[NSEYNCFY^CGY^?Q]OIR=79P;&=E:FAG:FAC9&IJ
  1208. XM;75M:VUJ;GA\?OWS[^KFYN/BZ.;EZNSO[_Y\]OEY<GQZ<_]\;_OT?7O[?'!_
  1209. XM?75Q;G!N;6UO<7=X=7G[^7[Z^7Y^^OQV?WIW_7[X^?/S].[L\_7Q_O_^_GUR
  1210. XM?'S^^OCQ]O3T\_'O]GW[^GAX>G)K;6QE:W!L;G%K=7IO=/_\?_O\]_/V^?+U
  1211. XM].OMZNOIY.;EY^?F[O-X='5J:VMB8F9E9VEJ;6UM;VY]>W5\>'[\?OCT]^OL
  1212. XM[NOFY^GE[.GI\_#]\.]U>WIV>6UP;F]S:&YS;W1S<FQ[_75W??M]\OWX['_N
  1213. XM[^OK_.OX^/M[]/=Y:W#U;G-\:_]T?/]X=&_]_7=Q[O)\^?/M[_OSY_'N\_'L
  1214. XM\_3Y_GMW;G5Q:&QL;&AL;FYU=W_\=W7^^/3Y_?7N[^[LZNCEYN?FZ>KQ^GMT
  1215. XM<VYO;&AI:VYJ9&AL:G!R;6UQ^/3Z^O+L[.SHZNWJ[^WZ_O3V_/Q[=7IW=7AY
  1216. XM>7!S=G=Z>WEW>73\\O3V_7_Z\._[>/_^>71^_WEO;W=^?7=[>?E\_?'P\OKT
  1217. XMZNSS]>_O??OX>'O^<OE\95]S>F5I:G_^?/?T[_;MY>?K]O;[=&UW[>CU_/GU
  1218. XM\G]W<VMR_'%E:/YY:FM__G!\_//K^_/K]/7LZ_9V?.CO^N[W\>SW[NU\:W#]
  1219. XM[^CV=&]O9VQR:FAG969F8FAO;6=K>N?C[_+GZ.3BXN/GY=S=[_CX]/WZ>69N
  1220. XM<6QN;7%P:W/]<6AJ;6QO;VI_ZWML>GWZ]?GL[GQY[>7M[>[_?GKOX_UL;V]Y
  1221. XM_?=Y:F9K_O1\;&WYZ.?J^O?K[O7Y^/S[?6YL??O]>W+O]VIO=7AY_WAY_')O
  1222. XM_/AU^>GM\W]Z<'Q\:6%O[>[^=G-Q_>CM<W![Z>3U<7SU_7_Y\_E]>O?GY?]N
  1223. XM>O[R[?5T<G7^^75Q;FUK<WAN:&EX[_AV?_/O[?'U]'C_[?!\;'[W>__];V[[
  1224. XM\?'V='I\_/'\_?OT>73Z]O1]<V]N?.[[:V-O[_+U_7Q]].[O[?#W]_K\?OCR
  1225. XM>W!O;GCZ]?#_='MY<W=U>V]F;7%\^WCL\W3T]>KM_OWX^'AY^?/Y?OW\?'[[
  1226. XM>_SZ_O'N_G!Q=7GS\G[_[NSO\GAO<'!Q;6MJ_?=X?G)M>^_LZN?M_'=V>OWV
  1227. XM>W=Q:WCM\']Z=_;\>?KV^WEK<>WL\?OX^'ES;V_T[/[S_G[^_?GU\O?T]7EK
  1228. XM;_;[:VMR=79^>7=X<'A^?GWU?7'[\_#V^?CS^'AP?/+L_'COY>;S=W-\]/CY
  1229. XM_&]I;WQW=&YG;.KI]_3Y]GEU=&MO=/[U]7EO??#Q^'!K>.[J]N_O[_'X>_WU
  1230. XM>'I_?GW\>75X<F]X>_GJ\?-];GE\?'UX='9]>GKZ=WSX?73V\'OT[>__]_-\
  1231. XM<WGV>73X^WE]_G)S=W[UZ?#\]?+P^_]Z>'5M;&]Y?7IT<75W>_GMY?1N=GK\
  1232. XM<G;P^_[\_?KR[/+[?G=O<OOV^_OU>G%[>_OP\NW[_WYJ;WET;6AO^^_HZO7T
  1233. XM]_KX]OCU\WQO=7%N<&UV=G%O:&_MWN3M^O[W]OEU=G5N<'/Y]?GY?G5P>O#L
  1234. XM]/7L[_'U?'[Y]OIW=G1Q?GEK8V5M_._\^?GQ\/7\]_1\^?/S]G9W=75W??[U
  1235. XM[7]K?.[K_7=_>7U[_O=Z=G9T?O%\=_[R[O9]>?Q[=WU]?7IS=_KU\OMY>W!U
  1236. XM;W+RY>SW>&[]^_7Q^7A\[GML^/=P>'IS_.[R?_7Z_O;Y^._X<O]Y:FMK=OKV
  1237. XM^7+\\OOO]GQZ<W_]?GC^?/MO=?%[=7GT[.;X?/YM<'A[??O\>7?_>??R=7MW
  1238. XM_N_V\>?M_']O<_/V_'YV;W5V_/MO:G7T_/'N=W5_^WGW[.K_>7YR<7_[^V]R
  1239. X,>'/Z[O/Z\OK^\^OL
  1240. Xend
  1241. END_OF_FILE
  1242.   if test 10464 -ne `wc -c <'sounds/hyperspace.au.uue'`; then
  1243.     echo shar: \"'sounds/hyperspace.au.uue'\" unpacked with wrong size!
  1244.   fi
  1245.   # end of 'sounds/hyperspace.au.uue'
  1246. fi
  1247. echo shar: End of archive 19 \(of 26\).
  1248. cp /dev/null ark19isdone
  1249. MISSING=""
  1250. 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 25 26 ; do
  1251.     if test ! -f ark${I}isdone ; then
  1252.     MISSING="${MISSING} ${I}"
  1253.     fi
  1254. done
  1255. if test "${MISSING}" = "" ; then
  1256.     echo You have unpacked all 26 archives.
  1257.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1258.     echo "merging split files..."
  1259.     cat blocks.c[12] > blocks.c
  1260.     rm blocks.c[12]
  1261.     echo "blocks.c done"
  1262.     cat bitmaps/earth.xpm.Z.u.[ab] > bitmaps/earth.xpm.Z.uue
  1263.     rm bitmaps/earth.xpm.Z.u.[ab]
  1264.     echo "bitmaps/earth.xpm.Z.uue done"
  1265. else
  1266.     echo You still must unpack the following archives:
  1267.     echo "        " ${MISSING}
  1268. fi
  1269. exit 0
  1270. exit 0 # Just in case...
  1271. -- 
  1272.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  1273. \X/  Amiga - The only way to fly! |    sources-x@sterling.com
  1274.  "It's intuitively obvious to the |
  1275.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  1276.