billr@saab.CNA.TEK.COM (Bill Randle) (08/18/89)
Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu> Posting-number: Volume 8, Issue 11 Archive-name: NetHack3/Patch2f Patch-To: NetHack3: Volume 7, Issue 56-93 #! /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 6 (of 7)." # Contents: patch02f # Wrapped by billr@saab on Fri Aug 18 08:44:39 1989 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patch02f' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patch02f'\" else echo shar: Extracting \"'patch02f'\" \(57076 characters\) sed "s/^X//" >'patch02f' <<'END_OF_FILE' X*** src/Old/monst.c Wed Aug 16 12:31:28 1989 X--- src/monst.c Thu Aug 10 20:43:03 1989 X*************** X*** 606,655 **** X { "grey dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1), X { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1), X { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1), X { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1), X { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1), X { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1), X { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1), X { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_POIS | M1_POIS_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1), X { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_NOHANDS | M1_EGGS | X! M1_POIS | M1_STON_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X /* Elementals */ X { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1), X--- 606,655 ---- X { "grey dragon", S_DRAGON, 10, 9, -1, 20, 4, (G_GENO | 1), X { { AT_BREA, AD_MAGM, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "red dragon", S_DRAGON, 10, 9, -1, 20, -4, (G_GENO | 1), X { { AT_BREA, AD_FIRE, 6, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_FIRE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "orange dragon", S_DRAGON, 10, 9, -1, 20, 5, (G_GENO | 1), X { { AT_BREA, AD_SLEE, 4, 25 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_SLEE_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "white dragon", S_DRAGON, 10, 9, -1, 20, -5, (G_GENO | 1), X { { AT_BREA, AD_COLD, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_COLD_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "black dragon", S_DRAGON, 10, 9, -1, 20, -6, (G_GENO | 1), X { { AT_BREA, AD_DISN, 4, 10 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "blue dragon", S_DRAGON, 10, 9, -1, 20, -7, (G_GENO | 1), X { { AT_BREA, AD_ELEC, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_ELEC_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "green dragon", S_DRAGON, 10, 9, -1, 20, 6, (G_GENO | 1), X { { AT_BREA, AD_DRST, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_POIS | M1_POIS_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X { "yellow dragon", S_DRAGON, 10, 9, -1, 20, 7, (G_GENO | 1), X { { AT_BREA, AD_ACID, 4, 6 }, { AT_BITE, AD_PHYS, 3, 8 }, X { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, NO_ATTK }, X! 150, 1500, 0, MS_ROAR, M1_BIG | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | X! M1_EGGS | M1_POIS | M1_STON_RES | M1_GREEDY | M1_JEWELS | M1_MAGIC, X M2_HOSTILE | M2_STRONG | M2_NASTY | M2_CARNIVORE | M2_THICK_HIDE }, X /* Elementals */ X { "air elemental", S_ELEMENTAL, 8, 36, 2, 30, 0, (G_NOCORPSE | 1), X*************** X*** 1006,1012 **** X { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT, X M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK | M1_COLLECT, X! M2_STRONG }, X #endif X /* Xorn */ X { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1), X--- 1006,1012 ---- X { { AT_WEAP, AD_DRLI, 1, 4 }, { AT_BREA, AD_SLEE, 0, 0 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 30, 0, 0, MS_SILENT, X M1_HUMANOID | M1_UNDEAD | M1_POIS_RES | M1_STALK | M1_COLLECT, X! M2_STRONG | M2_HOSTILE }, X #endif X /* Xorn */ X { "xorn", S_XORN, 8, 9,-2, 20, 0, (G_GENO | 1), X*************** X*** 1215,1222 **** X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, PL_NSIZ, MS_FERRY, X! M1_NOPOLY | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES | M1_COLLECT, X! M2_HUMAN | M2_PEACEFUL }, X #endif X /* Ghost */ X { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN), X--- 1215,1222 ---- X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 1, 8 }, { AT_TUCH, AD_PLYS, 1, 8 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 45, 400, PL_NSIZ, MS_FERRY, X! M1_NOPOLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS_RES | M1_FIRE_RES | X! M1_COLLECT, M2_HUMAN | M2_PEACEFUL }, X #endif X /* Ghost */ X { "ghost", S_GHOST, 10, 3, -5, 50, -5, (G_NOCORPSE | G_NOGEN), X*************** X*** 1275,1282 **** X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X { AT_WEAP, AD_PHYS, 2, 4 }, }, 45, 450, 0, MS_SILENT, M1_HUMANOID | X! M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_FEM, X! M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "barbed devil", S_DEMON, 8, 12, 0, 35, 8, X (G_HELL | G_NOCORPSE | G_SGROUP | 2), X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 }, X--- 1275,1282 ---- X { { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X { AT_WEAP, AD_PHYS, 2, 4 }, { AT_WEAP, AD_PHYS, 2, 4 }, X { AT_WEAP, AD_PHYS, 2, 4 }, }, 45, 450, 0, MS_SILENT, M1_HUMANOID | X! M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT | X! M1_FEM, M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "barbed devil", S_DEMON, 8, 12, 0, 35, 8, X (G_HELL | G_NOCORPSE | G_SGROUP | 2), X { { AT_CLAW, AD_PHYS, 2, 4 }, { AT_CLAW, AD_PHYS, 2, 4 }, X*************** X*** 1310,1340 **** X { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2), X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, X { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 }, NO_ATTK }, X! 45, 450, 0, MS_SILENT, M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_STALK, X! M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2), X { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 }, X { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0, X! MS_GROWL, M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT, X! M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1), X { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 }, X! NO_ATTK, NO_ATTK, NO_ATTK }, X! 45, 450, 0, MS_SILENT, M1_FLY | M1_BIG | M1_COLLECT | M1_STALK | X! M1_POIS | M1_FIRE_RES, M2_DEMON | M2_HOSTILE | M2_STRONG | M2_NASTY }, X /* Named demon lords & princes plus Arch-Devils */ X { "Juiblex", S_DEMON, 50, 3, -7, 65, -15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_GURGLE, X! M1_NOPOLY | M1_FLY | M1_NOHANDS | M1_POIS | M1_FIRE_RES | M1_STALK | X! M1_LORD, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_AMORPHOUS }, X { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 }, X { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 }, NO_ATTK }, X! 50, 500, PL_NSIZ, MS_ORC, M1_NOPOLY | M1_FLY | M1_POIS | X! M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_LORD, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Orcus", S_DEMON, 66, 9, -6, 85, -20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X--- 1310,1341 ---- X { "ice devil", S_DEMON, 11, 6, -4, 55, -12, (G_HELL | G_NOCORPSE | 2), X { { AT_CLAW, AD_PHYS, 1, 4 }, { AT_CLAW, AD_PHYS, 1, 4 }, X { AT_BITE, AD_PHYS, 2, 4 }, { AT_STNG, AD_COLD, 3, 4 }, NO_ATTK }, X! 45, 450, 0, MS_SILENT, M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | X! M1_COLD_RES | M1_STALK, M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "pit fiend", S_DEMON, 13, 6, -3, 65, -13, (G_HELL | G_NOCORPSE | 2), X { { AT_WEAP, AD_PHYS, 4, 2 }, { AT_WEAP, AD_PHYS, 4, 2 }, X { AT_HUGS, AD_PHYS, 2, 4 }, NO_ATTK, NO_ATTK }, 45, 450, 0, X! MS_GROWL, M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | M1_STALK | X! M1_COLLECT, M2_DEMON | M2_HOSTILE | M2_NASTY }, X { "balrog", S_DEMON, 16, 5, -2, 75, -14, (G_HELL | G_NOCORPSE | 1), X { { AT_WEAP, AD_PHYS, 8, 4 }, { AT_WEAP, AD_PHYS, 4, 6 }, X! NO_ATTK, NO_ATTK, NO_ATTK }, 45, 450, 0, MS_SILENT, X! M1_FLY | M1_BIG | M1_SEE_INVIS | M1_COLLECT | M1_STALK | M1_POIS | X! M1_FIRE_RES, M2_DEMON | M2_HOSTILE | M2_STRONG | M2_NASTY }, X /* Named demon lords & princes plus Arch-Devils */ X { "Juiblex", S_DEMON, 50, 3, -7, 65, -15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_ENGL, AD_DISE, 4, 10 }, { AT_SPIT, AD_ACID, 3, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_GURGLE, X! M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_NOHANDS | M1_POIS | X! M1_FIRE_RES | M1_STALK | M1_LORD, X! M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY | M2_AMORPHOUS }, X { "Yeenoghu", S_DEMON, 56, 18, -5, 80, -15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 3, 6 }, { AT_WEAP, AD_CONF, 2, 8 }, X { AT_WEAP, AD_PLYS, 1, 6 }, { AT_MAGC, AD_MAGM, 2, 6 }, NO_ATTK }, X! 50, 500, PL_NSIZ, MS_ORC, M1_NOPOLY | M1_FLY | M1_SEE_INVIS | X! M1_POIS | M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_LORD, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Orcus", S_DEMON, 66, 9, -6, 85, -20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X*************** X*** 1341,1372 **** X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 }, X { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 }, X { AT_STNG, AD_DRST, 2, 4 }, }, 50, 500, PL_NSIZ, MS_ORC, X! M1_NOPOLY | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK | X! M1_COLLECT | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Geryon", S_DEMON, 72, 3, -3, 75, 15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 }, X { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, X! MS_JEER, M1_NOPOLY | M1_FLY | M1_POIS | M1_FIRE_RES | X M1_STALK | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Dispater", S_DEMON, 78, 15, -2, 80, 15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS | X M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_PRINCE, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X! { "Baalzebul", S_DEMON, 89, 9, -5, 85, 20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_POIS | M1_FIRE_RES | M1_STALK | X! M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_HUMANOID | M1_POIS | X M1_FIRE_RES | M1_COLD_RES | M1_STALK | M1_PRINCE, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY }, X { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20, X--- 1342,1374 ---- X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_WEAP, AD_PHYS, 3, 6 }, X { AT_CLAW, AD_PHYS, 3, 4 }, { AT_CLAW, AD_PHYS, 3, 4 }, X { AT_STNG, AD_DRST, 2, 4 }, }, 50, 500, PL_NSIZ, MS_ORC, X! M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | X! M1_STALK | M1_COLLECT | M1_PRINCE, X! M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Geryon", S_DEMON, 72, 3, -3, 75, 15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_CLAW, AD_PHYS, 3, 6 }, { AT_CLAW, AD_PHYS, 3, 6 }, X { AT_STNG, AD_DRST, 2, 4 }, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, X! MS_JEER, M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | X M1_STALK | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Dispater", S_DEMON, 78, 15, -2, 80, 15, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_WEAP, AD_PHYS, 4, 6 }, { AT_MAGC, AD_SPEL, 6, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS | X M1_FIRE_RES | M1_STALK | M1_COLLECT | M1_PRINCE, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X! { "Baalzebub", S_DEMON, 89, 9, -5, 85, 20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_BITE, AD_DRST, 2, 6 }, { AT_GAZE, AD_STUN, 2, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_POIS | M1_FIRE_RES | X! M1_STALK | M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X { "Asmodeus", S_DEMON, 105, 12, -7, 90, 20, X (G_HELL | G_NOCORPSE | G_NOGEN | G_UNIQ), X { { AT_CLAW, AD_PHYS, 4, 4 }, { AT_MAGC, AD_COLD, 6, 6 }, X NO_ATTK, NO_ATTK, NO_ATTK }, 50, 500, PL_NSIZ, MS_JEER, X! M1_NOPOLY | M1_FLY | M1_SEE_INVIS | M1_HUMANOID | M1_POIS | X M1_FIRE_RES | M1_COLD_RES | M1_STALK | M1_PRINCE, X M2_DEMON | M2_HOSTILE | M2_PNAME | M2_STRONG | M2_NASTY }, X { "Demogorgon", S_DEMON, 106, 15, -8, 95, -20, X*************** X*** 1374,1387 **** X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 }, X { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 }, X NO_ATTK }, 50, 500, PL_NSIZ, MS_GROWL, M1_NOPOLY | M1_FLY | X! M1_NOHANDS | M1_POIS | M1_FIRE_RES | M1_STALK | X M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X #endif X #ifdef MAIL X { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE), X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, X! MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_HUMANOID | M1_POIS | X! M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES | M1_STALK, M2_PEACEFUL }, X /* Neither rain nor sleet nor gloom of night shall stay this courier... */ X #endif X { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE), X--- 1376,1390 ---- X { { AT_MAGC, AD_SPEL, 8, 6 }, { AT_STNG, AD_DRLI, 1, 4 }, X { AT_CLAW, AD_DISE, 1, 6 }, { AT_CLAW, AD_DISE, 1, 6 }, X NO_ATTK }, 50, 500, PL_NSIZ, MS_GROWL, M1_NOPOLY | M1_FLY | X! M1_SEE_INVIS | M1_NOHANDS | M1_POIS | M1_FIRE_RES | M1_STALK | X M1_PRINCE, M2_DEMON | M2_HOSTILE | M2_PNAME | M2_NASTY }, X #endif X #ifdef MAIL X { "mail daemon", S_DEMON, 56, 24, 10, 127, 0, (G_NOGEN | G_NOCORPSE), X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK }, 30, 300, 0, X! MS_SILENT, M1_NOPOLY | M1_FLY | M1_SWIM | M1_SEE_INVIS | X! M1_HUMANOID | M1_POIS | M1_FIRE_RES | M1_COLD_RES | M1_SLEE_RES | X! M1_STALK, M2_PEACEFUL }, X /* Neither rain nor sleet nor gloom of night shall stay this courier... */ X #endif X { "djinni", S_DEMON, 7, 12, 4, 30, 0, (G_NOGEN | G_NOCORPSE), X*** src/Old/music.c Wed Aug 16 12:32:59 1989 X--- src/music.c Thu Aug 10 10:25:43 1989 X*************** X*** 135,147 **** X charm_monsters(distance) X int distance; X { X! register struct monst *mtmp = fmon; X X while(mtmp) { X if(dist(mtmp->mx, mtmp->my) <= distance) X if(!resist(mtmp, SCROLL_SYM, 0, NOTELL)) X (void) tamedog(mtmp, (struct obj *) 0); X! mtmp = mtmp->nmon; X } X X } X--- 135,148 ---- X charm_monsters(distance) X int distance; X { X! register struct monst *mtmp = fmon, *mtmp2; X X while(mtmp) { X+ mtmp2 = mtmp->nmon; X if(dist(mtmp->mx, mtmp->my) <= distance) X if(!resist(mtmp, SCROLL_SYM, 0, NOTELL)) X (void) tamedog(mtmp, (struct obj *) 0); X! mtmp = mtmp2; X } X X } X*** src/Old/objects.c Wed Aug 16 12:33:34 1989 X--- src/objects.c Mon Aug 7 20:34:06 1989 X*************** X*** 58,70 **** X FOOD("pear", 7, 0, 1, 0, 50), X FOOD("melon", 7, 0, 1, 0, 100), X FOOD("banana", 7, 0, 1, 0, 80), X #ifdef TUTTI_FRUTTI X FOOD("slime mold", 75, 0, 1, 0, 250), X #else X FOOD("slice of pizza", 75, 0, 1, 0, 250), X #endif X- FOOD("carrot", 15, 0, 1, 0, 50), X- FOOD("clove of garlic", 5, 0, 1, 0, 40), X /* human food */ X FOOD("lump of royal jelly", 0, 0, 1, 0, 200), X FOOD("cream pie", 25, 0, 1, 0, 100), X--- 58,70 ---- X FOOD("pear", 7, 0, 1, 0, 50), X FOOD("melon", 7, 0, 1, 0, 100), X FOOD("banana", 7, 0, 1, 0, 80), X+ FOOD("carrot", 15, 0, 1, 0, 50), X+ FOOD("clove of garlic", 5, 0, 1, 0, 40), X #ifdef TUTTI_FRUTTI X FOOD("slime mold", 75, 0, 1, 0, 250), X #else X FOOD("slice of pizza", 75, 0, 1, 0, 250), X #endif X /* human food */ X FOOD("lump of royal jelly", 0, 0, 1, 0, 200), X FOOD("cream pie", 25, 0, 1, 0, 100), X*** src/Old/objnam.c Wed Aug 16 12:34:11 1989 X--- src/objnam.c Tue Aug 15 20:05:30 1989 X*************** X*** 633,639 **** X Strcpy(str, oldstr); X X /* Search for common compounds, i.e. lump of royal jelly */ X! for(excess=0, spot=str; *spot; spot++) { X if (!strncmp(spot, " of ", 4) X || !strncmp(spot, " labeled ", 9) X || !strncmp(spot, " called ", 8) X--- 633,639 ---- X Strcpy(str, oldstr); X X /* Search for common compounds, i.e. lump of royal jelly */ X! for(excess=(char *)0, spot=str; *spot; spot++) { X if (!strncmp(spot, " of ", 4) X || !strncmp(spot, " labeled ", 9) X || !strncmp(spot, " called ", 8) X*************** X*** 651,657 **** X || !strncmp(spot, " du ", 4) X #endif X ) { X! excess = oldstr + (spot - str); X *spot = 0; X break; X } X--- 651,657 ---- X || !strncmp(spot, " du ", 4) X #endif X ) { X! excess = oldstr + (int) (spot - str); X *spot = 0; X break; X } X*************** X*** 1102,1108 **** X goto typfnd; X } X #endif X! if (strlen(bp) == 1 && index(obj_symbols, *bp)) { X let = *bp; X goto any; X } X--- 1102,1108 ---- X goto typfnd; X } X #endif X! if (strlen(bp) == 1 && index(obj_symbols, *bp) && *bp != ILLOBJ_SYM) { X let = *bp; X goto any; X } X*************** X*** 1374,1379 **** X--- 1374,1383 ---- X } else if (spesgn < 0) { X curse(otmp); X } X+ X+ /* prevent wishing abuse */ X+ if (otmp->otyp == WAN_WISHING || otmp->otyp == MAGIC_LAMP) X+ otmp->recharged = 1; X X /* set poisoned */ X if (ispoisoned) { X*** src/Old/options.c Wed Aug 16 12:34:52 1989 X--- src/options.c Fri Aug 4 12:13:24 1989 X*************** X*** 674,681 **** X (!strncmp(buf, "tin of ", 7) && name_to_mon(buf+7) > -1) || X !strcmp(buf, "empty tin") || X !strcmp(buf, "tin of spinach") || X! ((!strncmp(eos(buf)-6," corpse",6) || X! !strncmp(eos(buf)-3, " egg",3)) X && name_to_mon(buf) > -1)) X { X Strcpy(buf, pl_fruit); X--- 674,681 ---- X (!strncmp(buf, "tin of ", 7) && name_to_mon(buf+7) > -1) || X !strcmp(buf, "empty tin") || X !strcmp(buf, "tin of spinach") || X! ((!strncmp(eos(buf)-6," corpse",7) || X! !strncmp(eos(buf)-3, " egg",4)) X && name_to_mon(buf) > -1)) X { X Strcpy(buf, pl_fruit); X*** src/Old/pager.c Wed Aug 16 12:35:16 1989 X--- src/pager.c Wed Aug 16 10:48:06 1989 X*************** X*** 21,26 **** X--- 21,29 ---- X X static void page_more(); X X+ const char nonlets[] = { S_EEL, S_CHAMELEON, S_DEMON, S_GHOST, S_HUMAN, X+ S_GOLEM, 0 }; X+ X int X dowhatis() X { X*************** X*** 28,90 **** X char bufr[BUFSZ+6]; X register char *buf = &bufr[6], *ep, q; X register struct monst *mtmp; X X if(!(fp = fopen(DATAFILE, "r"))) X pline("Cannot open data file!"); X else { X coord cc; X uchar r; X X pline ("Specify unknown object by cursor? "); X q = ynq(); X- cc.x = cc.y = -1; X if (q == 'q') { X (void) fclose(fp); X return 0; X } else if (q == 'n') { X pline("Specify what? "); X r = readchar(); X } else { X if(flags.verbose) X! pline("Please move the cursor to the unknown object."); X! getpos(&cc, TRUE, "the unknown object"); X r = levl[cc.x][cc.y].scrsym; X } X X! if (r == showsyms.stone) q = defsyms.stone; X! else if (r == showsyms.vwall) q = defsyms.vwall; X! else if (r == showsyms.hwall) q = defsyms.hwall; X! else if (r == showsyms.tlcorn) q = defsyms.tlcorn; X! else if (r == showsyms.trcorn) q = defsyms.trcorn; X! else if (r == showsyms.blcorn) q = defsyms.blcorn; X! else if (r == showsyms.brcorn) q = defsyms.brcorn; X! else if (r == showsyms.crwall) q = defsyms.crwall; X! else if (r == showsyms.tuwall) q = defsyms.tuwall; X! else if (r == showsyms.tdwall) q = defsyms.tdwall; X! else if (r == showsyms.tlwall) q = defsyms.tlwall; X! else if (r == showsyms.trwall) q = defsyms.trwall; X! else if (r == showsyms.door) q = defsyms.door; X! else if (r == showsyms.room) q = defsyms.room; X! else if (r == showsyms.corr) q = defsyms.corr; X! else if (r == showsyms.upstair) q = defsyms.upstair; X! else if (r == showsyms.dnstair) q = defsyms.dnstair; X! else if (r == showsyms.trap) q = defsyms.trap; X #ifdef FOUNTAINS X! else if (r == showsyms.pool) q = defsyms.pool; X! else if (r == showsyms.fountain) q = defsyms.fountain; X #endif X- #ifdef THRONES X- else if (r == showsyms.throne) q = defsyms.throne; X- #endif X- else if (r == showsyms.web) q = defsyms.web; X #ifdef SINKS X! else if (r == showsyms.sink) q = defsyms.sink; X #endif X #ifdef ALTARS X! else if (r == showsyms.altar) q = defsyms.altar; X #endif X! else X! q = r; X if (index(quitchars, q)) { X (void) fclose(fp); /* sweet@scubed */ X return 0; X--- 31,118 ---- X char bufr[BUFSZ+6]; X register char *buf = &bufr[6], *ep, q; X register struct monst *mtmp; X+ #ifdef OS2_CODEVIEW X+ char tmp[PATHLEN]; X X+ Strcpy(tmp,hackdir); X+ append_slash(tmp); X+ Strcat(tmp,DATAFILE); X+ if(!(fp = fopen(tmp,"r"))) X+ #else X if(!(fp = fopen(DATAFILE, "r"))) X+ #endif X pline("Cannot open data file!"); X else { X coord cc; X uchar r; X+ boolean bycurs = FALSE; X X pline ("Specify unknown object by cursor? "); X q = ynq(); X if (q == 'q') { X (void) fclose(fp); X return 0; X } else if (q == 'n') { X+ cc.x = cc.y = -1; X pline("Specify what? "); X r = readchar(); X } else { X+ bycurs = TRUE; X+ cc.x = u.ux; X+ cc.y = u.uy; X+ selobj: X if(flags.verbose) X! pline("Please move the cursor to an unknown object."); X! getpos(&cc, FALSE, "an unknown object"); X! if (cc.x < 0) { X! (void) fclose(fp); /* sweet@scubed */ X! return 0; X! } X r = levl[cc.x][cc.y].scrsym; X } X X! #define conv_sym(x) if(r == showsyms.x) q = defsyms.x X! conv_sym(stone); X! else conv_sym(vwall); X! else conv_sym(hwall); X! else conv_sym(tlcorn); X! else conv_sym(trcorn); X! else conv_sym(blcorn); X! else conv_sym(brcorn); X! else conv_sym(crwall); X! else conv_sym(tuwall); X! else conv_sym(tdwall); X! else conv_sym(tlwall); X! else conv_sym(trwall); X! else conv_sym(door); X! else conv_sym(room); X! else conv_sym(corr); X! else conv_sym(upstair); X! else conv_sym(dnstair); X! else conv_sym(trap); X! else conv_sym(web); X! else conv_sym(pool); X #ifdef FOUNTAINS X! else conv_sym(fountain); X #endif X #ifdef SINKS X! else conv_sym(sink); X! #endif X! #ifdef THRONES X! else conv_sym(throne); X #endif X #ifdef ALTARS X! else conv_sym(altar); X! #endif X! #ifdef STRONGHOLD X! else conv_sym(upladder); X! else conv_sym(dnladder); X! else conv_sym(dbvwall); X! else conv_sym(dbhwall); X #endif X! else q = r; X! #undef conv_sym X! X if (index(quitchars, q)) { X (void) fclose(fp); /* sweet@scubed */ X return 0; X*************** X*** 91,96 **** X--- 119,130 ---- X } X if(q == '%') { X pline("%% a piece of food"); X+ if(bycurs) { X+ buf = &bufr[6]; X+ more(); X+ rewind(fp); X+ goto selobj; X+ } X (void) fclose(fp); X return 0; X } X*************** X*** 108,125 **** X (void) strncpy(buf+1, " ", 7); X } X pline(buf); X! if(cc.x != -1 && IS_ALTAR(levl[cc.x][cc.y].typ)) { X! int type = levl[u.ux][u.uy].altarmask & ~A_SHRINE; X! pline("(%s)", (type==0) ? "chaotic" : X! (type==1) ? "neutral" : "lawful"); X } X! if (!Invisible && u.ux==cc.x && u.uy==cc.y) { X pline("(%s named %s)", X #ifdef POLYSELF X u.mtimedone ? mons[u.umonnum].mname : X #endif X pl_character, plname); X! } else if((q >= 'A' && q <= 'z') || index(";:& @`",q)) { X for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) X if(mtmp->mx == cc.x && mtmp->my == cc.y) { X pline("(%s%s)", X--- 142,209 ---- X (void) strncpy(buf+1, " ", 7); X } X pline(buf); X! if(cc.x != -1) { X! #ifdef ALTARS X! if (r == showsyms.altar && q == defsyms.altar && X! (IS_ALTAR(levl[cc.x][cc.y].typ) || X! (levl[cc.x][cc.y].mmask && X! m_at(cc.x,cc.y)->mimic)) X! ) { X! int type = levl[cc.x][cc.y].altarmask & X! ~A_SHRINE; X! pline((type == A_CHAOS) ? "(chaotic)" : X! (type == A_NEUTRAL) ? "(neutral)" : X! "(lawful)"); X! } else X! if (q == CHAIN_SYM && levl[cc.x][cc.y].omask) X! pline("(chain)"); X! else X! #endif X! if (r == showsyms.door && q == defsyms.door && X! (IS_DOOR(levl[cc.x][cc.y].typ) || X! (levl[cc.x][cc.y].mmask && X! m_at(cc.x,cc.y)->mimic))) { X! /* Note: this will say mimics in walls are X! * closed doors, which we want. X! */ X! switch(levl[cc.x][cc.y].doormask & ~D_TRAPPED) { X! case D_NODOOR: pline("(doorway)"); break; X! case D_BROKEN: pline("(broken door)"); break; X! case D_ISOPEN: pline("(open door)"); break; X! default: pline("(closed door)"); break; X! /* locked or not */ X! } X! } X! #ifdef SPELLS X! else X! if (q == SPBOOK_SYM && levl[cc.x][cc.y].omask) X! pline("(spellbook)"); X! #endif X! #ifdef STRONGHOLD X! else X! if (((r == showsyms.dbvwall && q == defsyms.dbvwall) || X! (r == showsyms.dbvwall && q == defsyms.dbvwall)) && X! is_db_wall(cc.x,cc.y)) X! pline("(raised drawbridge)"); X! #endif X! #ifdef SINKS X! else X! if (r == showsyms.sink && q == defsyms.sink && X! IS_SINK(levl[cc.x][cc.y].typ)) X! pline("(sink)"); X! #endif X } X! if (!Invisible X! #ifdef POLYSELF X! && !u.uundetected X! #endif X! && u.ux==cc.x && u.uy==cc.y) { X pline("(%s named %s)", X #ifdef POLYSELF X u.mtimedone ? mons[u.umonnum].mname : X #endif X pl_character, plname); X! } else if((q >= 'A' && q <= 'z') || index(nonlets,q)) { X for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) X if(mtmp->mx == cc.x && mtmp->my == cc.y) { X pline("(%s%s)", X*************** X*** 137,142 **** X--- 221,232 ---- X return 0; X } X } X+ if(bycurs) { X+ buf = &bufr[6]; X+ more(); X+ rewind(fp); X+ goto selobj; X+ } X (void) fclose(fp); /* kopper@psuvax1 */ X return 0; X } X*************** X*** 152,162 **** X--- 242,261 ---- X FILE *fp; X char bufr[BUFSZ+6]; X register char *buf = &bufr[6], *ep, q, ctrl; X+ #ifdef OS2_CODEVIEW X+ char tmp[PATHLEN]; X X+ Strcpy(tmp,hackdir); X+ append_slash(tmp); X+ Strcat(tmp,CMDHELPFILE); X+ if(!(fp = fopen(tmp,"r"))) { X+ #else X if(!(fp = fopen(CMDHELPFILE, "r"))) { X+ #endif X pline("Cannot open data file!"); X return 0; X } X+ X pline("What command? "); X #ifdef UNIX X introff(); X*************** X*** 456,462 **** X for (tl = texthead; tl; tl = tl->next_line) { X if (page_line (tl->line_text)) { X set_pager(2); X! goto cleanup; X } X } X if(text) { X--- 555,565 ---- X for (tl = texthead; tl; tl = tl->next_line) { X if (page_line (tl->line_text)) { X set_pager(2); X! while(tl = texthead) { X! texthead = tl->next_line; X! free((genericptr_t) tl); X! } X! return; X } X } X if(text) { X*************** X*** 467,473 **** X } X } X X- cleanup: X while(tl = texthead) { X texthead = tl->next_line; X free((genericptr_t) tl); X--- 570,575 ---- X*************** X*** 592,599 **** X--- 694,709 ---- X #else X { X FILE *f; /* free after Robert Viduya */ X+ #ifdef OS2_CODEVIEW X+ char tmp[PATHLEN]; X X+ Strcpy(tmp,hackdir); X+ append_slash(tmp); X+ Strcat(tmp,fnam); X+ if ((f = fopen (tmp, "r")) == (FILE *) 0) { X+ #else X if ((f = fopen (fnam, "r")) == (FILE *) 0) { X+ #endif X if(!silent) { X home(); perror (fnam); flags.toplin = 1; X pline ("Cannot open %s.", fnam); X*** src/Old/pickup.c Wed Aug 16 12:35:55 1989 X--- src/pickup.c Tue Aug 15 20:34:53 1989 X*************** X*** 198,209 **** X pline("Touching the dead cockatrice is a fatal mistake."); X You("turn to stone."); X You("die..."); X! killer = "cockatrice cadaver"; X! done("stoned"); X } X X if(obj->otyp == SCR_SCARE_MONSTER){ X! if(!obj->spe) obj->spe = 1; X else { X pline("The scroll turns to dust as you pick it up."); X if(!(objects[SCR_SCARE_MONSTER].oc_name_known) && X--- 198,210 ---- X pline("Touching the dead cockatrice is a fatal mistake."); X You("turn to stone."); X You("die..."); X! killer = "cockatrice corpse"; X! done(STONING); X } X X if(obj->otyp == SCR_SCARE_MONSTER){ X! if(obj->blessed) obj->blessed = 0; X! else if(!obj->spe && !obj->cursed) obj->spe = 1; X else { X pline("The scroll turns to dust as you pick it up."); X if(!(objects[SCR_SCARE_MONSTER].oc_name_known) && X*** src/Old/polyself.c Wed Aug 16 12:36:18 1989 X--- src/polyself.c Tue Aug 15 22:58:32 1989 X*************** X*** 127,133 **** X } else { X Your("new form doesn't seem healthy enough to survive."); X killer="unsuccessful polymorph"; X! done("died"); X } X } X set_uasmon(); X--- 127,133 ---- X } else { X Your("new form doesn't seem healthy enough to survive."); X killer="unsuccessful polymorph"; X! done(DIED); X } X } X set_uasmon(); X*************** X*** 160,166 **** X if (Inhell && !Fire_resistance) { X You("burn to a crisp."); X killer = "unwise polymorph"; X! done("burned"); X } X } X X--- 160,166 ---- X if (Inhell && !Fire_resistance) { X You("burn to a crisp."); X killer = "unwise polymorph"; X! done(BURNING); X } X } X X*************** X*** 358,368 **** X set_uasmon(); X You("return to %sn form!",(pl_character[0]=='E')?"elve":"huma"); X X! if (u.uhp < 1) done("died"); X if (!Fire_resistance && Inhell) { X You("burn to a crisp."); X killer = "dissipating polymorph spell"; X! done("burned"); X } X if (!uarmg) selftouch("No longer petrify-resistant, you"); X if (sticky) uunstick(); X--- 358,368 ---- X set_uasmon(); X You("return to %sn form!",(pl_character[0]=='E')?"elve":"huma"); X X! if (u.uhp < 1) done(DIED); X if (!Fire_resistance && Inhell) { X You("burn to a crisp."); X killer = "dissipating polymorph spell"; X! done(BURNING); X } X if (!uarmg) selftouch("No longer petrify-resistant, you"); X if (sticky) uunstick(); X*************** X*** 507,513 **** X looked = 1; X if (Invis && !perceives(mtmp->data)) X pline("%s seems not to notice your gaze.", Monnam(mtmp)); X! else if (mtmp->minvis && !See_invisible) X You("can't see where to gaze at %s.", Monnam(mtmp)); X else if (mtmp->mimic) X continue; X--- 507,513 ---- X looked = 1; X if (Invis && !perceives(mtmp->data)) X pline("%s seems not to notice your gaze.", Monnam(mtmp)); X! else if (mtmp->minvis && !See_invisible && !Telepat) X You("can't see where to gaze at %s.", Monnam(mtmp)); X else if (mtmp->mimic) X continue; X*************** X*** 547,554 **** X #ifdef MEDUSA X if ((mtmp->data==&mons[PM_MEDUSA]) && !mtmp->mcan) { X pline("Gazing at an awake medusa is not a very good idea..."); X You("turn to stone..."); X! done("stoned"); X } X #endif X } X--- 547,555 ---- X #ifdef MEDUSA X if ((mtmp->data==&mons[PM_MEDUSA]) && !mtmp->mcan) { X pline("Gazing at an awake medusa is not a very good idea..."); X+ /* as if gazing at a sleeping anything is fruitful... */ X You("turn to stone..."); X! done(STONING); X } X #endif X } X*** src/Old/potion.c Thu Jul 27 16:56:52 1989 X--- src/potion.c Wed Aug 16 22:13:59 1989 X*************** X*** 80,86 X { X long old = Blinded; X X! if (!xtime && old) { X if (talk) { X if (Hallucination) pline("Oh, like, wow! What a rush."); X else You("can see again."); X X--- 80,86 ----- X { X long old = Blinded; X X! if (!xtime && old && !Blindfolded) { X if (talk) { X if (Hallucination) pline("Oh, like, wow! What a rush."); X else You("can see again."); X*************** X*** 476,482 X case POT_GAIN_LEVEL: X if (otmp->cursed) { X unkn++; X- You("rise up, through the ceiling!"); X /* they went up a level */ X goto_level(dlevel-1, FALSE); X break; X X--- 476,481 ----- X case POT_GAIN_LEVEL: X if (otmp->cursed) { X unkn++; X /* they went up a level */ X if(dlevel > 1 && dlevel <= MAXLEVEL) { X You("rise up, through the ceiling!"); X*************** X*** 478,484 X unkn++; X You("rise up, through the ceiling!"); X /* they went up a level */ X! goto_level(dlevel-1, FALSE); X break; X } X pluslvl(); X X--- 477,486 ----- X if (otmp->cursed) { X unkn++; X /* they went up a level */ X! if(dlevel > 1 && dlevel <= MAXLEVEL) { X! You("rise up, through the ceiling!"); X! goto_level(dlevel-1, FALSE); X! } else You("have an uneasy feeling."); X break; X } X pluslvl(); X*************** X*** 979,985 X X mnexto(mtmp); X if (!Blind) X! pline("In a cloud of smoke, a djinni emerges!"); X else You("smell acrid fumes."); X if (!Blind) X pline("%s speaks.", Monnam(mtmp)); X X--- 981,987 ----- X X mnexto(mtmp); X if (!Blind) X! pline("In a cloud of smoke, %s emerges!", defmonnam(mtmp)); X else You("smell acrid fumes."); X if (!Blind) X pline("%s speaks.", Monnam(mtmp)); X*************** X*** 997,1003 X mtmp->mpeaceful = 1; X break; X case 3 : pline("\"It is about time!\""); X! pline("The djinni vanishes."); X mongone(mtmp); X break; X default: pline("\"You disturbed me, fool!\""); X X--- 999,1006 ----- X mtmp->mpeaceful = 1; X break; X case 3 : pline("\"It is about time!\""); X! pline("The %s vanishes.", X! Hallucination ? rndmonnam() : "djinni"); X mongone(mtmp); X break; X default: pline("\"You disturbed me, fool!\""); X*** src/Old/pray.c Sun Jul 30 23:58:10 1989 X--- src/pray.c Wed Aug 16 22:14:01 1989 X*************** X*** 1,5 X /* SCCS Id: @(#)pray.c 3.0 89/01/10 X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X /* NetHack may be freely redistributed. See license for details. */ X X #include "hack.h" X X--- 1,6 ----- X /* SCCS Id: @(#)pray.c 3.0 89/01/10 X /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ X+ /* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */ X /* NetHack may be freely redistributed. See license for details. */ X X #include "hack.h" X*************** X*** 37,50 X 0,0,0,0 X }; X X! #define TROUBLE_STONED 1 X! #define TROUBLE_STRANGLED 2 X! #define TROUBLE_SICK 3 X! #define TROUBLE_STARVING 4 X! #define TROUBLE_HIT 5 X! #define TROUBLE_STUCK_IN_WALL 6 X! #define TROUBLE_LEVITATED_FOREVER 7 X! #define TROUBLE_BLINDED_FOREVER 8 X X #define TROUBLE_PUNISHED (-1) X #define TROUBLE_LYCANTHROPE (-2) X X--- 38,51 ----- X 0,0,0,0 X }; X X! #define TROUBLE_STONED 8 X! #define TROUBLE_STRANGLED 7 X! #define TROUBLE_SICK 6 X! #define TROUBLE_STARVING 5 X! #define TROUBLE_HIT 4 X! #define TROUBLE_STUCK_IN_WALL 3 X! #define TROUBLE_CURSED_BLINDFOLD 2 X! #define TROUBLE_CURSED_LEVITATION 1 X X #define TROUBLE_LYCANTHROPE (-1) X #define TROUBLE_PUNISHED (-2) X*************** X*** 46,53 X #define TROUBLE_LEVITATED_FOREVER 7 X #define TROUBLE_BLINDED_FOREVER 8 X X! #define TROUBLE_PUNISHED (-1) X! #define TROUBLE_LYCANTHROPE (-2) X #define TROUBLE_CURSED_ITEMS (-3) X #define TROUBLE_HUNGRY (-4) X #define TROUBLE_POISONED (-5) X X--- 47,54 ----- X #define TROUBLE_CURSED_BLINDFOLD 2 X #define TROUBLE_CURSED_LEVITATION 1 X X! #define TROUBLE_LYCANTHROPE (-1) X! #define TROUBLE_PUNISHED (-2) X #define TROUBLE_CURSED_ITEMS (-3) X #define TROUBLE_BLIND (-4) X #define TROUBLE_HUNGRY (-5) X*************** X*** 49,61 X #define TROUBLE_PUNISHED (-1) X #define TROUBLE_LYCANTHROPE (-2) X #define TROUBLE_CURSED_ITEMS (-3) X! #define TROUBLE_HUNGRY (-4) X! #define TROUBLE_POISONED (-5) X! #define TROUBLE_HALLUCINATION (-6) X! #define TROUBLE_BLIND (-7) X! #define TROUBLE_WOUNDED_LEGS (-8) X! #define TROUBLE_STUNNED (-9) X! #define TROUBLE_CONFUSED (-10) X X /* We could force rehumanize of polyselfed people, but we can't tell X unintentional shape changes from the other kind. Oh well. */ X X--- 50,62 ----- X #define TROUBLE_LYCANTHROPE (-1) X #define TROUBLE_PUNISHED (-2) X #define TROUBLE_CURSED_ITEMS (-3) X! #define TROUBLE_BLIND (-4) X! #define TROUBLE_HUNGRY (-5) X! #define TROUBLE_POISONED (-6) X! #define TROUBLE_WOUNDED_LEGS (-7) X! #define TROUBLE_STUNNED (-8) X! #define TROUBLE_CONFUSED (-9) X! #define TROUBLE_HALLUCINATION (-10) X X /* We could force rehumanize of polyselfed people, but we can't tell X unintentional shape changes from the other kind. Oh well. */ X*************** X*** 108,116 X ) return(TROUBLE_STUCK_IN_WALL); X if((uarmf && uarmf->otyp==LEVITATION_BOOTS && uarmf->cursed) || X (uleft && uleft->otyp==RIN_LEVITATION && uleft->cursed) || X! (uright && uright->otyp==RIN_LEVITATION && uleft->cursed)) X! return(TROUBLE_LEVITATED_FOREVER); X! if(ublindf && ublindf->cursed) return(TROUBLE_BLINDED_FOREVER); X X if(Punished) return(TROUBLE_PUNISHED); X #ifdef POLYSELF X X--- 109,117 ----- X ) return(TROUBLE_STUCK_IN_WALL); X if((uarmf && uarmf->otyp==LEVITATION_BOOTS && uarmf->cursed) || X (uleft && uleft->otyp==RIN_LEVITATION && uleft->cursed) || X! (uright && uright->otyp==RIN_LEVITATION && uright->cursed)) X! return(TROUBLE_CURSED_LEVITATION); X! if(ublindf && ublindf->cursed) return(TROUBLE_CURSED_BLINDFOLD); X X #ifdef POLYSELF X if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE); X*************** X*** 112,118 X return(TROUBLE_LEVITATED_FOREVER); X if(ublindf && ublindf->cursed) return(TROUBLE_BLINDED_FOREVER); X X- if(Punished) return(TROUBLE_PUNISHED); X #ifdef POLYSELF X if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE); X #endif X X--- 113,118 ----- X return(TROUBLE_CURSED_LEVITATION); X if(ublindf && ublindf->cursed) return(TROUBLE_CURSED_BLINDFOLD); X X #ifdef POLYSELF X if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE); X #endif X*************** X*** 116,121 X #ifdef POLYSELF X if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE); X #endif X for(otmp=invent; otmp; otmp=otmp->nobj) X if((otmp->otyp==LOADSTONE || otmp->otyp==LUCKSTONE) && X otmp->cursed) X X--- 116,122 ----- X #ifdef POLYSELF X if(u.ulycn >= 0) return(TROUBLE_LYCANTHROPE); X #endif X+ if(Punished) return(TROUBLE_PUNISHED); X for(otmp=invent; otmp; otmp=otmp->nobj) X if((otmp->otyp==LOADSTONE || otmp->otyp==LUCKSTONE) && X otmp->cursed) X*************** X*** 137,142 X X return(TROUBLE_CURSED_ITEMS); X X if(u.uhs >= HUNGRY) return(TROUBLE_HUNGRY); X for(i=0; i<A_MAX; i++) X if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED); X X--- 138,144 ----- X X return(TROUBLE_CURSED_ITEMS); X X+ if(Blinded > 1) return(TROUBLE_BLIND); X if(u.uhs >= HUNGRY) return(TROUBLE_HUNGRY); X for(i=0; i<A_MAX; i++) X if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED); X*************** X*** 140,147 X if(u.uhs >= HUNGRY) return(TROUBLE_HUNGRY); X for(i=0; i<A_MAX; i++) X if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED); X- if(Hallucination) return(TROUBLE_HALLUCINATION); X- if(Blinded > 1) return(TROUBLE_BLIND); X if(Wounded_legs) return (TROUBLE_WOUNDED_LEGS); X if(HStun) return (TROUBLE_STUNNED); X if(HConfusion) return (TROUBLE_CONFUSED); X X--- 142,147 ----- X if(u.uhs >= HUNGRY) return(TROUBLE_HUNGRY); X for(i=0; i<A_MAX; i++) X if(ABASE(i) < AMAX(i)) return(TROUBLE_POISONED); X if(Wounded_legs) return (TROUBLE_WOUNDED_LEGS); X if(HStun) return (TROUBLE_STUNNED); X if(HConfusion) return (TROUBLE_CONFUSED); X*************** X*** 145,150 X if(Wounded_legs) return (TROUBLE_WOUNDED_LEGS); X if(HStun) return (TROUBLE_STUNNED); X if(HConfusion) return (TROUBLE_CONFUSED); X X return(0); X } X X--- 145,151 ----- X if(Wounded_legs) return (TROUBLE_WOUNDED_LEGS); X if(HStun) return (TROUBLE_STUNNED); X if(HConfusion) return (TROUBLE_CONFUSED); X+ if(Hallucination) return(TROUBLE_HALLUCINATION); X X return(0); X } X*************** X*** 194,200 X Your("surroundings change."); X tele(); X break; X! case TROUBLE_LEVITATED_FOREVER: X if (uarmf && uarmf->otyp==LEVITATION_BOOTS X && uarmf->cursed) X otmp = uarmf; X X--- 195,201 ----- X Your("surroundings change."); X tele(); X break; X! case TROUBLE_CURSED_LEVITATION: X if (uarmf && uarmf->otyp==LEVITATION_BOOTS X && uarmf->cursed) X otmp = uarmf; X*************** X*** 208,214 X } X goto decurse; X break; X! case TROUBLE_BLINDED_FOREVER: X otmp = ublindf; X goto decurse; X break; X X--- 209,215 ----- X } X goto decurse; X break; X! case TROUBLE_CURSED_BLINDFOLD: X otmp = ublindf; X goto decurse; X break; X*************** X*** 404,410 X } X You("fry to a crisp."); X killer = "holy wrath"; X! done("died"); X break; X } X u.ublesscnt = rnz(300); X X--- 405,411 ----- X } X You("fry to a crisp."); X killer = "holy wrath"; X! done(DIED); X break; X } X u.ublesscnt = rnz(300); X*************** X*** 545,552 X } X break; X } X! case 5: pline("A voice booms out: \"Thou hast pleased me with thy progress,\""); X! pline("\"and thus I grant thee the gift of "); X if (!(HTelepat & INTRINSIC)) { X HTelepat |= INTRINSIC; X addtopl("Telepathy!\""); X X--- 546,555 ----- X } X break; X } X! case 5: X! { X! char *msg="\"and thus I grant thee the gift of %s!\""; X! pline("A voice booms out: \"Thou hast pleased me with thy progress,\""); X if (!(HTelepat & INTRINSIC)) { X HTelepat |= INTRINSIC; X pline(msg, "Telepathy"); X*************** X*** 549,555 X pline("\"and thus I grant thee the gift of "); X if (!(HTelepat & INTRINSIC)) { X HTelepat |= INTRINSIC; X! addtopl("Telepathy!\""); X } else if (!(Fast & INTRINSIC)) { X Fast |= INTRINSIC; X addtopl("Speed!\""); X X--- 552,558 ----- X pline("A voice booms out: \"Thou hast pleased me with thy progress,\""); X if (!(HTelepat & INTRINSIC)) { X HTelepat |= INTRINSIC; X! pline(msg, "Telepathy"); X } else if (!(Fast & INTRINSIC)) { X Fast |= INTRINSIC; X pline(msg, "Speed"); X*************** X*** 552,558 X addtopl("Telepathy!\""); X } else if (!(Fast & INTRINSIC)) { X Fast |= INTRINSIC; X! addtopl("Speed!\""); X } else if (!(Stealth & INTRINSIC)) { X Stealth |= INTRINSIC; X addtopl("Stealth!\""); X X--- 555,561 ----- X pline(msg, "Telepathy"); X } else if (!(Fast & INTRINSIC)) { X Fast |= INTRINSIC; X! pline(msg, "Speed"); X } else if (!(Stealth & INTRINSIC)) { X Stealth |= INTRINSIC; X pline(msg, "Stealth"); X*************** X*** 555,561 X addtopl("Speed!\""); X } else if (!(Stealth & INTRINSIC)) { X Stealth |= INTRINSIC; X! addtopl("Stealth!\""); X } else { X if (!(Protection & INTRINSIC)) { X Protection |= INTRINSIC; X X--- 558,564 ----- X pline(msg, "Speed"); X } else if (!(Stealth & INTRINSIC)) { X Stealth |= INTRINSIC; X! pline(msg, "Stealth"); X } else { X if (!(Protection & INTRINSIC)) { X Protection |= INTRINSIC; X*************** X*** 561,567 X Protection |= INTRINSIC; X if (!u.ublessed) u.ublessed = rnd(3) + 1; X } else u.ublessed++; X! addtopl("our protection!\""); X } X pline ("\"Use it wisely in my name!\""); X break; X X--- 564,570 ----- X Protection |= INTRINSIC; X if (!u.ublessed) u.ublessed = rnd(3) + 1; X } else u.ublessed++; X! pline(msg, "my protection"); X } X pline ("\"Use it wisely in my name!\""); X break; X*************** X*** 565,571 X } X pline ("\"Use it wisely in my name!\""); X break; X! X case 7: X #ifdef ELBERETH X if (u.ualign > 3 && !u.uhand_of_elbereth) { X X--- 568,574 ----- X } X pline ("\"Use it wisely in my name!\""); X break; X! } X case 7: X #ifdef ELBERETH X if (u.ualign > 3 && !u.uhand_of_elbereth) { X*************** X*** 587,592 X #endif X } else { X register struct obj *obj; X pline("A voice booms out: \"Thou art chosen to steal souls for Arioch!\""); X /* This does the same damage as Excalibur. X * Disadvantages: doesn't do bonuses to undead; X X--- 590,596 ----- X #endif X } else { X register struct obj *obj; X+ #ifdef NAMED_ITEMS X pline("A voice booms out: \"Thou art chosen to steal souls for Arioch!\""); X /* This does the same damage as Excalibur. X * Disadvantages: doesn't do bonuses to undead; X*************** X*** 617,622 X */ X obj->spe = 1; X dropy(obj); X } X break; X } X X--- 621,629 ----- X */ X obj->spe = 1; X dropy(obj); X+ #else X+ pline("Thou shalt become the servant of Arioch!"); X+ #endif X } X break; X } X*************** X*** 716,721 X X if (otmp->otyp == CORPSE) { X register struct permonst *mtmp = &mons[otmp->corpsenm]; X X if (otmp->corpsenm == PM_ACID_BLOB || (moves <= otmp->age + 50)) X value = mtmp->mlevel + 1; /* only fresh kills */ X X--- 723,729 ----- X X if (otmp->otyp == CORPSE) { X register struct permonst *mtmp = &mons[otmp->corpsenm]; X+ extern int monstr[]; X X if (otmp->corpsenm == PM_ACID_BLOB || (moves <= otmp->age + 50)) X value = monstr[otmp->corpsenm] + 1; X*************** X*** 718,724 X register struct permonst *mtmp = &mons[otmp->corpsenm]; X X if (otmp->corpsenm == PM_ACID_BLOB || (moves <= otmp->age + 50)) X! value = mtmp->mlevel + 1; /* only fresh kills */ X X if (is_human(mtmp)) { /* Human sacrifice! */ X #ifdef POLYSELF X X--- 726,732 ----- X extern int monstr[]; X X if (otmp->corpsenm == PM_ACID_BLOB || (moves <= otmp->age + 50)) X! value = monstr[otmp->corpsenm] + 1; X X if (is_human(mtmp)) { /* Human sacrifice! */ X #ifdef POLYSELF X*************** X*** 822,828 X } X else { X /* The final Test. Did you win? */ X! if(uamul && uamul->otyp == otmp->otyp) Amulet_off(); X useup(otmp); /* well, it's gone now */ X You("offer the Amulet to %s...", a_gname()); X if (u.ualigntyp != X X--- 830,836 ----- X } X else { X /* The final Test. Did you win? */ X! if(uamul == otmp) Amulet_off(); X useup(otmp); /* well, it's gone now */ X You("offer the Amulet to %s...", a_gname()); X if (u.ualigntyp != X*************** X*** 835,841 X pline("Fortunately, %s permits you to live...", a_gname()); X pline("A cloud of %s smoke surrounds you...", X Hallucination ? hcolor() : "orange"); X! done("escaped"); X } else { /* super big win */ X pline("An invisible choir sings, and you are bathed in radiance..."); X pline("\"Congratulations, mortal! In return for thy service,"); X X--- 843,849 ----- X pline("Fortunately, %s permits you to live...", a_gname()); X pline("A cloud of %s smoke surrounds you...", X Hallucination ? hcolor() : "orange"); X! done(ESCAPED); X } else { /* super big win */ X pline("An invisible choir sings, and you are bathed in radiance..."); X pline("\"Congratulations, mortal! In return for thy service,"); X*************** X*** 839,845 X } else { /* super big win */ X pline("An invisible choir sings, and you are bathed in radiance..."); X pline("\"Congratulations, mortal! In return for thy service,"); X! pline("\"I grant thee the gift of Immortality!\""); X You("ascend to the status of Demigod..."); X done("ascended"); X } X X--- 847,853 ----- X } else { /* super big win */ X pline("An invisible choir sings, and you are bathed in radiance..."); X pline("\"Congratulations, mortal! In return for thy service,"); X! pline("I grant thee the gift of Immortality!\""); X You("ascend to the status of Demigod..."); X done(ASCENDED); X } X*************** X*** 841,847 X pline("\"Congratulations, mortal! In return for thy service,"); X pline("\"I grant thee the gift of Immortality!\""); X You("ascend to the status of Demigod..."); X! done("ascended"); X } X } X } X X--- 849,855 ----- X pline("\"Congratulations, mortal! In return for thy service,"); X pline("I grant thee the gift of Immortality!\""); X You("ascend to the status of Demigod..."); X! done(ASCENDED); X } X } X } X*** src/Old/pri.c Wed Aug 16 12:38:14 1989 X--- src/pri.c Fri Aug 11 17:05:31 1989 X*************** X*** 150,156 **** X #ifdef POLYSELF X && !u.uundetected X #endif X! ) atl(u.ux,u.uy,(char)u.usym); X } X X void X--- 150,159 ---- X #ifdef POLYSELF X && !u.uundetected X #endif X! ) { X! levl[u.ux][u.uy].seen = 0; /* force atl */ X! atl(u.ux,u.uy,(char)u.usym); X! } X } X X void X*************** X*** 219,225 **** X && !u.uundetected X #endif X ) { X! levl[(u.udisx = u.ux)][(u.udisy = u.uy)].scrsym = u.usym; X levl[u.udisx][u.udisy].seen = 1; X u.udispl = 1; X } else u.udispl = 0; X--- 222,230 ---- X && !u.uundetected X #endif X ) { X! u.udisx = u.ux; X! u.udisy = u.uy; X! levl[u.udisx][u.udisy].scrsym = u.usym; X levl[u.udisx][u.udisy].seen = 1; X u.udispl = 1; X } else u.udispl = 0; X*************** X*** 229,235 **** X mtmp->mdispl = 0; X seemons(); /* force new positions to be shown */ X X! #if defined(DGK) && !defined(MSDOSCOLOR) X /* Otherwise, line buffer the output to do the redraw in X * about 2/3 of the time. X */ X--- 234,240 ---- X mtmp->mdispl = 0; X seemons(); /* force new positions to be shown */ X X! #if defined(DGK) && !defined(TEXTCOLOR) X /* Otherwise, line buffer the output to do the redraw in X * about 2/3 of the time. X */ X*************** X*** 261,267 **** X curx = end + 1; X } X } X! #else /* DGK && !MSDOSCOLOR */ X for(y = 0; y < ROWNO; y++) X for(x = 0; x < COLNO; x++) X if((room = &levl[x][y])->new) { X--- 266,272 ---- X curx = end + 1; X } X } X! #else /* DGK && !TEXTCOLOR */ X for(y = 0; y < ROWNO; y++) X for(x = 0; x < COLNO; x++) X if((room = &levl[x][y])->new) { X*************** X*** 269,275 **** X at(x,y,room->scrsym,AT_APP); X } else if(room->seen) X at(x,y,room->scrsym,AT_APP); X! #endif /* DGK && !MSDOSCOLOR */ X #ifndef g_putch X if (GFlag) { X graph_off(); X--- 274,280 ---- X at(x,y,room->scrsym,AT_APP); X } else if(room->seen) X at(x,y,room->scrsym,AT_APP); X! #endif /* DGK && !TEXTCOLOR */ X #ifndef g_putch X if (GFlag) { X graph_off(); X*************** X*** 1100,1115 **** X } X X if (!typ) { X- char *isobjct = index(obj_symbols, (char) let); X- X if (let == GOLD_SYM) X typ = AT_GLD; X! #ifdef MSDOSCOLOR X! else if (let == POOL_SYM) X! if (HI_BLUE == HI) typ = AT_MAP; X! else typ = AT_BLUE; X! #endif X! else if (isobjct != NULL || let == S_MIMIC_DEF) X /* is an object */ X typ = AT_OBJ; X else if (ismnst((char) let)) X--- 1105,1114 ---- X } X X if (!typ) { X if (let == GOLD_SYM) X typ = AT_GLD; X! else if (index(obj_symbols, (char) let) != NULL X! || let == S_MIMIC_DEF) X /* is an object */ X typ = AT_OBJ; X else if (ismnst((char) let)) X*************** X*** 1116,1152 **** X /* is a monster */ X typ = AT_MON; X } X! #ifndef MSDOSCOLOR X! if (typ == AT_MON) revbeg(); X! #else X switch (typ) { X case AT_MON: X! xputs(let != S_MIMIC_DEF ? HI_MON : HI_OBJ); X break; X case AT_OBJ: X! xputs(let == GOLD_SYM ? HI_GOLD : HI_OBJ); X break; X case AT_MAP: X! if (!(typ = (let == POOL_SYM))) X! break; X! case AT_BLUE: X! xputs(HI_BLUE); X break; X case AT_ZAP: X! xputs(HI_ZAP); X break; X- case AT_RED: X- xputs(HI_RED); X- break; X- case AT_WHITE: X- xputs(HI_WHITE); X- break; X } X #endif X X g_putch(let); X X! #ifdef MSDOSCOLOR X if (typ) xputs(HE); X #else X if (typ == AT_MON) m_end(); X--- 1115,1174 ---- X /* is a monster */ X typ = AT_MON; X } X! #ifdef TEXTCOLOR X switch (typ) { X case AT_MON: X! switch (let) { X! case S_MIMIC_DEF: X! typ = HI_OBJ; X! break; X! case S_YLIGHT: /* make 'em "glow" */ X! typ = YELLOW; X! break; X! default: X! typ = HI_MON; X! } X break; X case AT_OBJ: X! switch (let) { X! case GOLD_SYM: X! typ = HI_GOLD; X! break; X! case WEAPON_SYM: X! case ARMOR_SYM: X! case RING_SYM: X! case AMULET_SYM: X! typ = HI_METAL; X! break; X! case FOOD_SYM: X! case POTION_SYM: X! typ = HI_ORGANIC; X! break; X! default: X! typ = HI_OBJ; X! } X break; X case AT_MAP: X! #ifdef FOUNTAINS X! typ = ((let == POOL_SYM || let == FOUNTAIN_SYM) X! #else X! typ = (let == POOL_SYM X! #endif X! && HI_COLOR[BLUE] != HI ? BLUE : 0); X break; X case AT_ZAP: X! typ = HI_ZAP; X break; X } X+ if (typ) X+ xputs(HI_COLOR[typ]); X+ #else X+ if (typ == AT_MON) revbeg(); X #endif X X g_putch(let); X X! #ifdef TEXTCOLOR X if (typ) xputs(HE); X #else X if (typ == AT_MON) m_end(); END_OF_FILE if test 57076 -ne `wc -c <'patch02f'`; then echo shar: \"'patch02f'\" unpacked with wrong size! fi # end of 'patch02f' fi echo shar: End of archive 6 \(of 7\). cp /dev/null ark6isdone MISSING="" for I in 1 2 3 4 5 6 7 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 7 archives. 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