games@tekred.CNA.TEK.COM (03/14/89)
Submitted-by: "Tony L. Hansen" <hansen@pegasus.att.com> Posting-number: Volume 6, Issue 18 Archive-name: ega-wanderer/Patch2 [This patch adds additional functionality and cleans up the code in places. I cleaned it up further so that it would still compile on a standard Unix/curses machine. This is not an "official" patch from the original author. Make a backup of the source before you apply this patch just in case the original author posts a future patch. I tried this on my Sun 3/60 and it works OK there. -br] #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: README.pch2 Patches02 # Wrapped by billr@saab on Mon Mar 13 11:31:23 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'README.pch2' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'README.pch2'\" else echo shar: Extracting \"'README.pch2'\" \(1992 characters\) sed "s/^X//" >'README.pch2' <<'END_OF_FILE' XThe following changes have been made to wanderer: X XI cleaned up the option processing considerably. It now uses the standard Xgetopt() function, which makes it much easier to do option processing. X XI added the capability of running. When you run, the spider continues going Xin the same direction until it runs out of spaces. The default keys to use Xfor running are HJKL, which can also be changed with the $NEWKEYS variable. XThe first four characters of $NEWKEYS are the up-down-left-right keys as Xbefore, the following four characters are the running keys in the same order Xas the lowercase keys. X XI added a check to make certain that the length of $NEWKEYS is >= 4. X XI encoded the master password so that it doesn't show up if someone runs X"strings" on the binary, giving away the secret. ckpasswd() was added to Xundo the encoding. X XSystem V release 3.1 curses defines a macro named border() which conflicts Xwith a variable in edit.c. X XThe -r option was added which automatically does a "restore game". If a file Xname is provided on the command line, then it will be used for the file Xname, otherwise $SAVENAME is used or it is prompted for. Specifying a Xfilename requires the putenv() function and the code is #ifdef'ed so that if Xyou don't have putenv(), you can get by without it. X XBoth running and the -r option were implemented using the function Xungetch(), which doesn't exist in earlier versions of curses. Code is Xprovided for those versions which don't have it. The Getch() function was Xgeneralized for this purpose and moved out of ega.c. Just #define NOUNGETCH Xin wand_head.h if you don't have it. X X X Tony Hansen X att!pegasus!hansen, attmail!tony X hansen@pegasus.att.com X================== XI cleaned up the Makefile and wand_header.h files so that this version Xwould compile on my Sun 3/60. It should now work OK on any BSD derived Xsystem, as well as System V. To support this, the NOBEEP and NOKEYPAD X#defines were added. X X -Bill Randle X billr@saab.CNA.TEK.COM END_OF_FILE if test 1992 -ne `wc -c <'README.pch2'`; then echo shar: \"'README.pch2'\" unpacked with wrong size! fi # end of 'README.pch2' fi if test -f 'Patches02' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Patches02'\" else echo shar: Extracting \"'Patches02'\" \(18471 characters\) sed "s/^X//" >'Patches02' <<'END_OF_FILE' X*** Makefile.orig Mon Mar 13 09:03:00 1989 X--- Makefile Mon Mar 13 09:35:34 1989 X*************** X*** 26,31 **** X--- 26,33 ---- X CFLAGS = $(MODEL) $G $O $(EGA) X LDFLAGS = $(MODEL) $G $S $(STACK) X LIBS = -lcurses X+ # BSD needs termcap lib too X+ #LIBS = -lcurses -ltermcap X X DEST = /usr/games X DESTLIB=/usr/games/lib X*** edit.c.orig Mon Feb 13 11:54:40 1989 X--- edit.c Mon Mar 13 09:18:55 1989 X*************** X*** 230,236 **** X invert( d, s ) X bitmap *d, *s; X { X! int i, x, y, border, w = (s->width + 7) / 8; X X *d = *s; X memcpy( d->bits, s->bits, s->height * w ); X--- 230,237 ---- X invert( d, s ) X bitmap *d, *s; X { X! int i, x, y, j_border, w; X! w = (s->width + 7) / 8; X X *d = *s; X memcpy( d->bits, s->bits, s->height * w ); X*************** X*** 238,244 **** X for( i = 0; i < d->height * w; ++i ) X d->bits[i] ^= 0xff; X X! border = 0x0101 >> (d->width & 07); X X for( y = 0; y < d->height; ++y ) { X if ( y == 0 ) X--- 239,245 ---- X for( i = 0; i < d->height * w; ++i ) X d->bits[i] ^= 0xff; X X! j_border = 0x0101 >> (d->width & 07); X X for( y = 0; y < d->height; ++y ) { X if ( y == 0 ) X*************** X*** 245,251 **** X for( x = 0; x < w; ++x ) X d->bits[y * w + x] = 0xff; X d->bits[y * w] |= 0x80; X! d->bits[y * w + w - 1] |= border; X if ( y == d->height - 1 ) X for( x = 0; x < w; ++x ) X d->bits[y * w + x] = 0xff; X--- 246,252 ---- X for( x = 0; x < w; ++x ) X d->bits[y * w + x] = 0xff; X d->bits[y * w] |= 0x80; X! d->bits[y * w + w - 1] |= j_border; X if ( y == d->height - 1 ) X for( x = 0; x < w; ++x ) X d->bits[y * w + x] = 0xff; X*** ega.c.orig Mon Mar 13 09:02:00 1989 X--- ega.c Mon Mar 13 09:18:56 1989 X*************** X*** 538,564 **** X } X } X X- X- /* X- * Getch() X- */ X- Getch() X- { X- char c = 0; X- X- if(EGAaddr) { X- while( c == 0 ) X- read(EGAifd, &c, 1); X- X- if(c == '\r') X- c = '\n'; X- X- return( c ); X- } X- else X- return( wgetch(stdscr) ); X- } X- X /* X * Clear() X */ X--- 538,543 ---- X*** game.c.orig Mon Feb 13 11:54:33 1989 X--- game.c Mon Mar 13 09:25:29 1989 X*************** X*** 156,171 **** X long *score; X char keys[10]; X { X! int x,y,nx,ny,deadyet =0, X sx = -1,sy = -1,tx = -1,ty = -1,lx,ly,mx = -1,my = -1, X tmpx,tmpy, ch, newnum, X max_score = 250, X diamonds = 0, nf = 0,hd ,vd ,xdirection,ydirection; X static char howdead[25]; /* M001 can't use auto var for return value */ X direction new_disp; X struct mon_rec *monster,*current,*mp; X struct { int x,y,c; } redraw; X X tail_of_list = &start_of_list; X X for(x=0;x<=ROWLEN;x++) X--- 156,176 ---- X long *score; X char keys[10]; X { X! int x,y,nx,ny,deadyet =0,running, X sx = -1,sy = -1,tx = -1,ty = -1,lx,ly,mx = -1,my = -1, X tmpx,tmpy, ch, newnum, X max_score = 250, X diamonds = 0, nf = 0,hd ,vd ,xdirection,ydirection; X static char howdead[25]; /* M001 can't use auto var for return value */ X+ char *runkeys; X direction new_disp; X struct mon_rec *monster,*current,*mp; X struct { int x,y,c; } redraw; X X+ if (strlen(keys) < 8) X+ runkeys = "KJHL"; X+ else X+ runkeys = keys+4; X tail_of_list = &start_of_list; X X for(x=0;x<=ROWLEN;x++) X*************** X*** 240,255 **** X X nx=x; X ny=y; X X! if((ch == keys[3] || ch == KEY_RIGHT) && (x <(ROWLEN-1))) /* move about - but thats obvious */ X nx++; X! if((ch == keys[2] || ch == KEY_LEFT || ch == KEY_BACKSPACE || ch == '\b') && (x > 0)) X nx--; X! if((ch == keys[1] || ch == KEY_DOWN) && (y <(NOOFROWS-1))) X ny++; X! if((ch == keys[0] || ch == KEY_UP) && (y > 0)) X ny--; X! if(ch == '1') /* Add or get rid of that awful sound */ X { X *bell = 1; X beep(); X--- 245,286 ---- X X nx=x; X ny=y; X+ running=0; X X! /* move about - but that's obvious */ X! if(ch == keys[3] || ch == KEY_RIGHT) { X! if (x <(ROWLEN-1)) X nx++; X! } X! else if(ch == keys[2] || ch == KEY_LEFT || ch == KEY_BACKSPACE || ch == '\b') { X! if (x > 0) X nx--; X! } X! else if(ch == keys[1] || ch == KEY_DOWN) { X! if(y <(NOOFROWS-1)) X ny++; X! } X! else if(ch == keys[0] || ch == KEY_UP) { X! if(y > 0) X ny--; X! } X! else if(ch == runkeys[3]) { X! if(x <(ROWLEN-1)) X! nx++, running++; X! } X! else if(ch == runkeys[2]) { X! if(x > 0) X! nx--, running++; X! } X! else if(ch == runkeys[1]) { X! if(y <(NOOFROWS-1)) X! ny++, running++; X! } X! else if(ch == runkeys[0]) { X! if(y > 0) X! ny--, running++; X! } X! else if(ch == '1') /* Add or get rid of that awful sound */ X { X *bell = 1; X beep(); X*************** X*** 270,276 **** X } X continue; X } X! if(ch == '0') X { X *bell = 0; X #ifdef EGA X--- 301,307 ---- X } X continue; X } X! else if(ch == '0') X { X *bell = 0; X #ifdef EGA X*************** X*** 290,296 **** X } X continue; X } X! if(ch == '~' && !edit_mode) /* level jump */ X { X if((newnum = jumpscreen(*num)) == 0) X return "a jump error"; X--- 321,327 ---- X } X continue; X } X! else if(ch == '~' && !edit_mode) /* level jump */ X { X if((newnum = jumpscreen(*num)) == 0) X return "a jump error"; X*************** X*** 302,308 **** X beep(); X continue; X } X! if(ch == '!' || ch == 'v') /* look at the map */ X { X if(debug_disp) X continue; X--- 333,339 ---- X beep(); X continue; X } X! else if(ch == '!' || ch == 'v') /* look at the map */ X { X if(debug_disp) X continue; X*************** X*** 319,327 **** X } X continue; X } X! if(ch == 'q') X return "quitting the game"; X! if(ch == '?') X { X helpme(keys); X #ifdef EGA X--- 350,358 ---- X } X continue; X } X! else if(ch == 'q') X return "quitting the game"; X! else if(ch == '?') X { X helpme(keys); X #ifdef EGA X*************** X*** 335,341 **** X display(sx,sy); X continue; X } X! if((ch == '@')&&(!debug_disp)) X { X sx = x; X sy = y; X--- 366,372 ---- X display(sx,sy); X continue; X } X! else if((ch == '@')&&(!debug_disp)) X { X sx = x; X sy = y; X*************** X*** 342,348 **** X display(sx,sy); X continue; X } X! if(ch == '#') X { X debug_disp = 1 - debug_disp; X sx = x; sy = y; X--- 373,379 ---- X display(sx,sy); X continue; X } X! else if(ch == '#') X { X debug_disp = 1 - debug_disp; X sx = x; sy = y; X*************** X*** 365,371 **** X } X continue; X } X! if(ch == 'W' || ch == '\f') /* redraw screen */ X { X redraw_screen(&maxmoves,*num,*score,nf,diamonds,mx,sx,sy); X continue; X--- 396,402 ---- X } X continue; X } X! else if(ch == 'W' || ch == '\f') /* redraw screen */ X { X redraw_screen(&maxmoves,*num,*score,nf,diamonds,mx,sx,sy); X continue; X*************** X*** 372,378 **** X } X X /* M002 Added save/restore game feature. Gregory H. Margo */ X! if(ch == 'S') /* save game */ X { X extern struct save_vars zz; X X--- 403,409 ---- X } X X /* M002 Added save/restore game feature. Gregory H. Margo */ X! else if(ch == 'S') /* save game */ X { X extern struct save_vars zz; X X*************** X*** 410,416 **** X } X continue; X } X! if(ch == 'R') /* restore game */ X { X extern struct save_vars zz; X X--- 441,447 ---- X } X continue; X } X! else if(ch == 'R') /* restore game */ X { X extern struct save_vars zz; X X*************** X*** 457,463 **** X goto update_game; /* the dreaded goto */ X } X X! if(screen[ny][nx] == 'C') X { X screen[ny][nx] = ':'; X *score+=4; X--- 488,494 ---- X goto update_game; /* the dreaded goto */ X } X X! else if(screen[ny][nx] == 'C') X { X screen[ny][nx] = ':'; X *score+=4; X*************** X*** 939,944 **** X--- 970,982 ---- X } X } X X+ /* see if we can continue running */ X+ if (running && X+ (((ch == runkeys[3]) && (screen[y][x+1] == ' ')) || X+ ((ch == runkeys[2]) && (screen[y][x-1] == ' ')) || X+ ((ch == runkeys[1]) && (screen[y+1][x] == ' ')) || X+ ((ch == runkeys[0]) && (screen[y-1][x] == ' ')))) X+ ungetch(ch); X } X return(howdead); X } X*** jump.c.orig Mon Feb 13 11:55:37 1989 X--- jump.c Mon Mar 13 09:25:30 1989 X*************** X*** 246,252 **** X /* X * Check for Wizard Mode X */ X! if(strcmp(word,MASTERPASSWORD) == 0) X { X #ifdef EGA X if(EGAaddr) { X--- 246,252 ---- X /* X * Check for Wizard Mode X */ X! if(ckpasswd(word) == 0) X { X #ifdef EGA X if(EGAaddr) { X*** m.c.orig Mon Mar 13 09:03:05 1989 X--- m.c Mon Mar 13 09:32:15 1989 X*************** X*** 13,18 **** X--- 13,19 ---- X int maxscreens; X int edit_mode = 0; X int saved_game = 0; X+ int restore_file = 0; X char *edit_screen; X char *screenpath; X /* Screen[NOOFROWS][ROWLEN] is centered inside area[NOOFROWS+2][ROWLEN+2]. X*************** X*** 20,31 **** X * screen[][] that happen to match a boulder, etc. X */ X char area[1+NOOFROWS+1][1+ROWLEN+1]; X! char (*screen)[ROWLEN+1+1] = &area[1][1]; X X main(argc,argv) X int argc; X char *argv[]; X { X struct stat statbuf; X int num,bell = 0,maxmoves = 0,x,y; X long score = 0; X--- 21,35 ---- X * screen[][] that happen to match a boulder, etc. X */ X char area[1+NOOFROWS+1][1+ROWLEN+1]; X! char (*screen)[ROWLEN+1+1] = (char(*)[ROWLEN+2])&area[1][1]; X X main(argc,argv) X int argc; X char *argv[]; X { X+ int c; X+ extern int optind; X+ extern int getopt(); X struct stat statbuf; X int num,bell = 0,maxmoves = 0,x,y; X long score = 0; X*************** X*** 40,58 **** X if((screenpath = getenv("SCREENPATH")) == NULL) X screenpath = SCREENPATH; X X! if(argc == 2) X { X! if(!strcmp(argv[1], "-e")) X! { X edit_mode = 1; X! edit_screen = NULL; X! } X! else if(!strcmp(argv[1], "-m")) X! { X erase_scores(); X return 0; X! } X! else if(!strcmp(argv[1], "-c")) X { X char ch; X int fp; X--- 44,59 ---- X if((screenpath = getenv("SCREENPATH")) == NULL) X screenpath = SCREENPATH; X X! while ((c = getopt(argc, argv, "emcsfr")) != -1) X! switch (c) X { X! case 'e': X edit_mode = 1; X! break; X! case 'm': X erase_scores(); X return 0; X! case 'c': X { X char ch; X int fp; X*************** X*** 65,100 **** X while(read(fp,&ch,1) == 1) X putchar(ch); X putchar('\n'); X! exit(0); X } X! else if(!strcmp(argv[1], "-s")) X! { X savescore("",0L,0,NULL); X return 0; X! } X! else if(!strcmp(argv[1], "-f")) X! { X debug_disp = 1; X! } X! else X! { X! fprintf(stderr,"Usage: %s [ -e [file] | -m | -c | -s | -f ]\n",argv[0]); X exit(1); X } X! } X! if(argc > 2) X { X! if(!strcmp(argv[1],"-e")) X! { X! edit_mode = 1; X! edit_screen = argv[2]; X } X- else X- { X- fprintf(stderr,"Usage: %s [ -e [file] | -m | -c | -s | -f ]\n",argv[0]); X- exit(1); X- } X- } X X /* use passwords? if file "no_pws" exists and is readable, then no pws! */ X sprintf(buffer,"%s/no_pws",screenpath); X--- 66,103 ---- X while(read(fp,&ch,1) == 1) X putchar(ch); X putchar('\n'); X! return 0; X } X! case 's': X savescore("",0L,0,NULL); X return 0; X! case 'f': X debug_disp = 1; X! break; X! case 'r': X! restore_file = 1; X! break; X! case '?': X! fprintf(stderr,"Usage: %s [ -e | -m | -c | -s | -f | -r] [file]\n",argv[0]); X! fprintf(stderr,"\t-s\tshow scores\n"); X! fprintf(stderr,"\t-r\trestore from file\n"); X! fprintf(stderr,"\t-f\tfull screen mode\n"); X! fprintf(stderr,"\t-c\tshow credits\n"); X! fprintf(stderr,"\t-e\tedit screen file\n"); X! fprintf(stderr,"\t-m\tmanage score file\n"); X exit(1); X } X! if (optind < argc) X! if (edit_mode) X! edit_screen = argv[optind]; X! else if (restore_file) X { X! #ifndef NOPUTENV X! static char savenamebuf[BUFSIZ]; X! sprintf(savenamebuf, "SAVENAME=%s", argv[2]); X! putenv(savenamebuf); X! #endif X } X X /* use passwords? if file "no_pws" exists and is readable, then no pws! */ X sprintf(buffer,"%s/no_pws",screenpath); X*************** X*** 130,136 **** X #endif X X if((keys = getenv("NEWKEYS")) == NULL) X! keys = "kjhl"; X X #ifdef EGA X if(egainit()) { X--- 133,143 ---- X #endif X X if((keys = getenv("NEWKEYS")) == NULL) X! keys = "kjhlKJHL"; X! if (strlen(keys) < 4) { X! fprintf(stderr, "%s: $NEWKEYS must define all keys or none\n", argv[0]); X! exit(1); X! } X X #ifdef EGA X if(egainit()) { X*************** X*** 156,161 **** X--- 163,170 ---- X keypad(stdscr, TRUE); X CBON; X noecho(); X+ if (restore_file) X+ ungetch('R'); X } X X /* MAIN PROGRAM HERE */ X*** read.c.orig Mon Mar 13 09:26:02 1989 X--- read.c Mon Mar 13 09:32:15 1989 X*************** X*** 151,153 **** X--- 151,189 ---- X ungetch_ch = ch; X } X #endif X+ #ifdef NOUNGETCH X+ static int ungetch_ch = -1; X+ #endif X+ /* X+ * Getch() X+ */ X+ Getch() X+ { X+ #ifdef NOUNGETCH X+ if (ungetch_ch != -1) { X+ int sv = ungetch_ch; X+ ungetch_ch = -1; X+ return sv; X+ } X+ #endif X+ #ifdef EGA X+ if(EGAaddr) { X+ char c = 0; X+ extern int EGAifd; X+ while( c == 0 ) X+ read(EGAifd, &c, 1); X+ if(c == '\r') X+ c = '\n'; X+ return( c ); X+ } X+ else X+ #endif X+ return( wgetch(stdscr) ); X+ } X+ #ifdef NOUNGETCH X+ ungetch(ch) X+ int ch; X+ { X+ ungetch_ch = ch; X+ } X+ #endif X*** scores.c.orig Mon Mar 13 09:03:08 1989 X--- scores.c Mon Mar 13 09:26:03 1989 X*************** X*** 312,318 **** X correct[index++] = c; X } X correct[index] = 0; X! if(strcmp(correct,MASTERPASSWORD)) { X printf("\nFoo, charlatan!\n"); X return; X } X--- 312,318 ---- X correct[index++] = c; X } X correct[index] = 0; X! if(ckpasswd(correct)) { X printf("\nFoo, charlatan!\n"); X return; X } X*************** X*** 329,332 **** X--- 329,344 ---- X printf("\n"); X } X printf("Byee!\n"); X+ } X+ /* compare the given word against the master password */ X+ int ckpasswd(word) X+ char *word; X+ { X+ char buf[30]; X+ char *p; X+ strncpy(buf, word, sizeof(buf)); X+ for (p = buf; *p; p++) X+ *p ^= 0123; X+ *p = '\0'; X+ return strcmp(buf, MASTERPASSWORD); X } X*** wand_head.h.orig Mon Feb 13 11:54:28 1989 X--- wand_head.h Mon Mar 13 11:02:06 1989 X*************** X*** 8,20 **** X #define NOOFROWS 16 X X /* Change these to the necessary directories or files */ X #define SCREENPATH "/usr/games/lib/wanderer" X #define HISCOREPATH "/usr/games/lib/.wanderer" X #define LOCKPATH "/tmp/wanderer.lock" /* hiscore lock file */ X #define DICTIONARY "/usr/lib/dictionary" X X /* change this to anything (12 characters or less), but don't forget what */ X! #define MASTERPASSWORD "slimy worms" X X /* change the numbers in this as well, but keep it in the same form */ X #define PASSWD (num * num * 4373L + num * 16927L + 39L) X--- 8,29 ---- X #define NOOFROWS 16 X X /* Change these to the necessary directories or files */ X+ #ifndef SCREENPATH X #define SCREENPATH "/usr/games/lib/wanderer" X+ #endif X+ #ifndef HISCOREPATH X #define HISCOREPATH "/usr/games/lib/.wanderer" X+ #endif X #define LOCKPATH "/tmp/wanderer.lock" /* hiscore lock file */ X+ #ifndef DICTIONARY X #define DICTIONARY "/usr/lib/dictionary" X+ #endif X X /* change this to anything (12 characters or less), but don't forget what */ X! static char MASTERPASSWORD[] = X! { 's' ^ 0123, 'l' ^ 0123, 'i' ^ 0123, 'm' ^ 0123, X! 'y' ^ 0123, ' ' ^ 0123, 'w' ^ 0123, 'o' ^ 0123, X! 'r' ^ 0123, 'm' ^ 0123, 's' ^ 0123, 0 }; X X /* change the numbers in this as well, but keep it in the same form */ X #define PASSWD (num * num * 4373L + num * 16927L + 39L) X*************** X*** 77,82 **** X--- 86,95 ---- X #define getch() Getch() X #define beep() Beep() X #endif X+ #ifdef NOUNGETCH X+ #undef getch X+ #define getch() Getch() X+ #endif X X /* Save and Restore game additions (M002) by Gregory H. Margo */ X /* mon_rec structure needed by save.c */ X*************** X*** 205,208 **** X--- 218,236 ---- X extern void egamessage(); X #endif X X+ #endif X+ X+ #ifndef KEY_UP X+ /* for terminals/consoles without single character cursor key codes */ X+ /* (quick and dirty fix by Bill Randle, billr@saab.cna.tek.com) */ X+ #define NOKEYPAD X+ #define KEY_UP keys[0] X+ #define KEY_DOWN keys[1] X+ #define KEY_LEFT keys[2] X+ #define KEY_RIGHT keys[3] X+ #define KEY_BACKSPACE keys[2] X+ #endif X+ X+ #ifdef NOBEEP X+ #define beep() putchar('\007') X #endif X*** Makefile.orig Mon Mar 13 09:03:00 1989 X--- Makefile Mon Mar 13 11:24:33 1989 X*************** X*** 1,5 **** X--- 1,11 ---- X # Makefile for wanderer X+ # last modified Mar. 10, 1989 by billr@saab.cna.tek.com X X+ DEST = /usr/games X+ DESTLIB=/usr/games/lib X+ SCORE = $(DESTLIB)/.wanderer X+ SCREENS = $(DESTLIB)/wanderer X+ X CURSESO = m.o save.o jump.o display.o icon.o game.o read.o help.o fall.o \ X scores.o edit.o X EGAO = 159x174.o 16x16.o 48x48.o ega.o X*************** X*** 6,17 **** X X # For the EGA version, pick an initialization routine(s) X EGAINITO= iAPX286.o X! EGAINITO= venix286.o X! EGAINITO= 386ix.o 386ix_ega.o X EGA = -DEGA X OBJ = $(CURSESO) $(EGAO) $(EGAINITO) X! # MODEL = -Ml X STACK = X X # If you just want the curses version, then use X #EGA = X--- 12,24 ---- X X # For the EGA version, pick an initialization routine(s) X EGAINITO= iAPX286.o X! #EGAINITO= venix286.o X! #EGAINITO= 386ix.o 386ix_ega.o X EGA = -DEGA X OBJ = $(CURSESO) $(EGAO) $(EGAINITO) X! MODEL = -Ml X STACK = X+ DEFINES = X X # If you just want the curses version, then use X #EGA = X*************** X*** 18,36 **** X #OBJ = $(CURSESO) X #MODEL = X #STACK = -k 0x4000 X X # You're on your own here... X! G = -g X! #O = -O X #S = -s X! CFLAGS = $(MODEL) $G $O $(EGA) X LDFLAGS = $(MODEL) $G $S $(STACK) X! LIBS = -lcurses X X- DEST = /usr/games X- DESTLIB=/usr/games/lib X- SCORE = $(DESTLIB)/.wanderer X- SCREENS = $(DESTLIB)/wanderer X GUID= games X GGID= other X X--- 25,43 ---- X #OBJ = $(CURSESO) X #MODEL = X #STACK = -k 0x4000 X+ # (These defines work well for BSD Unix) X+ #DEFINES = -DHISCOREPATH=\"$(SCORE)\" -DSCREENPATH=\"$(SCREENS)\" -DDICTIONARY=\"/usr/dict/words\" -DNOUNGETCH -DNOBEEP X X # You're on your own here... X! #G = -g X! O = -O X #S = -s X! CFLAGS = $(MODEL) $G $O $(EGA) $(DEFINES) X LDFLAGS = $(MODEL) $G $S $(STACK) X! #LIBS = -lcurses X! # BSD needs termcap lib too X! LIBS = -lcurses -ltermcap X X GUID= games X GGID= other X END_OF_FILE if test 18471 -ne `wc -c <'Patches02'`; then echo shar: \"'Patches02'\" unpacked with wrong size! fi # end of 'Patches02' fi echo shar: End of shell archive. exit 0