home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume9 / xinvaders / patch3 / xinvaders.3.diffs
Encoding:
Text File  |  1990-08-31  |  9.1 KB  |  391 lines

  1. diff -c xinvaders.2/Imakefile xinvaders/Imakefile
  2. *** xinvaders.2/Imakefile    Wed Aug  1 13:40:41 1990
  3. --- xinvaders/Imakefile    Thu Aug 30 09:35:58 1990
  4. ***************
  5. *** 1,4 ****
  6. ! LOCAL_LIBRARIES = $(XAWLIB) $(XTOOLLIB) $(XMULIB) $(XLIB)
  7.   
  8.   OBJS = spacers.o base.o widget.o main.o vaders.o shot.o score.o
  9.   
  10. --- 1,4 ----
  11. ! LOCAL_LIBRARIES = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
  12.   
  13.   OBJS = spacers.o base.o widget.o main.o vaders.o shot.o score.o
  14.   
  15. Only in xinvaders.2: bits
  16. diff -c xinvaders.2/main.c xinvaders/main.c
  17. *** xinvaders.2/main.c    Thu Aug 30 10:17:21 1990
  18. --- xinvaders/main.c    Thu Aug 30 09:36:39 1990
  19. ***************
  20. *** 24,33 ****
  21.   #include <X11/VPaned.h>
  22.   #endif
  23.   static int width, height;        /* Size of window. */
  24. - static Pixel defaultfore;    /* Default foreground */
  25. - Pixel defaultback;    /* Default background */
  26. - static Pixel scorepixel;    /* Color for score. */
  27.   
  28.   static XrmOptionDescRec table[] = {
  29.       {"-debug",    "*debug",    XrmoptionNoArg,    NULL},
  30.   };
  31. --- 24,34 ----
  32.   #include <X11/VPaned.h>
  33.   #endif
  34.   static int width, height;        /* Size of window. */
  35.   
  36. + #ifdef XFILESEARCHPATH
  37. + static void AddPathToSearchPath();
  38. + #endif
  39.   static XrmOptionDescRec table[] = {
  40.       {"-debug",    "*debug",    XrmoptionNoArg,    NULL},
  41.   };
  42. ***************
  43. *** 124,129 ****
  44. --- 125,133 ----
  45.       Widget pane;
  46.       extern WidgetClass labelwidgetclass;
  47.       srandom(time(0));
  48. + #ifdef XFILESEARCHPATH
  49. +     AddPathToSearchPath(XFILESEARCHPATH);
  50. + #endif
  51.       toplevel = XtInitialize(argv[0], "Vaders", table, XtNumber(table),
  52.                   &argc, argv);
  53.       dpy = XtDisplay(toplevel);
  54. ***************
  55. *** 171,173 ****
  56. --- 175,223 ----
  57.       fprintf(stderr, "%s\n", msg);
  58.       exit(1);
  59.   }
  60. + #ifdef XFILESEARCHPATH
  61. + static void
  62. + AddPathToSearchPath(path)
  63. + char *path;
  64. + {
  65. +      char *old, *new;
  66. +      extern char *getenv();
  67. +      
  68. +      old = getenv("XFILESEARCHPATH");
  69. +      if (old) {
  70. + #if defined(mips) || defined(hpux) || defined(sun)
  71. +       /* +1 for =, +2 for :, +3 for null */
  72. +       new = XtMalloc((Cardinal) (strlen("XFILESEARCHPATH") +
  73. +                      strlen(old) +
  74. +                      strlen(path) + 3));
  75. +       (void) strcpy(new, "XFILESEARCHPATH");
  76. +       (void) strcat(new, "=");
  77. +       (void) strcat(new, old);
  78. +       (void) strcat(new, ":");
  79. +       (void) strcat(new, path);
  80. +       putenv(new);
  81. + #else
  82. +       /* +1 for colon, +2 for null */
  83. +       new = XtMalloc((Cardinal) (strlen(old) + strlen(path) + 2));
  84. +       (void) strcpy(new, old);
  85. +       (void) strcat(new, ":");
  86. +       (void) strcat(new, path);
  87. +       setenv("XFILESEARCHPATH", new, 1);
  88. + #endif
  89. +      }
  90. +      else {
  91. + #if defined(mips) || defined(hpux) || defined(sun)
  92. +       new = XtMalloc((Cardinal) (strlen("XFILESEARCHPATH") +
  93. +                      strlen(path) + 2));
  94. +       (void) strcpy(new, "XFILESEARCHPATH");
  95. +       (void) strcat(new, "=");
  96. +       (void) strcat(new, path);
  97. +       putenv(new);
  98. + #else
  99. +       setenv("XFILESEARCHPATH", path, 1);
  100. + #endif
  101. +      }
  102. + }
  103. + #endif
  104. diff -c xinvaders.2/patchlevel.h xinvaders/patchlevel.h
  105. *** xinvaders.2/patchlevel.h    Tue Aug  7 17:13:10 1990
  106. --- xinvaders/patchlevel.h    Thu Aug 30 10:07:58 1990
  107. ***************
  108. *** 8,19 ****
  109.   
  110.   Jonny Goldman <jgoldman@parc.xerox.com>
  111.   
  112. ! Tue Jul 17 1990
  113.   */
  114.   
  115.   /* patchlevel.h -- patchlevel for xinvaders */
  116.   
  117. ! #define PATCHLEVEL 2
  118.   
  119.   /* 
  120.     version 1.1:
  121. --- 8,19 ----
  122.   
  123.   Jonny Goldman <jgoldman@parc.xerox.com>
  124.   
  125. ! Thu Aug 30 1990
  126.   */
  127.   
  128.   /* patchlevel.h -- patchlevel for xinvaders */
  129.   
  130. ! #define PATCHLEVEL 3
  131.   
  132.   /* 
  133.     version 1.1:
  134. ***************
  135. *** 25,29 ****
  136. --- 25,35 ----
  137.     version 1.2:
  138.     added multi-resolution code.  created new bitmaps for large-scale.
  139.     added new resource for scale: Vaders*Scale, 1=normal, 2=large.
  140. +   version 1.3:
  141. +   added explosions for aliens.
  142. +   cleaned up some dirty code so the program will compile without 
  143. +    complaints from gcc and added applications-default directory search
  144. +    - from jik@athena.mit.edu
  145.   
  146.   */
  147. diff -c xinvaders.2/shot.c xinvaders/shot.c
  148. *** xinvaders.2/shot.c    Tue Aug  7 15:32:08 1990
  149. --- xinvaders/shot.c    Thu Aug 30 09:36:50 1990
  150. ***************
  151. *** 83,89 ****
  152.   Opaque closure;
  153.   XtIntervalId id;
  154.   {
  155. !   int i, x, y, newx, newy;
  156.     Shot shot;
  157.     if (closure != (Opaque) MoveShots) return;
  158.     if (!paused) {
  159. --- 83,89 ----
  160.   Opaque closure;
  161.   XtIntervalId id;
  162.   {
  163. !   int i, x, y, newy;
  164.     Shot shot;
  165.     if (closure != (Opaque) MoveShots) return;
  166.     if (!paused) {
  167. ***************
  168. *** 135,141 ****
  169.   Opaque closure;
  170.   XtIntervalId id;
  171.   {
  172. !   int i, x, y, newx, newy;
  173.     Shot vshot;
  174.   
  175.     if (closure != (Opaque) MoveVshots) return;
  176. --- 135,141 ----
  177.   Opaque closure;
  178.   XtIntervalId id;
  179.   {
  180. !   int i, x, y, newy;
  181.     Shot vshot;
  182.   
  183.     if (closure != (Opaque) MoveVshots) return;
  184. diff -c xinvaders.2/spacers.c xinvaders/spacers.c
  185. *** xinvaders.2/spacers.c    Tue Aug  7 15:29:02 1990
  186. --- xinvaders/spacers.c    Thu Aug 30 09:37:00 1990
  187. ***************
  188. *** 65,72 ****
  189.   
  190.   static void DestroySpacer()
  191.   {
  192. -   XImage ximage;
  193. -   int num, value, ex, ey;
  194.     score += spacer->score;
  195.     PaintScore();
  196.   
  197. --- 65,70 ----
  198. ***************
  199. *** 108,115 ****
  200.        Opaque closure;
  201.        XtIntervalId id;
  202.   {
  203. -   register int i;
  204. -   int minx, miny, maxx, maxy, spy;
  205.     if (closure != (Opaque) MoveSpacer) return;
  206.     spacertimerid = XtAddTimeOut(spacerwait, MoveSpacer, (Opaque) MoveSpacer);
  207.     if (!paused) {
  208. --- 106,111 ----
  209. ***************
  210. *** 139,145 ****
  211.   {
  212.     unsigned int width, height;
  213.     int x_hot, y_hot;
  214. !   unsigned char *data, filename[255];
  215.     int status;
  216.   
  217.     sprintf(filename, "%sspacer%d.bit", bitdir, scale);
  218. --- 135,141 ----
  219.   {
  220.     unsigned int width, height;
  221.     int x_hot, y_hot;
  222. !   char *data, filename[255];
  223.     int status;
  224.   
  225.     sprintf(filename, "%sspacer%d.bit", bitdir, scale);
  226. diff -c xinvaders.2/vaders.c xinvaders/vaders.c
  227. *** xinvaders.2/vaders.c    Tue Aug  7 15:28:22 1990
  228. --- xinvaders/vaders.c    Thu Aug 30 10:20:55 1990
  229. ***************
  230. *** 38,43 ****
  231. --- 38,44 ----
  232.     XImage *shape_image[2];
  233.     int value;
  234.     Boolean alive;
  235. +   Boolean exploded;
  236.   } VaderRec, *Vader;
  237.   
  238.   VaderRec vaders[NUMROWS][NUMVADERS];
  239. ***************
  240. *** 54,59 ****
  241. --- 55,62 ----
  242.   
  243.   extern Base base;
  244.   
  245. + XImage *Explode_image;
  246.   /* indicates pad around vader bitmap for better collision detection */
  247.   #define VADERPAD     scale
  248.   
  249. ***************
  250. *** 77,86 ****
  251.           0, 0, rx, ry, w, h);
  252.   }
  253.   
  254.   static void DestroyVader(vader)
  255.   Vader vader;
  256.   {
  257. -   int num, value;
  258.     int oldx = vader->x;
  259.     int oldy = vader->y;
  260.     PaintVader(vader, backgc);
  261. --- 80,104 ----
  262.           0, 0, rx, ry, w, h);
  263.   }
  264.   
  265. + static void PaintExplodedVader(vader, gc)
  266. +      Vader vader;
  267. +      GC gc;
  268. + {
  269. +   int rx, ry, w, h;
  270. +   
  271. +   w = Explode_image->width;
  272. +   h = Explode_image->height;
  273. +   rx = vader->x;
  274. +   ry = vader->y;
  275. +   
  276. +   XPutImage(dpy, gamewindow, gc, Explode_image,
  277. +         0, 0, rx, ry, w, h);
  278. + }
  279.   static void DestroyVader(vader)
  280.   Vader vader;
  281.   {
  282.     int oldx = vader->x;
  283.     int oldy = vader->y;
  284.     PaintVader(vader, backgc);
  285. ***************
  286. *** 97,102 ****
  287. --- 115,122 ----
  288.       vaderwait /= 2; break;
  289.     }
  290.     vader->alive = FALSE;
  291. +   vader->exploded = TRUE;
  292. +   PaintExplodedVader(vader, vader->gc);
  293.   }
  294.   
  295.   
  296. ***************
  297. *** 158,164 ****
  298.   {
  299.     register Vader vader;
  300.     register int i, j;
  301. -   int oldx, newx;
  302.     Boolean reversep;
  303.   
  304.     reversep = FALSE;
  305. --- 178,183 ----
  306. ***************
  307. *** 180,186 ****
  308.       for(j = 0; j < NUMROWS; j++)
  309.         for (i=0 ; i< NUMVADERS ; i++) {
  310.       vader = &vaders[j][i];
  311. !     if (vader->alive) {
  312.         if (vader->vx > 0)
  313.           ShotHitsBuilding(vader->x+vader->width, vader->y+vader->height);
  314.         else
  315. --- 199,209 ----
  316.       for(j = 0; j < NUMROWS; j++)
  317.         for (i=0 ; i< NUMVADERS ; i++) {
  318.       vader = &vaders[j][i];
  319. !     if (vader->exploded) {
  320. !       PaintExplodedVader(vader, backgc);
  321. !       vader->exploded = FALSE;
  322. !     }
  323. !     else if (vader->alive) {
  324.         if (vader->vx > 0)
  325.           ShotHitsBuilding(vader->x+vader->width, vader->y+vader->height);
  326.         else
  327. ***************
  328. *** 243,248 ****
  329. --- 266,289 ----
  330.         Vader_Image[i][j]->byte_order = LSBFirst;
  331.       }
  332.   
  333. +   sprintf(filename, "%svexplod%d.bit", bitdir, scale); 
  334. +   status = XmuReadBitmapDataFromFile (filename,
  335. +                       &width, &height, &data,
  336. +                       &x_hot, &y_hot);
  337. +   if (status != BitmapSuccess) return status;
  338. +   Explode_image = XCreateImage(dpy,
  339. +                    DefaultVisual(dpy, DefaultScreen(dpy)),
  340. +                    1,
  341. +                    XYBitmap,
  342. +                    0,
  343. +                    data,
  344. +                    width, height,
  345. +                    8, 0);
  346. +   Explode_image->bitmap_bit_order = LSBFirst;
  347. +   Explode_image->byte_order = LSBFirst;
  348.     return BitmapSuccess;
  349.   }
  350.   
  351. ***************
  352. *** 263,268 ****
  353. --- 304,310 ----
  354.         vader->y = VADERHEIGHT*(offset+j);
  355.         vader->vx = scale;
  356.         vader->alive = TRUE;
  357. +       vader->exploded = FALSE;
  358.       }
  359.   }
  360.   
  361. diff -c xinvaders.2/vaders.h xinvaders/vaders.h
  362. *** xinvaders.2/vaders.h    Tue Aug  7 14:58:51 1990
  363. --- xinvaders/vaders.h    Thu Aug 30 09:44:31 1990
  364. ***************
  365. *** 203,208 ****
  366.   extern void MoveShots();
  367.   extern void MoveVshots();
  368.   
  369. ! ext Pixel defaultback, defaultfore;
  370.   
  371.   #endif _vaders_h
  372. --- 203,208 ----
  373.   extern void MoveShots();
  374.   extern void MoveVshots();
  375.   
  376. ! ext Pixel defaultfore, defaultback;
  377.   
  378.   #endif _vaders_h
  379. Only in xinvaders: vexplod1.bit
  380. Only in xinvaders: vexplod2.bit
  381.