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

  1. Newsgroups: comp.sources.x
  2. From: jck@kimba.catt.citri.edu.au (Justin Kibell)
  3. Subject: v20i111:  xboing - a simple blockout type game, Part04/26
  4. Message-ID: <1993Sep3.123052.6775@sparky.sterling.com>
  5. X-Md4-Signature: 3e8b73960f62e439441275e530ac0fdf
  6. Sender: chris@sparky.sterling.com (Chris Olson)
  7. Organization: Sterling Software
  8. Date: Fri, 3 Sep 1993 12:30:52 GMT
  9. Approved: chris@sterling.com
  10.  
  11. Submitted-by: jck@kimba.catt.citri.edu.au (Justin Kibell)
  12. Posting-number: Volume 20, Issue 111
  13. Archive-name: xboing/part04
  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/titleBig.xpm gun.c
  21. # Wrapped by chris@sparky on Fri Sep  3 07:14:42 1993
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 4 (of 26)."'
  25. if test -f 'bitmaps/titleBig.xpm' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'bitmaps/titleBig.xpm'\"
  27. else
  28.   echo shar: Extracting \"'bitmaps/titleBig.xpm'\" \(35636 characters\)
  29.   sed "s/^X//" >'bitmaps/titleBig.xpm' <<'END_OF_FILE'
  30. X/* XPM */
  31. Xstatic char * titleBig_xpm[] = {
  32. X/* width height ncolors chars_per_pixel */
  33. X"474 74 9 1",
  34. X/* colors */
  35. X"     s None    c None",
  36. X".    c #A06000",
  37. X"X    c #F0D040",
  38. X"o    c #F0C030",
  39. X"O    c #D09E20",
  40. X"+    c #903F10",
  41. X"@    c #802F00",
  42. X"#    c #C07F10",
  43. X"$    c black",
  44. X/* pixels */
  45. X"                                                                                                                                                                                                .XoOOOOOOOOOOOOOoX.                                                                                                                                                                                                                 .XXXoooOOOOOOOOOOOOOoX.                               ",
  46. X"                                                                                                                                                                                                .XOOOOOOOOOOOOOOoX.                                                                                                                                                                                                                 .XXXooOOOOOOOOOOOOOOoX.                               ",
  47. X"..++++++++++++++++++++++++++++++++++++.....+++++++++++++++++++++++++++            @.++++++++++++++++++++++++++++++++++++++++++++++......                                                @.++++++OOoOOOOOOOOOOOOOOo#+++++..                              @.++++++++++++++++++++++++++++++++++++++        @.++++++++++++++++++++++++++                          @.++++++++++++++++++++++++++++                                @....+++OOoOoOOOOOOOOOOOOOOOOo#+++..      @.++++++++++        ",
  48. X"XXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOO.           .XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoXXXXX#                                               .XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX#                             .XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.       .XXOOOOOOOOOOOOOOOOOOOOOOOOO.                         .XXOOOOOOOOOOOOOOOOOOOOOOOOOOO.                               .XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX#     .XXOOOOOOOOO.       ",
  49. X"XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOOOXXOoOOOOOOOOOOOOOOOOOOOOOOOO#            .XXoOOOOOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooOXX#+++                                        @+++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX#+++                          .XXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#        .XXoOOOOOOOOOOOOOOOOOOOOOoooO.                        .XXoOOOOOOOOOOOOOOOOOOOOOOOOO#                            @+++OOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX#+++  .XXoOOOOOOO#        ",
  50. X"XXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO.OXXXoOOOOOOOOOOOOOOOOOOOOOOO#.@           .XXXoOOOOXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXOOOO.                                       +OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.                         .XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#.@       .XXXoOOOOOOOOOOOOOOOOOOOoXXXXX#                       .XXXoOOOOOOOOOOOOOOOOOOOOOOO#.@                           +OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO. .XXXoOOOOO#.@       ",
  51. X"XXXXooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOO#.OXXXXOOOOOOOOOOOOOOOOOOOOOO#..            .XXXXOoOoOOOOOOOOoOOOoOoOOOOOOOoOOOoOOOOOOOOOoOOOOOOOXOOoOO+..                                @+++#OOOOOOOOOOOOoOo#.........OoOoOOOOOOOOOOOO#+++                      .XXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#..        .XXXXOOOOOOOOOOOOOOooooooXXXXXO.                      .XXXXOOOOOOOOOOOOOOOOOOOOOO#..                        @+++#OOOOOOOOOOOOoOo#...............OOoOOOOOOOOO#+OXXXXOOOO#..        ",
  52. X"XXXXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO...OXXXXXoOOOOOOOOOOOOOOOOOOO#...@           .XXXXXXoOOOOOOOOOXOOOXooOOOOOOOXOOOXOOOOOOOOOXOOOOOOOXoOOXoXXX.                               +OOOOOOOOOOOOOOOoXXX#@@@@@+@@@#XXXoOOXOOOOOOOOOOOO.                     .XXXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#...@       .XXXXXoOOOOOOOOOOOoXXXXXXXXXXXXX#                     .XXXXXoOOOOOOOOOOOOOOOOOOO#...@                       +OOOOOOOOOOOOOOOoXXX#@@@@@+@@+@@+@@@#XXXXOOOOOOOOOoXXXXXoO#...@       ",
  53. X"XXXXXXO...........OOO.............#O#...OXXXXXO..................#....            .XXXXXO#.#.....#OXXoO#.##....#.##.##.......#.#OoOoOOOOOoooooOOO.                          @.++#OOOOOOOOOOOOo#..###++@@@@@@@@+###..OXoOOOOOOOOOOO#+..                  .XXXXXO...........OOooO#..........##....        .XXXXXO.........OOXXXXXXXXXXXXXXO.                    .XXXXXO.......##Oo#.....##....                    @.++#OOOOOOOOoOOOo#..###++@@@@@@@@@@@@@@+###..OOoOOOOOOooXXXO#....        ",
  54. X"XXXXXX#@@@@@@@@@@@#X#@@@@@@@@@@@@@+.....OXXXXX#@@@@@@@@@@@@@@@@@+......           .XXXXX#@@@@+@+@@#XXX#@@@@@+@+@@@@@@@++@+@+@@@@#XXXoOOOooooooOOOX.                         .XXOOOOOOXOOOOOOoX#@+@@@@@@@@@@@@@@@@@@@#XXoOOOOOOOOOOOOoX#                 .XXXXX#@@@@@@@@@@@#XXXO.+@+@@@@@@@+......       .XXXXX#@@@@@@@@@#XXXXXXXXXXXXXXXXX#                   .XXXXX#@@@@@@@+.OX#@@@@@+......                   .XOOOOOOOOOXooOOoX#@@@@@@@@@@@@@@@@@@@@@@@@@@@#XXXoOOOOOOXXXO......       ",
  55. X"XXXXO#++@@@@+####.OX#@@+@@@@@@@@@@@+@...OXXXO#++@@@@@@+##.##++@@+@....            .XXXO#++@@+#####OXXX#@+@@@@@@@@@@@@@@@@@@@@@@@+####.OOoOooooooXXO.                      @+OXoOoOOOXooOO#...#++@@@@@@@@@@@@@@@@@@@@+######OOOOOOOOoOo#.                .XXXO#++@@@@+#####OXXX#+.++@+@@@@@@@....        .XXXO#++@@@@+###OXO#OXXXXXXXXXXXXXO.                  .XXXO#++@@@++@@.#XO#.++@@@....                  @+#XoOOOOOOOOXOOO..#++@@@@@@@@@@@@@@@@@@@@@@@@@@+O##..#OOOXXXXO.....        ",
  56. X"XXXX#@@@@@@@#XXXXXoo#+++@@@@@@@@@@@@....OXXX#@@@@@@@@+OXXXXX#@@@@@@...@           .XXX#@@@@@#XXXXXXoXX#+++@@@@@@@+@@@@@@@++@@+@@+@++@@#XoOOXoXXXXXXX.                     +OOXooooXooooo#.+@+@+@@@@@@@@@@@@@@@@@@@@@@@@@+.#OOXOOOXXOoOOX.               .XXX#@@@@@@@#XXXXXXoXX#++...@+@@@@+@@...@       .XXX#@@@@@@@#XXXXX#@#XXXXXXXXXXXXXXX#                 .XXX#@@@@@@++..+#XXXO.+@@@@...@                 +OOooXOOOOOOOooO.+@@+@@@@@@@@@@@@@@@@@@@@@@@@@@@++@@+@#XOOOXXXO.....@       ",
  57. X"XXO#++@@+###OXXXoooXO#.++++++@@@@@@@@@..OXO#++@@@@++++#XooXXO###+++@..@           .XO#+++###OXXXXXooXX#++++@+++@@++@@@@@@@@@+++@++++@@+OOOXXooXoXXoXO.                  @+#OooooooooOOOO.@+@@@@@@@@@@@@ @ @ @@@@@@@@@@@@++.#OooOOOoooOXX#+              .XO#++@@+###OXXXXXooXX#++.@.@@@@@+@@+@..@       .XO#++@@+###OXXXXX#@+#OXXXXXXXXXXXXXO.                .XO#++@@@@++.@++#ooXOO.@@++@..@               @+#oooOOoOOOOOXoO.+@@@@@@@@@@@@@@ @ @ @ @ @@@@@+@@@@@@@@+#OoooXXO.....@       ",
  58. X"XX#@@@@@#XXXXoooooXXXXO.....++@@@@@@@++.OX#@@@@@@+@.++#ooooXXXXX#@@++.            .X#@+@#XXXXXXoooooXX#++.+++.+@+.++@@@@@@@++.+@+.@++@++#XXXXOXXXXXXXX#                 +OooooooooooOO#.@@+@@@@@@@@@@@       @@@@@@@@@@@@++.OoOOOOOXooooOO.             .X#@+@@@#XXXXXXoooooXX#+++++.....@@@@@@.        .X#@+@@@#XXXXXXoXX#@@@#XXXXXXXXXXXXXXX#               .X#@+@@@@....+++#oooXXO..@@@@.                +OOoooOOOXXoXoXX#++@@@@+@@@@@+@@           @@@@++@@@@@@@@@#XOOOXO.....        ",
  59. X"..+ @ @ #XXXoooXoooXXXOO#...+++@+++@@ @ +.  +@@@++..##OXooXXXXO.+  @ @             #    +.OXXXooooXXXX#+.+.+..+@@@@ @ @ @ @+..++@..+++@+.#OXXXoXXXoXXX#+              @.#OooooooooooO#..@+@@@@@@@@$@ @       @ @@@@@@+@@@+++##OOOOOoXooooo#+             #     @ #OXXXooooooXX#++++++...+  @ @ @         #     @ #OXXXoooX#@@@+#OXXXXXXXXXXXXXO.               #     @ @.@++++#ooXXX# @ @ @@              @.#oooooOOooooXXO#++@@@@@@@@@@@ @ @          @ @ @@@@@@@@@@@+#OXXXO.....@       ",
  60. X"        .XXooooXXoXXXXXXO....++++.++@       @++..++.OoooXXXXXX.                           .XXoooooXXXXO.+++...++          @..........+++++OXXXXXoXXXXXO#+             .XXoooooooooooO.@+@@@@@@@@@@@              @@@@++@@@@+..OooOoooOoXooOO.                     +XooooooooXX#++++++++.@                         .XXooXoX#@@@+@#XXXXXXXXXXXXXXX#                        .++++#ooOXX.                     .XooooooOOOoXooo#@+@@+@@@@@@@+@                    @++@@@+@@+@#XXXO.....        ",
  61. X"         #OXXXXXooXXXXXXO+.#...+.#.+@     @ ++..++.OOoooXXXXO.                            .XooXXXXXXXXO...#.....@          @@@@+.#...+++++.#OXoOooOOOOO#+             +oooooooooooO##@.++@@@@@@@@                @@@++@@@++@@+.OOOoooooooooO.                     .XoooXooooXX#++++++++.@                         .XooooXX#@@@@@+#OXXXXXXXXXXXXXO.                      @+++.+#XoooX.                   @.OOXooooooOXoooOO++@@++@@@@@ @                      @ @@@+++@@@+#OXO.....@       ",
  62. X"          .XXXXXXooXXXXo#.#####..##.@     @.#.++++#XXoooXXXX.                             .oooXXXXXXXXO..####...@             @+.##........+OXO#OXO#####+             .Xoooooooooo#..+++++++++++                  @@++++++@@@@+.OoooooooXoXo.                     .oooooooXOXX#++++..+++                          .ooXooXX#+@@@@@@#XXXXXXXXXXXXXXX#                     @++...OooooX+                   .ooXoooooooooooX#++@@+++@@@@                             +++++@@++#XO.....@       ",
  63. X"          +OoXXXOOOOoXXXoO###..###..+@   @@....@##OXoOOOoXO.                              .oooXXXXXXXXO..####.#.@              @+...#...#..+OXoOOO##OOOO+           @.OoooooooooooO@++++++++++@ @                  @@++++++@+@++#ooooXoooXooO+                    .oXXooooXoXX#++++.+++.@                         .ooXoXXX#++@@@@@+#OXXXXXXXXXXXXXO.                     .+...#ooooo.                   .XoooooooooXoXOO.++@+++++@@ @                            @@++++@++.#......        ",
  64. X"          +#OXXXO###OXXXXXO#..######..@ @.......OXXXO###OX.                               .oXXXXXXXOoXO..#######@               @..####..##.OXXXO...OXXX.           .ooooooooooooo#+++++++++++@                      +++++++++@@#XXXXXoooXXooX#                   .ooXXooOXXXX#++++..+..@                         .oXXXXXXO.+@@@@@+@#XXXXXXXXXXXXXXX#                   +.++..Oooooo.                   .XXooooooooXXX#+++++++++++@                               @++++++++++.....@       ",
  65. X"           +#OoXO###OOOOoXoOO.#######.#.......#OOXXOOOOO#.                                .XoXXXXXXoXXO.#####.##@                @.####.###.OXoO##..#OOO+           .ooXoooooooXO#++++++++++@                       @ +++++.+++@.#OXXooXooooXO.                   .XoXoXOXooXXO++++.+.+.@                         .oXXXXXXO.+@@@@@@@+#OXXXXXXXXXoOoXO.                  @@.+.+#ooooX.                 @.OXXXoooooooXO#.+++++++++@                                  @@++++++++.....@       ",
  66. X"            +#OXO#######OXXXO#########OXO...##OXXXO#OXXX.                                 .XXoXXXXXXXXO#####..##@                 @#########OXO######+##+           .oooooooooXX#+++++++++++@                         @..++.++++++#oooXXooXXXX.                   .XXooooooooXO.++++....@                         .ooXXXXXO+@+@+++@@+@#XXXXXXXXXO#OXXX#                 @++..+#ooooX.                 .oooXXooXXXooXO+++++++++++@                                   @....++++.....        ",
  67. X"             +#OO###OOO#OOOOOOOOOOOOO#OXO.#OOOOOOO##OOO.                                  .XXoXXXXXooXoOOOO##.#O.                 @#####OOO#OXO..#...#.#@         @.OooooooXoOXX#+++++++++++@                         @.++...+++++#XoXXXXoooooO+                  .XoXXXooXoXXO..++++...@                         .XXXXXXXO.+@++++@@@@+#OXoOoXXXoOOOoX#+                 ....+#XoooX.                 .oooXoXoXoXoXX#+++++++++@                                     @+++++++......@       ",
  68. X"              +#####OXO#####oXXXXXXXO#OXOOOXXXOO...###+                                   .XXXXOXOoooXXXXXO###OX.                 @#####OXO#OX#++.++.#..          .oooooooXXoXXX#+++++++++..@                         @.@+..++++++#XXXXXXXooXXXX#                 .ooXXXXXXXXXO....+....@                         .XXXXXXXO.@+@+++@@@++@#XO#OXXXXXO#OXO#+               @.....OXooXX.                 .oXXXooXoooXXXO....+++++@                                      +++++........@       ",
  69. X"               @..###O#####.#OXXXXoOO.OXO#OXoO#.#.##++                                    .XoXXooXooXXXXoOO#OOoX.               @.OOOOOOOOOooXO+...+....+         .XXoXooooXoXO#.+++++.+++@@                           @@++.+.++++#OOXXXXXoooXXo+                 .XXXXXXXXXXXO....+....@                         .XXXXXXXO.++@@@+@@@@@@+#OOXXXXoOOOXXoOO.              @.....OoXXoX.               @.OooXXXXXXXoXOO#...++++++                                       @+.+..#.++...@       ",
  70. X"                @..##.####..##OXXXO#..OXO#OXO....#..@                                     .ooooooXXXXXXXO###OXXX.               .XXXXXXoO#OXXXO.....+++.@         .XXXXoooOXXX#++#.......+                              @++++.+++++.OXXXXXoooXoX.                 .XXXXXXXXXXXO.........@                         .XXXXoXXO.@+@@@@@@@@@@+@#XXXXXO#OXXXXXXX#             @.....#oXXXX.               .XXoXXXXXXXXXXO.....++...+@                                       @....#+@+...@       ",
  71. X"                @...#.###.#...OXXXoO#.#OOOOO#.+..#@@                                      .XoXXoXooXoXXXoOOOOOXX.              +#XXXXXoooOXXO#.+..+.++++@         .XXXXooXXXoXO+++.....+.+@                              .+++.+.+.++OXXXXXXoXXXX.                 .XXXXXXXXXXXO.........@                         .XXXXXXoO..+++@@@@@@@@@@.#OOoXO#OXXXXXXXO.            @...#.OooXXX.               .XXoXXXXXXXXXX#+......+.@@                                        @.....+@+++.        ",
  72. X"                @....###......OXXXXXO.##oXO...@++.@                                       .XXXXOoooooXXXooXXo#OX.             @#OXXXoXoXXXXX#++++..+++++          .XXXXXXXXXXXO..++....++.@                             @.++++.....+#XXXXXXXXXoX.                 .XXXXXXXXXXXO.........@                         .XXXXXXXO....+@@@@@@++++++.#OXO#OXXXXXXXXX#           @..###OoXXXX.               .XXXXXXXXXXXXXO++.......@                                         @..#.@@@@@+.@       ",
  73. X"                 @@..........##OOXXoO..##O#.+.+.@@                                        .XXXXXoXooXXXXXooXoOoo.          @++#OoooOooXXooO#.++@++++++@@        @.OXXXoOoXXXXXO.+......+..@                             @..+.+.....+OXXXXXXXXXXXO.                .XoOoXXXoOoXO..#...#..@                         .XXXXXXXO+..+@@@@@@+@++++++.OXoOXXoOoXoOOO#.          @..###OXoXXX.               .XXXXXXXXXXXOO.+........@                                          @+.+@@@@@@+@       ",
  74. X"                  @.+++++....#..Oooo#.##....++..@                                         .XXXXXXXXXXXXXooXoXXXo.         @#OOOXoXoOOXoXoo#@@@@@++++@@          .XXXXXO#OXXXXXO...........@                             @.......###.OXXXXXXXXXXXXX#               .XO#OXXXO#OXO..#..##..@                         .XXXXXXXO...+@@@@@++@@@+++++#XXXXXO#OXO###OX#         @..###OXXXXX.               .XXXXXXXXXXXO...........@                                            @@@@@@@@@        ",
  75. X"                   @@.++.+.+.#.+##OXOOOO#..++++@                                          +OoXoOoXXXXXXXooXXXXXo#+++..++++##OOooXooOoOXoO#++@@@+@++++@@         +OXXoOO#OXoOOO#......#..@@                               @@.........#OOOOOOOoXXXXX.               .XoOXXoOOOXXO.###...#.@                         .XoOoXXXO...+ @@@@++++++++++.#OOoXoOOOOOO#OOO.        @.####OXXXXX.              +OXoOoXXXXXXXO...........@                                            @ @ @ @ @        ",
  76. X"                    @....++++..++.OoXXXXO.++++                                            +#OXO#OXXXXXoooooXXXXXoOOOOXoOOOOOOXooooooOOOo#@++@@@++@@+@@          +#OXO###OXO#...##+..##..@                                 @O...........#####OXXXXX.               .XXXXXO#OXXXO..#.....#@                         .XO#OXXXO+..@ @++++++++++++++@+#OXXXO#OXO###OX#       @#####OXXXXX.             @#OXO#OXXXXXXXO##.........@                                                             ",
  77. X"                    @+...+.+.+++..OoXXO##+.+.#+                                           +#OOOOOOoXXXXooXXXooOoOOOOOOOOOOOOOoOOXooXooO#.@@+@@@+@@@+@ @         @#OXO###OOOOO+.##.....#.@                                 @#.....#.#..#OO###OXoOoX.               +OOOOOOOXXXXO.#.#.#.##@                         +OOOXXXXO...@  @@++++++++++++++.OXoOO#OOO#OOOO#.      @#####OXoOoX.             +oOOOOOOOOOOoXO#........@@                                                              ",
  78. X"                     ++.....+++++.OXXX#+++++#X.                                           @###OXO#OXXXoooXXXoOOOOOOOOOOOOOOOOOOOOooOXX#++++@@@@@@@@@            @#OXO#####OXO.##.......#@                                 @#....####..OXO###OXO#OX.               +#####OXXXXXO##..#####@                         +#OXXXXXO...     +++++++++++++++#XO#######OXO#OX#     @#####OXO#OX.             .XO#OXO##O##OXO##....##.@                                                               ",
  79. X"                     @@..+.+.++++.#XXXO#####Oo#.                                          +OO#OXXOoOoXXXoooOOOOOOOOOOOOOOOOOOOOXooO###++@@@@@@@@@@@ @           @OOOO#####OOO.###.#...##@                                 @###.#.####.#OOOO#OOOooX.               +#####OOXXXXO##.#.#.##@                         +#OOXXXXO..#+   @ ++++++++++++++.#####OOOOOOOOoO#+    @####OoOO#OX.             +OO#OOO####OXXO#..#.###.@                                                               ",
  80. X"                      @.++++++++++#XXXXooooooXoX.                                         .XO#OXXXO#OXXooOOOOOOOOOOOOOOOOOOOOOoXXX#@@@+@@@@@@@@@@@              @####################..#@                                 @#############oXO###OXXX.               @#######OXXXO###.....#@                         @###OXXXO###@     @++++++++++..+++.###OXXXo#OXO###+   @###OXO###OX.             +#########OXXXO#########@                                                               ",
  81. X"                       @@+.###########OoooooooooO.                                        +OOOOOOOOOXXO#....#.#................###+++#........##.#@             @###########OOO###OO####@                                 @#############OOO###OOOO+               +OO#####OOoXO####.#.##@                         @###OOoXO###@      @@+++++++..+.+++.#OoOOOO#OXO###.+  @#OOXXO###OX.             @#########OOoXO#########@                                                               ",
  82. X"                        @+#XooooXX#@++#oooooXooooX.                                       @.OXOO##oXXX#@@@@@@+@@@@@@@@@@+++@@@+@@@@@#XoOOOOOOOOooO+             @###########OXO###OXO###@                                 @#######################+               .XO#######OXO#########@                         @#####OXO###@        ++++++++...++++#XO#####OXO#####+ @#OXXXO###OX.             @###########OXO#########@                                                               ",
  83. X"                        +#OoooooO#.@++OXXoXooooXooO.                                      @.OOO####OoX#@+@@@+++@+@@@@@@@@++@@@@@@@@@+#..OoOOOOOoOO#+..          @###########OXO#OOOOO###@                                 @#OO######OOO##########.+               +oO#######OXO#####OOO#@                         @#####OXO#OO+        @@+++++...+++++.#####OOoOOOO###.+#OOOXXO###OO+             @##.######.#OXO#OOO#####@                       @.++++++++++++++++++++++++++++++++++++..",
  84. X"                        .XXooXoo#++@+.OXXXXXXoooooXX#                                     @#######..OX#++++@@++++++@@@@@@+++@@@@@@@+++@@#XoOOOOOooOOoX#         @O.#########OXO#OXO#####@                                 @#OXO#####OXO#########..@               @#########OXo#####OXO#@                         @O####OXO#OX.         @.+++++.++++++++.###OXO#oXO#####OXO#OXO#####+             @#...#####..OXO#OXO#####@                       .XXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX",
  85. X"                      @.OXXoooO#.++@+.##OXXXoooXoXoX.                                     @##.#####.OX#++++@++++@+@++@@@@++@+@+++@++@@@@.#OoOOOoOXOOOo#.        @###....####OOOOXXoOOOOO.                                 @#OOOo##OOOOO######.###.@               @##.##..##OXO#####OOOO.                         @...#.OXo#OX.          @+++....+++++++.###OXO#OXoOOOO#OXXOXXO#####+             @#####..###.OXoOXXoOO#OO+                       .XXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOO",
  86. X"                      .XXXXooo#++#+@+.++#XXXXooXXXXo+                                     @#...#####OXO++++++.+@@@+.+@@@++@@@++..++++++@++#XoOOooooOOOoX#       @###.....#####OXXXXXXXXX.                                 @###OXO#OXo#######..####@               @#...##..#OXO#######OX.                         @.....OXO#OX.           @++...+++++..++..#OXo#OXXXXXO#OXXXXXO#####@             @######..#..OXXXXXXXO#OX.                       .XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO.",
  87. X"                    @.OXXoXoO#.+++++.++..#oXXXoOoXXXO.                                    @#..######OX#++++.+.++@ @@ @ @ @ @@@+.@@+@++@@@+.#OoooXooOOOOo+       @#.##..#.#.##OXXXXXXXXoO+                                 +OOooXO#OOOOO######..#.#@               @O#.##...#OXXOO##OO#OX.                         @.....OXoOOO.            @@..+.+.+..+++..##OO#OOoXoOO#OXXXXXO#####@             @#..##.####.OXXXXXXXoOoXO.                      .XXXXOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoOO#.",
  88. X"                    .XXXXooo#+++++..++..++#XXXO#OXXXXX#                                   @....#####OX#++...++..@            +@++@@@+++@@+++#XXoooooOOOO+       @..#..##....OXXXXXXXXXO#+                                 .XXXXXO###OXO########...@               @#####....OXXXO#OXO#OX.                         @.....OXXXo#+             @.++......++....######OXO###OoXXXXO#####@             @....#####..OXXXXXXXXXXXXX#                     .XXXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOoXO...",
  89. X"                  @.OOoXXoXX#++++++#..+..+##OOOOOOoXoO.+                                  @....##.#.OXO+...+..++@            @ @@@++++++++++.#OooXooXoOoO.      @.###.#.##.#OXXXXXXXXXoO#.                              @.OOXXXXoOOOXXO.#.#.##....@               @##..#...#OXXXoOXXoOXX.                         @....+OXoO##+              @@++.....++++...#####OOO###OXoXXXO#####@              @@...#.#.#.#OoXXXXXXXXXXX.                     .XXXXXO...........OOooO##.........#O#...",
  90. X"                  .XO#OXXXXXO.++++.#......++.#OXo#OXO###+                                 @....#....OXO...+++..+                 +.........+++#ooXXooXXooX#     @#####...###OXXXXXXXXXXXXX#                             .XO#OXXXXXXXXXO......##...@               @#......##OXXXXXXXXXXX.                         @#....OXO###+               @++......++++..+##########OXXXXXO..###@               @........###OXXXXXXXXXXX.                     .XXXXX#@@@@@@@@@@@#XXXO#+@@+@@@@@@+.....",
  91. X"                 +#OOOXXXXOO#...+++#........#OoOOOXXoOO##.                                 +.....#..OXO.........+               @ +#.+...#.++.#XXXXXXXoXXX.      @...#.####.OXXoXXXXXoXXXX.                             .XXOoXXXXXXXXXO......#..@@                @#.......#OXXXXXoOoXXX.                         @#....OXoOOO+                @@......++......#########OOoXoXO.###.@               @........#.#OXXoXXXXoXoX.                     .XXXO#++@@@@@@+###OOoXO...++@+@@@@@+@...",
  92. X"                @###OXXXXXO....#.@+.......##OXO#OXXXXXO#OX#                               @+@.++.##.OXO...###.##@                 +#.++.##.#..OXXXXXXXXooo+       @...####..OXXoXXXXXooXXX.                             .XXXXXXXXXXXXXO.........@                 @.........OXXXXXO#OXXX.                         @.....OXXXXX.                 @..............+##########OoXXO###..@               @...........OXooXXXXXooo.                     .XXX#@@@@@@@@@#XXXO#OXO.###O.@@@@@@@....",
  93. X"               @.###OOoXoO#...#.+ .....#...#OO##OXoOOOO#OX#+                              @++.+++.+.#XO.#.#..#.#@                  @+..#.##...OXXXoOooooXo.       @.........#OOooXXXooooXX.                             .XXXXXXXXXXXO##.........@                 @.........OXXXXXoOXXXX.                         @.....OXXXXX.                  @+..............#########OoooO#.##.@               @...........OXooXXXXXoooO+                    .XO#++@@@@+###OXXXO#OXO..###.++.+@@@@@..",
  94. X"              @#O#####OXO#...#..+ @##..#..##..##OXO#####OXO#+                              +++++++++#XO###..####@                   +########.OXXXO#OoXXoX+       @.....+++...OooXXXXoooXX.                             .ooXXXXXXXXX#++.........@                 @.........OXXXXXXXXXXX.                         @....+OXXXXX.                   @..............+########Oooo#.##..@               @...........OXoooXXXXXooXX.                   .X#@+@@@@@#XXXXoXXO#OXO..#######+@@@@@@.",
  95. X"             +.####.###O###.#..@   @.OO##.###O##OOO#####OOO..+                            @+++++++++OXoOO##.####@                   @#OOO#OO##OXoOO#OOOOoX.       @..@.......+#XXXXoXooooXO.                          @.OooXXXXXXooXO+.........+@                  +.@......OXXXXXXXXooX.                          .@.@.OXXoXX.                    @@..........#....######OoooO.###.@                @@..++.....#OOXXXXoXooooX.                    #      +#OXXXXoXXOOOXO.########@@ @ @ @",
  96. X"            @..###...O...###..+     .XO#####OXO###########...#+                           @.++++++..OXXXO#######@                   @#OXO#OXO#OXO#######OX.       @.@+......++#XXXXooXXooXXX.                         .ooooooooXXooXO.........++                  @+++@.....OXXXXXXXoooo.                         @+++++#XXooX.                     @.........##....######OoooO###..@                 @.@@+++.....OXXXXooooooX.                           #XXXXXXXXXO#OXO#########+       ",
  97. X"           @....#.#.OO#.####.       .OO#OOO#OOO#OO########...#@                           @@.++++.++OXoOOOOOO#OO+                   @#OOOOOoOOoXO#######OO+        +@+++.+...+#OOXoooXoooXoX.                         .oooXOXoooXoO#.+.+.+.+..+@                  @+.@.....+OXXXXoXXXooX.                          +++++OXoXXX.                      @@....#....#.....####OOooO.#...@                 @...+.......OXoXoooooooXO+                          +.OOoXoOOOO#OXoO##OOO#OO+       ",
  98. X"          @O###....#OXOO####+       +###OXO#####OXO..######...@                            .+++++..+#XO#OXXXO#OX.                   @###OXO#OXXXO+########+          ++++++.+++.OoooooooooXX.                         .ooooXooXoXXO++++++++++.@                   @.......++#XXXXoXXoooX.                         @++++.OXXXXX.                       +##.##..........######Oo#.....@                 @...........OXooooooooooXX#                           +#OXO#####OXXXO#OXO#OX.       ",
  99. X"         @.#.#....##OOO###++         +.#OOOOO###OO#.#....#.#..@@                          @++++.+.+.#XO#OXXOOOXX.                 @.OOOOXXO#OOoXO..######.@         @++.+....+++#OoooooooooXO+                      @.OooXOoooooOO#++++++.+.++@                   @+.@.+..+.#XXXoooXoXoX.                         @@+...OXXXXX.                        @.+.##....#.#.#.#####OoO.....@                  @@.@..+...+.#oooOoooooooo#.                          +OoXoOOOO#OXXooOoXoOoX.       ",
  100. X"        @#O#.......#######+           +###OXO######+..+++..#....@                         @.++..+++.OXO#oXO#oXXX.                 .oXXXXXXO###OXO.######..@         @++.....++++.#OoooooooooXX.                     .oooooXoXooXO#...++++....+                     ++++++++.OXXXXoooXXoo.                         @.....OXXXoX+                         @..####..#####...###Oo#.....@                    +...++.++++#XoOOooooooXoX.                         .XXXXXXXO#OXoooooXXXXX.       ",
  101. X"       +........#OOOO###++             @#OoXoOOOOOOO.+.+...#....@@                        @@.+.+.+.+OXXOoXO#OXXX.               @.OXXXXXoXoOOOOO#..##.#.#+@          @@.+.+.+++++.OooooOoOooOo#.                  @.OooXoooooooX#..++++++.+.@@                    @++++++++.#XXoXooooXoo.                         @+++.+OXoooX.                          @.####.#####.#.####OXO+....@                   @++.+++.++++.#OooooooOOOoXO.                      +.OXXXXXXXoOXXXoooooXXXX.       ",
  102. X"      @...+++...OXXXO###@               .XXXXXXoXXoo#++++.......@+@                        .+..++..+#XXXXoO#OXXX.               .XXXXXoXooooXXo##..##.....@           @..+++++++++#XXooOOOOoOOoX.                 .XXoooooooooXoO+++++++++++                       +++++++++#XXooXXooooo.                          +.+++#XXooo+                           @#########...#####OX#++...@                    +...+++++++++#XXoooOOOOOooX.                     .XXXXoXXooXXXXooooooXXoo.       ",
  103. X"    @....@....#OOOoXO#+@                 .OXXXXooXooO##+..+.+.+..++.                      +O.+.+.++.#XXXXooOoXXX.           @.++OXXXXXooooooXXO#.+.#....@@            @@++++++++++.#OooOoOoooOOOO.              @.OXoXOXOOooooO#.++++++++++@@                     @+++++++++#XXooXoooooX.                         +O++++#XXooX.                            @.####.####.####.OXO+....@                   @ ++++++++++++.#OXoOoOOooooX#.++                  .XXoXooXooXXXXoooooooXoo.       ",
  104. X"    .XO.+++...OXO#OXO#@                   .XXXooooooXXO...++++..++OX#                     .XO++.++..OXXXXXXXXoXX.           .XXOOXOXOoooXooXXXO#.++.....@              +++++++++++++#XXoooooOOOOOX.             .XXoooXooOOooX#+++++++++++@@                      @+++++++++#XoooooooooX.                         .XO+++#XXooo.                             @###..####...#..OXO.....@                     @+++++++++++++#XoOOOooooooXXOO.                 .oooooooXooooXXooooooooo.       ",
  105. X"++..OXOO.++.#OOXoOXXoO#.+.          @..+++#oOXooXoXoXXOO#+.+++.OO#OXO.++++..      @.++++..OXO#.+.+++OXXoXXXooooO#+++++++++++OOOOOXoOoOOOOOoXoO##.+.+.+..@             @ +++++++@++++.#OXoOoOOOOooo#+++      @.++OOoOOOOOOOoXO#.++++@++++++@ @           @.++++++++.###.+++++#XXooooooXoXO+++++++          @.++++..OXO#.+#XXoooO.++++++..                     @.##.#####.###.OO#..+.+@                      @@@++++++++++.#OoOOOooOOOOOoO#+++           @++#OOoOOooooooO###OOoooooo.       ",
  106. X"OOoXXXXXO+++#XXXXXXXXXoOOO.         .XoOOOOOOOOXXXXXooXX#+++++#XXXXXXXXOOOXX#     .XXOOOOXoXXXO+++++#XXoXXooooOOOOOOOOOOOOOOOOOOooOOOOOOOOoXO.....+++++.@               @+++++@@@++++@#XoOOOOOOooXOOOO.     .XXOOOOOOOOOOOoX#+++++@@++++++@             .XXOOOOOOOXXXX#+++++#XXoooooXXXXOOOOOOOO.         .XXOOOXXXXXX#+OXXooXXXXOOOOOOX.                     +###############...+++                         @@++++++++++@#XoOOoOOOOOOOOOOOO.         @#OOOOOOOOOXOooo#@@+.#Oooooo.       ",
  107. X"OOOoOXoXO#.+#XXXXXooOXOOO#+         .XXoOOOOOOOooOXXXoXX#+++.#oXooOXOoOOOoOO+     .XXoOOOoooXXO###.+#XoooXoOoOoOOOOOOOOOOOOOOOOOOOOOOOOOOoO#.++.++.+++@@                 @@++++@+++++@.#OoOOOOOOoOOOOO#+++++OOOOOOOOOOOOOXO#+++@+@@@@+@@@               .XXoOOOOOOOoOXO###.+#XoooXoXooOoOOOOOOO#          .XXoOOOoOooXO#OXXXXXXOOOOOOoOO+                      @.##############.++++@                        @@++++++++@@@.##.OXoOOOOOOOOOOO#+++++++++##OOOOOOOOOoXoO#+++++.##OOoo.       ",
  108. X"OOOOOOOXXX#+#XXXXXoOOOOO#.          .XXXoOOOOOOOOOoXXXoo#+++#XXXoOOOOOOOXXO.      .XXXoOOOOXooXXXX#+#XXooooOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXo#+++++++...+@                    +++++++++++++#XoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoX.++@@@@@@@@@@@@               .XXXoOOOOOOOOOOXXX#+#XXoXXXooOOOOOOOOO#.@         .XXXoOOOOOoXXXXXXXXXOOOOOOoXO.                        @#############..++++                          @@+++++++@@@++@@#XoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOX#@+++++@+..#OX.       ",
  109. X"oOOOOOOoooO#OXXoOoOOOO##..@         .XXXXOOOOOOOOOOooOXXO###OoOoOOOOOOOoOO#.+     .XXXXOOOOOOOoXXXO#oXoOoOOOOOOOOOOOOOOOOOOOOOOOOOO#O##.##.++++++@++@                      @@+@@@@+@+++++##.#oOOOOOOOOOOOOOOOOOOOOOOOoO.##++@@@@@@@@@@@                 .XXXXOOOOOOOOOOXOXO#oXoOooOoOOOOOOOO###.          .XXXXOOOOOOoXXXXXXXoOOOOOoOO#.@                        @.#########OO#.++++@                          @@@@@@@@@@@+@@@.#OoOoOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoO#++@@+@@@++..#O+       ",
  110. X"XXXOOOOOOOOXXXOOOOOOOO#...+         .XXXXXXOOOOOOOOOOOoXXXXXoOOOOOOOOOoXO...      .XXXXXXOOOOOooooXXXXoOOOOOOOOOOOOOOOOOOOOOOOOOOO####.++++@@+++@@@+@                        ++@@@@@++@@@@@@#XoOOOOOOOOOOOOOOOOOOOOOoX#+@@++++@@@@@@@@                  .XXXXXoOOOOOOOOOOOoXXXoOOOOOOOOOOOOO#...@         .XXXXXXOOOOOOXXXXXoOOOOOoXO...                          +#########OX#+++++@                            @@@@@@@++@@@@++#XXXoOOOOOOOOOOOOOOOOOOOOOOOOOOOoX#++@@@@@@@@+@@+.@       ",
  111. X"XXO+......#####..#..##....          .XXXXXO...........######..........#O#...@     .XXXXXO..#.#.########.#.#.........................+.++++@@++++@+@                         @ @+@@@@@+@@@@@@.##.OooOOOOOOOOOOOOoOo#..#++@@@@@@@@@@@@@ @                 .XXXXXO...........####....#........##...          .XXXXXO.....######......#O#...@                          @.#######OX#+++++                             @ @@@@@@+@@@+@++####.#oOXOOOOOOOOOOOOOOOoOoO....#.@@@@@@@@@@@+@@@        ",
  112. X"XX#++@@@@@@@@@@@@@@@+.....@         .XXXXX#@@@@@@@@@@@@@@@@@@@+@@+@@@@++....      .XXXXX#++++++++++@++++++@@@@@@@@@@+++++++@@@@@+++++@++++++++@@@+@                           @+@@@@@@@@@@@@++++#XXXoOOOOOOOOOoXXX#@+@+@@@@@@@@@@++@                    .XXXXX#@@@@@@@@@@@@@@@@@+@@@@@@@@@+.....@         .XXXXX#@@@@@@@@@@@@@@@+@+.....                            @#######OX#+++++@                               @@@@@@@@++@@+@++@@#XXXOOOOOOOOOOOOOOoXXX#++@@@@@@@@@@@@@@@@+          ",
  113. X"##+@@@@@@@@@@@@@@@@@++....@         .XXXO#++@@@@@@@@@@@@@@@@@@@@@@@@@@+@....@     .XXXO#.++++@@+++@@@++++++@@@@@@@@@@@+++++@@@@@@@+@@@@++@++++@@@                              @ @@@@@@@@@@@@+@++###...........###++@@@@@@@@@@@@@@ @                    .XXXO#++@@@@@@@@@@@@@@@@@@@@@@@@@@++@...@         .XXXO#++@@@@@@@@@@@@@@@@@@....@                            @.###OOoXO+++++@                                @ @@@@@@@+@@@@+@@+O###..............###++@@@@@@@@@@@@@@@ @@          ",
  114. X"@@@@@@@@@@@@@@@@@@@@@@+...@         .XXX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@     .XXX#@@+++@@@@@++@@@@+++@@@@@@@@@@@@@@@+@@@@@@@@@@@@@+@@++@@@@                                   @@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@@@@@@@@@@@@@                        .XXX#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+...          .XXX#@@@@@@@@@@@@@@@@@@@@@@...+                             +###OXXXO.++++                                     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@@              ",
  115. X"@@@@@@@@@@@@@@@@@@@@@@@++.@         .XO#++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@..      .XO#++@@@@@@@@@+@@@@+@++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@@ @ @ @                                  @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @                         .XO#++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+++.@         .XO#++@@@@@@@@@@@@@@@@@@@@+@..                               @.#OXO#.+.+++@                                    @ @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ @ @ @             ",
  116. X"@@@@@@@@@@@@@@@@@@@@@@@@+.@         .X#@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+     .XO++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                                               @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                              .X#@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.@         .X#@+@@@@@@@@@@@@@@@@@@@@@@@+.@                               @#OX#@@@+..+@                                          +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                      ",
  117. X" @ @ @ @ @ @ @ @ @ @ @ @ @           #      @  @ @ @ @ @ @ @ @ @ @ @ @ @ @@        # +   @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @                                               @ @ @ @@@@@@@@@@@@@@@@@@@  @   @                                #      @  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @           #      @  @  @ @ @ @ @ @ @ @@                                 +.#++@@@+++@                                          @ @ @ @@@@@@@@@@@@@@@@@@@@@@@@  @  @ @                     ",
  118. X"                                                                                                                                                                                                 +@@@@@@@@@@@@@@@@@                                                                                                                                                        ++@@@@@+.@                                                  @@@@@@@@@@@@@@@@@@@@@                              "};
  119. END_OF_FILE
  120.   if test 35636 -ne `wc -c <'bitmaps/titleBig.xpm'`; then
  121.     echo shar: \"'bitmaps/titleBig.xpm'\" unpacked with wrong size!
  122.   fi
  123.   # end of 'bitmaps/titleBig.xpm'
  124. fi
  125. if test -f 'gun.c' -a "${1}" != "-c" ; then 
  126.   echo shar: Will not clobber existing file \"'gun.c'\"
  127. else
  128.   echo shar: Extracting \"'gun.c'\" \(16090 characters\)
  129.   sed "s/^X//" >'gun.c' <<'END_OF_FILE'
  130. X#include "copyright.h"
  131. X
  132. X/*
  133. X *  Include file dependencies:
  134. X */
  135. X
  136. X#include <xpm.h>
  137. X#include <stdio.h>
  138. X#include <math.h>
  139. X#include <assert.h>
  140. X
  141. X#include "bitmaps/bullet.xpm"
  142. X#include "bitmaps/tink.xpm"
  143. X
  144. X#include "error.h"
  145. X#include "audio.h"
  146. X#include "score.h"
  147. X#include "init.h"
  148. X#include "main.h"
  149. X#include "stage.h"
  150. X#include "blocks.h"
  151. X#include "paddle.h"
  152. X#include "misc.h"
  153. X#include "level.h"
  154. X#include "ball.h"
  155. X#include "special.h"
  156. X
  157. X#include "gun.h"
  158. X
  159. X/*
  160. X *  Internal macro definitions:
  161. X */
  162. X
  163. X#define BULLET_DY            -10
  164. X
  165. X#define BULLET_WIDTH        7
  166. X#define BULLET_HEIGHT        16
  167. X
  168. X#define BULLET_START_Y        (PLAY_HEIGHT - 40)
  169. X
  170. X#define BULLET_WC            (BULLET_WIDTH / 2)
  171. X#define BULLET_HC            (BULLET_HEIGHT / 2)
  172. X
  173. X#define TINK_WIDTH            10
  174. X#define TINK_HEIGHT            5
  175. X
  176. X#define TINK_WC                (TINK_WIDTH / 2)
  177. X#define TINK_HC                (TINK_HEIGHT / 2)
  178. X
  179. X#define X2COL(col, x)         (col = x / colWidth)
  180. X#define Y2ROW(row, y)         (row = y / rowHeight)
  181. X
  182. X#define BULLET_FRAME_RATE    5
  183. X
  184. X#define MAX_BULLETS            20    
  185. X
  186. X/* Should be the same */
  187. X#define MAX_MOVING_BULLETS    10    
  188. X#define MAX_TINKS            10    
  189. X
  190. X#define TINK_DELAY            100    
  191. X
  192. X/*
  193. X *  Internal type declarations:
  194. X */
  195. X
  196. X#if NeedFunctionPrototypes
  197. Xstatic int     ResetBulletStart(Display *display, Window window);
  198. Xstatic void CheckTinks(Display *display, Window window);
  199. Xstatic void AddTink(Display *display, Window window, int xpos);
  200. Xstatic void ClearTinks(void);
  201. Xstatic void UpdateBullet(Display *display, Window window);
  202. Xstatic int    StartABullet(Display *display, Window window, int xpos);
  203. Xstatic void ClearBullet(int i);
  204. Xstatic void DrawTheTink(Display *display, Window window, int x, int y);
  205. Xstatic void EraseTheTink(Display *display, Window window, int x, int y);
  206. Xstatic void DrawBullet(Display *display, Window window, int i);
  207. Xstatic int CheckForBulletCollision(Display *display, Window window, 
  208. X    int x, int y);
  209. Xstatic int CheckBallBulletCollision(Display *display, Window window, 
  210. X    int bx, int by, int j);
  211. X#else
  212. Xstatic int     ResetBulletStart();
  213. Xstatic void CheckTinks();
  214. Xstatic void AddTink();
  215. Xstatic void ClearTinks();
  216. Xstatic void UpdateBullet();
  217. Xstatic int     StartABullet();
  218. Xstatic void ClearBullet();
  219. Xstatic void DrawTheTink();
  220. Xstatic void EraseTheTink();
  221. Xstatic void DrawBullet();
  222. Xstatic int CheckForBulletCollision();
  223. Xstatic int CheckBallBulletCollision();
  224. X#endif
  225. X
  226. Xstatic struct 
  227. X{
  228. X    int xpos;            /* x position of tink centre */
  229. X    int    clearFrame;        /* Last frame to clear it */
  230. X} tinks[MAX_TINKS];
  231. X
  232. Xstatic struct 
  233. X{
  234. X    int xpos;            /* x position of bullet */
  235. X    int ypos;            /* y position of bullet */
  236. X    int oldypos;        /* previous y position */
  237. X    int dy;                /* Change in y positoon */
  238. X} bullets[MAX_MOVING_BULLETS];
  239. X
  240. X/*
  241. X *  Internal variable declarations:
  242. X */
  243. X
  244. Xstatic Pixmap bulletPixmap, bulletMask;
  245. Xstatic Pixmap tinkPixmap, tinkMask;
  246. Xstatic int numBullets;
  247. X
  248. X#if NeedFunctionPrototypes
  249. Xvoid InitialiseBullet(Display *display, Window window, Colormap colormap)
  250. X#else
  251. Xvoid InitialiseBullet(display, window, colormap)
  252. X    Display *display;
  253. X    Window window;
  254. X    Colormap colormap;
  255. X#endif
  256. X{
  257. X    XpmAttributes   attributes;
  258. X    int            XpmErrorStatus;
  259. X
  260. X    attributes.valuemask = XpmColormap;
  261. X    attributes.colormap = colormap;
  262. X
  263. X    /* Create the xpm pixmap bullet */
  264. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, bullet_xpm,
  265. X        &bulletPixmap, &bulletMask, &attributes);
  266. X    HandleXPMError(display, XpmErrorStatus, "InitialiseBullet(bullet)");
  267. X
  268. X    /* Create the xpm pixmap tink for bullet */
  269. X    XpmErrorStatus = XpmCreatePixmapFromData(display, window, tink_xpm,
  270. X        &tinkPixmap, &tinkMask, &attributes);
  271. X    HandleXPMError(display, XpmErrorStatus, "InitialiseBullet(tink)");
  272. X
  273. X    /* Free the xpm pixmap attributes */
  274. X    XpmFreeAttributes(&attributes);
  275. X
  276. X    SetNumberBullets(4);
  277. X    ClearTinks();
  278. X    ClearBullets();
  279. X}
  280. X
  281. X#if NeedFunctionPrototypes
  282. Xstatic void CheckTinks(Display *display, Window window)
  283. X#else
  284. Xstatic void CheckTinks(display, window)
  285. X    Display *display;
  286. X    Window window;
  287. X#endif
  288. X{
  289. X    int i;
  290. X
  291. X    /* Clear and tinks that need to be cleared */
  292. X    for (i = 0; i < MAX_TINKS; i++)
  293. X    {
  294. X        /* Is this tink active */
  295. X        if (tinks[i].xpos != -1)
  296. X        {
  297. X            /* Time to clear tink? */
  298. X            if (frame >= tinks[i].clearFrame)
  299. X            {
  300. X                /* Clear the tink! */
  301. X                EraseTheTink(display, window, tinks[i].xpos, 2);
  302. X                    
  303. X                /* Free the tink up for another */
  304. X                tinks[i].xpos = -1;
  305. X                tinks[i].clearFrame = 0;
  306. X            }
  307. X        }
  308. X    }
  309. X}
  310. X
  311. X#if NeedFunctionPrototypes
  312. Xstatic void AddTink(Display *display, Window window, int xpos)
  313. X#else
  314. Xstatic void AddTink(display, window, xpos)
  315. X    Display *display;
  316. X    Window window;
  317. X    int xpos;
  318. X#endif
  319. X{
  320. X    int i;
  321. X
  322. X    /* Cycle through tinks and try to add one */
  323. X    for (i = 0; i < MAX_TINKS; i++)
  324. X    {
  325. X        /* Is this tink free? */
  326. X        if (tinks[i].xpos == -1)
  327. X        {
  328. X            /* Set the tink array position */
  329. X            tinks[i].xpos = xpos;
  330. X            tinks[i].clearFrame = frame + TINK_DELAY;
  331. X
  332. X            /* Draw the new found tink! */
  333. X            DrawTheTink(display, window, xpos, 2);
  334. X
  335. X            return;
  336. X        }
  337. X    }
  338. X
  339. X    /* Full tink array - lots of shooting? */
  340. X    ErrorMessage("Warning: Cannot draw tink - tink array full.");
  341. X}
  342. X
  343. X#if NeedFunctionPrototypes
  344. Xstatic void ClearTinks(void)
  345. X#else
  346. Xstatic void ClearTinks()
  347. X#endif
  348. X{
  349. X    int i;
  350. X
  351. X    /* Initialise tinks array to empty */
  352. X    for (i = 0; i < MAX_TINKS; i++)
  353. X    {
  354. X        tinks[i].xpos = -1;
  355. X        tinks[i].clearFrame = 0;
  356. X    }
  357. X}
  358. X
  359. X
  360. X#if NeedFunctionPrototypes
  361. Xstatic void UpdateBullet(Display *display, Window window)
  362. X#else
  363. Xstatic void UpdateBullet(display, window)
  364. X    Display *display;
  365. X    Window window;
  366. X#endif
  367. X{
  368. X    int i, j;
  369. X    int row, col;
  370. X    int ballX, ballY;
  371. X    struct aBlock *blockP;
  372. X
  373. X    /* Obtain the position of the ball */
  374. X    GetBallPosition(&ballX, &ballY, 0);
  375. X
  376. X    /* Draw all bullets that need updating */
  377. X    for (i = 0; i < MAX_MOVING_BULLETS; i++)
  378. X    {
  379. X        /* Is this bullet active */
  380. X        if (bullets[i].xpos != -1)
  381. X        {
  382. X            /* Update bullet position using dy value */    
  383. X            bullets[i].ypos = bullets[i].oldypos + bullets[i].dy;
  384. X
  385. X            /* Has the bullet gone off the top edge */
  386. X            if (bullets[i].ypos < -BULLET_HC)
  387. X            {
  388. X                /* Clear the bullet from the screen */
  389. X                EraseTheBullet(display, window, 
  390. X                    bullets[i].xpos, bullets[i].oldypos);
  391. X
  392. X                /* Draw a tink on the top edge */
  393. X                AddTink(display, window, bullets[i].xpos);
  394. X
  395. X                /* Free the bullet up for another */
  396. X                ClearBullet(i);
  397. X
  398. X                continue;
  399. X            }
  400. X
  401. X            if (mode == MODE_GAME)
  402. X            {
  403. X                for (j = 0; j < MAX_BALLS; j++)
  404. X                {
  405. X                    if (balls[j].active == True)
  406. X                    {
  407. X                        /* Has the bullet killed the ball */
  408. X                        if (CheckBallBulletCollision(display, window, 
  409. X                            bullets[i].xpos, bullets[i].ypos, j))
  410. X                        {
  411. X                            /* Clear the bullet from the screen */
  412. X                            EraseTheBullet(display, window, 
  413. X                                bullets[i].xpos, bullets[i].oldypos);
  414. X                            ClearBullet(i);
  415. X
  416. X                            /* Kill the ball off */
  417. X                            ClearBallNow(display, window, j);
  418. X
  419. X                            /* Play the lovel ahhh pop sound for ball shot */
  420. X                            if (noSound == False) playSoundFile("ballshot", 50);
  421. X                            break;
  422. X                        }
  423. X                    }
  424. X                }
  425. X            }
  426. X
  427. X            /* Convert the new bullet pos to rows and cols for collision */
  428. X            X2COL(col, bullets[i].xpos);
  429. X            Y2ROW(row, bullets[i].ypos);
  430. X
  431. X            /* Pointer to the correct block we need - speed things up */
  432. X            blockP = &blocks[row][col];
  433. X
  434. X            /* Check if the bullet has hit a brick or something */
  435. X            if (CheckForBulletCollision(display, window, 
  436. X                bullets[i].xpos, bullets[i].ypos) == True)
  437. X            {
  438. X                /* Clear the bullet from the screen */
  439. X                EraseTheBullet(display, window, 
  440. X                    bullets[i].xpos, bullets[i].oldypos);
  441. X
  442. X                /* Switch on the type of block hit */
  443. X                switch (blockP->blockType)
  444. X                {
  445. X                    case COUNTER_BLK:
  446. X                        if (blockP->counterSlide == 0)
  447. X                        {
  448. X                            /* Counter has counted down to 0 so kill off */
  449. X                            DrawBlock(display, window, row, col, KILL_BLK);
  450. X                        }
  451. X                        else
  452. X                        {
  453. X                            /* Decrement counter block and draw new one */
  454. X                            blockP->counterSlide--;
  455. X                            DrawBlock(display, window, row, col, 
  456. X                                COUNTER_BLK);
  457. X                        }
  458. X                        break;
  459. X
  460. X                    case HYPERSPACE_BLK:
  461. X                        DrawBlock(display, window, row, col, HYPERSPACE_BLK);
  462. X                        break;
  463. X
  464. X                    case BLACK_BLK:
  465. X                        DrawBlock(display, window, row, col, BLACK_BLK);
  466. X                        break;
  467. X
  468. X                    case REVERSE_BLK:        
  469. X                    case MGUN_BLK:        
  470. X                    case STICKY_BLK:        
  471. X                    case WALLOFF_BLK:        
  472. X                    case MULTIBALL_BLK:        
  473. X                    case DEATH_BLK:        
  474. X                        /* Shoot the block times to kill it */
  475. X                        blockP->counterSlide--;
  476. X
  477. X                        if (blockP->counterSlide == 0)
  478. X                        {
  479. X                            /* Ok then a hit, explode that block */
  480. X                            DrawBlock(display, window, row, col, KILL_BLK);
  481. X                        }
  482. X                        else if (noSound == False)
  483. X                            playSoundFile("shootdeath", 70);
  484. X                        break;
  485. X
  486. X                    default:
  487. X                        /* Ok then a hit, explode that block */
  488. X                        DrawBlock(display, window, row, col, KILL_BLK);
  489. X                        break;
  490. X                }
  491. X
  492. X                /* Free the bullet up for another */
  493. X                ClearBullet(i);
  494. X            }
  495. X            else
  496. X                DrawBullet(display, window, i);
  497. X
  498. X            /* Keep track of old position */
  499. X            bullets[i].oldypos = bullets[i].ypos;
  500. X
  501. X        }    /* Bullet active? */
  502. X    }    /* For loop */
  503. X}
  504. X
  505. X
  506. X#if NeedFunctionPrototypes
  507. Xstatic int StartABullet(Display *display, Window window, int xpos)
  508. X#else
  509. Xstatic int StartABullet(display, window, xpos)
  510. X    Display *display;
  511. X    Window window;
  512. X    int xpos;
  513. X#endif
  514. X{
  515. X    int i;
  516. X
  517. X    /* Cycle through bullets and try to add one */
  518. X    for (i = 0; i < MAX_MOVING_BULLETS; i++)
  519. X    {
  520. X        /* Is this bullet free? */
  521. X        if (bullets[i].xpos == -1)
  522. X        {
  523. X            /* Set the bullet array position */
  524. X            bullets[i].xpos = xpos;
  525. X
  526. X            /* Get out of here */
  527. X            return True;
  528. X        }
  529. X        
  530. X        /* Break out as the machine gun is not active */
  531. X        if (fastGun == False) return False;
  532. X    }
  533. X
  534. X    /* Full moving bullet array - lots of shooting? */
  535. X    ErrorMessage("Warning: Cannot draw bullet - bullet array full.");
  536. X
  537. X    return False;
  538. X}
  539. X
  540. X#if NeedFunctionPrototypes
  541. Xstatic void ClearBullet(int i)
  542. X#else
  543. Xstatic void ClearBullet(i)
  544. X    int i;
  545. X#endif
  546. X{
  547. X    /* Setup the bullet entry */
  548. X    bullets[i].xpos             = -1;
  549. X    bullets[i].ypos             = BULLET_START_Y;
  550. X    bullets[i].oldypos             = BULLET_START_Y;
  551. X    bullets[i].dy                 = BULLET_DY;
  552. X}
  553. X
  554. X#if NeedFunctionPrototypes
  555. Xvoid ClearBullets(void)
  556. X#else
  557. Xvoid ClearBullets()
  558. X#endif
  559. X{
  560. X    int i;
  561. X
  562. X    /* Initialise bullets array to empty */
  563. X    for (i = 0; i < MAX_MOVING_BULLETS; i++)
  564. X        ClearBullet(i);
  565. X}
  566. X
  567. X#if NeedFunctionPrototypes
  568. Xvoid FreeBullet(Display *display)
  569. X#else
  570. Xvoid FreeBullet(display)
  571. X    Display *display;
  572. X#endif
  573. X{
  574. X    if (bulletPixmap)    XFreePixmap(display, bulletPixmap);
  575. X     if (bulletMask)     XFreePixmap(display, bulletMask);
  576. X
  577. X    if (tinkPixmap)    XFreePixmap(display, tinkPixmap);
  578. X     if (tinkMask)     XFreePixmap(display, tinkMask);
  579. X}
  580. X
  581. X#if NeedFunctionPrototypes
  582. Xvoid SetNumberBullets(int num)
  583. X#else
  584. Xvoid SetNumberBullets(num)
  585. X    int num;
  586. X#endif
  587. X{
  588. X    /* Set the number of bullets available */
  589. X    numBullets = num;
  590. X}
  591. X
  592. X#if NeedFunctionPrototypes
  593. Xvoid IncNumberBullets(void)
  594. X#else
  595. Xvoid IncNumberBullets()
  596. X#endif
  597. X{
  598. X    /* Increment the number of bullets */
  599. X    numBullets++;
  600. X
  601. X    /* But don't give to many */
  602. X    if (numBullets > MAX_BULLETS) 
  603. X        numBullets = MAX_BULLETS;
  604. X}
  605. X
  606. X#if NeedFunctionPrototypes
  607. Xvoid DecNumberBullets(void)
  608. X#else
  609. Xvoid DecNumberBullets()
  610. X#endif
  611. X{
  612. X    /* Decrement the number of bullets */
  613. X    numBullets--;
  614. X
  615. X    /* But not to far */
  616. X    if (numBullets < 0) 
  617. X        numBullets = 0;
  618. X}
  619. X
  620. X#if NeedFunctionPrototypes
  621. Xint GetNumberBullets(void)
  622. X#else
  623. Xint GetNumberBullets()
  624. X#endif
  625. X{
  626. X    assert(numBullets >= 0);
  627. X
  628. X    /* How many bullets do I have */
  629. X    return numBullets;
  630. X}
  631. X
  632. X#if NeedFunctionPrototypes
  633. Xvoid shootBullet(Display *display, Window window)
  634. X#else
  635. Xvoid shootBullet(display, window)
  636. X    Display *display;
  637. X    Window window;
  638. X#endif
  639. X{
  640. X    /* Only shoot if no bullet is active and bullets and ball active */
  641. X    if ((GetNumberBullets() > 0) && (IsBallWaiting() == False))
  642. X    {
  643. X        /* Reset the bullet to the starting possy to go forward */
  644. X        if (ResetBulletStart(display, window) == True)
  645. X        {
  646. X            /* Remove a bullet from the ammunition */
  647. X            DeleteABullet(display);
  648. X
  649. X            /* Play a shooting sound */
  650. X            if (noSound == False)
  651. X                playSoundFile("shoot", 50);
  652. X        }
  653. X    }
  654. X    else if (GetNumberBullets() == 0)
  655. X    {
  656. X        /* Play an trigger clicking sound */
  657. X        if (noSound == False)
  658. X            playSoundFile("click", 100);
  659. X    }
  660. X}
  661. X
  662. X#if NeedFunctionPrototypes
  663. Xvoid EraseTheBullet(Display *display, Window window, int x, int y)
  664. X#else
  665. Xvoid EraseTheBullet(display, window, x, y)
  666. X    Display *display;
  667. X    Window window;
  668. X    int x;
  669. X    int y;
  670. X#endif
  671. X{
  672. X    /* Erase the bullet pixmap from the window */
  673. X    XClearArea(display, window, x - BULLET_WC, y - BULLET_HC, 
  674. X        BULLET_WIDTH, BULLET_HEIGHT, False);
  675. X}
  676. X
  677. X#if NeedFunctionPrototypes
  678. Xstatic void DrawTheTink(Display *display, Window window, int x, int y)
  679. X#else
  680. Xstatic void DrawTheTink(display, window, x, y)
  681. X    Display *display;
  682. X    Window window;
  683. X    int x;
  684. X    int y;
  685. X#endif
  686. X{
  687. X    /* Draw the tink pixmap into the window */
  688. X    RenderShape(display, window, tinkPixmap, tinkMask,
  689. X        x - TINK_WC, y - TINK_HC, TINK_WIDTH, TINK_HEIGHT, False);
  690. X}
  691. X
  692. X#if NeedFunctionPrototypes
  693. Xstatic void EraseTheTink(Display *display, Window window, int x, int y)
  694. X#else
  695. Xstatic void EraseTheTink(display, window, x, y)
  696. X    Display *display;
  697. X    Window window;
  698. X    int x;
  699. X    int y;
  700. X#endif
  701. X{
  702. X    /* Erase the tink pixmap from the window */
  703. X    XClearArea(display, window, x - TINK_WC, y - TINK_HC, 
  704. X        TINK_WIDTH, TINK_HEIGHT, False);
  705. X}
  706. X
  707. X#if NeedFunctionPrototypes
  708. Xvoid DrawTheBullet(Display *display, Window window, int x, int y)
  709. X#else
  710. Xvoid DrawTheBullet(display, window, x, y)
  711. X    Display *display;
  712. X    Window window;
  713. X    int x;
  714. X    int y;
  715. X#endif
  716. X{
  717. X    /* Draw the bullet pixmap into the window */
  718. X    RenderShape(display, window, bulletPixmap, bulletMask,
  719. X        x - BULLET_WC, y - BULLET_HC, BULLET_WIDTH, BULLET_HEIGHT, False);
  720. X}
  721. X
  722. X#if NeedFunctionPrototypes
  723. Xstatic void DrawBullet(Display *display, Window window, int i)
  724. X#else
  725. Xstatic void DrawBullet(display, window, i)
  726. X    Display *display;
  727. X    Window window;
  728. X    int i;
  729. X#endif
  730. X{
  731. X    /* Clear the window of the bullet in the old position */
  732. X    XClearArea(display, window, bullets[i].xpos - BULLET_WC, 
  733. X        bullets[i].oldypos - BULLET_HC, BULLET_WIDTH, BULLET_HEIGHT, False);
  734. X
  735. X    /* Now draw the new bullet in the new position */
  736. X    DrawTheBullet(display, window, bullets[i].xpos, bullets[i].ypos);
  737. X}
  738. X
  739. X#if NeedFunctionPrototypes
  740. Xstatic int CheckBallBulletCollision(Display *display, Window window, 
  741. X    int bx, int by, int j)
  742. X#else
  743. Xstatic int CheckBallBulletCollision(display, window, bx, by, j)
  744. X    Display *display;
  745. X    Window window;
  746. X    int bx;
  747. X    int by;
  748. X    int j;
  749. X#endif
  750. X{
  751. X    int ballX, ballY;
  752. X
  753. X    GetBallPosition(&ballX, &ballY, j);
  754. X
  755. X    /* Check if any part of the bullets coords is inside the balls box */
  756. X    if (((bx + BULLET_WC) >= (ballX - BALL_WC)) &&
  757. X           ((bx - BULLET_WC) <= (ballX + BALL_WC)) &&
  758. X        ((by + BULLET_HC) >= (ballY - BALL_HC)) &&
  759. X        ((by - BULLET_HC) <= (ballY + BALL_HC)))
  760. X        return True;
  761. X    else
  762. X        return False;
  763. X}
  764. X
  765. X#if NeedFunctionPrototypes
  766. Xstatic int CheckForBulletCollision(Display *display, Window window, 
  767. X    int x, int y)
  768. X#else
  769. Xstatic int CheckForBulletCollision(display, window, x, y)
  770. X    Display *display;
  771. X    Window window;
  772. X    int x;
  773. X    int y;
  774. X#endif
  775. X{
  776. X    /* Check for bullet to block collision */
  777. X    int row, col;
  778. X    struct aBlock *blockP;
  779. X
  780. X    /* Get the row and col for block where bullet is */
  781. X    X2COL(col, x);
  782. X    Y2ROW(row, y);
  783. X
  784. X    blockP = &blocks[row][col];
  785. X
  786. X    /* If blocks is occupied then check for collision */
  787. X    if (blockP->occupied == 1 && blockP->exploding == False)
  788. X    {
  789. X        /* Check if x adjusted for bullet width is in block region */
  790. X        if (((x + BULLET_WC) > blockP->x) &&
  791. X          ((x - BULLET_WC) < (blockP->x + blockP->width)))
  792. X        {
  793. X            if (((y + BULLET_HC) > blockP->y) &&
  794. X              ((y - BULLET_HC) < (blockP->y + blockP->height)))
  795. X            {
  796. X                /* Collision */
  797. X                return True;
  798. X            }
  799. X        }
  800. X    }
  801. X
  802. X    /* No collision if reached here */
  803. X    return False;
  804. X}
  805. X
  806. X#if NeedFunctionPrototypes
  807. Xstatic int ResetBulletStart(Display *display, Window window)
  808. X#else
  809. Xstatic int ResetBulletStart(display, window)
  810. X    Display *display;
  811. X    Window window;
  812. X#endif
  813. X{
  814. X    /* Start a bullet on the way if possible */
  815. X    return StartABullet(display, window, paddlePos);
  816. X}
  817. X
  818. X#if NeedFunctionPrototypes
  819. Xvoid HandleBulletMode(Display *display, Window window)
  820. X#else
  821. Xvoid HandleBulletMode(display, window)
  822. X    Display *display;
  823. X    Window window;
  824. X#endif
  825. X{
  826. X    /* Update all the bullets that may be moving */
  827. X    if ((frame % BULLET_FRAME_RATE) == 0)
  828. X        UpdateBullet(display, window);
  829. X
  830. X    /* Clear any tinks that are due to be cleared */
  831. X    CheckTinks(display, window);
  832. X}
  833. X
  834. END_OF_FILE
  835.   if test 16090 -ne `wc -c <'gun.c'`; then
  836.     echo shar: \"'gun.c'\" unpacked with wrong size!
  837.   fi
  838.   # end of 'gun.c'
  839. fi
  840. echo shar: End of archive 4 \(of 26\).
  841. cp /dev/null ark4isdone
  842. MISSING=""
  843. 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
  844.     if test ! -f ark${I}isdone ; then
  845.     MISSING="${MISSING} ${I}"
  846.     fi
  847. done
  848. if test "${MISSING}" = "" ; then
  849.     echo You have unpacked all 26 archives.
  850.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  851.     echo "merging split files..."
  852.     cat blocks.c[12] > blocks.c
  853.     rm blocks.c[12]
  854.     echo "blocks.c done"
  855.     cat bitmaps/earth.xpm.Z.u.[ab] > bitmaps/earth.xpm.Z.uue
  856.     rm bitmaps/earth.xpm.Z.u.[ab]
  857.     echo "bitmaps/earth.xpm.Z.uue done"
  858. else
  859.     echo You still must unpack the following archives:
  860.     echo "        " ${MISSING}
  861. fi
  862. exit 0
  863. exit 0 # Just in case...
  864. -- 
  865.   // chris@Sterling.COM           | Send comp.sources.x submissions to:
  866. \X/  Amiga - The only way to fly! |    sources-x@sterling.com
  867.  "It's intuitively obvious to the |
  868.   most casual observer..."        | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
  869.