diff options
-rw-r--r-- | games/golddig/Makefile | 11 | ||||
-rw-r--r-- | games/golddig/files/patch-aa | 19 | ||||
-rw-r--r-- | games/golddig/files/patch-ab | 19 | ||||
-rw-r--r-- | games/golddig/files/patch-ac | 251 | ||||
-rw-r--r-- | games/golddig/pkg-comment | 1 | ||||
-rw-r--r-- | games/golddig/pkg-descr | 10 | ||||
-rw-r--r-- | games/golddig/pkg-plist | 30 |
7 files changed, 341 insertions, 0 deletions
diff --git a/games/golddig/Makefile b/games/golddig/Makefile new file mode 100644 index 000000000000..6e299c1a839b --- /dev/null +++ b/games/golddig/Makefile @@ -0,0 +1,11 @@ +DISTNAME= golddig +DISTFILES= golddig2.tar.z +MASTER_SITES= ftp://ss7.vlsi.ee.nus.sg/pub/games/X/ +NO_WRKSUBDIR= yes + +pre-install: + @mkdir -p ${PREFIX}/bin + @mkdir -p ${PREFIX}/lib/golddig + @mkdir -p ${PREFIX}/man/man6 + +.include <bsd.port.mk> diff --git a/games/golddig/files/patch-aa b/games/golddig/files/patch-aa new file mode 100644 index 000000000000..f0a97710d926 --- /dev/null +++ b/games/golddig/files/patch-aa @@ -0,0 +1,19 @@ +*** shared.c~ Thu Dec 14 20:41:02 1989 +--- shared.c Sun Nov 20 00:59:30 1994 +*************** +*** 58,64 **** + #include "bitmap/window.bits" + #include "bitmap/anti.bits" + +! char *sprintf(); /* UNIX brain damage */ + + /* All in and out movements except up */ + #define NOUPBITS DLEAVE | LLEAVE | RLEAVE | HENTER | VENTER +--- 58,64 ---- + #include "bitmap/window.bits" + #include "bitmap/anti.bits" + +! /* char *sprintf(); /* UNIX brain damage */ + + /* All in and out movements except up */ + #define NOUPBITS DLEAVE | LLEAVE | RLEAVE | HENTER | VENTER diff --git a/games/golddig/files/patch-ab b/games/golddig/files/patch-ab new file mode 100644 index 000000000000..8edbc59ca95f --- /dev/null +++ b/games/golddig/files/patch-ab @@ -0,0 +1,19 @@ +*** scores.c~ Thu Dec 14 20:40:34 1989 +--- scores.c Sun Nov 20 01:51:07 1994 +*************** +*** 9,15 **** + #include <X11/keysym.h> + #include "golddig.h" + +! char *getenv(),*sprintf(); + + #define NUMHIGH 15 /* Number of high scores that will be remembered */ + +--- 9,15 ---- + #include <X11/keysym.h> + #include "golddig.h" + +! char *getenv()/*,*sprintf()*/; + + #define NUMHIGH 15 /* Number of high scores that will be remembered */ + diff --git a/games/golddig/files/patch-ac b/games/golddig/files/patch-ac new file mode 100644 index 000000000000..89a8c12cf13e --- /dev/null +++ b/games/golddig/files/patch-ac @@ -0,0 +1,251 @@ +This patch is not required to compile/run golddig. Its only purpose is to +improve the game (IMHO) --jmz + +*** golddig.c~ Thu Dec 14 20:41:03 1989 +--- golddig.c Sun Nov 20 01:23:40 1994 +*************** +*** 29,34 **** +--- 29,38 ---- + + #define EVMASK KeyPressMask | ExposureMask | ButtonPressMask | FocusChangeMask + ++ int x_lives, x_initial_score; ++ #define TURBO 15 ++ int x_turbo = TURBO; ++ + int newlevel = 0; /* Non-zero if a new level was just drawn */ + struct itimerval cycletime; /* Structure used when setting up timer */ + /* These are the graphics cursors used for drawing the player at */ +*************** +*** 167,177 **** + puts("z,<,q,u,R13 - make hole left"); + puts("x,>,e,o,R15 - make hole right"); + puts("r,y,R7 - put down any held item"); +! puts("1-9 - change the game speed"); + puts("\n^S,^Z - pause the game"); + puts("^Q,^Y - reactivate the game"); + puts("^C - kill the game"); + puts("^R - redraw the screen"); + break; + /* A space bar changes the command to STAND */ + case XK_space: case XK_R11: +--- 171,182 ---- + puts("z,<,q,u,R13 - make hole left"); + puts("x,>,e,o,R15 - make hole right"); + puts("r,y,R7 - put down any held item"); +! puts("0-9 - change the game speed (0 is *very* fast)"); + puts("\n^S,^Z - pause the game"); + puts("^Q,^Y - reactivate the game"); + puts("^C - kill the game"); + puts("^R - redraw the screen"); ++ puts("^A - restart the level"); + break; + /* A space bar changes the command to STAND */ + case XK_space: case XK_R11: +*************** +*** 251,256 **** +--- 256,262 ---- + regen_tree(); + /* Freeze action until a key is pressed */ + newlevel = 1; ++ x_initial_score = score; + } + + /* Move player one movement */ +*************** +*** 299,304 **** +--- 305,311 ---- + ((code & UPLEVEL) && ! (code & INACTIVE))) { + /* Increment the level number */ + levelnum ++; ++ x_lives++; + /* Load the next level in if the current one is done */ + init_level(); + /* Redraw the level */ +*************** +*** 309,316 **** + return; + } + /* If the block is a killer block, kill the player */ +! if(code & KILLIN) + died("was crushed"); + } + /* Do not let PUTDOWN order stay after movement has started */ + else if(curorder == PUTDOWN) +--- 316,332 ---- + return; + } + /* If the block is a killer block, kill the player */ +! if(code & KILLIN) { +! if(--x_lives) { /* restart level */ +! goldleft = 0; player.ypos = 0; code |= UPLEVEL; code |= INACTIVE; +! score = x_initial_score; +! init_level(); +! redrawall(); +! XFlush(disp); +! return; +! } + died("was crushed"); ++ } + } + /* Do not let PUTDOWN order stay after movement has started */ + else if(curorder == PUTDOWN) +*************** +*** 350,357 **** + /* Check if the player is overlapping one of the bad guys while not */ + /* holding armor. */ + if(! (fast_lookup[player.hold].code & ARMOR) && +! overlap_badguy(player.xpos,player.ypos,-1)) + died("was eaten"); + /* Redraw player if he moved. Redraw occasionally anyway. */ + if(player.xpos != player.xold || player.ypos != player.yold || + (curtick & 0xf) == 0) +--- 366,382 ---- + /* Check if the player is overlapping one of the bad guys while not */ + /* holding armor. */ + if(! (fast_lookup[player.hold].code & ARMOR) && +! overlap_badguy(player.xpos,player.ypos,-1)) { +! if(--x_lives) { /* restart level */ +! goldleft = 0; player.ypos = 0; +! score = x_initial_score; +! init_level(); +! redrawall(); +! XFlush(disp); +! return; +! } + died("was eaten"); ++ } + /* Redraw player if he moved. Redraw occasionally anyway. */ + if(player.xpos != player.xold || player.ypos != player.yold || + (curtick & 0xf) == 0) +*************** +*** 422,428 **** + sscanf(argv[i]+2,"%d",&speed); + } + else { +! printf("usage: golddig [-l <level>] [-s <speed 1-9>] [<world name>]\n"); + exit(1); + } + } +--- 447,453 ---- + sscanf(argv[i]+2,"%d",&speed); + } + else { +! printf("usage: golddig [-l <level>] [-s <speed 0-9>] [<world name>]\n"); + exit(1); + } + } +*************** +*** 434,440 **** + } + /* remember what the starting level was */ + levelstart = levelnum; +! + /* start up x windows and all graphics cursors for drawing level */ + xstart(EVMASK); + /* reassemble the graphics cursors to prepare for actual play */ +--- 459,467 ---- + } + /* remember what the starting level was */ + levelstart = levelnum; +! x_lives = 6 - levelnum; +! if (x_lives < 1) +! x_lives = 1; + /* start up x windows and all graphics cursors for drawing level */ + xstart(EVMASK); + /* reassemble the graphics cursors to prepare for actual play */ +*************** +*** 467,475 **** + init_level(); + + /* initialize timer structure according to speed */ +! if(speed <= 0) + speed = 1; +! if(speed <= 5) + cycletime.it_interval.tv_usec = (5-speed) * 50000 + 125000; + else + cycletime.it_interval.tv_usec = 625000 / speed; +--- 494,504 ---- + init_level(); + + /* initialize timer structure according to speed */ +! if(speed < 0) + speed = 1; +! if(speed == 0) +! cycletime.it_interval.tv_usec = 625000 / x_turbo; +! else if(speed <= 5) + cycletime.it_interval.tv_usec = (5-speed) * 50000 + 125000; + else + cycletime.it_interval.tv_usec = 625000 / speed; +*************** +*** 517,528 **** + case XK_R: case XK_r: + redrawall(); + break; + } + /* Pressing a number changes the game speed */ +! else if(keyhit >= XK_1 && keyhit <= XK_9) { + speed = (int) (keyhit - XK_0); + /* Compute new cycle delay */ +! if(speed <= 5) + cycletime.it_interval.tv_usec = (5-speed) * 50000 + 125000; + else + cycletime.it_interval.tv_usec = 625000 / speed; +--- 546,569 ---- + case XK_R: case XK_r: + redrawall(); + break; ++ /* ^A restarts the current level */ ++ case XK_A: case XK_a: ++ if(--x_lives) { /* restart level */ ++ goldleft = 0; player.ypos = 0; ++ score = x_initial_score; ++ init_level(); ++ redrawall(); ++ } else ++ died("was abandoned"); ++ break; + } + /* Pressing a number changes the game speed */ +! else if(keyhit >= XK_0 && keyhit <= XK_9) { + speed = (int) (keyhit - XK_0); + /* Compute new cycle delay */ +! if(speed == 0) +! cycletime.it_interval.tv_usec = 625000 / x_turbo; +! else if(speed <= 5) + cycletime.it_interval.tv_usec = (5-speed) * 50000 + 125000; + else + cycletime.it_interval.tv_usec = 625000 / speed; +*** shared.c~ Sun Nov 20 00:59:30 1994 +--- shared.c Sun Nov 20 01:25:00 1994 +*************** +*** 279,287 **** + void draw_score() + { + char buf[50]; + + /* Build the output string */ +! sprintf(buf,"score: %d level: %d speed: %d",score,levelnum,speed); + /* Clear the current score line */ + XFillRectangle(disp,wind,blackgc,0,ysize << 4,xsize << 4,SCORESIZE); + /* Actually draw the text */ +--- 279,288 ---- + void draw_score() + { + char buf[50]; ++ extern int x_lives; + + /* Build the output string */ +! sprintf(buf,"score: %d level: %d speed: %d lives: %d",score,levelnum,speed,x_lives); + /* Clear the current score line */ + XFillRectangle(disp,wind,blackgc,0,ysize << 4,xsize << 4,SCORESIZE); + /* Actually draw the text */ +*** makelev.c~ Thu Dec 14 20:40:34 1989 +--- makelev.c Sun Nov 20 01:54:47 1994 +*************** +*** 1,3 **** +--- 1,4 ---- ++ int x_lives; + /* This program was written by Alexander Siegel in September of 1989 */ + /* at Cornell University. It may may copied freely for private use or */ + /* public dispersion provided that this comment is not removed. This */ diff --git a/games/golddig/pkg-comment b/games/golddig/pkg-comment new file mode 100644 index 000000000000..aacca41da103 --- /dev/null +++ b/games/golddig/pkg-comment @@ -0,0 +1 @@ +golddig - Getting the Gold and Avoiding Death diff --git a/games/golddig/pkg-descr b/games/golddig/pkg-descr new file mode 100644 index 000000000000..5075ef0d12e6 --- /dev/null +++ b/games/golddig/pkg-descr @@ -0,0 +1,10 @@ +Golddig is a fast action game designed for use with the X window +system. +Makelev is used to create and edit new levels which can be used by +golddig. + +The goal in golddig is to pick up all the gold pieces and then go to +the next level without getting eaten by one of the bad guys. The gold +pieces are distinctive small circular coins. After picking up all of +the gold, the player must get to an open door or the top row of the +level. After accomplishing this, the game will start the next level. diff --git a/games/golddig/pkg-plist b/games/golddig/pkg-plist new file mode 100644 index 000000000000..3fa4c5fb8865 --- /dev/null +++ b/games/golddig/pkg-plist @@ -0,0 +1,30 @@ +@cd /usr/local +@owner games +@mode 755 +bin/golddig +@mode 4755 +bin/makelev +@mode 644 +lib/golddig/default +lib/golddig/goldlev001 +lib/golddig/goldlev002 +lib/golddig/goldlev003 +lib/golddig/goldlev004 +lib/golddig/goldlev005 +lib/golddig/goldlev006 +lib/golddig/goldlev007 +lib/golddig/goldlev008 +lib/golddig/goldlev009 +lib/golddig/goldlev010 +lib/golddig/goldlev011 +lib/golddig/goldlev012 +lib/golddig/goldlev013 +lib/golddig/goldlev014 +lib/golddig/goldlev015 +lib/golddig/goldlev016 +lib/golddig/goldlev017 +lib/golddig/goldlev018 +@mode 666 +lib/golddig/scores +@mode 644 +man/man6/golddig.6 |