Rog-O-Matic XIV bugs fixes #2 (ed scripts)
Michael Mauldin
mlm at cmu-cs-cad.ARPA
Sun Feb 17 15:07:15 AEST 1985
#!/bin/sh
#
# This is a shell archive. Use the "unshar" command to unpack it, or
# remove the mail header and pipe the body of the message through "sh".
#
# Seems like more bugs have cropped up. Thanks to everyone who sent them
# in. This version has been better tested against 3.6 and 5.2 (cheat
# mode still works, in 10 games against 3.6 it got another total winner).
#
# This message contains three files:
#
# Bugreport A new Bugreport file
# mod.1.sh a diff -e script (Feb 5 mods, already posted)
# mod.2.sh another diff -e script (Feb 16 mods)
#
# If you have your original distribution and haven't changed anything
# except install.h, then just make a copy the original directory and type
#
# % sh mod.1.sh
# % sh mod.2.sh
# % make
#
# If you have already installed the first mods, then type
#
# % sh mod.2.sh
# % make
#
# If you have changed any files, then you should obtain the file
# "mod.2.context" (posted in another message) and make the changes
# manually.
#
# Changes:
#
# mod.1 fixed the armor bug
# fixed the ancilliary commands (rplot and histplot)
# documented the ancilliary commands (rplot, histplot, gene)
#
# mod.2 fixed another armor handling bug
# fixed plunge mode when coming back up
# fixed replay command to include version number
# fixed invisible stalker fighting code
# numerous tactics changed
# (see Bugreport for gory details)
#
# Share and Enjoy!
#
# Michael Mauldin (Fuzzy) Department of Computer Science
# (412) 578-3065 Carnegie-Mellon University
# mauldin at cmu-cs-a.arpa Pittsburgh, PA 15213
#
echo 'Start of Rgm XIV mods 02/16/85 - ed scripts:'
echo 'x - Bugreport'
sed 's/^X//' > Bugreport << '/'
X/*
X * Bugreport: Rog-O-Matic XIV (CMU) Sat Feb 16 22:53:04 1985 - mlm
X * Copyright (C) 1985 by A. Appel, G. Jacobson, L. Hamey, and M. Mauldin
X */
X
X1. fails to wear any armor below level 7.
X
X things.c:willrust() changed itemis(PROTECTED)
X tactics.c:handlearmor() dont worry about cursed armor
X
X
X2. histplot and rplot are flaky (reported by AEB (play at turing)).
X
X rplot removed file name
X gene.c fixed "Usage" message
X histplot.c fixed bugs
X README documented ancilliary functions
X
X3. utility.c uses "getpw (getuid (), name)", which according to
X Rick Adams @ Seismo is obsolete. no fix made here. Caveat Emptor!
X
X4. Armor handling again. Fails to track current armor under Rogue 3.6
X and Rogue 5.2 (bug reported by Dennis Ritchie).
X
X things.c:wear(),takeoff() added usesynch=0 (ie: get new invent)
X tactics.c:handlearmor() new strategy, includes 3rd best
X
X5. Failed to handle "cursed armor" message in Rogue 3.6 / 5.2. Fixed.
X
X mess.c:terpmes() modified cursed mesage pattern
X
X6. Drops good, known items rather than quaffing/reading them
X
X things.c:drop() read/quaff some things
X
X7. Too often throws good armor away to keep mediocre scrolls.
X
X worth.c:worth() values armor more highly.
X
X8. Peter Wan reports problems with screen handling on terminals with
X no tabs. Problem unknown.
X
X9. Fixed reply command to understand version messages at start of
X log files. Modifiekd to send version command when starting a
X log in the middle of the game.
X
X io.c:getrogver() look for version string in log
X io.c:toggleecho() send version command
X mess.c:terpmes() ignore version commands
X
X10. Fails to fight invisible stalkers properly
X
X strategy.c:fightinvisible() fixed old conversion bug
X search.c:followmap() don't call fmove when beingstalked
X
X11. Doesn't recognize scrolls/wands of light in corridors
X
X mess.c:terpmes() added message about "corridor glows"
X
X12. Added debugging command about rustproof armor
X
X arms.c:havearmor() new flag 'rustproof'
X main.c:main() new command ']'
X
X13. Fails to properly print message about genocided monsters.
X
X io.c:statusline() added missing %s to printf format
X
X14. Updated version message to take replaying into account
X
X main.c:main() new message
X
X15. Makefile does not include several dependencies on install.h
X
X makefile io, ltm, tactics, utility
X
X16. Sometimes gives extra message when doing an inventory. Modified
X inventory to return true if it printed a message because an item
X listed has a remembered value substituted by the database routine.
X
X pack.c:inventory() now returns true is msg printed
X mess.c:terpmes() uses value returned
X
X17. Reduced time groping when blind
X
X strategy.c:stragize() cut from 100 turns to 50
X
X18. Modified scroll handling, now reads scrolls even when in plunge
X mode. Also fixed a bug with the 'aggravate monsters' check.
X
X tactics.c:readscroll() added missing s to "aggravate monster"
X
X19. If it finds a trap door when on the way back up between 26 and 18,
X it runs DOWN the trap door (stupid, stupid!).
X
X tactics.c:plunge() dont if have(amulet)
X
X20. Modified sanity check for identify scrolls. Don't have to plan
X ahead in Rogue 5.3, so sanity check doesn't apply.
X
X mess.c:readident() change 'version <= RV53A' to '<'
X
X21. Remember that leather armor rusts in Rogue 3.6.
X
X things.c:willrust() check for Rogue 3.6
X
/
echo 'x - mod.1.sh'
sed 's/^X//' > mod.1.sh << '/'
Xed - README << '-*-END-*-'
X124a
X
X4.1 SCOREFILES
X
XFor each version of Rogue the systems has played, their are 2 score
Xfiles: $RGMDIR/rgmdelta<version> and $RGMDIR/rgmscore<version>. As
Xeach game is played, the score is appended to the DELTA file. Whenever
Xthe -s option is given, a check is made for the DELTA file. If new
Xscores exist, they are sorted and a new SCORE file is created. Then
Xthe score file is printed on stdout.
X
X4.2 READING THE SOURCE
X.
X123a
X Options: -i Initial a new gene pool
X -f Full listing, shows gene values and scores
X -mNN Max gene pool size (limit of 100, learn.c:MAXM)
X -s Random number seed for new gene pool (-i option)
X -v Version to list/initial (one of 361,362,521,522,531)
X
X.
X122c
X "gene" summarizes and initializes the current gene pool.
X
X Usage: gene [ -f ] [ -v<value> ] Read gene pool
X or gene -i [ -msv<value> ] Create new gene pool
X.
X119a
X Usage: rogomatic -s [ version ] | histplot [ -acl ]
X
X Options: -aNNNN Include only scores above NNNN
X -c Include cheating games ( 3.6 only )
X -l Plot level instead of score
X
X.
X113a
X Usage: rogomatic -s [ version ] | rplot [ -ac ] [ minimum ]
X
X Options: -a Include rolling average
X -c Include scores obtained by cheating ( 3.6 only )
X [ min ] Include only scores above min.
X
X.
X107a
X Usage: rogomatic [-ceuw] Play a game
X of rogomatic -f game_file Play against game_file
X or rogomatic -r [ rogue_save_file ] Start saved game
X or rogomatic -p [ game_log ] Replay game log
X or rogomatic -s [ version ] Show scores
X
X -c Cheat (look for magic arrows, version 3.6 only)
X -e Echo, log the game into a file
X -u Start up in user (transparent mode)
X -w Watched (Rog-O-Matic can ask user for help when stuck -- rare)
X -f next argument is the location of the Rogue game, eg:
X rogomatic -f /usr/games/rogue
X -r Start a saved game, if next argument is given, it is the
X location of the Rogue save file.
X -p Replay a Rog-O-Matic log file (created using the -e
X option). If next argument is given it is the name of
X the log file. The default is "roguelog". Eg:
X rogomatic -p drag.24.7361
X -s List Rog-O_Matic's scorefile. Version must be one
X of (3.6, 5.2, 5.3). Defaults to install.h:DEFVER.
X
X.
X2c
X* README: Rog-O-Matic XIV (CMU) Tue Feb 5 14:04:02 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - gene.c << '-*-END-*-'
X34c
X otherwise: quit (1, "Usage: gene [-if] [-msv<value>]\n");
X.
X2c
X * gene.c: Rog-O-Matic XIV (CMU) Tue Feb 5 14:10:05 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - histplot.c << '-*-END-*-'
X165,166c
X !stlmatch ("saved", killer) &&
X (*score > 2000 || !stlmatch ("user", killer)))
X.
X161c
X mmstr, &dd, &yy, player, score, &cheated, killer);
X.
X69,82c
X if (stlmatch ("arrow", killer)) killnum = 1;
X else if (stlmatch ("black unicorn", killer)) killnum = 'u'-'a'+2;
X else if (stlmatch ("bolt", killer)) killnum = 1;
X else if (stlmatch ("dart", killer)) killnum = 1;
X else if (stlmatch ("fatal error trap", killer)) killnum = 0;
X else if (stlmatch ("floating eye", killer)) killnum = 'e'-'a'+2;
X else if (stlmatch ("gave", killer)) killnum = 0;
X else if (stlmatch ("giant ant", killer)) killnum = 'a'-'a'+2;
X else if (stlmatch ("hypothermia", killer)) killnum = 'i'-'a'+2;
X else if (stlmatch ("quit", killer)) killnum = 28;
X else if (stlmatch ("starvation", killer)) killnum = 'e'-'a'+2;
X else if (stlmatch ("user", killer)) killnum = 0;
X else if (stlmatch ("venus flytrap", killer)) killnum = 'f'-'a'+2;
X else if (stlmatch ("violet fungi", killer)) killnum = 'f'-'a'+2;
X.
X45c
X default: printf ("Usage: histplot [-cl] [-aNNNN]\n");
X.
X6a
X *
X * HISTORY
X * 05-Feb-85 Michael Mauldin (mlm) at Carnegie-Mellon University
X * Added bugs fixes found by AEB (play at turing).
X.
X2c
X * histplot.c: Rog-O-Matic XIV (CMU) Tue Feb 5 13:55:16 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - main.c << '-*-END-*-'
X607a
X
X case ']': clear (); havearmor (1, DOPRINT, RUSTPROOF);
X pauserogue (); break;
X.
X2c
X * main.c: Rog-O-Matic XIV (CMU) Sun Feb 3 17:00:25 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - rgmplot.c << '-*-END-*-'
X105,106c
X printf ("\t\t|----+----|----+----|----+----|----+----|----+----|\n");
X printf ("\t\t0 2000 4000 6000 8000 10000\n");
X.
X101c
X lastday = dd; lastmon = mm; lastyy = yy;
X.
X84c
X printf ("%3s %2d %4d\t%s\n", month[lastmon-1], lastday, lastyy, plot);
X.
X61c
X if ((dd != lastday || mm != lastmon || yy != lastyy) && lastday > 0)
X.
X49,51c
X printf ("\t\t Scores greater than %d\n\n", min);
X printf ("\t\t0 2000 4000 6000 8000 10000\n");
X printf ("\t\t|----+----|----+----|----+----|----+----|----+----|\n");
X.
X47c
X printf ("\t\t Scatter Plot of Rog-O-Matic Scores versus time\n\n");
X.
X24c
X{ int mm, dd, yy, score = 0, lastday = -1, lastmon = -1, lastyy = -1, h;
X.
X2c
X * rgmplot.c: Rog-O-Matic XIV (CMU) Tue Feb 5 15:00:59 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - rplot << '-*-END-*-'
X1c
X#!/bin/sh
X#
X# rplot: Rog-O-Matic XIV (CMU) Tue Feb 5 13:52:48 1985 - mlm
X# Copyright (C) 1985 by A. Appel, G. Jacobson, L. Hamey, and M. Mauldin
X#
Xcolrm 48 | datesub | sort -u +2n +0n +1n +4n +5 | rgmplot $*
X.
Xw
Xq
X-*-END-*-
Xed - tactics.c << '-*-END-*-'
X55,59c
X if (obj != NONE && armorclass (obj) > 9)
X.
X2c
X * tactics.c: Rog-O-Matic XIV (CMU) Sat Feb 2 13:01:25 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - things.c << '-*-END-*-'
X484c
X{ return (! (protected ||
X armorclass (obj) > 8 || armorclass (obj) < -5 ||
X.
X2c
X * things.c: Rog-O-Matic XIV (CMU) Sat Feb 2 13:02:28 1985 - mlm
X.
Xw
Xq
X-*-END-*-
/
echo 'x - mod.2.sh'
sed 's/^X//' > mod.2.sh << '/'
Xed - arms.c << '-*-END-*-'
X61d
X56,59d
X52c
X { mvprintw (1,0, "Current %sArmor Rankings", rustproof ? "Rustproof " : "");
X.
X41,50d
X2c
X * arms.c: Rog-O-Matic XIV (CMU) Sat Feb 16 09:47:34 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - io.c << '-*-END-*-'
X1121c
X if (*genocided) sprintf (s, "%sgenocided '%s', ", s, genocided);
X.
X871a
X if (*versionstr) command (T_OTHER, "v");
X.
X801,802c
X rewind (logfile); /* Put log file back to start */
X }
X.
X799c
X{ register char *vstr = versionstr, *m = VERMSG;
X register int cnt = 2000, ch;
X
X if (replaying) /* Look for version string in log */
X { while (cnt-- > 0 && *m)
X { if (fgetc (logfile) == *m) m++; else m = VERMSG;}
X
X if (*m == '\0') /* Found VERMSG, get version string */
X { while ((ch = fgetc (logfile)) != ' ') *(vstr++) = ch;
X *--vstr = '\0';
X }
X else /* Use default version */
X { sprintf (versionstr, DEFVER); }
X.
X797a
X# define VERMSG "ersion "
X
X.
X795a
X *
X * Get version from first 2000 chars of a log file Feb 9, 1985 - mlm
X.
X759,760c
X "Wizard: [=weapstat, ]=rustproof armor, r=resetinv, &=object count [?]",
X "Wizard: *=toggle blind, C=toggle cosmic, M=mazedoor, A=attempt, {=flags",
X.
X757c
X "Wizard: ~=version, ^=bowrank, %%=armorrank, $=weaponrank, ==ringrank [?]",
X.
X754a
X "Rgm commands: m=long term memory display, G=display gene settings [?]",
X.
X2c
X * io.c: Rog-O-Matic XIV (CMU) Sat Feb 16 23:03:48 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - main.c << '-*-END-*-'
X555,557c
X case '~': if (replaying)
X saynow ("Replaying log file %s, version %s.",
X logfilename, versionstr);
X else
X saynow (" %s: version %s, genotype %d, quit at %d.",
X roguename, versionstr, geneid, quitat);
X.
X404,405c
X if (replaying)
X sprintf (msg, " Replaying log file %s, version %s.",
X logfilename, versionstr);
X else
X sprintf (msg, " %s: version %s, genotype %d, quit at %d.",
X roguename, versionstr, geneid, quitat);
X.
X354c
X strcpy (logfilename, argv[4]);
X.
X339a
X sprintf (versionstr, "");
X.
X113c
Xchar logfilename[100]; /* Name of log file */
X.
X2c
X * main.c: Rog-O-Matic XIV (CMU) Fri Feb 15 18:27:27 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - makefile << '-*-END-*-'
X107c
Xutility.o: install.h
X.
X97c
Xtactics.o: types.h globals.h install.h
X.
X61c
Xltm.o: types.h globals.h install.h
X.
X55c
Xio.o: types.h globals.h install.h termtokens.h
X.
X5,6c
XBINDIR= /usr/mlm/bin/
XPUBDIR= /usr/mlm/rgm/src14a
X.
X1c
X# makefile: Rog-O-Matic XIV (CMU) Wed Feb 6 18:34:24 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - mess.c << '-*-END-*-'
X523c
X usesynch = 0; justreadid=1; /* Must reset inventory */
X.
X479c
X if (!replaying && version < RV53A &&
X.
X417a
X else if (MATCH("(mctesq was here)")) echoit=0;
X.
X369,370c
X { infer ("remove curse");
X if (cursedarmor) {forget (currentarmor, CURSED); cursedarmor=0;}
X if (cursedweapon) {forget (currentweapon, CURSED); cursedweapon=0;}
X newarmor = newweapon = 1; }
X.
X349c
X else if (MATCH("your nose tingles*")) infer ("food detection");
X.
X343a
X else if (MATCH("you feel a wrenching sensation in your gut")) ;
X.
X338a
X else if (MATCH("you begin to feel greedy*")) infer ("gold detection");
X.
X337c
X else if (MATCH("you*cursed*")) {echoit=0; curseditem ();}
X.
X312c
X else if (MATCH("wait*that's a *")) ;
X.
X302c
X if (MATCH("version *")) echoit=0;
X else unknown++;
X.
X274a
X else if (MATCH("the corridor glows*")) { infer ("light"); }
X.
X247a
X else if (MATCH("rogue version *")) echoit=0;
X.
X90c
X { echoit = !inventory (mess, mend); identifying = justreadid = 0; }
X.
X64c
X s<t && (version < RV53A || *s != '.' || s[1] != ' ');
X.
X2c
X * mess.c: Rog-O-Matic XIV (CMU) Sat Feb 16 15:41:44 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - pack.c << '-*-END-*-'
X454a
X
X return (printed);
X.
X408,421d
X379,380d
X377a
X printed++;
X.
X232c
X int n, ipos, xknow = 0, newitem = 0, inuse = 0, printed = 0;
X.
X2c
X * pack.c: Rog-O-Matic XIV (CMU) Sat Feb 16 08:58:04 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - search.c << '-*-END-*-'
X108c
X onrc (HALL,r,c) &&
X !beingstalked) /* Feb 10, 1985 - mlm */
X.
X2c
X * search.c: Rog-O-Matic XIV (CMU) Fri Feb 15 15:08:44 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - strategy.c << '-*-END-*-'
X1061,1065c
X if (dir > 7) command (T_FIGHTING, "hjlk");
X else command (T_FIGHTING, "%c%c%c", keydir[dir],
X keydir[dir], keydir[(dir+4)&7]);
X.
X1055,1059c
X for (dir=0; dir<8; dir += 2)
X if ((onrc(CANGO, atdrow(dir), atdcol(dir))) &&
X (onrc(CANGO, atrow+2*deltr[dir], atcol+2*deltc[dir])))
X break;
X.
X1048c
X { command (T_FIGHTING, "%c%c", keydir[lastdir], keydir[(lastdir+4)&7]);
X return (1);
X }
X.
X987,990d
X508d
X501c
X if (beingstalked > INVPRES) { turns = 0; danger += INVDAM; }
X.
X183c
X return (grope (10));
X.
X132c
X if (findroom ()) /* Look for another room */
X.
X96c
X if (blinded && grope (50)) /* Who turned out the lights */
X.
X2c
X * strategy.c: Rog-O-Matic XIV (CMU) Sat Feb 16 10:03:16 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - survival.c << '-*-END-*-'
X122,124c
X return (goupstairs (RUNNING) || godownstairs (RUNNING));
X.
X2c
X * survival.c: Rog-O-Matic XIV (CMU) Sun Feb 10 21:09:58 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - tactics.c << '-*-END-*-'
X828c
X if ((obj = unknown (wand)) == NONE)
X.
X796c
X if ((obj = havemissile ()) == NONE) return (0);
X.
X629,630c
X ((obj = havearrow ()) != NONE || (obj = haveminus ()) != NONE) &&
X throw (obj, 0))
X { return (1); }
X.
X620c
X if (stairrow == NONE || have(amulet) == NONE ||
X.
X545a
X if (have (amulet) != NONE) return (0);
X
X.
X544c
X if (stairrow == NONE && !foundtrapdoor) return (0);
X.
X364c
X if ((obj = havenamed (ring, name)) == NONE ||
X.
X280c
X if (version <= RV36B && !know ("create monster") && gotocorner ())
X.
X275c
X (exploredlevel || Level > 18 || know ("aggravate monsters")) &&
X.
X189c
X else if (wearing ("sustain strength") == NONE &&
X.
X93,95c
X if (obj == currentweapon) { newweapon = 0; return (0); }
X else if (obj != NONE) { return (wield (obj)); }
X else { newweapon = 0; return (0); }
X.
X90c
X if ((obj = haveweapon (1, NOPRINT)) == NONE) return (0);
X.
X55c
X if (obj != NONE && armorclass (obj) > 9 && itemis (obj, KNOWN))
X.
X48,51c
X { obj = NONE;
X if (Level<13) obj = havearmor (1, NOPRINT, RUSTPROOF);
X if (Level<13 && obj==NONE) obj = havearmor (3, NOPRINT, ANY);
X if (obj==NONE) obj = havearmor (2, NOPRINT, ANY);
X.
X44c
X if (Level > (version < RV52A ? 8 : 7) && Level < 19 &&
X.
X2c
X * tactics.c: Rog-O-Matic XIV (CMU) Sat Feb 16 23:27:48 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - things.c << '-*-END-*-'
X487c
X stlmatch (inven[obj].str, "leather") && version > RV36B));
X.
X270a
X return (nextid >= 'a' && afterid >= 'a');
X.
X88,90d
X84,86c
X /* quaff unknown potions or good potions rather than dropping them */
X if (inven[obj].type == potion &&
X (!itemis (obj, KNOWN) ||
X stlmatch (inven[obj].str, "extra healing") ||
X stlmatch (inven[obj].str, "gain strength") ||
X stlmatch (inven[obj].str, "haste self") && !hasted ||
X stlmatch (inven[obj].str, "healing") ||
X stlmatch (inven[obj].str, "magic detection") ||
X stlmatch (inven[obj].str, "monster detection") ||
X stlmatch (inven[obj].str, "raise level") ||
X stlmatch (inven[obj].str, "restore strength")) &&
X quaff (obj))
X { return (1); }
X.
X78,82c
X /* read unknown scrolls or good scrolls rather than dropping them */
X if (inven[obj].type == scroll &&
X (!itemis (obj, KNOWN) ||
X stlmatch (inven[obj].str, "identify") &&
X prepareident (pickident (), obj) ||
X stlmatch (inven[obj].str, "enchant") ||
X stlmatch (inven[obj].str, "genocide") ||
X stlmatch (inven[obj].str, "gold detection") ||
X stlmatch (inven[obj].str, "hold monster") ||
X stlmatch (inven[obj].str, "light") ||
X stlmatch (inven[obj].str, "magic mapping") ||
X stlmatch (inven[obj].str, "monster confusion") ||
X stlmatch (inven[obj].str, "remove curse")) &&
X reads (obj))
X { return (1); }
X.
X75,76c
X /* Cant if not there, in use, or on something else */
X if (inven[obj].count < 1 ||
X itemis (obj, INUSE) ||
X on (STUFF | TRAP | STAIRS | DOOR))
X return (0);
X.
X44a
X usesynch = 0;
X.
X27c
X command (T_HANDLING, "W%c", LETTER (obj));
X usesynch = 0;
X.
X2c
X * things.c: Rog-O-Matic XIV (CMU) Sat Feb 16 12:16:57 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - types.h << '-*-END-*-'
X44a
X# define INVPRES (INVHIT-100)
X# define INVLURK (INVPRES-200)
X.
X43a
X# define INVDAM (16)
X.
X2c
X * types.h: Rog-O-Matic XIV (CMU) Sat Feb 16 09:44:54 1985 - mlm
X.
Xw
Xq
X-*-END-*-
Xed - worth.c << '-*-END-*-'
X109a
X else if (stlmatch (inven[obj].str, "extra healing")) value = 900;
X else if (stlmatch (inven[obj].str, "healing")) value = 750;
X else if (stlmatch (inven[obj].str, "protect") && !protected) value = 1000;
X.
X106a
X else if (stlmatch (inven[obj].str, "gain strength")) value = 700;
X.
X80,81c
X if (obj == haveweapon (1, NOPRINT)) value += 2500;
X else if (obj == haveweapon (2, NOPRINT)) value += 1500;
X.
X72,73c
X if (obj == havebow (1, NOPRINT)) value += 1500;
X else if (obj == havebow (2, NOPRINT)) value += 300;
X.
X70c
X { value = (bowclass (obj));
X.
X61c
X if (stlmatch (inven[obj].str, "leather")) value += 300;
X.
X59a
X else if (obj == havearmor (3, NOPRINT, ANY)) value += 800;
X.
X56c
X { value = (11 - armorclass (obj)) * 120;
X.
X51,52c
X * Armor values are based on armor class, bonus for best, second
X * best, third best, or leather armor (leather doesnt rust)
X.
X2c
X * worth.c: Rog-O-Matic XIV (CMU) Sun Feb 10 23:16:40 1985 - mlm
X.
Xw
Xq
X-*-END-*-
/
echo 'Rgm XIV mods 02/16/85 - ed scripts complete.'
exit
More information about the Comp.sources.bugs
mailing list