home *** CD-ROM | disk | FTP | other *** search
- diff -c xinvaders.2/Imakefile xinvaders/Imakefile
- *** xinvaders.2/Imakefile Wed Aug 1 13:40:41 1990
- --- xinvaders/Imakefile Thu Aug 30 09:35:58 1990
- ***************
- *** 1,4 ****
- ! LOCAL_LIBRARIES = $(XAWLIB) $(XTOOLLIB) $(XMULIB) $(XLIB)
-
- OBJS = spacers.o base.o widget.o main.o vaders.o shot.o score.o
-
- --- 1,4 ----
- ! LOCAL_LIBRARIES = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
-
- OBJS = spacers.o base.o widget.o main.o vaders.o shot.o score.o
-
- Only in xinvaders.2: bits
- diff -c xinvaders.2/main.c xinvaders/main.c
- *** xinvaders.2/main.c Thu Aug 30 10:17:21 1990
- --- xinvaders/main.c Thu Aug 30 09:36:39 1990
- ***************
- *** 24,33 ****
- #include <X11/VPaned.h>
- #endif
- static int width, height; /* Size of window. */
- - static Pixel defaultfore; /* Default foreground */
- - Pixel defaultback; /* Default background */
- - static Pixel scorepixel; /* Color for score. */
-
- static XrmOptionDescRec table[] = {
- {"-debug", "*debug", XrmoptionNoArg, NULL},
- };
- --- 24,34 ----
- #include <X11/VPaned.h>
- #endif
- static int width, height; /* Size of window. */
-
- + #ifdef XFILESEARCHPATH
- + static void AddPathToSearchPath();
- + #endif
- +
- static XrmOptionDescRec table[] = {
- {"-debug", "*debug", XrmoptionNoArg, NULL},
- };
- ***************
- *** 124,129 ****
- --- 125,133 ----
- Widget pane;
- extern WidgetClass labelwidgetclass;
- srandom(time(0));
- + #ifdef XFILESEARCHPATH
- + AddPathToSearchPath(XFILESEARCHPATH);
- + #endif
- toplevel = XtInitialize(argv[0], "Vaders", table, XtNumber(table),
- &argc, argv);
- dpy = XtDisplay(toplevel);
- ***************
- *** 171,173 ****
- --- 175,223 ----
- fprintf(stderr, "%s\n", msg);
- exit(1);
- }
- +
- +
- + #ifdef XFILESEARCHPATH
- + static void
- + AddPathToSearchPath(path)
- + char *path;
- + {
- + char *old, *new;
- + extern char *getenv();
- +
- + old = getenv("XFILESEARCHPATH");
- + if (old) {
- + #if defined(mips) || defined(hpux) || defined(sun)
- + /* +1 for =, +2 for :, +3 for null */
- + new = XtMalloc((Cardinal) (strlen("XFILESEARCHPATH") +
- + strlen(old) +
- + strlen(path) + 3));
- + (void) strcpy(new, "XFILESEARCHPATH");
- + (void) strcat(new, "=");
- + (void) strcat(new, old);
- + (void) strcat(new, ":");
- + (void) strcat(new, path);
- + putenv(new);
- + #else
- + /* +1 for colon, +2 for null */
- + new = XtMalloc((Cardinal) (strlen(old) + strlen(path) + 2));
- + (void) strcpy(new, old);
- + (void) strcat(new, ":");
- + (void) strcat(new, path);
- + setenv("XFILESEARCHPATH", new, 1);
- + #endif
- + }
- + else {
- + #if defined(mips) || defined(hpux) || defined(sun)
- + new = XtMalloc((Cardinal) (strlen("XFILESEARCHPATH") +
- + strlen(path) + 2));
- + (void) strcpy(new, "XFILESEARCHPATH");
- + (void) strcat(new, "=");
- + (void) strcat(new, path);
- + putenv(new);
- + #else
- + setenv("XFILESEARCHPATH", path, 1);
- + #endif
- + }
- + }
- + #endif
- diff -c xinvaders.2/patchlevel.h xinvaders/patchlevel.h
- *** xinvaders.2/patchlevel.h Tue Aug 7 17:13:10 1990
- --- xinvaders/patchlevel.h Thu Aug 30 10:07:58 1990
- ***************
- *** 8,19 ****
-
- Jonny Goldman <jgoldman@parc.xerox.com>
-
- ! Tue Jul 17 1990
- */
-
- /* patchlevel.h -- patchlevel for xinvaders */
-
- ! #define PATCHLEVEL 2
-
- /*
- version 1.1:
- --- 8,19 ----
-
- Jonny Goldman <jgoldman@parc.xerox.com>
-
- ! Thu Aug 30 1990
- */
-
- /* patchlevel.h -- patchlevel for xinvaders */
-
- ! #define PATCHLEVEL 3
-
- /*
- version 1.1:
- ***************
- *** 25,29 ****
- --- 25,35 ----
- version 1.2:
- added multi-resolution code. created new bitmaps for large-scale.
- added new resource for scale: Vaders*Scale, 1=normal, 2=large.
- +
- + version 1.3:
- + added explosions for aliens.
- + cleaned up some dirty code so the program will compile without
- + complaints from gcc and added applications-default directory search
- + - from jik@athena.mit.edu
-
- */
- diff -c xinvaders.2/shot.c xinvaders/shot.c
- *** xinvaders.2/shot.c Tue Aug 7 15:32:08 1990
- --- xinvaders/shot.c Thu Aug 30 09:36:50 1990
- ***************
- *** 83,89 ****
- Opaque closure;
- XtIntervalId id;
- {
- ! int i, x, y, newx, newy;
- Shot shot;
- if (closure != (Opaque) MoveShots) return;
- if (!paused) {
- --- 83,89 ----
- Opaque closure;
- XtIntervalId id;
- {
- ! int i, x, y, newy;
- Shot shot;
- if (closure != (Opaque) MoveShots) return;
- if (!paused) {
- ***************
- *** 135,141 ****
- Opaque closure;
- XtIntervalId id;
- {
- ! int i, x, y, newx, newy;
- Shot vshot;
-
- if (closure != (Opaque) MoveVshots) return;
- --- 135,141 ----
- Opaque closure;
- XtIntervalId id;
- {
- ! int i, x, y, newy;
- Shot vshot;
-
- if (closure != (Opaque) MoveVshots) return;
- diff -c xinvaders.2/spacers.c xinvaders/spacers.c
- *** xinvaders.2/spacers.c Tue Aug 7 15:29:02 1990
- --- xinvaders/spacers.c Thu Aug 30 09:37:00 1990
- ***************
- *** 65,72 ****
-
- static void DestroySpacer()
- {
- - XImage ximage;
- - int num, value, ex, ey;
- score += spacer->score;
- PaintScore();
-
- --- 65,70 ----
- ***************
- *** 108,115 ****
- Opaque closure;
- XtIntervalId id;
- {
- - register int i;
- - int minx, miny, maxx, maxy, spy;
- if (closure != (Opaque) MoveSpacer) return;
- spacertimerid = XtAddTimeOut(spacerwait, MoveSpacer, (Opaque) MoveSpacer);
- if (!paused) {
- --- 106,111 ----
- ***************
- *** 139,145 ****
- {
- unsigned int width, height;
- int x_hot, y_hot;
- ! unsigned char *data, filename[255];
- int status;
-
- sprintf(filename, "%sspacer%d.bit", bitdir, scale);
- --- 135,141 ----
- {
- unsigned int width, height;
- int x_hot, y_hot;
- ! char *data, filename[255];
- int status;
-
- sprintf(filename, "%sspacer%d.bit", bitdir, scale);
- diff -c xinvaders.2/vaders.c xinvaders/vaders.c
- *** xinvaders.2/vaders.c Tue Aug 7 15:28:22 1990
- --- xinvaders/vaders.c Thu Aug 30 10:20:55 1990
- ***************
- *** 38,43 ****
- --- 38,44 ----
- XImage *shape_image[2];
- int value;
- Boolean alive;
- + Boolean exploded;
- } VaderRec, *Vader;
-
- VaderRec vaders[NUMROWS][NUMVADERS];
- ***************
- *** 54,59 ****
- --- 55,62 ----
-
- extern Base base;
-
- + XImage *Explode_image;
- +
- /* indicates pad around vader bitmap for better collision detection */
- #define VADERPAD scale
-
- ***************
- *** 77,86 ****
- 0, 0, rx, ry, w, h);
- }
-
- static void DestroyVader(vader)
- Vader vader;
- {
- - int num, value;
- int oldx = vader->x;
- int oldy = vader->y;
- PaintVader(vader, backgc);
- --- 80,104 ----
- 0, 0, rx, ry, w, h);
- }
-
- + static void PaintExplodedVader(vader, gc)
- + Vader vader;
- + GC gc;
- + {
- + int rx, ry, w, h;
- +
- + w = Explode_image->width;
- + h = Explode_image->height;
- +
- + rx = vader->x;
- + ry = vader->y;
- +
- + XPutImage(dpy, gamewindow, gc, Explode_image,
- + 0, 0, rx, ry, w, h);
- + }
- +
- static void DestroyVader(vader)
- Vader vader;
- {
- int oldx = vader->x;
- int oldy = vader->y;
- PaintVader(vader, backgc);
- ***************
- *** 97,102 ****
- --- 115,122 ----
- vaderwait /= 2; break;
- }
- vader->alive = FALSE;
- + vader->exploded = TRUE;
- + PaintExplodedVader(vader, vader->gc);
- }
-
-
- ***************
- *** 158,164 ****
- {
- register Vader vader;
- register int i, j;
- - int oldx, newx;
- Boolean reversep;
-
- reversep = FALSE;
- --- 178,183 ----
- ***************
- *** 180,186 ****
- for(j = 0; j < NUMROWS; j++)
- for (i=0 ; i< NUMVADERS ; i++) {
- vader = &vaders[j][i];
- ! if (vader->alive) {
- if (vader->vx > 0)
- ShotHitsBuilding(vader->x+vader->width, vader->y+vader->height);
- else
- --- 199,209 ----
- for(j = 0; j < NUMROWS; j++)
- for (i=0 ; i< NUMVADERS ; i++) {
- vader = &vaders[j][i];
- ! if (vader->exploded) {
- ! PaintExplodedVader(vader, backgc);
- ! vader->exploded = FALSE;
- ! }
- ! else if (vader->alive) {
- if (vader->vx > 0)
- ShotHitsBuilding(vader->x+vader->width, vader->y+vader->height);
- else
- ***************
- *** 243,248 ****
- --- 266,289 ----
- Vader_Image[i][j]->byte_order = LSBFirst;
- }
-
- + sprintf(filename, "%svexplod%d.bit", bitdir, scale);
- + status = XmuReadBitmapDataFromFile (filename,
- + &width, &height, &data,
- + &x_hot, &y_hot);
- +
- + if (status != BitmapSuccess) return status;
- +
- + Explode_image = XCreateImage(dpy,
- + DefaultVisual(dpy, DefaultScreen(dpy)),
- + 1,
- + XYBitmap,
- + 0,
- + data,
- + width, height,
- + 8, 0);
- + Explode_image->bitmap_bit_order = LSBFirst;
- + Explode_image->byte_order = LSBFirst;
- +
- return BitmapSuccess;
- }
-
- ***************
- *** 263,268 ****
- --- 304,310 ----
- vader->y = VADERHEIGHT*(offset+j);
- vader->vx = scale;
- vader->alive = TRUE;
- + vader->exploded = FALSE;
- }
- }
-
- diff -c xinvaders.2/vaders.h xinvaders/vaders.h
- *** xinvaders.2/vaders.h Tue Aug 7 14:58:51 1990
- --- xinvaders/vaders.h Thu Aug 30 09:44:31 1990
- ***************
- *** 203,208 ****
- extern void MoveShots();
- extern void MoveVshots();
-
- ! ext Pixel defaultback, defaultfore;
-
- #endif _vaders_h
- --- 203,208 ----
- extern void MoveShots();
- extern void MoveVshots();
-
- ! ext Pixel defaultfore, defaultback;
-
- #endif _vaders_h
- Only in xinvaders: vexplod1.bit
- Only in xinvaders: vexplod2.bit
-