games-request@tekred.UUCP (06/13/87)
Submitted by: tims@zeus.TEK.COM (Tim Stoehr) Comp.sources.games: Volume 1, Issue 52 Archive-name: rogue/Patch2 [This is the official patch#2 for the rogue clone previously posted to comp.sources.games. As in Patch1, this posting has two files: Tim's original list of changes (for those wanting to do it by hand or wanting to check things out) and a set of diffs suitable for the 'patch' program. The diffs rely on Patches01 being previously applied. -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: Bugs2 Patches02 # Wrapped by billr@tekred on Fri Jun 12 14:41:14 1987 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f Bugs2 -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"Bugs2\" else echo shar: Extracting \"Bugs2\" \(2652 characters\) sed "s/^X//" >Bugs2 <<'END_OF_Bugs2' XHere is a second list of fixes for bugs and non-portable items found in my Xrogue clone. Many thanks to those who reported the problems, I would Xappreciate any further reports, particularly if the stuff below does Xnot fix what it is intended to fix. X X Tim Stoehr X tims@zeus.TEK.COM X ---------------------------------------------------- X X 1.) Change SCROLL and SCROLLS to SCROL and SCROLS respectively X throughout the code. This is to avoid conflicts with X some curses stuff. If your compiler doesn't complain, you X probably don't have to worry about this. X X 2.) Change ALL occurences of the symbol 'UP' to 'UPWARD'. This prevents X the definition in rogue.h from clashing with the curses definition. X X 3.) There may be a nested comment around line 41 in machdep.c. X Nuke it. X X 4.) In zap.c, a new version of tele_away() was sent out. That version X needs to have the global variable 'detect_monster' added to the X list of extern booleans at the top of zap.c, if it is not already X there. X X 5.) In message.c, at the bottom of the routine message(), there is code X that looks like: X X if (did_int) { X onintr(); X } X cant_int = 0; X X It should look like the following: X X cant_int = 0; X if (did_int) { X did_int = 0; X onintr(); X } X X 6.) In machdep.c, the routine md_slurp() shoud be changed to what is X shown below, otherwise, messages get screwed up on UNIX_BSD4_2. X Only the BSD4_2 portion needs to be changed. X Xmd_slurp() X{ X long ln = 0; X X#ifdef UNIX_BSD4_2 X ioctl(0, FIONREAD, &ln); X#endif X#ifdef UNIX_SYSV X ioctl(0, TCFLSH, &ln); X ln = 0; X#endif X X ln += stdin->_cnt; X X for (; ln > 0; ln--) { X (void) getchar(); X } X} X X 7.) In monster.c, in the table m_names near the top of the file, X change "aquatar" to "aquator" and "quasit" to "quagga." X X 8.) References to curses internals should be removed for the sake X of portability/compatibility. X X In score.c, in the routine quit(), change these two lines: X X orow = curscr->_cury; X ocol = curscr->_curx; X X to: X X orow = rogue.row; X ocol = rogue.col; X X X And in message.c, in the routine save_screen(), remove these lines X which appear at the beginning of the routine: X X row = curscr->_cury; X col = curscr->_curx; X X and remove these lines which appear at the bottom of the routine: X X move(row, col); X refresh(); X X You can also them remove the local variables, row and col. END_OF_Bugs2 if test 2652 -ne `wc -c <Bugs2`; then echo shar: \"Bugs2\" unpacked with wrong size! fi # end of overwriting check fi if test -f Patches02 -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"Patches02\" else echo shar: Extracting \"Patches02\" \(19425 characters\) sed "s/^X//" >Patches02 <<'END_OF_Patches02' X*** hit.c.orig Fri May 29 14:20:03 1987 X--- hit.c Fri Jun 12 13:39:57 1987 X*************** X*** 13,19 **** X #include "rogue.h" X X object *fight_monster = 0; X- boolean detect_monster; X char hit_message[80] = ""; X X extern short halluc, blind, cur_level; X--- 13,18 ---- X*** inventory.c.orig Fri May 29 14:20:35 1987 X--- inventory.c Fri Jun 12 13:12:14 1987 X*************** X*** 184,190 **** X short i, j, n; X short sylls, s; X X! for (i = 0; i < SCROLLS; i++) { X sylls = get_rand(2, 5); X (void) strcpy(id_scrolls[i].title, "'"); X X--- 184,190 ---- X short i, j, n; X short sylls, s; X X! for (i = 0; i < SCROLS; i++) { X sylls = get_rand(2, 5); X (void) strcpy(id_scrolls[i].title, "'"); X X*************** X*** 250,256 **** X case UNIDENTIFIED: X CHECK: X switch(obj->what_is) { X! case SCROLL: X (void) strcat(desc, item_name); X (void) strcat(desc, "entitled: "); X (void) strcat(desc, id_table[obj->which_kind].title); X--- 250,256 ---- X case UNIDENTIFIED: X CHECK: X switch(obj->what_is) { X! case SCROL: X (void) strcat(desc, item_name); X (void) strcat(desc, "entitled: "); X (void) strcat(desc, id_table[obj->which_kind].title); X*************** X*** 287,293 **** X break; X case CALLED: X CALL: switch(obj->what_is) { X! case SCROLL: X case POTION: X case WAND: X case RING: X--- 287,293 ---- X break; X case CALLED: X CALL: switch(obj->what_is) { X! case SCROL: X case POTION: X case WAND: X case RING: X*************** X*** 299,305 **** X break; X case IDENTIFIED: X ID: switch(obj->what_is) { X! case SCROLL: X case POTION: X (void) strcat(desc, item_name); X (void) strcat(desc, id_table[obj->which_kind].real); X--- 299,305 ---- X break; X case IDENTIFIED: X ID: switch(obj->what_is) { X! case SCROL: X case POTION: X (void) strcat(desc, item_name); X (void) strcat(desc, id_table[obj->which_kind].real); X*************** X*** 419,425 **** X object *obj; X { X switch(obj->what_is) { X! case SCROLL: X return(id_scrolls); X case POTION: X return(id_potions); X--- 419,425 ---- X object *obj; X { X switch(obj->what_is) { X! case SCROL: X return(id_scrolls); X case POTION: X return(id_potions); X*** level.c.orig Fri May 29 14:20:48 1987 X--- level.c Fri Jun 12 13:13:22 1987 X*************** X*** 275,287 **** X dir = RIGHT; X } else if (same_col(room1, room2) && X (rooms[room1].top_row > rooms[room2].bottom_row)) { X! put_door(&rooms[room1], UP, &row1, &col1); X put_door(&rooms[room2], DOWN, &row2, &col2); X! dir = UP; X } else if (same_col(room1, room2) && X (rooms[room2].top_row > rooms[room1].bottom_row)) { X put_door(&rooms[room1], DOWN, &row1, &col1); X! put_door(&rooms[room2], UP, &row2, &col2); X dir = DOWN; X } else { X return(0); X--- 275,287 ---- X dir = RIGHT; X } else if (same_col(room1, room2) && X (rooms[room1].top_row > rooms[room2].bottom_row)) { X! put_door(&rooms[room1], UPWARD, &row1, &col1); X put_door(&rooms[room2], DOWN, &row2, &col2); X! dir = UPWARD; X } else if (same_col(room1, room2) && X (rooms[room2].top_row > rooms[room1].bottom_row)) { X put_door(&rooms[room1], DOWN, &row1, &col1); X! put_door(&rooms[room2], UPWARD, &row2, &col2); X dir = DOWN; X } else { X return(0); X*************** X*** 337,345 **** X wall_width = (rm->is_room & R_MAZE) ? 0 : 1; X X switch(dir) { X! case UP: X case DOWN: X! *row = ((dir == UP) ? rm->top_row : rm->bottom_row); X do { X *col = get_rand(rm->left_col+wall_width, X rm->right_col-wall_width); X--- 337,345 ---- X wall_width = (rm->is_room & R_MAZE) ? 0 : 1; X X switch(dir) { X! case UPWARD: X case DOWN: X! *row = ((dir == UPWARD) ? rm->top_row : rm->bottom_row); X do { X *col = get_rand(rm->left_col+wall_width, X rm->right_col-wall_width); X*************** X*** 497,503 **** X RIGHT : LEFT; X } else { X tunnel_dir = (rooms[rn].top_row < rooms[target_room].top_row) ? X! DOWN : UP; X } X door_dir = ((tunnel_dir + 4) % DIRS); X if (rooms[target_room].doors[door_dir/2].oth_room != NO_ROOM) { X--- 497,503 ---- X RIGHT : LEFT; X } else { X tunnel_dir = (rooms[rn].top_row < rooms[target_room].top_row) ? X! DOWN : UPWARD; X } X door_dir = ((tunnel_dir + 4) % DIRS); X if (rooms[target_room].doors[door_dir/2].oth_room != NO_ROOM) { X*************** X*** 554,560 **** X RIGHT : LEFT; X } else { X tunnel_dir = (rooms[rn].top_row < rooms[de].top_row) ? X! DOWN : UP; X } X draw_simple_passage(srow, scol, drow, dcol, tunnel_dir); X r_de = de; X--- 554,560 ---- X RIGHT : LEFT; X } else { X tunnel_dir = (rooms[rn].top_row < rooms[de].top_row) ? X! DOWN : UPWARD; X } X draw_simple_passage(srow, scol, drow, dcol, tunnel_dir); X r_de = de; X*************** X*** 588,594 **** X char dirs[4]; X short i, t; X X! dirs[0] = UP; X dirs[1] = DOWN; X dirs[2] = LEFT; X dirs[3] = RIGHT; X--- 588,594 ---- X char dirs[4]; X short i, t; X X! dirs[0] = UPWARD; X dirs[1] = DOWN; X dirs[2] = LEFT; X dirs[3] = RIGHT; X*************** X*** 607,613 **** X } X for (i = 0; i < 4; i++) { X switch(dirs[i]) { X! case UP: X if (((r-1) >= tr) && X (dungeon[r-1][c] != TUNNEL) && X (dungeon[r-1][c-1] != TUNNEL) && X--- 607,613 ---- X } X for (i = 0; i < 4; i++) { X switch(dirs[i]) { X! case UPWARD: X if (((r-1) >= tr) && X (dungeon[r-1][c] != TUNNEL) && X (dungeon[r-1][c-1] != TUNNEL) && X*** machdep.c.orig Fri Jun 12 13:30:16 1987 X--- machdep.c Fri Jun 12 13:19:48 1987 X*************** X*** 39,45 **** X * #else X * code; X * #endif /* UNIX_SYSV */ X! * } X * X * Appropriate variations of this are of course acceptible. X * The use of "#elseif" is discouraged because of non-portability. X--- 39,45 ---- X * #else X * code; X * #endif /* UNIX_SYSV */ X! /* } X * X * Appropriate variations of this are of course acceptible. X * The use of "#elseif" is discouraged because of non-portability. X*************** X*** 82,97 **** X X md_slurp() X { X! long ln; X X #ifdef UNIX_BSD4_2 X! ioctl(0, TIOCFLUSH, &ln); X #endif /* UNIX_BSD4_2 */ X #ifdef UNIX_SYSV X ioctl(0, TCFLSH, &ln); X #endif /* UNIX_SYSV */ X X! for (ln = stdin->_cnt; ln > 0; ln--) { X (void) getchar(); X } X } X--- 82,100 ---- X X md_slurp() X { X! long ln = 0; X X #ifdef UNIX_BSD4_2 X! ioctl(0, FIONREAD, &ln); X #endif /* UNIX_BSD4_2 */ X #ifdef UNIX_SYSV X ioctl(0, TCFLSH, &ln); X+ ln = 0; X #endif /* UNIX_SYSV */ X X! ln += stdin->_cnt; X! X! for (; ln > 0; ln--) { X (void) getchar(); X } X } X*** message.c.orig Fri May 29 14:21:38 1987 X--- message.c Fri Jun 12 13:21:44 1987 X*************** X*** 48,57 **** X msg_cleared = 0; X msg_col = strlen(msg); X X if (did_int) { X onintr(); X } X- cant_int = 0; X } X X remessage() X--- 48,58 ---- X msg_cleared = 0; X msg_col = strlen(msg); X X+ cant_int = 0; X if (did_int) { X+ did_int = 0; X onintr(); X } X } X X remessage() X*************** X*** 256,268 **** X save_screen() X { X FILE *fp; X! short i, j, row, col; X char buf[DCOLS+2]; X boolean found_non_blank; X X- row = curscr->_cury; X- col = curscr->_curx; X- X if ((fp = fopen("rogue.screen", "w")) != NULL) { X for (i = 0; i < DROWS; i++) { X found_non_blank = 0; X--- 257,266 ---- X save_screen() X { X FILE *fp; X! short i, j; X char buf[DCOLS+2]; X boolean found_non_blank; X X if ((fp = fopen("rogue.screen", "w")) != NULL) { X for (i = 0; i < DROWS; i++) { X found_non_blank = 0; X*************** X*** 282,289 **** X } else { X sound_bell(); X } X- move(row, col); X- refresh(); X } X X sound_bell() X--- 280,285 ---- X*** monster.c.orig Fri May 29 14:21:49 1987 X--- monster.c Fri Jun 12 13:23:13 1987 X*************** X*** 16,22 **** X boolean mon_disappeared; X X char *m_names[] = { X! "aquatar", X "bat", X "centaur", X "dragon", X--- 16,22 ---- X boolean mon_disappeared; X X char *m_names[] = { X! "aquator", X "bat", X "centaur", X "dragon", X*************** X*** 32,38 **** X "nymph", X "orc", X "phantom", X! "quasit", X "rattlesnake", X "snake", X "troll", X--- 32,38 ---- X "nymph", X "orc", X "phantom", X! "quagga", X "rattlesnake", X "snake", X "troll", X*************** X*** 479,485 **** X } X if (dungeon[row][col] & OBJECT) { X obj = object_at(&level_objects, row, col); X! if ((obj->what_is == SCROLL) && (obj->which_kind == SCARE_MONSTER)) { X return(0); X } X } X--- 479,485 ---- X } X if (dungeon[row][col] & OBJECT) { X obj = object_at(&level_objects, row, col); X! if ((obj->what_is == SCROL) && (obj->which_kind == SCARE_MONSTER)) { X return(0); X } X } X*** object.c.orig Fri May 29 14:22:10 1987 X--- object.c Fri Jun 12 13:24:01 1987 X*************** X*** 50,56 **** X {145, "beige \0 ", "of see invisible ", 0} X }; X X! struct id id_scrolls[SCROLLS] = { X {505, " ", "of protect armor ", 0}, X {200, " ", "of hold monster ", 0}, X {235, " ", "of enchant weapon ", 0}, X--- 50,56 ---- X {145, "beige \0 ", "of see invisible ", 0} X }; X X! struct id id_scrolls[SCROLS] = { X {505, " ", "of protect armor ", 0}, X {200, " ", "of hold monster ", 0}, X {235, " ", "of enchant weapon ", 0}, X*************** X*** 244,250 **** X char *retstring; X X switch(obj->what_is) { X! case SCROLL: X retstring = obj->quantity > 1 ? "scrolls " : "scroll "; X break; X case POTION: X--- 244,250 ---- X char *retstring; X X switch(obj->what_is) { X! case SCROL: X retstring = obj->quantity > 1 ? "scrolls " : "scroll "; X break; X case POTION: X*************** X*** 308,314 **** X obj->what_is = gr_what_is(); X } X switch(obj->what_is) { X! case SCROLL: X gr_scroll(obj); X break; X case POTION: X--- 308,314 ---- X obj->what_is = gr_what_is(); X } X switch(obj->what_is) { X! case SCROL: X gr_scroll(obj); X break; X case POTION: X*************** X*** 342,348 **** X percent = get_rand(1, 91); X X if (percent <= 30) { X! what_is = SCROLL; X } else if (percent <= 60) { X what_is = POTION; X } else if (percent <= 64) { X--- 342,348 ---- X percent = get_rand(1, 91); X X if (percent <= 30) { X! what_is = SCROL; X } else if (percent <= 60) { X what_is = POTION; X } else if (percent <= 64) { X*************** X*** 366,372 **** X X percent = get_rand(0, 85); X X! obj->what_is = SCROLL; X X if (percent <= 5) { X obj->which_kind = PROTECT_ARMOR; X--- 366,372 ---- X X percent = get_rand(0, 85); X X! obj->what_is = SCROL; X X if (percent <= 5) { X obj->which_kind = PROTECT_ARMOR; X*************** X*** 694,701 **** X max = POTIONS - 1; X break; X case '?': X! obj->what_is = SCROLL; X! max = SCROLLS - 1; X break; X case ',': X obj->what_is = AMULET; X--- 694,701 ---- X max = POTIONS - 1; X break; X case '?': X! obj->what_is = SCROL; X! max = SCROLS - 1; X break; X case ',': X obj->what_is = AMULET; X*** pack.c.orig Fri May 29 14:22:20 1987 X--- pack.c Fri Jun 12 13:24:32 1987 X*************** X*** 60,66 **** X obj = object_at(&level_objects, row, col); X *status = 1; X X! if ((obj->what_is == SCROLL) && (obj->which_kind == SCARE_MONSTER) && X obj->picked_up) { X message("the scroll turns to dust as you pick it up", 0); X dungeon[row][col] &= (~OBJECT); X--- 60,66 ---- X obj = object_at(&level_objects, row, col); X *status = 1; X X! if ((obj->what_is == SCROL) && (obj->which_kind == SCARE_MONSTER) && X obj->picked_up) { X message("the scroll turns to dust as you pick it up", 0); X dungeon[row][col] &= (~OBJECT); X*************** X*** 157,163 **** X { X object *op; X X! if (!(obj->what_is & (WEAPON | FOOD | SCROLL | POTION))) { X return(0); X } X if ((obj->what_is == FOOD) && (obj->which_kind == FRUIT)) { X--- 157,163 ---- X { X object *op; X X! if (!(obj->what_is & (WEAPON | FOOD | SCROL | POTION))) { X return(0); X } X if ((obj->what_is == FOOD) && (obj->which_kind == FRUIT)) { X*************** X*** 380,386 **** X struct id *id_table; X char buf[MAX_TITLE_LENGTH+2]; X X! ch = pack_letter("call what?", (SCROLL | POTION | WAND | RING)); X X if (ch == CANCEL) { X return; X--- 380,386 ---- X struct id *id_table; X char buf[MAX_TITLE_LENGTH+2]; X X! ch = pack_letter("call what?", (SCROL | POTION | WAND | RING)); X X if (ch == CANCEL) { X return; X*************** X*** 389,395 **** X message("no such item.", 0); X return; X } X! if (!(obj->what_is & (SCROLL | POTION | WAND | RING))) { X message("surely you already know what that's called", 0); X return; X } X--- 389,395 ---- X message("no such item.", 0); X return; X } X! if (!(obj->what_is & (SCROL | POTION | WAND | RING))) { X message("surely you already know what that's called", 0); X return; X } X*************** X*** 450,456 **** X (*c == ')') || (*c == ']') || (*c == '/') || (*c == ','))) { X switch(*c) { X case '?': X! *mask = SCROLL; X break; X case '!': X *mask = POTION; X--- 450,456 ---- X (*c == ')') || (*c == ']') || (*c == '/') || (*c == ','))) { X switch(*c) { X case '?': X! *mask = SCROL; X break; X case '!': X *mask = POTION; X*** patchlevel.h.orig Thu May 28 15:06:56 1987 X--- patchlevel.h Fri Jun 12 13:24:41 1987 X*************** X*** 1 **** X! #define PATCHLEVEL 1 X--- 1 ---- X! #define PATCHLEVEL 2 X*** rogue.h.orig Fri May 29 14:18:42 1987 X--- rogue.h Fri Jun 12 13:25:27 1987 X*************** X*** 26,32 **** X X #define ARMOR ((unsigned short) 01) X #define WEAPON ((unsigned short) 02) X! #define SCROLL ((unsigned short) 04) X #define POTION ((unsigned short) 010) X #define GOLD ((unsigned short) 020) X #define FOOD ((unsigned short) 040) X--- 26,32 ---- X X #define ARMOR ((unsigned short) 01) X #define WEAPON ((unsigned short) 02) X! #define SCROL ((unsigned short) 04) X #define POTION ((unsigned short) 010) X #define GOLD ((unsigned short) 020) X #define FOOD ((unsigned short) 040) X*************** X*** 68,74 **** X #define CREATE_MONSTER 9 X #define AGGRAVATE_MONSTER 10 X #define MAGIC_MAPPING 11 X! #define SCROLLS 12 X X #define INCREASE_STRENGTH 0 X #define RESTORE_STRENGTH 1 X--- 68,74 ---- X #define CREATE_MONSTER 9 X #define AGGRAVATE_MONSTER 10 X #define MAGIC_MAPPING 11 X! #define SCROLS 12 X X #define INCREASE_STRENGTH 0 X #define RESTORE_STRENGTH 1 X*************** X*** 345,351 **** X #define QUIT 4 X #define WIN 5 X X! #define UP 0 X #define UPRIGHT 1 X #define RIGHT 2 X #define RIGHTDOWN 3 X--- 345,351 ---- X #define QUIT 4 X #define WIN 5 X X! #define UPWARD 0 X #define UPRIGHT 1 X #define RIGHT 2 X #define RIGHTDOWN 3 X*** room.c.orig Fri May 29 14:22:54 1987 X--- room.c Fri Jun 12 13:25:59 1987 X*************** X*** 140,146 **** X register unsigned short mask; X { X switch(mask) { X! case SCROLL: X return('?'); X case POTION: X return('!'); X--- 140,146 ---- X register unsigned short mask; X { X switch(mask) { X! case SCROL: X return('?'); X case POTION: X return('!'); X*************** X*** 404,410 **** X short d = -1; X X if (*row == rooms[rn].top_row) { X! d = UP/2; X } else if (*row == rooms[rn].bottom_row) { X d = DOWN/2; X } else if (*col == rooms[rn].left_col) { X--- 404,410 ---- X short d = -1; X X if (*row == rooms[rn].top_row) { X! d = UPWARD/2; X } else if (*row == rooms[rn].bottom_row) { X d = DOWN/2; X } else if (*col == rooms[rn].left_col) { X*** save.c.orig Fri May 29 14:24:31 1987 X--- save.c Fri Jun 12 13:26:27 1987 X*************** X*** 92,98 **** X r_write(fp, (char *) &rogue, sizeof(fighter)); X write_pack(&rogue.pack, fp); X rw_id(id_potions, fp, POTIONS, 1); X! rw_id(id_scrolls, fp, SCROLLS, 1); X rw_id(id_wands, fp, WANDS, 1); X rw_id(id_rings, fp, RINGS, 1); X r_write(fp, (char *) traps, (MAX_TRAPS * sizeof(trap))); X--- 92,98 ---- X r_write(fp, (char *) &rogue, sizeof(fighter)); X write_pack(&rogue.pack, fp); X rw_id(id_potions, fp, POTIONS, 1); X! rw_id(id_scrolls, fp, SCROLS, 1); X rw_id(id_wands, fp, WANDS, 1); X rw_id(id_rings, fp, RINGS, 1); X r_write(fp, (char *) traps, (MAX_TRAPS * sizeof(trap))); X*************** X*** 164,170 **** X r_read(fp, (char *) &rogue, sizeof(fighter)); X read_pack(&rogue.pack, fp, 1); X rw_id(id_potions, fp, POTIONS, 0); X! rw_id(id_scrolls, fp, SCROLLS, 0); X rw_id(id_wands, fp, WANDS, 0); X rw_id(id_rings, fp, RINGS, 0); X r_read(fp, (char *) traps, (MAX_TRAPS * sizeof(trap))); X--- 164,170 ---- X r_read(fp, (char *) &rogue, sizeof(fighter)); X read_pack(&rogue.pack, fp, 1); X rw_id(id_potions, fp, POTIONS, 0); X! rw_id(id_scrolls, fp, SCROLS, 0); X rw_id(id_wands, fp, WANDS, 0); X rw_id(id_rings, fp, RINGS, 0); X r_read(fp, (char *) traps, (MAX_TRAPS * sizeof(trap))); X*** score.c.orig Fri May 29 14:25:01 1987 X--- score.c Fri Jun 12 13:27:40 1987 X*************** X*** 120,127 **** X X if (from_intrpt) { X X! orow = curscr->_cury; X! ocol = curscr->_curx; X mc = msg_cleared; X X for (i = 0; i < DCOLS; i++) { X--- 120,127 ---- X X if (from_intrpt) { X X! orow = rogue.row; X! ocol = rogue.col; X mc = msg_cleared; X X for (i = 0; i < DCOLS; i++) { X*************** X*** 403,409 **** X case WAND: X val = id_wands[wc].value * (obj->class + 1); X break; X! case SCROLL: X val = id_scrolls[wc].value * obj->quantity; X break; X case POTION: X--- 403,409 ---- X case WAND: X val = id_wands[wc].value * (obj->class + 1); X break; X! case SCROL: X val = id_scrolls[wc].value * obj->quantity; X break; X case POTION: X*************** X*** 426,432 **** X { X short i; X X! for (i = 0; i < SCROLLS; i++) { X id_scrolls[i].id_status = IDENTIFIED; X } X for (i = 0; i < WEAPONS; i++) { X--- 426,432 ---- X { X short i; X X! for (i = 0; i < SCROLS; i++) { X id_scrolls[i].id_status = IDENTIFIED; X } X for (i = 0; i < WEAPONS; i++) { X*** use.c.orig Fri May 29 14:25:52 1987 X--- use.c Fri Jun 12 13:28:05 1987 X*************** X*** 148,154 **** X object *obj; X char msg[DCOLS]; X X! ch = pack_letter("read what?", SCROLL); X X if (ch == CANCEL) { X return; X--- 148,154 ---- X object *obj; X char msg[DCOLS]; X X! ch = pack_letter("read what?", SCROL); X X if (ch == CANCEL) { X return; X*************** X*** 157,163 **** X message("no such item.", 0); X return; X } X! if (obj->what_is != SCROLL) { X message("you can't read that", 0); X return; X } X--- 157,163 ---- X message("no such item.", 0); X return; X } X! if (obj->what_is != SCROL) { X message("you can't read that", 0); X return; X } X*************** X*** 336,342 **** X goto AGAIN; X } X obj->identified = 1; X! if (obj->what_is & (SCROLL | POTION | WEAPON | ARMOR | WAND | RING)) { X id_table = get_id_table(obj); X id_table[obj->which_kind].id_status = IDENTIFIED; X } X--- 336,342 ---- X goto AGAIN; X } X obj->identified = 1; X! if (obj->what_is & (SCROL | POTION | WEAPON | ARMOR | WAND | RING)) { X id_table = get_id_table(obj); X id_table[obj->which_kind].id_status = IDENTIFIED; X } X*** zap.c.orig Fri May 29 14:26:04 1987 X--- zap.c Fri Jun 12 13:29:07 1987 X*************** X*** 14,20 **** X X boolean wizard = 0; X X! extern boolean being_held, score_only; X X zapp() X { X--- 14,20 ---- X X boolean wizard = 0; X X! extern boolean being_held, score_only, detect_monster; X X zapp() X { END_OF_Patches02 if test 19425 -ne `wc -c <Patches02`; then echo shar: \"Patches02\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of shell archive. exit 0