billr@saab.CNA.TEK.COM (Bill Randle) (06/05/90)
Submitted-by: wilson@ernie.Berkeley.EDU (Jim Wilson) Posting-number: Volume 10, Issue 15 Archive-name: umoria3/Patch1a Patch-To: umoria3: Volume 9, Issue 55-86 This patch has fixes for: * the invisible/invincible monster/player bug * a bug triggered by climbing stairs while search mode is enabled * a bug that occasionally occurs when reading the 'Door Creation' scroll * numerous problems with the IBM-PC Turbo C support * numerous problems with the Macintosh MPW C support * a new version of the util/printit program for pretty printing object and monster descriptions * the Mac ScrnMgr.doc file which had lines much longer than 80 characters, and all files that did not end with a newline character Copy the 3 patch file parts to the top level umoria directory, and unshar them there. There are 7 files which are replaced, the shar file renames the old copies with a '.old' extension. See the NOTES01 file after you have unshared the 3 parts for more info. Jim Wilson wilson@ernie.Berkeley.EDU #! /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 archive 1 (of 3)." # Contents: MANIFEST.P1 patches01 source/tables.c util/printit # Wrapped by wilson@atlas on Wed May 30 14:19:58 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'MANIFEST.P1' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST.P1'\" else echo shar: Extracting \"'MANIFEST.P1'\" \(610 characters\) sed "s/^X//" >'MANIFEST.P1' <<'END_OF_FILE' X File Name Archive # Description X----------------------------------------------------------- X MANIFEST.P1 1 This shipping list X NOTES01 3 X ibmpc/turbo_c.inf 3 X mac/MakeFile.hqx 2 X mac/dumpres/MakeFile.hqx 2 X mac/resource.hqx 3 X mac/scrnmgr/MakeFile.hqx 3 X mac/scrnmgr/ScrnMgr.doc 2 X patches01 1 X source/player.c 2 X source/tables.c 1 X source/variable.c 3 X util/printit 1 X util/printit/Makefile 3 X util/printit/pr_items.c 3 X util/printit/pr_monst.c 3 END_OF_FILE if test 610 -ne `wc -c <'MANIFEST.P1'`; then echo shar: \"'MANIFEST.P1'\" unpacked with wrong size! fi # end of 'MANIFEST.P1' fi if test -f 'patches01' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches01'\" else echo shar: Extracting \"'patches01'\" \(39060 characters\) sed "s/^X//" >'patches01' <<'END_OF_FILE' Xdiff -cr oldumoria/CHANGES umoria/CHANGES X*** oldumoria/CHANGES Thu May 10 11:49:31 1990 X--- umoria/CHANGES Sun May 27 15:38:31 1990 X*************** X*** 602,604 X resource.hqx: recompiled the mac resource files X macscore.c, mac.c: changed control characters '...' to \311 X all: distribute version 5.2.0 X X--- 602,656 ----- X resource.hqx: recompiled the mac resource files X macscore.c, mac.c: changed control characters '...' to \311 X all: distribute version 5.2.0 X+ ----------- 5/14 X+ death.c, externs.h, io.c, ms_misc.c: Turbo C changes, void sleep() instead X+ of unsigned sleep(), don't call reset_term() before exiting, ifdef X+ out definition of sleep() in ms_misc.c, declare signal handler as X+ void not int X+ generate.c, types.h: change IBMPC_TURBO_C defines to the proper TURBOC define X+ io.c: shell_out(), MSDOS code parameter to inkey() call deleted X+ externs.h: count_msg_print() changed from (int) to (char *) X+ io.c: get_check(), add code to use 'y' if LINT_ARGS defined, pause_exit() X+ add code to use 'delay' for MSDOS machines X+ ms_misc.c: clear_screen(0,0) changed to clear_screen() X+ main.c: set stack size for TURBOC by declaring the _stksize variable X+ misc2.c: player_saves(), split expression up because MPW C couldn't handle it X+ save.c: include time.h for for the Mac, delete var 'i' in save_char (unused), X+ get_char() add code for MAC to return FALSE if savefile doesn't exist X+ mac.c: add call to initsavedefaults() in main() X+ mac/ERRORS: document problem with mac Makefile X+ -------- 5/15 X+ externs.h: remove decl of py_bash(), which is in moria2.c and static X+ --------- 5/17 X+ dungeon.c: move search_off() call after check_view(), as panel_* variables X+ must be valid before search_off() is called X+ -------- 5/18 X+ all: 7 files did not end with newlines, 5 hqx files, and origcmds.hlp, X+ misc/README also did not end with a newline X+ -------- 5/21 X+ constant.h, version.hlp, moria.r: change version number to 5.2.1 X+ ScrnMgr.doc: split all lines greater than 80 characters, to make the file X+ more portable X+ --------- 5/22 X+ death.c: in mac sources, there was a 'true' instead of a 'TRUE' X+ ms_misc.c: Turbo C sscanf() incorrectly reads a newline from a blank line, X+ add check for newline to code that reads configuration file X+ spells.c: door_creation(), called popt() before calling delete_object() X+ which could then invalidate the value returned by popt, moved X+ popt() call after the delete_object() call X+ ----------- 5/25 X+ creature.c: fix the invincible/invisible monster bug, multiply_monster() X+ was creating children on top of the parent, thus killing the parent X+ for carnivorous monsters X+ death.c, externs.h, generate.c, io.c, main.c, ms_misc.c, signals.c, types.h: X+ change all TURBOC defines to __TURBOC__ X+ util/printit: new version of the printit program by Carl Hommel, fixed up X+ to be somewhat more portable and to use only moria defined constants X+ -------- 5/27 X+ player.c, tables.c, variable.c: Turbo C can not accept any file with more than X+ 64K global variables, so variable.c split into three parts, also X+ updated all makefiles to refer to all three files X+ mac files: all three mac Makefiles modified to delete obsolete references to X+ CInterface.o and CRuntime.o, scrnmgr Makefile modified to automatically X+ combine the two ScrnMgr.c parts, README updated to document a problem X+ with the Makefile not appending resources and text files sometimes Xdiff -cr oldumoria/ERRORS umoria/ERRORS X*** oldumoria/ERRORS Thu May 10 11:37:10 1990 X--- umoria/ERRORS Sun May 27 15:38:29 1990 X*************** X*** 1,3 X for Atari ST, find and fix rest of the &/| long constant problems, esp. see X moria1.c X X X--- 1,23 ----- X+ on some unknown version of Sun OS, with some unknown compiler version, X+ on a Sun 3/80, umoria core dumps while restoring a savefile if compiled X+ with -O2, works if compiled with -O1 X+ X+ mac version does not clear screen properly when running a second X+ character, try looking for variables which should be cleared but aren't, X+ especially the race display, and object pointers X+ X+ typing escape to the wizard mode change character prompts does not X+ clear the message line X+ X+ can actually get the 'internal error in identify scroll' message, user had X+ two(one?) unidentified identify scrolls, and one known identify scroll, X+ read the known one, identified the unknown ones, got the combining message, X+ and then got the internal error message X+ X+ need to clear the heavy_weapon state everytime a new weapon is wielded, X+ so that you don't get 'can wield' message when going from heavy to light, X+ but you do get a 'can't' wield' message when going from heavy to heavy X+ X for Atari ST, find and fix rest of the &/| long constant problems, esp. see X moria1.c X X*************** X*** 13,22 X I did this, note the def of errno in files.c for MSDOS X X clock in misc1.c needs to be changed, Mac (TC?) defines this X- X- i believe it is possible for two oozes to eat each other, and this X- will cause problems; there definitely IS a bug in the m_list code X- somewhere X X a few routines still equate '\0' with ESCAPE, such as get_com(), X fix them to ignore NULL characters?, also get_com() should echo "escape" X X--- 33,38 ----- X I did this, note the def of errno in files.c for MSDOS X X clock in misc1.c needs to be changed, Mac (TC?) defines this X X a few routines still equate '\0' with ESCAPE, such as get_com(), X fix them to ignore NULL characters?, also get_com() should echo "escape" Xdiff -cr oldumoria/README umoria/README X*** oldumoria/README Wed May 9 16:05:57 1990 X--- umoria/README Mon May 21 00:41:02 1990 X*************** X*** 3,9 X second major release of the game. These sources have been compiled X successfully at least once in the following environments: UNIX (4.2 BSD, X 4.3 BSD, SYS V, Xenix, and many similar systems), IBM-PC (MSC 5.0, X! Turbo C 4.0), Mac (MPW 3.0), Atari ST (MWC, GCC). VMS and Mac (Think C 4.0) X ports are in progress. X X I consider these to be beta sources. That means they will probably work X X--- 3,9 ----- X second major release of the game. These sources have been compiled X successfully at least once in the following environments: UNIX (4.2 BSD, X 4.3 BSD, SYS V, Xenix, and many similar systems), IBM-PC (MSC 5.0, X! Turbo C 2.0), Mac (MPW 3.0), Atari ST (MWC, GCC). VMS and Mac (Think C 4.0) X ports are in progress. X X I consider these to be beta sources. That means they will probably work Xdiff -cr oldumoria/atari_st/Makefile umoria/atari_st/Makefile X*** oldumoria/atari_st/Makefile Mon Feb 26 21:27:46 1990 X--- umoria/atari_st/Makefile Sun May 27 15:48:08 1990 X*************** X*** 12,18 X generate.c sets.c dungeon.c creature.c death.c eat.c help.c magic.c\ X potions.c prayer.c save.c staffs.c wands.c scrolls.c spells.c\ X wizard.c store2.c signals.c moria1.c moria2.c monsters.c\ X! treasure.c variable.c rnd.c recall.c atarist.c undef.c X X OBJS = main.o misc1.o misc2.o store1.o files.o io.o create.o desc.o\ X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X X--- 12,19 ----- X generate.c sets.c dungeon.c creature.c death.c eat.c help.c magic.c\ X potions.c prayer.c save.c staffs.c wands.c scrolls.c spells.c\ X wizard.c store2.c signals.c moria1.c moria2.c monsters.c\ X! treasure.c variable.c rnd.c recall.c atarist.c undef.c\ X! player.c tables.c X X OBJS = main.o misc1.o misc2.o store1.o files.o io.o create.o desc.o\ X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X*************** X*** 18,24 X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X potions.o prayer.o save.o staffs.o wands.o scrolls.o spells.o\ X wizard.o store2.o signals.o moria1.o moria2.o monsters.o\ X! treasure.o variable.o rnd.o recall.o atarist.o undef.o curses.o X X LIBFILES = moria_hours moria_help moria_orig_help moria_wiz_help \ X moria_orig_wiz_help moria_man X X--- 19,26 ----- X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X potions.o prayer.o save.o staffs.o wands.o scrolls.o spells.o\ X wizard.o store2.o signals.o moria1.o moria2.o monsters.o\ X! treasure.o variable.o rnd.o recall.o atarist.o undef.o curses.o\ X! player.o tables.o X X LIBFILES = moria_hours moria_help moria_orig_help moria_wiz_help \ X moria_orig_wiz_help moria_man X*************** X*** 84,89 X monsters.o: constant.h types.h config.h X moria1.o: constant.h types.h externs.h config.h X moria2.o: constant.h types.h externs.h config.h X potions.o: constant.h types.h externs.h config.h X prayer.o: constant.h types.h externs.h config.h X recall.o: constant.h config.h types.h externs.h X X--- 86,92 ----- X monsters.o: constant.h types.h config.h X moria1.o: constant.h types.h externs.h config.h X moria2.o: constant.h types.h externs.h config.h X+ player.o: constant.h types.h config.h X potions.o: constant.h types.h externs.h config.h X prayer.o: constant.h types.h externs.h config.h X recall.o: constant.h config.h types.h externs.h X*************** X*** 96,101 X staffs.o: constant.h types.h externs.h config.h X store1.o: constant.h types.h externs.h config.h X store2.o: constant.h types.h externs.h config.h X treasure.o: constant.h types.h config.h X atarist.o: constant.h config.h types.h externs.h X variable.o: constant.h types.h config.h X X--- 99,105 ----- X staffs.o: constant.h types.h externs.h config.h X store1.o: constant.h types.h externs.h config.h X store2.o: constant.h types.h externs.h config.h X+ tables.o: constant.h types.h config.h X treasure.o: constant.h types.h config.h X atarist.o: constant.h config.h types.h externs.h X variable.o: constant.h types.h config.h Xdiff -cr oldumoria/files/version.hlp umoria/files/version.hlp X*** oldumoria/files/version.hlp Wed May 9 15:11:55 1990 X--- umoria/files/version.hlp Mon May 21 16:53:08 1990 X*************** X*** 52,55 X not for profit purposes provided that this copyright and statement are X included in all such copies. X X! Umoria Version 5.2, patch level 0 X X--- 52,55 ----- X not for profit purposes provided that this copyright and statement are X included in all such copies. X X! Umoria Version 5.2, patch level 1 Xdiff -cr oldumoria/ibmpc/MLINK.LNK umoria/ibmpc/MLINK.LNK X*** oldumoria/ibmpc/MLINK.LNK Fri May 4 16:50:21 1990 X--- umoria/ibmpc/MLINK.LNK Sun May 27 15:43:37 1990 X*************** X*** 4,7 X POTIONS+PRAYER+RND+SAVE+ X SCROLLS+SETS+SIGNALS+SPELLS+STAFFS+ X STORE1+STORE2+TREASURE+VARIABLE+ X! WANDS+WIZARD+IO+MS_MISC+UNDEF+RECALL,moria,,pccurses X X--- 4,8 ----- X POTIONS+PRAYER+RND+SAVE+ X SCROLLS+SETS+SIGNALS+SPELLS+STAFFS+ X STORE1+STORE2+TREASURE+VARIABLE+ X! WANDS+WIZARD+IO+MS_MISC+UNDEF+RECALL+ X! PLAYER.C+TABLES.C,moria,,pccurses Xdiff -cr oldumoria/ibmpc/MORIA.CNF umoria/ibmpc/MORIA.CNF X*** oldumoria/ibmpc/MORIA.CNF Fri May 4 16:50:07 1990 X--- umoria/ibmpc/MORIA.CNF Mon May 14 13:54:08 1990 X*************** X*** 1,4 X! # Configuration file for PC MORIA 4.87 X # X # All lines that have the # character as the first character are X # comment lines. Blank lines are totally ignored. X X--- 1,4 ----- X! # Configuration file for PC MORIA 5.x X # X # All lines that have the # character as the first character are X # comment lines. Blank lines are totally ignored. Xdiff -cr oldumoria/ibmpc/ms_misc.c umoria/ibmpc/ms_misc.c X*** oldumoria/ibmpc/ms_misc.c Tue Mar 27 14:27:05 1990 X--- umoria/ibmpc/ms_misc.c Fri May 25 17:14:13 1990 X*************** X*** 57,62 X return cp; X } X X unsigned int X sleep(secs) X int secs; X X--- 57,63 ----- X return cp; X } X X+ #ifndef __TURBOC__ X unsigned int X sleep(secs) X int secs; X*************** X*** 68,73 X /* nothing */; X return 0; X } X X void X error(fmt, a1, a2, a3, a4) X X--- 69,75 ----- X /* nothing */; X return 0; X } X+ #endif X X void X error(fmt, a1, a2, a3, a4) X*************** X*** 153,159 X continue; X X cnt = sscanf(buf, "%s", opt); X! if (cnt == 0 || opt[0] == '\0') X continue; X X /* Go through possible variables X X--- 155,163 ----- X continue; X X cnt = sscanf(buf, "%s", opt); X! /* Turbo C will incorrectly read a newline from an empty line, X! MSC will read correctly read a NULL character */ X! if (cnt == 0 || opt[0] == '\0' || opt[0] == '\n') X continue; X X /* Go through possible variables X*************** X*** 382,388 X { X char buf[80]; X X! clear_screen(0, 0); X wmove(stdscr,0,0); X waddstr(stdscr," *********************"); X wmove(stdscr,1,0); X X--- 386,392 ----- X { X char buf[80]; X X! clear_screen(); X wmove(stdscr,0,0); X waddstr(stdscr," *********************"); X wmove(stdscr,1,0); Xdiff -cr oldumoria/mac/README umoria/mac/README X*** oldumoria/mac/README Sun Mar 4 03:38:31 1990 X--- umoria/mac/README Sun May 27 15:32:40 1990 X*************** X*** 28,30 X X a. Set the directory to "{NewDir}" X b. Build (cmd-B) "Moria" (or execute "BuildProgram Moria"). X X--- 28,34 ----- X X a. Set the directory to "{NewDir}" X b. Build (cmd-B) "Moria" (or execute "BuildProgram Moria"). X+ c. If Moria doesn't seem to work right, it is probably because X+ the resource and text files weren't appended to the application. X+ Either delete the file Moria and rebuild, or else execute by hand X+ the commands which append the resources and text files. Xdiff -cr oldumoria/mac/mac.c umoria/mac/mac.c X*** oldumoria/mac/mac.c Thu May 10 11:42:44 1990 X--- umoria/mac/mac.c Mon May 14 19:11:52 1990 X*************** X*** 1674,1679 X X restart_flag = FALSE; X X /* Find out if user has started from a saved game */ X savedgame = getfinderfile(); X X X--- 1674,1681 ----- X X restart_flag = FALSE; X X+ initsavedefaults (); X+ X /* Find out if user has started from a saved game */ X savedgame = getfinderfile(); X Xdiff -cr oldumoria/mac/macdata.c umoria/mac/macdata.c X*** oldumoria/mac/macdata.c Sun Mar 4 03:38:35 1990 X--- umoria/mac/macdata.c Sun May 27 15:19:27 1990 X*************** X*** 1,7 X /* This program creates the initialized global data resources. */ X /* It is compiled as an MPW tool. */ X X! /* Monsters.c, treasur1.c, treasur2.c, variable.c are included. */ X /* But, when this program is built, the compiler is instructed to */ X /* actually include the initialized global data. We just copy it */ X /* into resource handles and dump them to the executable. */ X X--- 1,7 ----- X /* This program creates the initialized global data resources. */ X /* It is compiled as an MPW tool. */ X X! /* Monsters.c, player.c, tables.c, treasure.c, and variables.c are included.*/ X /* But, when this program is built, the compiler is instructed to */ X /* actually include the initialized global data. We just copy it */ X /* into resource handles and dump them to the executable. */ Xdiff -cr oldumoria/mac/moria.r umoria/mac/moria.r X*** oldumoria/mac/moria.r Wed May 9 15:14:30 1990 X--- umoria/mac/moria.r Mon May 21 16:54:25 1990 X*************** X*** 13,19 X }; X X resource 'MRIA' (0) { X! "Moria 5.2.0 for the Macintosh: Implementation 2.0b1" X }; X X resource 'BNDL' (128, purgeable) { X X--- 13,19 ----- X }; X X resource 'MRIA' (0) { X! "Moria 5.2.1 for the Macintosh: Implementation 2.0b1" X }; X X resource 'BNDL' (128, purgeable) { X*************** X*** 205,211 X StaticText { X disabled, X "Moria for the Macintosh\n" X! "Version 5.2.0\n" X "Implementation 2.0b1\n\n\n" X "Programmers:\n" X "Robert Alan Koeneke\n" X X--- 205,211 ----- X StaticText { X disabled, X "Moria for the Macintosh\n" X! "Version 5.2.1\n" X "Implementation 2.0b1\n\n\n" X "Programmers:\n" X "Robert Alan Koeneke\n" X*************** X*** 560,566 X {8, 52, 40, 380}, X StaticText { X disabled, X! "Moria for the Macintosh Version 5.2.0" X }, X /* [6] */ X {8, 8, 40, 40}, X X--- 560,566 ----- X {8, 52, 40, 380}, X StaticText { X disabled, X! "Moria for the Macintosh Version 5.2.1" X }, X /* [6] */ X {8, 8, 40, 40}, X*************** X*** 584,590 X X resource 'TEXT' (512, "Mac Help", purgeable) { X "This is an beta version of Mac Moria, implementation 2.0b1, which is " X! "based on the Umoria 5.2.0 sources. Please send comments and bug repor" X "ts to wilson@ernie.Berkeley.EDU (Jim Wilson) or 73230.224@compuserve.c" X "om (Curtis McCauley).\n\n" X "Users of previous versions o" X X--- 584,590 ----- X X resource 'TEXT' (512, "Mac Help", purgeable) { X "This is an beta version of Mac Moria, implementation 2.0b1, which is " X! "based on the Umoria 5.2.1 sources. Please send comments and bug repor" X "ts to wilson@ernie.Berkeley.EDU (Jim Wilson) or 73230.224@compuserve.c" X "om (Curtis McCauley).\n\n" X "Users of previous versions o" Xdiff -cr oldumoria/source/constant.h umoria/source/constant.h X*** oldumoria/source/constant.h Wed May 9 15:09:55 1990 X--- umoria/source/constant.h Mon May 21 16:52:42 1990 X*************** X*** 24,30 X /* Current version number of Moria */ X #define CUR_VERSION_MAJ 5 /* version 5.2 */ X #define CUR_VERSION_MIN 2 X! #define PATCH_LEVEL 0 X X #ifndef TRUE X #define TRUE 1 X X--- 24,30 ----- X /* Current version number of Moria */ X #define CUR_VERSION_MAJ 5 /* version 5.2 */ X #define CUR_VERSION_MIN 2 X! #define PATCH_LEVEL 1 X X #ifndef TRUE X #define TRUE 1 Xdiff -cr oldumoria/source/creature.c umoria/source/creature.c X*** oldumoria/source/creature.c Fri May 4 19:33:39 1990 X--- umoria/source/creature.c Fri May 25 17:07:25 1990 X*************** X*** 905,911 X attackn++; X else X break; X! } X } X X X X--- 905,911 ----- X attackn++; X else X break; X! } X } X X X*************** X*** 1389,1395 X { X j = y - 2 + randint(3); X k = x - 2 + randint(3); X! if (in_bounds(j, k)) X { X c_ptr = &cave[j][k]; X if ((c_ptr->fval <= MAX_OPEN_SPACE) && (c_ptr->tptr == 0) && X X--- 1389,1397 ----- X { X j = y - 2 + randint(3); X k = x - 2 + randint(3); X! /* don't create a new creature on top of the old one, that causes X! invincible/invisible creatures to appear */ X! if (in_bounds(j, k) && (j != y || k != x)) X { X c_ptr = &cave[j][k]; X if ((c_ptr->fval <= MAX_OPEN_SPACE) && (c_ptr->tptr == 0) && Xdiff -cr oldumoria/source/death.c umoria/source/death.c X*** oldumoria/source/death.c Fri May 4 18:19:28 1990 X--- umoria/source/death.c Fri May 25 17:10:53 1990 X*************** X*** 257,263 X break; X case 'y': case 'Y': X func = 'Y'; X! ok = true; X break; X case 'n': case 'N': X func = 'N'; X X--- 257,263 ----- X break; X case 'y': case 'Y': X func = 'Y'; X! ok = TRUE; X break; X case 'n': case 'N': X func = 'N'; X*************** X*** 549,554 X if (i > 0) X display_scores (i, TRUE); X erase_line (23, 0); X restore_term (); X #ifdef MAC X /* Undo what has been done */ X X--- 549,555 ----- X if (i > 0) X display_scores (i, TRUE); X erase_line (23, 0); X+ #ifndef __TURBOC__ X restore_term (); X #endif X #ifdef MAC X*************** X*** 550,555 X display_scores (i, TRUE); X erase_line (23, 0); X restore_term (); X #ifdef MAC X /* Undo what has been done */ X enablefilemenu(TRUE); X X--- 551,557 ----- X erase_line (23, 0); X #ifndef __TURBOC__ X restore_term (); X+ #endif X #ifdef MAC X /* Undo what has been done */ X enablefilemenu(TRUE); Xdiff -cr oldumoria/source/dungeon.c umoria/source/dungeon.c X*** oldumoria/source/dungeon.c Mon May 7 23:56:50 1990 X--- umoria/source/dungeon.c Thu May 17 14:31:30 1990 X*************** X*** 82,89 X find_count = 0; X new_level_flag = FALSE; X find_flag = FALSE; X- if (search_flag) X- search_off(); X teleport_flag = FALSE; X mon_tot_mult = 0; X cave[char_row][char_col].cptr = 1; X X--- 82,87 ----- X find_count = 0; X new_level_flag = FALSE; X find_flag = FALSE; X teleport_flag = FALSE; X mon_tot_mult = 0; X cave[char_row][char_col].cptr = 1; X*************** X*** 91,96 X panel_row = panel_col = -1; X /* Light up the area around character */ X check_view (); X /* Light, but do not move critters */ X creatures(FALSE); X /* Print the depth */ X X--- 89,99 ----- X panel_row = panel_col = -1; X /* Light up the area around character */ X check_view (); X+ /* must do this after panel_row/col set to -1, because search_off() will call X+ check_view(), and so the panel_* variables must be valid before X+ search_off() is called */ X+ if (search_flag) X+ search_off(); X /* Light, but do not move critters */ X creatures(FALSE); X /* Print the depth */ Xdiff -cr oldumoria/source/externs.h umoria/source/externs.h X*** oldumoria/source/externs.h Fri May 4 20:49:41 1990 X--- umoria/source/externs.h Fri May 25 17:11:07 1990 X*************** X*** 297,303 X void clear_from(int); X void print(char, int, int); X void move_cursor_relative(int, int); X! void count_msg_print(int); X void prt(char *, int, int); X void move_cursor(int, int); X void msg_print(char *); X X--- 297,303 ----- X void clear_from(int); X void print(char, int, int); X void move_cursor_relative(int, int); X! void count_msg_print(char *); X void prt(char *, int, int); X void move_cursor(int, int); X void msg_print(char *); X*************** X*** 494,500 X void look(void); X void throw_object(void); X void bash(void); X- void py_bash(int, int); X X #ifdef MSDOS X /* ms_misc.c */ X X--- 494,499 ----- X void look(void); X void throw_object(void); X void bash(void); X X #ifdef MSDOS X /* ms_misc.c */ X*************** X*** 499,504 X #ifdef MSDOS X /* ms_misc.c */ X char *getlogin(void); X unsigned int sleep(int ); X void error(char *, ...); X void warn(char *, ...); X X--- 498,506 ----- X #ifdef MSDOS X /* ms_misc.c */ X char *getlogin(void); X+ #ifdef __TURBOC__ X+ void sleep(int); X+ #else X unsigned int sleep(int ); X #endif X void error(char *, ...); X*************** X*** 500,505 X /* ms_misc.c */ X char *getlogin(void); X unsigned int sleep(int ); X void error(char *, ...); X void warn(char *, ...); X void msdos_init(void); X X--- 502,508 ----- X void sleep(int); X #else X unsigned int sleep(int ); X+ #endif X void error(char *, ...); X void warn(char *, ...); X void msdos_init(void); X*************** X*** 952,958 X void look(); X void throw_object(); X void bash(); X- void py_bash(); X X #ifdef MSDOS X /* ms_misc.c */ X X--- 955,960 ----- X void look(); X void throw_object(); X void bash(); X X #ifdef MSDOS X /* ms_misc.c */ X*************** X*** 957,962 X #ifdef MSDOS X /* ms_misc.c */ X char *getlogin(); X unsigned int sleep(); X void error(); X void warn(); X X--- 959,967 ----- X #ifdef MSDOS X /* ms_misc.c */ X char *getlogin(); X+ #ifdef __TURBOC__ X+ void sleep(); X+ #else X unsigned int sleep(); X #endif X void error(); X*************** X*** 958,963 X /* ms_misc.c */ X char *getlogin(); X unsigned int sleep(); X void error(); X void warn(); X void msdos_init(); X X--- 963,969 ----- X void sleep(); X #else X unsigned int sleep(); X+ #endif X void error(); X void warn(); X void msdos_init(); Xdiff -cr oldumoria/source/generate.c umoria/source/generate.c X*** oldumoria/source/generate.c Fri May 4 19:00:51 1990 X--- umoria/source/generate.c Fri May 25 17:11:17 1990 X*************** X*** 13,19 X X #ifdef USG X #if !defined(ATARIST_MWC) X! #ifndef IBMPC_TURBO_C X #include <memory.h> X #else X #include <mem.h> X X--- 13,19 ----- X X #ifdef USG X #if !defined(ATARIST_MWC) X! #ifndef __TURBOC__ X #include <memory.h> X #else X #include <mem.h> Xdiff -cr oldumoria/source/io.c umoria/source/io.c X*** oldumoria/source/io.c Fri May 4 18:41:55 1990 X--- umoria/source/io.c Fri May 25 17:11:29 1990 X*************** X*** 136,141 X X #ifdef USG X void exit(); X unsigned sleep(); X #endif X #ifdef ultrix X X--- 136,144 ----- X X #ifdef USG X void exit(); X+ #ifdef __TURBOC__ X+ void sleep(); X+ #else X unsigned sleep(); X #endif X #endif X*************** X*** 138,143 X void exit(); X unsigned sleep(); X #endif X #ifdef ultrix X void exit(); X void sleep(); X X--- 141,147 ----- X #else X unsigned sleep(); X #endif X+ #endif X #ifdef ultrix X void exit(); X void sleep(); X*************** X*** 535,541 X clear_screen(); /* BOSS key if shell failed */ X put_buffer("M:\\> ", 0, 0); X do { X! key = inkey(key); X } while (key != '!'); X } X X X--- 539,545 ----- X clear_screen(); /* BOSS key if shell failed */ X put_buffer("M:\\> ", 0, 0); X do { X! key = inkey(); X } while (key != '!'); X } X X*************** X*** 1055,1060 X /* prevent message 'warning: y is unused' */ X x = y; X #endif X #endif X X if (x > 73) X X--- 1059,1067 ----- X /* prevent message 'warning: y is unused' */ X x = y; X #endif X+ #ifdef LINT_ARGS X+ /* prevent message about y never used for MSDOS systems */ X+ res = y; X #endif X #endif X X*************** X*** 1056,1061 X x = y; X #endif X #endif X X if (x > 73) X #ifdef ATARIST_MWC X X--- 1063,1069 ----- X /* prevent message about y never used for MSDOS systems */ X res = y; X #endif X+ #endif X X if (x > 73) X #ifdef ATARIST_MWC X*************** X*** 1230,1235 X erase_line(prt_line, 0); X #ifndef MSDOS /* PCs are slow enough as is -dgk */ X if (delay > 0) (void) sleep((unsigned)delay); X #endif X #ifdef MAC X enablefilemenu(FALSE); X X--- 1238,1246 ----- X erase_line(prt_line, 0); X #ifndef MSDOS /* PCs are slow enough as is -dgk */ X if (delay > 0) (void) sleep((unsigned)delay); X+ #else X+ /* prevent message about delay unused */ X+ dummy = delay; X #endif X #ifdef MAC X enablefilemenu(FALSE); Xdiff -cr oldumoria/source/main.c umoria/source/main.c X*** oldumoria/source/main.c Fri May 4 20:48:51 1990 X--- umoria/source/main.c Fri May 25 17:11:37 1990 X*************** X*** 121,126 X long _stksize = 18000; /*(SAJ) for MWC */ X #endif X X #if defined(LINT_ARGS) X static void char_inven_init(void); X static void init_m_level(void); X X--- 121,130 ----- X long _stksize = 18000; /*(SAJ) for MWC */ X #endif X X+ #ifdef __TURBOC__ X+ unsigned _stklen = 0x3fff; /* increase stack from 4K to 16K */ X+ #endif X+ X #if defined(LINT_ARGS) X static void char_inven_init(void); X static void init_m_level(void); Xdiff -cr oldumoria/source/misc2.c umoria/source/misc2.c X*** oldumoria/source/misc2.c Tue May 8 13:07:13 1990 X--- umoria/source/misc2.c Wed May 16 15:34:45 1990 X*************** X*** 2308,2313 X /* Saving throws for player character. -RAK- */ X int player_saves() X { X if (randint(100) <= (py.misc.save + stat_adj(A_WIS) X + (class_level_adj[py.misc.pclass][CLA_SAVE] X * py.misc.lev / 3))) X X--- 2308,2316 ----- X /* Saving throws for player character. -RAK- */ X int player_saves() X { X+ /* MPW C couldn't handle the expression, so split it into two parts */ X+ int16 temp = class_level_adj[py.misc.pclass][CLA_SAVE]; X+ X if (randint(100) <= (py.misc.save + stat_adj(A_WIS) X + (temp * py.misc.lev / 3))) X return(TRUE); X*************** X*** 2309,2316 X int player_saves() X { X if (randint(100) <= (py.misc.save + stat_adj(A_WIS) X! + (class_level_adj[py.misc.pclass][CLA_SAVE] X! * py.misc.lev / 3))) X return(TRUE); X else X return(FALSE); X X--- 2312,2318 ----- X int16 temp = class_level_adj[py.misc.pclass][CLA_SAVE]; X X if (randint(100) <= (py.misc.save + stat_adj(A_WIS) X! + (temp * py.misc.lev / 3))) X return(TRUE); X else X return(FALSE); Xdiff -cr oldumoria/source/save.c umoria/source/save.c X*** oldumoria/source/save.c Thu May 10 10:16:18 1990 X--- umoria/source/save.c Mon May 14 19:08:52 1990 X*************** X*** 70,75 X #endif X X #if !defined(ATARIST_MWC) X long time(); X #else X char *malloc(); X X--- 70,78 ----- X #endif X X #if !defined(ATARIST_MWC) X+ #ifdef MAC X+ #include <time.h> X+ #else X long time(); X #endif X #else X*************** X*** 71,76 X X #if !defined(ATARIST_MWC) X long time(); X #else X char *malloc(); X #endif X X--- 74,80 ----- X #include <time.h> X #else X long time(); X+ #endif X #else X char *malloc(); X #endif X*************** X*** 491,497 X char *fnam; X { X vtype temp; X! register int i, ok, fd; X int8u char_tmp; X X if (log_index < 0) X X--- 495,501 ----- X char *fnam; X { X vtype temp; X! register int ok, fd; X int8u char_tmp; X X if (log_index < 0) X*************** X*** 641,646 X msg_print("Savefile does not exist."); X return FALSE; /* Don't bother with messages here. File absent. */ X } X #endif X X clear_screen(); X X--- 645,653 ----- X msg_print("Savefile does not exist."); X return FALSE; /* Don't bother with messages here. File absent. */ X } X+ #else X+ if (access (savefile, 0) < 0) X+ return FALSE; X #endif X X clear_screen(); Xdiff -cr oldumoria/source/signals.c umoria/source/signals.c X*** oldumoria/source/signals.c Fri May 4 18:17:16 1990 X--- umoria/source/signals.c Fri May 25 17:11:52 1990 X*************** X*** 76,81 X X #ifdef USG X void exit(); X unsigned sleep(); X #endif X X X--- 76,84 ----- X X #ifdef USG X void exit(); X+ #ifdef __TURBOC__ X+ void sleep(); X+ #else X unsigned sleep(); X #endif X #endif X*************** X*** 78,83 X void exit(); X unsigned sleep(); X #endif X X static int error_sig = -1; X static int signal_count = 0; X X--- 81,87 ----- X #else X unsigned sleep(); X #endif X+ #endif X X static int error_sig = -1; X static int signal_count = 0; X*************** X*** 92,97 X X smask = sigsetmask(0) | (1 << sig); X #else X static int signal_handler(sig) X int sig; X { X X--- 96,104 ----- X X smask = sigsetmask(0) | (1 << sig); X #else X+ #ifdef __TURBOC__ X+ static void signal_handler(sig) X+ #else X static int signal_handler(sig) X #endif X int sig; X*************** X*** 93,98 X smask = sigsetmask(0) | (1 << sig); X #else X static int signal_handler(sig) X int sig; X { X X X--- 100,106 ----- X static void signal_handler(sig) X #else X static int signal_handler(sig) X+ #endif X int sig; X { X Xdiff -cr oldumoria/source/spells.c umoria/source/spells.c X*** oldumoria/source/spells.c Mon Apr 9 12:11:18 1990 X--- umoria/source/spells.c Tue May 22 15:25:17 1990 X*************** X*** 437,443 X if (c_ptr->fval <= MAX_CAVE_FLOOR) X { X door = TRUE; X- k = popt(); X if (c_ptr->tptr != 0) X (void) delete_object(i, j); X c_ptr->fval = BLOCKED_FLOOR; X X--- 437,442 ----- X if (c_ptr->fval <= MAX_CAVE_FLOOR) X { X door = TRUE; X if (c_ptr->tptr != 0) X (void) delete_object(i, j); X k = popt(); X*************** X*** 440,445 X k = popt(); X if (c_ptr->tptr != 0) X (void) delete_object(i, j); X c_ptr->fval = BLOCKED_FLOOR; X c_ptr->tptr = k; X invcopy(&t_list[k], OBJ_CLOSED_DOOR); X X--- 439,445 ----- X door = TRUE; X if (c_ptr->tptr != 0) X (void) delete_object(i, j); X+ k = popt(); X c_ptr->fval = BLOCKED_FLOOR; X c_ptr->tptr = k; X invcopy(&t_list[k], OBJ_CLOSED_DOOR); X*************** X*** 442,448 X (void) delete_object(i, j); X c_ptr->fval = BLOCKED_FLOOR; X c_ptr->tptr = k; X! invcopy(&t_list[k], OBJ_CLOSED_DOOR); X lite_spot(i, j); X } X } X X--- 442,448 ----- X k = popt(); X c_ptr->fval = BLOCKED_FLOOR; X c_ptr->tptr = k; X! invcopy(&t_list[k], OBJ_CLOSED_DOOR); X lite_spot(i, j); X } X } Xdiff -cr oldumoria/source/treasure.c umoria/source/treasure.c X*** oldumoria/source/treasure.c Mon Apr 16 19:07:05 1990 X--- umoria/source/treasure.c Fri May 25 20:43:52 1990 X*************** X*** 1,4 X! /* treasur1.c: dungeon object definitions X X Copyright (c) 1989 James E. Wilson, Robert A. Koeneke X X X--- 1,4 ----- X! /* treasure.c: dungeon object definitions X X Copyright (c) 1989 James E. Wilson, Robert A. Koeneke X Xdiff -cr oldumoria/source/types.h umoria/source/types.h X*** oldumoria/source/types.h Fri May 4 18:18:13 1990 X--- umoria/source/types.h Fri May 25 17:12:23 1990 X*************** X*** 318,324 X unsigned int pl : 1; /* permanent light, used for walls and lighted rooms */ X unsigned int tl : 1; /* temporary light, used for player's lamp light,etc.*/ X #else X! #ifndef IBMPC_TURBO_C X /* this is not legal ANSI C, this is a MSC extension, which will use 1 byte X for the bitfields whereas MSC uses 2 bytes for the bitfields above */ X /* this is also a MWC extension on the Atari ST */ X X--- 318,324 ----- X unsigned int pl : 1; /* permanent light, used for walls and lighted rooms */ X unsigned int tl : 1; /* temporary light, used for player's lamp light,etc.*/ X #else X! #ifndef __TURBOC__ X /* this is not legal ANSI C, this is a MSC extension, which will use 1 byte X for the bitfields whereas MSC uses 2 bytes for the bitfields above */ X /* this is also a MWC extension on the Atari ST */ Xdiff -cr oldumoria/unix/Makefile umoria/unix/Makefile X*** oldumoria/unix/Makefile Tue May 8 00:06:16 1990 X--- umoria/unix/Makefile Sun May 27 15:59:20 1990 X*************** X*** 11,17 X generate.c sets.c dungeon.c creature.c death.c eat.c help.c magic.c\ X potions.c prayer.c save.c staffs.c wands.c scrolls.c spells.c\ X wizard.c store2.c signals.c moria1.c moria2.c monsters.c\ X! treasure.c variable.c rnd.c recall.c unix.c undef.c X X OBJS = main.o misc1.o misc2.o store1.o files.o io.o create.o desc.o\ X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X X--- 11,18 ----- X generate.c sets.c dungeon.c creature.c death.c eat.c help.c magic.c\ X potions.c prayer.c save.c staffs.c wands.c scrolls.c spells.c\ X wizard.c store2.c signals.c moria1.c moria2.c monsters.c\ X! treasure.c variable.c rnd.c recall.c unix.c undef.c\ X! player.c tables.c X X OBJS = main.o misc1.o misc2.o store1.o files.o io.o create.o desc.o\ X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X*************** X*** 17,23 X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X potions.o prayer.o save.o staffs.o wands.o scrolls.o spells.o\ X wizard.o store2.o signals.o moria1.o moria2.o monsters.o\ X! treasure.o variable.o rnd.o recall.o unix.o undef.o X X LIBFILES = hours news origcmds.hlp owizcmds.hlp roglcmds.hlp rwizcmds.hlp \ X scores version.hlp welcome.hlp X X--- 18,25 ----- X generate.o sets.o dungeon.o creature.o death.o eat.o help.o magic.o\ X potions.o prayer.o save.o staffs.o wands.o scrolls.o spells.o\ X wizard.o store2.o signals.o moria1.o moria2.o monsters.o\ X! treasure.o variable.o rnd.o recall.o unix.o undef.o\ X! player.o tables.o X X LIBFILES = hours news origcmds.hlp owizcmds.hlp roglcmds.hlp rwizcmds.hlp \ X scores version.hlp welcome.hlp X*************** X*** 66,71 X monsters.o: constant.h types.h config.h X moria1.o: constant.h types.h externs.h config.h X moria2.o: constant.h types.h externs.h config.h X potions.o: constant.h types.h externs.h config.h X prayer.o: constant.h types.h externs.h config.h X recall.o: constant.h config.h types.h externs.h X X--- 68,74 ----- X monsters.o: constant.h types.h config.h X moria1.o: constant.h types.h externs.h config.h X moria2.o: constant.h types.h externs.h config.h X+ player.o: constant.h types.h config.h X potions.o: constant.h types.h externs.h config.h X prayer.o: constant.h types.h externs.h config.h X recall.o: constant.h config.h types.h externs.h X*************** X*** 78,83 X staffs.o: constant.h types.h externs.h config.h X store1.o: constant.h types.h externs.h config.h X store2.o: constant.h types.h externs.h config.h X treasure.o: constant.h types.h config.h X unix.o: constant.h config.h types.h externs.h X variable.o: constant.h types.h config.h X X--- 81,87 ----- X staffs.o: constant.h types.h externs.h config.h X store1.o: constant.h types.h externs.h config.h X store2.o: constant.h types.h externs.h config.h X+ tables.o: constant.h types.h config.h X treasure.o: constant.h types.h config.h X unix.o: constant.h config.h types.h externs.h X variable.o: constant.h types.h config.h Xdiff -cr oldumoria/util/README umoria/util/README X*** oldumoria/util/README Fri May 4 17:53:32 1990 X--- umoria/util/README Fri May 25 21:47:04 1990 X*************** X*** 10,17 X monster.cng: a list of some of the changes to the monster.c file, is this X still needed? X X! printit.c: some code which would pretty print item/monster descriptions for X! umoria 4.87, by Carl Hommel, obsolete X X showmon.c: obsolete code from 4.87 for printing the monster dictionary, X superceded by the monster memories X X--- 10,17 ----- X monster.cng: a list of some of the changes to the monster.c file, is this X still needed? X X! printit.c: some code which will pretty print item/monster descriptions, X! written by Carl Hommel X X showmon.c: obsolete code from 4.87 for printing the monster dictionary, X superceded by the monster memories X*************** X*** 16,19 X showmon.c: obsolete code from 4.87 for printing the monster dictionary, X superceded by the monster memories X X! weapons: a program which roughly indicates which weapons are best X X--- 16,21 ----- X showmon.c: obsolete code from 4.87 for printing the monster dictionary, X superceded by the monster memories X X! weapons: a program which roughly indicates which weapons are best, written X! by Wayne Schlitt X! Xdiff -cr oldumoria/vms/make.com umoria/vms/make.com X*** oldumoria/vms/make.com Wed Feb 14 13:05:52 1990 X--- umoria/vms/make.com Sun May 27 15:46:50 1990 X*************** X*** 17,22 X $ cc moria1.c /obj=moria1.o X $ cc moria2.c /obj=moria2.o X $ cc potions.c /obj=potions.o X $ cc prayer.c /obj=prayer.o X $ cc save.c /obj=save.o X $ cc scrolls.c /obj=scrolls.o X X--- 17,23 ----- X $ cc moria1.c /obj=moria1.o X $ cc moria2.c /obj=moria2.o X $ cc potions.c /obj=potions.o X+ $ cc player.c /obj=player.o X $ cc prayer.c /obj=prayer.o X $ cc save.c /obj=save.o X $ cc scrolls.c /obj=scrolls.o X*************** X*** 26,31 X $ cc staffs.c /obj=staffs.o X $ cc store1.c /obj=store1.o X $ cc store2.c /obj=store2.o X $ cc treasure1.c /obj=treasure1.o X $ cc treasure2.c /obj=treasure2.o X $ cc variables.c /obj=variables.o X X--- 27,33 ----- X $ cc staffs.c /obj=staffs.o X $ cc store1.c /obj=store1.o X $ cc store2.c /obj=store2.o X+ $ cc tables.c /obj=tables.o X $ cc treasure1.c /obj=treasure1.o X $ cc treasure2.c /obj=treasure2.o X $ cc variables.c /obj=variables.o Xdiff -cr oldumoria/vms/moria.opt umoria/vms/moria.opt X*** oldumoria/vms/moria.opt Sat Feb 10 22:55:27 1990 X--- umoria/vms/moria.opt Sun May 27 15:47:31 1990 X*************** X*** 2,8 X generate.o,sets.o,dungeon.o,creature.o,death.o,eat.o,help.o,magic.o, - X potions.o,prayer.o,save.o,staffs.o,wands.o,scrolls.o,spells.o, - X wizard.o,store2.o,signals.o,moria1.o,moria2.o,monsters.o, - X! treasure1.o,treasure2.o,variables.o, - X getch.o,cbreak.o,uexit.o,sys$library:vaxcrtl/share X ! ^ char input X ! ^ small stubs for cbreak(), nocbreak() X X--- 2,8 ----- X generate.o,sets.o,dungeon.o,creature.o,death.o,eat.o,help.o,magic.o, - X potions.o,prayer.o,save.o,staffs.o,wands.o,scrolls.o,spells.o, - X wizard.o,store2.o,signals.o,moria1.o,moria2.o,monsters.o, - X! treasure1.o,treasure2.o,variables.o,player.o,tables.o - X getch.o,cbreak.o,uexit.o,sys$library:vaxcrtl/share X ! ^ char input X ! ^ small stubs for cbreak(), nocbreak() END_OF_FILE if test 39060 -ne `wc -c <'patches01'`; then echo shar: \"'patches01'\" unpacked with wrong size! fi # end of 'patches01' fi if test -f 'source/tables.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'source/tables.c'\" else echo shar: Extracting \"'source/tables.c'\" \(10736 characters\) sed "s/^X//" >'source/tables.c' <<'END_OF_FILE' X/* tables.c: store/attack/RNG/etc tables and variables X X Copyright (c) 1989 James E. Wilson, Robert A. Koeneke X X This software may be copied and distributed for educational, research, and X not for profit purposes provided that this copyright and statement are X included in all such copies. */ X X#include "constant.h" X#include "config.h" X#include "types.h" X X#ifdef MORIA_HOU X/* Operating hours for Moria -RAK- */ X/* X = Open; . = Closed */ Xchar days[7][29] = { "SUN:XXXXXXXXXXXXXXXXXXXXXXXX", X "MON:XXXXXXXX.........XXXXXXX", X "TUE:XXXXXXXX.........XXXXXXX", X "WED:XXXXXXXX.........XXXXXXX", X "THU:XXXXXXXX.........XXXXXXX", X "FRI:XXXXXXXX.........XXXXXXX", X "SAT:XXXXXXXXXXXXXXXXXXXXXXXX" }; X#endif X X#ifdef MAC Xstore_type *store; X#else Xstore_type store[MAX_STORES]; X#endif X X/* Store owners have different characteristics for pricing and haggling*/ X/* Note: Store owners should be added in groups, one for each store */ X#ifdef MACGAME Xowner_type *owners; X#else Xowner_type owners[MAX_OWNERS] = { X{"Erick the Honest (Human) General Store", X 250, 175, 108, 4, 0, 12}, X{"Mauglin the Grumpy (Dwarf) Armory" , X 32000, 200, 112, 4, 5, 5}, X{"Arndal Beast-Slayer (Half-Elf) Weaponsmith" , X 10000, 185, 110, 5, 1, 8}, X{"Hardblow the Humble (Human) Temple" , X 3500, 175, 109, 6, 0, 15}, X{"Ga-nat the Greedy (Gnome) Alchemist" , X 12000, 220, 115, 4, 4, 9}, X{"Valeria Starshine (Elf) Magic Shop" , X 32000, 175, 110, 5, 2, 11}, X{"Andy the Friendly (Halfling) General Store", X 200, 170, 108, 5, 3, 15}, X{"Darg-Low the Grim (Human) Armory" , X 10000, 190, 111, 4, 0, 9}, X{"Oglign Dragon-Slayer (Dwarf) Weaponsmith" , X 32000, 195, 112, 4, 5, 8}, X{"Gunnar the Paladin (Human) Temple" , X 5000, 185, 110, 5, 0, 23}, X{"Mauser the Chemist (Half-Elf) Alchemist" , X 10000, 190, 111, 5, 1, 8}, X{"Gopher the Great! (Gnome) Magic Shop" , X 20000, 215, 113, 6, 4, 10}, X{"Lyar-el the Comely (Elf) General Store", X 300, 165, 107, 6, 2, 18}, X{"Mauglim the Horrible (Half-Orc) Armory" , X 3000, 200, 113, 5, 6, 9}, X{"Ithyl-Mak the Beastly (Half-Troll) Weaponsmith" , X 3000, 210, 115, 6, 7, 8}, X{"Delilah the Pure (Half-Elf) Temple" , X 25000, 180, 107, 6, 1, 20}, X{"Wizzle the Chaotic (Halfling) Alchemist" , X 10000, 190, 110, 6, 3, 8}, X{"Inglorian the Mage (Human?) Magic Shop" , X 32000, 200, 110, 7, 0, 10} X}; X#endif X X/* Buying and selling adjustments for character race VS store */ X/* owner race */ Xint8u rgold_adj[MAX_RACES][MAX_RACES] = { X /* Hum, HfE, Elf, Hal, Gno, Dwa, HfO, HfT*/ X/*Human */ { 100, 105, 105, 110, 113, 115, 120, 125}, X/*Half-Elf */ { 110, 100, 100, 105, 110, 120, 125, 130}, X/*Elf */ { 110, 105, 100, 105, 110, 120, 125, 130}, X/*Halfling */ { 115, 110, 105, 95, 105, 110, 115, 130}, X/*Gnome */ { 115, 115, 110, 105, 95, 110, 115, 130}, X/*Dwarf */ { 115, 120, 120, 110, 110, 95, 125, 135}, X/*Half-Orc */ { 115, 120, 125, 115, 115, 130, 110, 115}, X/*Half-Troll */ { 110, 115, 115, 110, 110, 130, 110, 110} X }; X/* object_list[] index of objects that may appear in the store */ Xint16u store_choice[MAX_STORES][STORE_CHOICES] = { X /* General Store */ X{366,365,364,84,84,365,123,366,365,350,349,348,347,346,346,345,345,345, X 344,344,344,344,344,344,344,344}, X /* Armory */ X{95,96,97,103,104,105,106,110,111,112,119,121,124,125,126,127,129,95,103, X 104,124,125,92,93,95,96}, X /* Weaponsmith */ X{29,30,34,37,45,49,57,58,59,65,67,68,73,74,75,77,79,80,81,83,29,30,80,83, X 80,83}, X /* Temple */ X{322,323,324,325,180,180,233,237,240,241,361,362,57,58,59,260,358,359,265, X 237,237,240,240,241,323,359}, X /* Alchemy shop */ X{173,174,175,351,351,352,353,354,355,356,357,206,227,230,236,252,253,352, X 353,354,355,356,359,363,359,359}, X /* Magic-User store*/ X{318,141,142,153,164,167,168,140,319,320,320,321,269,270,282,286,287,292, X 293,294,295,308,269,290,319,282} X}; X X#ifndef MAC X/* MPW doesn't seem to handle this very well, so replace store_buy array X with a function call on mac */ X/* functions defined in sets.c */ Xextern int general_store(), armory(), weaponsmith(), temple(), X alchemist(), magic_shop(); X X/* Each store will buy only certain items, based on TVAL */ Xint (*store_buy[MAX_STORES])() = { X general_store, armory, weaponsmith, temple, alchemist, magic_shop}; X#endif X X/* Following are arrays for descriptive pieces */ X X#ifdef MACGAME X Xchar **colors; Xchar **mushrooms; Xchar **woods; Xchar **metals; Xchar **rocks; Xchar **amulets; Xchar **syllables; X X#else X Xchar *colors[MAX_COLORS] = { X/* Do not move the first three */ X "Icky Green", "Light Brown", "Clear", X "Azure","Blue","Blue Speckled","Black","Brown","Brown Speckled","Bubbling", X "Chartreuse","Cloudy","Copper Speckled","Crimson","Cyan","Dark Blue", X "Dark Green","Dark Red","Gold Speckled","Green","Green Speckled","Grey", X "Grey Speckled","Hazy","Indigo","Light Blue","Light Green","Magenta", X "Metallic Blue","Metallic Red","Metallic Green","Metallic Purple","Misty", X "Orange","Orange Speckled","Pink","Pink Speckled","Puce","Purple", X "Purple Speckled","Red","Red Speckled","Silver Speckled","Smoky", X "Tangerine","Violet","Vermilion","White","Yellow" X}; X Xchar *mushrooms[MAX_MUSH] = { X "Blue","Black","Black Spotted","Brown","Dark Blue","Dark Green","Dark Red", X "Ecru","Furry","Green","Grey","Light Blue","Light Green","Plaid","Red", X "Slimy","Tan","White","White Spotted","Wooden","Wrinkled","Yellow", X}; X Xchar *woods[MAX_WOODS] = { X "Aspen","Balsa","Banyan","Birch","Cedar","Cottonwood","Cypress","Dogwood", X "Elm","Eucalyptus","Hemlock","Hickory","Ironwood","Locust","Mahogany", X "Maple","Mulberry","Oak","Pine","Redwood","Rosewood","Spruce","Sycamore", X "Teak","Walnut", X}; X Xchar *metals[MAX_METALS] = { X "Aluminum","Cast Iron","Chromium","Copper","Gold","Iron","Magnesium", X "Molybdenum","Nickel","Rusty","Silver","Steel","Tin","Titanium","Tungsten", X "Zirconium","Zinc","Aluminum-Plated","Copper-Plated","Gold-Plated", X "Nickel-Plated","Silver-Plated","Steel-Plated","Tin-Plated","Zinc-Plated" X}; X Xchar *rocks[MAX_ROCKS] = { X "Alexandrite","Amethyst","Aquamarine","Azurite","Beryl","Bloodstone", X "Calcite","Carnelian","Corundum","Diamond","Emerald","Fluorite","Garnet", X "Granite","Jade","Jasper","Lapis Lazuli","Malachite","Marble","Moonstone", X "Onyx","Opal","Pearl","Quartz","Quartzite","Rhodonite","Ruby","Sapphire", X "Tiger Eye","Topaz","Turquoise","Zircon" X}; X Xchar *amulets[MAX_AMULETS] = { X "Amber","Driftwood","Coral","Agate","Ivory","Obsidian", X "Bone","Brass","Bronze","Pewter","Tortoise Shell" X}; X Xchar *syllables[MAX_SYLLABLES] = { X "a","ab","ag","aks","ala","an","ankh","app", X "arg","arze","ash","aus","ban","bar","bat","bek", X "bie","bin","bit","bjor","blu","bot","bu", X "byt","comp","con","cos","cre","dalf","dan", X "den","doe","dok","eep","el","eng","er","ere","erk", X "esh","evs","fa","fid","for","fri","fu","gan", X "gar","glen","gop","gre","ha","he","hyd","i", X "ing","ion","ip","ish","it","ite","iv","jo", X "kho","kli","klis","la","lech","man","mar", X "me","mi","mic","mik","mon","mung","mur","nej", X "nelg","nep","ner","nes","nis","nih","nin","o", X "od","ood","org","orn","ox","oxy","pay","pet", X "ple","plu","po","pot","prok","re","rea","rhov", X "ri","ro","rog","rok","rol","sa","san","sat", X "see","sef","seh","shu","ski","sna","sne","snik", X "sno","so","sol","sri","sta","sun","ta","tab", X "tem","ther","ti","tox","trol","tue","turs","u", X "ulk","um","un","uni","ur","val","viv","vly", X "vom","wah","wed","werg","wex","whon","wun","x", X "yerg","yp","zun" X}; X#endif X X/* used to calculate the number of blows the player gets in combat */ Xint8u blows_table[7][6] = { X/* STR/W: 9 18 67 107 117 118 : DEX */ X/* <2 */ { 1, 1, 1, 1, 1, 1 }, X/* <3 */ { 1, 1, 1, 1, 2, 2 }, X/* <4 */ { 1, 1, 1, 2, 2, 3 }, X/* <5 */ { 1, 1, 2, 2, 3, 3 }, X/* <7 */ { 1, 2, 2, 3, 3, 4 }, X/* <9 */ { 1, 2, 2, 3, 4, 4 }, X/* >9 */ { 2, 2, 3, 3, 4, 4 } X}; X X/* this table is used to generate a psuedo-normal distribution. See the X function randnor() in misc1.c, this is much faster than calling X transcendental function to calculate a true normal distribution */ Xint16u normal_table[NORMAL_TABLE_SIZE] = { X 206, 613, 1022, 1430, 1838, 2245, 2652, 3058, X 3463, 3867, 4271, 4673, 5075, 5475, 5874, 6271, X 6667, 7061, 7454, 7845, 8234, 8621, 9006, 9389, X 9770, 10148, 10524, 10898, 11269, 11638, 12004, 12367, X 12727, 13085, 13440, 13792, 14140, 14486, 14828, 15168, X 15504, 15836, 16166, 16492, 16814, 17133, 17449, 17761, X 18069, 18374, 18675, 18972, 19266, 19556, 19842, 20124, X 20403, 20678, 20949, 21216, 21479, 21738, 21994, 22245, X 22493, 22737, 22977, 23213, 23446, 23674, 23899, 24120, X 24336, 24550, 24759, 24965, 25166, 25365, 25559, 25750, X 25937, 26120, 26300, 26476, 26649, 26818, 26983, 27146, X 27304, 27460, 27612, 27760, 27906, 28048, 28187, 28323, X 28455, 28585, 28711, 28835, 28955, 29073, 29188, 29299, X 29409, 29515, 29619, 29720, 29818, 29914, 30007, 30098, X 30186, 30272, 30356, 30437, 30516, 30593, 30668, 30740, X 30810, 30879, 30945, 31010, 31072, 31133, 31192, 31249, X 31304, 31358, 31410, 31460, 31509, 31556, 31601, 31646, X 31688, 31730, 31770, 31808, 31846, 31882, 31917, 31950, X 31983, 32014, 32044, 32074, 32102, 32129, 32155, 32180, X 32205, 32228, 32251, 32273, 32294, 32314, 32333, 32352, X 32370, 32387, 32404, 32420, 32435, 32450, 32464, 32477, X 32490, 32503, 32515, 32526, 32537, 32548, 32558, 32568, X 32577, 32586, 32595, 32603, 32611, 32618, 32625, 32632, X 32639, 32645, 32651, 32657, 32662, 32667, 32672, 32677, X 32682, 32686, 32690, 32694, 32698, 32702, 32705, 32708, X 32711, 32714, 32717, 32720, 32722, 32725, 32727, 32729, X 32731, 32733, 32735, 32737, 32739, 32740, 32742, 32743, X 32745, 32746, 32747, 32748, 32749, 32750, 32751, 32752, X 32753, 32754, 32755, 32756, 32757, 32757, 32758, 32758, X 32759, 32760, 32760, 32761, 32761, 32761, 32762, 32762, X 32763, 32763, 32763, 32764, 32764, 32764, 32764, 32765, X 32765, 32765, 32765, 32766, 32766, 32766, 32766, 32766, X}; END_OF_FILE if test 10736 -ne `wc -c <'source/tables.c'`; then echo shar: \"'source/tables.c'\" unpacked with wrong size! fi # end of 'source/tables.c' fi if test ! -d 'util/printit' ; then echo shar: Creating directory \"'util/printit'\" mkdir 'util/printit' fi echo shar: End of archive 1 \(of 3\). cp /dev/null ark1isdone MISSING="" for I in 1 2 3 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 3 archives. echo "Please read the file NOTES01." rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0