Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

NetHack-- 3.1.3 Patch (Fixed, 03/03)

3 views
Skip to first unread message

Chris Herborth

unread,
Aug 25, 1993, 9:43:24 PM8/25/93
to
Submitted-by: cher...@semprini.tdkcs.waterloo.on.ca
Archive-name: NetHack--/part03

Here is the fixed version of the NetHack-- 3.1.3 Patch. Use this
instead of the compressed tar version that I posted a few days ago.
Sorry for the confusion.

NetHack-- is an unauthorised expansion to NetHack. This patch will turn
your NetHack 3.1.3 source code into NetHack-- 3.1.3.

Binary versions are available for the Atari ST/TT/Falcon030, OS/2 2.x,
and DOS (386 or better); check your favourite ftp sites.

-------- 8< -------
#!/bin/sh
# this is NH31C--.03 (part 3 of NetHack--)
# do not concatenate these parts, unpack them in order with /bin/sh
# file NH31C--.Patch continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 3; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping NH31C--.Patch'
else
echo 'x - continuing file NH31C--.Patch'
sed 's/^X//' << 'SHAR_EOF' >> 'NH31C--.Patch' &&
X***************
X*** 2130,2135 ****
X--- 2956,2971 ----
X NO_ATTK, NO_ATTK, NO_ATTK },
X 10, 40, 0, MS_SILENT, MZ_TINY, MR_STONE, MR_STONE,
X M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
X+ { "salamander", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 2),
X+ { { AT_BITE, AD_PHYS, 1, 6 }, { AT_BREA, AD_FIRE, 1, 6}, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 10, 40, 0, MS_SILENT, MZ_TINY, MR_STONE, MR_STONE,
X+ M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(RED) },
X+ { "basilisk", S_LIZARD, 5, 6, 6, 10, 0, (G_GENO | 1),
X+ { { AT_BITE, AD_STON, 1, 6 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 10, 40, 0, MS_SILENT, MZ_TINY, MR_STONE, MR_STONE,
X+ M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GRAY) },
X { "chameleon", S_LIZARD, 6, 5, 6, 10, 0, (G_GENO | 2),
X { { AT_BITE, AD_PHYS, 4, 2 }, NO_ATTK, NO_ATTK,
X NO_ATTK, NO_ATTK, NO_ATTK },
X***************
X*** 2142,2148 ****
X WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
X M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS |
X M1_OVIPAROUS | M1_CARNIVORE, M2_STRONG | M2_HOSTILE, 0, C(BROWN) },
X!
X /* character classes */
X { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X--- 2978,3009 ----
X WT_HUMAN, 400, 0, MS_SILENT, MZ_LARGE, 0, 0,
X M1_SWIM | M1_AMPHIBIOUS | M1_ANIMAL | M1_THICK_HIDE | M1_NOHANDS |
X M1_OVIPAROUS | M1_CARNIVORE, M2_STRONG | M2_HOSTILE, 0, C(BROWN) },
X! { "Barney", S_LIZARD, 8, 6, 6, 10, 0, (G_UNIQ | 2),
X! { { AT_CLAW, AD_PHYS, 1, 1 }, { AT_CLAW, AD_PHYS, 1, 1 },
X! { AT_HUGS, AD_DRIN, 1, 2 }, { AT_HUGS, AD_DRIN, 1, 2 },
X! NO_ATTK, NO_ATTK },
X! 1500, 250, 0, MS_LAUGH, MZ_HUGE, MR_STONE, MR_STONE,
X! M1_ANIMAL | M1_CARNIVORE | M1_POIS,
X! M2_HOSTILE | M2_PNAME | M2_MALE | M2_NOPOLY | M2_WANDER |
X! M2_GREEDY | M2_JEWELS,
X! 0, C(MAGENTA) },
X! { "giant chameleon", S_LIZARD, 10, 5, 6, 10, 0, (G_GENO | 2),
X! { { AT_BITE, AD_PHYS, 4, 6 }, NO_ATTK, NO_ATTK,
X! NO_ATTK, NO_ATTK, NO_ATTK },
X! 1000, 250, 0, MS_SILENT, MZ_HUGE,
X! 0, 0, M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X! M2_NOPOLY | M2_HOSTILE, 0, C(BROWN) },
X! { "tyrannosaur", S_LIZARD, 13, 6, 6, 10, 0, (G_GENO | 1),
X! { { AT_BITE, AD_PHYS, 4, 8 }, NO_ATTK, NO_ATTK,
X! NO_ATTK, NO_ATTK, NO_ATTK },
X! 1500, 250, 0, MS_SILENT, MZ_HUGE, MR_STONE, MR_STONE,
X! M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE, M2_HOSTILE, 0, C(GREEN) },
X! { "Godzilla", S_LIZARD, 15, 6, 6, 10, 0, (G_UNIQ | G_NOCORPSE | 1),
X! { { AT_BITE, AD_PHYS, 4, 8 }, { AT_BREA, AD_FIRE, 3, 6 }, NO_ATTK,
X! NO_ATTK, NO_ATTK, NO_ATTK },
X! 1500, 250, 0, MS_SILENT, MZ_HUGE, MR_FIRE | MR_STONE, MR_STONE,
X! M1_ANIMAL | M1_NOHANDS | M1_CARNIVORE,
X! M2_HOSTILE | M2_NOPOLY | M2_PNAME, 0, C(GREEN) },
X /* character classes */
X { "archeologist", S_HUMAN, 1, 10, 10, 1, 3, G_NOGEN,
X { { AT_WEAP, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X***************
X*** 2541,2546 ****
X--- 3402,3478 ----
X M2_NOPOLY | M2_HUMAN | M2_PEACEFUL | M2_STRONG |
X M2_COLLECT | M2_MAGIC, 0, C(HI_DOMESTIC) },
X #endif /* MULDGN /* */
X+ /* animated food */
X+ { "killer food ration", S_BADLUNCH, 1, 0, 6, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 3 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(HI_ORGANIC) },
X+ { "killer tripe ration", S_BADLUNCH, 2, 0, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(BROWN) },
X+ { "killer tomato", S_BADLUNCH, 4, 9, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(RED) },
X+ { "ravenous cream pie", S_BADLUNCH, 7, 9, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(WHITE) },
X+ /* animated coins */
X+ { "goldbug", S_BADCOINS, 0, 12, 3, 0, 0,
X+ (G_GENO | G_SGROUP | G_NOCORPSE | 3),
X+ { { AT_BITE, AD_SLEE, 1, 1 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 15, 10, 0, MS_BUZZ, MZ_TINY, MR_ELEC | MR_POISON, 0,
X+ M1_ANIMAL, M2_HOSTILE, 0, C(HI_GOLD) },
X+ { "pile of silver coins", S_BADCOINS, 3, 0, 6, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 6 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(HI_SILVER) },
X+ { "gold mimic", S_BADCOINS, 4, 1, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_CARNIVORE | M1_ANIMAL,
X+ M2_HOSTILE, 0, C(HI_GOLD) },
X+ { "pile of creeping gold coins", S_BADCOINS, 6, 9, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 8 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(HI_GOLD) },
X+ { "pile of killer gold coins", S_BADCOINS, 9, 15, 9, 0, 0,
X+ (G_GENO | G_NOCORPSE | 1),
X+ { { AT_BITE, AD_PHYS, 1, 16 }, NO_ATTK, NO_ATTK,
X+ NO_ATTK, NO_ATTK, NO_ATTK },
X+ 50, 30, 0, MS_SILENT, MZ_SMALL, MR_COLD | MR_POISON, 0,
X+ M1_NOEYES | M1_NOHANDS | M1_NOLIMBS | M1_NOHEAD | M1_MINDLESS |
X+ M1_CARNIVORE,
X+ M2_HOSTILE, 0, C(HI_GOLD) },
X /* ARRAY TERMINATOR */
X { "", 0, 0, 0, 0, 0, 0, 0,
X { NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK, NO_ATTK },
Xdiff -c -r ../nh31c/src/o_init.c ./src/o_init.c
X*** ../nh31c/src/o_init.c Thu Aug 05 10:24:30 1993
X--- ./src/o_init.c Fri Aug 20 13:28:10 1993
X***************
X*** 3,9 ****
X--- 3,13 ----
X /* NetHack may be freely redistributed. See license for details. */
X
X #include "hack.h" /* for typedefs */
X+ #include "permonst.h" /* monster array type for genocide list [cjh] */
X+ #include "monsym.h" /* monster symbols (need GENO flags) [cjh] */
X
X+ extern NEARDATA struct permonst mons[]; /* for genocide list [cjh] */
X+
X static void NDECL(setgemprobs);
X static void FDECL(shuffle,(int,int,BOOLEAN_P));
X static boolean FDECL(interesting_to_discover,(int));
X***************
X*** 348,353 ****
X--- 352,368 ----
X }
X }
X }
X+
X+ /* Genocide list, April 23/93 cher...@semprini.tdkcs.waterloo.on.ca */
X+ /* Chris Herborth [cjh] */
X+ putstr( tmpwin, ATR_INVERSE, "Genocided Monsters" );
X+ for( i = 0; i < NUMMONS; i++ )
X+ if( mons[i].geno & G_GENOD )
X+ {
X+ putstr( tmpwin, 0, mons[i].mname );
X+ ct++;
X+ }
X+
X if (ct == 0) {
X You("haven't discovered anything yet...");
X } else
Xdiff -c -r ../nh31c/src/objects.c ./src/objects.c
X*** ../nh31c/src/objects.c Fri Jun 11 14:37:20 1993
X--- ./src/objects.c Fri Aug 20 13:25:54 1993
X***************
X*** 96,106 ****
X WEAPON("lance", NULL, 1, 0, 0, 8,180, 10, 6, 8, 0, IRON, HI_METAL),
X
X /* blades */
X! WEAPON("dagger", NULL, 1, 1, 0, 25, 10, 4, 4, 3, 2, IRON, HI_METAL),
X WEAPON("elven dagger", "runed dagger", 0, 1, 0, 8, 10, 4, 5, 3, 2, IRON, HI_METAL),
X WEAPON("orcish dagger", "crude dagger", 0, 1, 0, 10, 10, 4, 3, 3, 2, IRON, BLACK),
X WEAPON("athame", NULL, 1, 1, 0, 0, 10, 4, 4, 3, 2, IRON, HI_METAL),
X WEAPON("scalpel", NULL, 1, 1, 0, 0, 5, 4, 3, 3, 2, IRON, HI_METAL),
X WEAPON("knife", NULL, 1, 1, 0, 20, 5, 4, 3, 2, 0, IRON, HI_METAL),
X WEAPON("stiletto", NULL, 1, 1, 0, 5, 5, 4, 3, 2, 0, IRON, HI_METAL),
X WEAPON("worm tooth", NULL, 1, 0, 0, 0, 20, 2, 2, 2, 0, 0, WHITE),
X--- 96,107 ----
X WEAPON("lance", NULL, 1, 0, 0, 8,180, 10, 6, 8, 0, IRON, HI_METAL),
X
X /* blades */
X! WEAPON("dagger", NULL, 1, 1, 0, 23, 10, 4, 4, 3, 2, IRON, HI_METAL),
X WEAPON("elven dagger", "runed dagger", 0, 1, 0, 8, 10, 4, 5, 3, 2, IRON, HI_METAL),
X WEAPON("orcish dagger", "crude dagger", 0, 1, 0, 10, 10, 4, 3, 3, 2, IRON, BLACK),
X WEAPON("athame", NULL, 1, 1, 0, 0, 10, 4, 4, 3, 2, IRON, HI_METAL),
X WEAPON("scalpel", NULL, 1, 1, 0, 0, 5, 4, 3, 3, 2, IRON, HI_METAL),
X+ WEAPON("sharpened pencil", NULL, 1, 1, 0, 2, 10, 4, 4, 3, 0, WOOD, BROWN),
X WEAPON("knife", NULL, 1, 1, 0, 20, 5, 4, 3, 2, 0, IRON, HI_METAL),
X WEAPON("stiletto", NULL, 1, 1, 0, 5, 5, 4, 3, 2, 0, IRON, HI_METAL),
X WEAPON("worm tooth", NULL, 1, 0, 0, 0, 20, 2, 2, 2, 0, 0, WHITE),
X***************
X*** 297,306 ****
X /* 'cope' is not a spelling mistake... leave it be */
X ARMOR("mummy wrapping", NULL,
X 1, 0, 0, 0, 0, 0, 3, 2, 10, 1, CLOTH, GRAY),
X ARMOR("elven cloak", "faded pall",
X 0, 1, 0, STEALTH, 10, 0, 10, 60, 9, 3, CLOTH, BLACK),
X ARMOR("orcish cloak", "coarse mantelet",
X! 0, 0, 0, 0, 10, 0, 10, 40, 10, 2, CLOTH, BLACK),
X ARMOR("dwarvish cloak", "hooded cloak",
X 0, 0, 0, 0, 10, 0, 10, 50, 10, 2, CLOTH, HI_CLOTH),
X ARMOR("oilskin cloak", "slippery cloak",
X--- 298,311 ----
X /* 'cope' is not a spelling mistake... leave it be */
X ARMOR("mummy wrapping", NULL,
X 1, 0, 0, 0, 0, 0, 3, 2, 10, 1, CLOTH, GRAY),
X+ ARMOR("lab coat", "white coat",
X+ 0, 0, 0, 0, 1, 0, 2, 40, 10, 3, CLOTH, WHITE),
X+ ARMOR("expensive suit", "expensive suit",
X+ 0, 0, 0, 0, 1, 0, 2, 90, 10, 3, CLOTH, BLACK),
X ARMOR("elven cloak", "faded pall",
X 0, 1, 0, STEALTH, 10, 0, 10, 60, 9, 3, CLOTH, BLACK),
X ARMOR("orcish cloak", "coarse mantelet",
X! 0, 0, 0, 0, 8, 0, 10, 40, 10, 2, CLOTH, BLACK),
X ARMOR("dwarvish cloak", "hooded cloak",
X 0, 0, 0, 0, 10, 0, 10, 50, 10, 2, CLOTH, HI_CLOTH),
X ARMOR("oilskin cloak", "slippery cloak",
X***************
X*** 376,381 ****
X--- 381,388 ----
X power, RING_CLASS, 0, 0, 3, cost, 0, 0, 0, 0, 15, color )
X RING("adornment", "wooden", ADORNED, 100, 0, 1, WOOD, HI_WOOD),
X RING("gain strength", "granite", 0, 150, 1, 1, MINERAL, HI_MINERAL),
X+ RING("gain intelligence", "ordinary", 0, 150, 1, 1, MINERAL, HI_MINERAL),
X+ RING("gain dexterity", "garnet", 0, 150, 1, 1, MINERAL, RED),
X RING("increase damage", "coral", 0, 150, 1, 1, MINERAL, ORANGE_COLORED),
X RING("protection", "black onyx", PROTECTION, 100, 1, 1, MINERAL, BLACK),
X RING("regeneration", "moonstone", REGENERATION, 200, 1, 0, MINERAL, HI_MINERAL),
X***************
X*** 560,570 ****
X FOOD("lump of royal jelly", 0, 1, 2, 0, VEGGY, 200, YELLOW),
X FOOD("cream pie", 25, 1, 10, 0, VEGGY, 100, WHITE),
X FOOD("candy bar", 13, 1, 2, 0, VEGGY, 100, BROWN),
X FOOD("fortune cookie", 55, 1, 1, 0, VEGGY, 40, YELLOW),
X FOOD("pancake", 25, 2, 2, 0, VEGGY, 200, YELLOW),
X FOOD("lembas wafer", 20, 2, 5, 0, VEGGY, 800, WHITE),
X FOOD("cram ration", 20, 3, 15, 0, VEGGY, 600, HI_ORGANIC),
X! FOOD("food ration", 381, 5, 20, 0, VEGGY, 800, HI_ORGANIC),
X #ifdef ARMY
X FOOD("K-ration", 0, 1, 10, 0, VEGGY, 400, HI_ORGANIC),
X FOOD("C-ration", 0, 1, 10, 0, VEGGY, 300, HI_ORGANIC),
X--- 567,581 ----
X FOOD("lump of royal jelly", 0, 1, 2, 0, VEGGY, 200, YELLOW),
X FOOD("cream pie", 25, 1, 10, 0, VEGGY, 100, WHITE),
X FOOD("candy bar", 13, 1, 2, 0, VEGGY, 100, BROWN),
X+ FOOD("cheese", 5, 1, 1, 0, VEGGY, 80, YELLOW),
X+ FOOD("sandwich", 5, 1, 1, 0, VEGGY, 150, WHITE),
X+ FOOD("cake", 5, 1, 1, 0, VEGGY, 100, BROWN),
X FOOD("fortune cookie", 55, 1, 1, 0, VEGGY, 40, YELLOW),
X FOOD("pancake", 25, 2, 2, 0, VEGGY, 200, YELLOW),
X+ FOOD("doughnut", 1, 2, 1, 0, VEGGY, 100, BROWN),
X FOOD("lembas wafer", 20, 2, 5, 0, VEGGY, 800, WHITE),
X FOOD("cram ration", 20, 3, 15, 0, VEGGY, 600, HI_ORGANIC),
X! FOOD("food ration", 365, 5, 20, 0, VEGGY, 800, HI_ORGANIC),
X #ifdef ARMY
X FOOD("K-ration", 0, 1, 10, 0, VEGGY, 400, HI_ORGANIC),
X FOOD("C-ration", 0, 1, 10, 0, VEGGY, 300, HI_ORGANIC),
X***************
X*** 578,590 ****
X POTION_CLASS, prob, 0, 20, cost, 0, 0, 0, 0, 10, color )
X POTION("gain ability", "ruby", 1, 0, 45, 300, RED),
X POTION("restore ability", "pink", 1, 0, 45, 100, BRIGHT_MAGENTA),
X! POTION("confusion", "orange", 1, CONFUSION, 45, 100, ORANGE_COLORED),
X! POTION("blindness", "yellow", 1, BLINDED, 45, 150, YELLOW),
X! POTION("paralysis", "emerald", 1, 0, 45, 300, BRIGHT_GREEN),
X POTION("speed", "dark green", 1, FAST, 45, 200, GREEN),
X POTION("levitation", "cyan", 1, LEVITATION, 45, 200, CYAN),
X! POTION("hallucination", "sky blue", 1, HALLUC, 45, 100, CYAN),
X! POTION("invisibility", "brilliant blue", 1, INVIS, 45, 150, BRIGHT_BLUE),
X POTION("see invisible", "magenta", 1, SEE_INVIS, 45, 50, MAGENTA),
X POTION("healing", "purple-red", 1, 0, 65, 100, MAGENTA),
X POTION("extra healing", "puce", 1, 0, 50, 100, RED),
X--- 589,602 ----
X POTION_CLASS, prob, 0, 20, cost, 0, 0, 0, 0, 10, color )
X POTION("gain ability", "ruby", 1, 0, 45, 300, RED),
X POTION("restore ability", "pink", 1, 0, 45, 100, BRIGHT_MAGENTA),
X! POTION("confusion", "orange", 1, CONFUSION, 40, 100, ORANGE_COLORED),
X! POTION("blindness", "yellow", 1, BLINDED, 40, 150, YELLOW),
X! POTION("paralysis", "emerald", 1, 0, 40, 300, BRIGHT_GREEN),
X POTION("speed", "dark green", 1, FAST, 45, 200, GREEN),
X POTION("levitation", "cyan", 1, LEVITATION, 45, 200, CYAN),
X! POTION("hallucination", "sky blue", 1, HALLUC, 40, 100, CYAN),
X! POTION("polymorph", "golden", 1, 0, 25, 100, YELLOW),
X! POTION("invisibility", "brilliant blue", 1, INVIS, 40, 150, BRIGHT_BLUE),
X POTION("see invisible", "magenta", 1, SEE_INVIS, 45, 50, MAGENTA),
X POTION("healing", "purple-red", 1, 0, 65, 100, MAGENTA),
X POTION("extra healing", "puce", 1, 0, 50, 100, RED),
X***************
X*** 655,672 ****
X SPELL("cure blindness", "yellow", 27, 2, 2, 1, IMMEDIATE, YELLOW),
X SPELL("slow monster", "light green", 37, 2, 2, 1, IMMEDIATE, BRIGHT_GREEN),
X SPELL("wizard lock", "dark green", 35, 3, 2, 1, IMMEDIATE, GREEN),
X! SPELL("create monster", "turquoise", 37, 3, 2, 1, NODIR, BRIGHT_CYAN),
X! SPELL("detect food", "cyan", 37, 3, 2, 1, NODIR, CYAN),
X SPELL("cause fear", "light blue", 25, 3, 3, 1, NODIR, BRIGHT_BLUE),
X SPELL("clairvoyance", "dark blue", 15, 3, 3, 1, NODIR, BLUE),
X! SPELL("cure sickness", "indigo", 32, 3, 3, 1, NODIR, BLUE),
X SPELL("charm monster", "magenta", 20, 3, 3, 1, IMMEDIATE, MAGENTA),
X SPELL("haste self", "purple", 33, 4, 3, 1, NODIR, MAGENTA),
X SPELL("detect unseen", "violet", 20, 4, 3, 1, NODIR, MAGENTA),
X SPELL("levitation", "tan", 20, 4, 4, 1, NODIR, BROWN),
X! SPELL("extra healing", "plaid", 35, 5, 3, 1, IMMEDIATE, GREEN),
X SPELL("restore ability", "light brown", 25, 5, 4, 1, NODIR, BROWN),
X! SPELL("invisibility", "dark brown", 32, 5, 4, 1, NODIR, BROWN),
X SPELL("detect treasure", "gray", 25, 5, 4, 1, NODIR, GRAY),
X SPELL("remove curse", "white", 25, 5, 5, 1, NODIR, WHITE),
X SPELL("magic mapping", "dusty", 18, 7, 5, 1, NODIR, HI_PAPER),
X--- 667,684 ----
X SPELL("cure blindness", "yellow", 27, 2, 2, 1, IMMEDIATE, YELLOW),
X SPELL("slow monster", "light green", 37, 2, 2, 1, IMMEDIATE, BRIGHT_GREEN),
X SPELL("wizard lock", "dark green", 35, 3, 2, 1, IMMEDIATE, GREEN),
X! SPELL("create monster", "turquoise", 36, 3, 2, 1, NODIR, BRIGHT_CYAN),
X! SPELL("detect food", "cyan", 36, 3, 2, 1, NODIR, CYAN),
X SPELL("cause fear", "light blue", 25, 3, 3, 1, NODIR, BRIGHT_BLUE),
X SPELL("clairvoyance", "dark blue", 15, 3, 3, 1, NODIR, BLUE),
X! SPELL("cure sickness", "indigo", 31, 3, 3, 1, NODIR, BLUE),
X SPELL("charm monster", "magenta", 20, 3, 3, 1, IMMEDIATE, MAGENTA),
X SPELL("haste self", "purple", 33, 4, 3, 1, NODIR, MAGENTA),
X SPELL("detect unseen", "violet", 20, 4, 3, 1, NODIR, MAGENTA),
X SPELL("levitation", "tan", 20, 4, 4, 1, NODIR, BROWN),
X! SPELL("extra healing", "plaid", 34, 5, 3, 1, IMMEDIATE, GREEN),
X SPELL("restore ability", "light brown", 25, 5, 4, 1, NODIR, BROWN),
X! SPELL("invisibility", "dark brown", 31, 5, 4, 1, NODIR, BROWN),
X SPELL("detect treasure", "gray", 25, 5, 4, 1, NODIR, GRAY),
X SPELL("remove curse", "white", 25, 5, 5, 1, NODIR, WHITE),
X SPELL("magic mapping", "dusty", 18, 7, 5, 1, NODIR, HI_PAPER),
X***************
X*** 676,681 ****
X--- 688,694 ----
X SPELL("teleport away", "gold", 15, 6, 6, 1, IMMEDIATE, HI_GOLD),
X SPELL("create familiar", "glittering", 10, 7, 6, 1, NODIR, WHITE),
X SPELL("cancellation", "shining", 15, 8, 7, 1, IMMEDIATE, WHITE),
X+ SPELL("genocide", "glowing", 5, 10, 7, 1, NODIR, WHITE),
X SPELL(NULL, "dull", 0, 0, 0, 1, 0, HI_PAPER),
X SPELL(NULL, "thin", 0, 0, 0, 1, 0, HI_PAPER),
X SPELL(NULL, "thick", 0, 0, 0, 1, 0, HI_PAPER),
X***************
X*** 690,704 ****
X #define WAND(name,typ,prob,cost,mgc,dir,metal,color) OBJECT( \
X OBJ(name,typ), BITS(0,0,1,0,mgc,1,0,0,0,dir,metal), 0, WAND_CLASS, \
X prob, 0, 7, cost, 0, 0, 0, 0, 30, color )
X! WAND("light", "glass", 95, 100, 1, NODIR, GLASS, HI_GLASS),
X WAND("secret door detection", "balsa", 50, 150, 1, NODIR, WOOD, HI_WOOD),
X WAND("create monster", "maple", 45, 200, 1, NODIR, WOOD, HI_WOOD),
X WAND("wishing", "pine", 5, 500, 1, NODIR, WOOD, HI_WOOD),
X WAND("nothing", "oak", 25, 100, 0, IMMEDIATE, WOOD, HI_WOOD),
X! WAND("striking", "ebony", 75, 150, 1, IMMEDIATE, WOOD, HI_WOOD),
X WAND("make invisible", "marble", 45, 150, 1, IMMEDIATE, MINERAL, HI_MINERAL),
X! WAND("slow monster", "tin", 55, 150, 1, IMMEDIATE, METAL, HI_METAL),
X! WAND("speed monster", "brass", 55, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
X WAND("undead turning", "copper", 55, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
X WAND("polymorph", "silver", 45, 200, 1, IMMEDIATE, SILVER, HI_SILVER),
X WAND("cancellation", "platinum", 45, 200, 1, IMMEDIATE, PLATINUM, WHITE),
X--- 703,718 ----
X #define WAND(name,typ,prob,cost,mgc,dir,metal,color) OBJECT( \
X OBJ(name,typ), BITS(0,0,1,0,mgc,1,0,0,0,dir,metal), 0, WAND_CLASS, \
X prob, 0, 7, cost, 0, 0, 0, 0, 30, color )
X! WAND("light", "glass", 90, 100, 1, NODIR, GLASS, HI_GLASS),
X WAND("secret door detection", "balsa", 50, 150, 1, NODIR, WOOD, HI_WOOD),
X+ WAND("healing", "bamboo", 25, 150, 1, NODIR, WOOD, HI_WOOD),
X WAND("create monster", "maple", 45, 200, 1, NODIR, WOOD, HI_WOOD),
X WAND("wishing", "pine", 5, 500, 1, NODIR, WOOD, HI_WOOD),
X WAND("nothing", "oak", 25, 100, 0, IMMEDIATE, WOOD, HI_WOOD),
X! WAND("striking", "ebony", 70, 150, 1, IMMEDIATE, WOOD, HI_WOOD),
X WAND("make invisible", "marble", 45, 150, 1, IMMEDIATE, MINERAL, HI_MINERAL),
X! WAND("slow monster", "tin", 50, 150, 1, IMMEDIATE, METAL, HI_METAL),
X! WAND("speed monster", "brass", 50, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
X WAND("undead turning", "copper", 55, 150, 1, IMMEDIATE, COPPER, HI_COPPER),
X WAND("polymorph", "silver", 45, 200, 1, IMMEDIATE, SILVER, HI_SILVER),
X WAND("cancellation", "platinum", 45, 200, 1, IMMEDIATE, PLATINUM, WHITE),
X***************
X*** 706,712 ****
X WAND("opening", "zinc", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
X WAND("locking", "aluminum", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
X WAND("probing", "uranium", 30, 150, 1, IMMEDIATE, METAL, HI_METAL),
X! WAND("digging", "iron", 55, 150, 1, RAY, IRON, HI_METAL),
X WAND("magic missile", "steel", 50, 150, 1, RAY, IRON, HI_METAL),
X WAND("fire", "hexagonal", 40, 175, 1, RAY, IRON, HI_METAL),
X WAND("cold", "short", 40, 175, 1, RAY, IRON, HI_METAL),
X--- 720,726 ----
X WAND("opening", "zinc", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
X WAND("locking", "aluminum", 25, 150, 1, IMMEDIATE, METAL, HI_METAL),
X WAND("probing", "uranium", 30, 150, 1, IMMEDIATE, METAL, HI_METAL),
X! WAND("digging", "iron", 50, 150, 1, RAY, IRON, HI_METAL),
X WAND("magic missile", "steel", 50, 150, 1, RAY, IRON, HI_METAL),
X WAND("fire", "hexagonal", 40, 175, 1, RAY, IRON, HI_METAL),
X WAND("cold", "short", 40, 175, 1, RAY, IRON, HI_METAL),
Xdiff -c -r ../nh31c/src/objnam.c ./src/objnam.c
X*** ../nh31c/src/objnam.c Thu Aug 05 10:24:32 1993
X--- ./src/objnam.c Fri Aug 20 13:25:58 1993
X***************
X*** 25,31 ****
X--- 25,39 ----
X { SHORT_SWORD, "wakizashi" },
X { BROADSWORD, "ninja-to" },
X { FLAIL, "nunchaku" },
X+ { CLUB, "bokken" },
X+ { DAGGER, "hishi" },
X+ { KNIFE, "kozuka" },
X+ { SCIMITAR, "tanto" },
X+ { SPEAR, "yari" },
X+ { FLAIL, "nunchaku" },
X+ { SMALL_SHIELD, "timbe" },
X { GLAIVE, "naginata" },
X+ { BOW, "dai-kyu" },
X { LOCK_PICK, "osaku" },
X { WOODEN_HARP, "koto" },
X { KNIFE, "shito" },
Xdiff -c -r ../nh31c/src/potion.c ./src/potion.c
X*** ../nh31c/src/potion.c Thu Aug 05 10:24:38 1993
X--- ./src/potion.c Fri Aug 20 13:26:00 1993
X***************
X*** 307,312 ****
X--- 307,316 ----
X make_hallucinated(HHallucination +
X rn1(200, 600 - 300*bcsign(otmp)), TRUE, 0L);
X break;
X+ case POT_POLYMORPH:
X+ polyself();
X+ break;
X+
X case POT_WATER:
X if(!otmp->blessed && !otmp->cursed) {
X pline("This tastes like %swater.",
Xdiff -c -r ../nh31c/src/shk.c ./src/shk.c
X*** ../nh31c/src/shk.c Thu Aug 05 10:24:58 1993
X--- ./src/shk.c Fri Aug 20 13:30:30 1993
X***************
X*** 225,231 ****
X nokops = ((mons[PM_KEYSTONE_KOP].geno & (G_GENOD | G_EXTINCT)) &&
X (mons[PM_KOP_SERGEANT].geno & (G_GENOD | G_EXTINCT)) &&
X (mons[PM_KOP_LIEUTENANT].geno & (G_GENOD | G_EXTINCT)) &&
X! (mons[PM_KOP_KAPTAIN].geno & (G_GENOD | G_EXTINCT)));
X
X if(!angry_guards(!flags.soundok) && nokops) {
X if(flags.verbose && flags.soundok)
X--- 225,232 ----
X nokops = ((mons[PM_KEYSTONE_KOP].geno & (G_GENOD | G_EXTINCT)) &&
X (mons[PM_KOP_SERGEANT].geno & (G_GENOD | G_EXTINCT)) &&
X (mons[PM_KOP_LIEUTENANT].geno & (G_GENOD | G_EXTINCT)) &&
X! (mons[PM_KOP_KAPTAIN].geno & (G_GENOD | G_EXTINCT)) &&
X! (mons[PM_KOP_KOMMISIONER].geno & (G_GENOD | G_EXTINCT)));
X
X if(!angry_guards(!flags.soundok) && nokops) {
X if(flags.verbose && flags.soundok)
X***************
X*** 2719,2725 ****
X register int cnt = abs(depth(&u.uz)) + rnd(5);
X register int scnt = (cnt / 3) + 1; /* at least one sarge */
X register int lcnt = (cnt / 6); /* maybe a lieutenant */
X! register int kcnt = (cnt / 9); /* and maybe a kaptain */
X
X if (!(mons[PM_KEYSTONE_KOP].geno & G_EXTINCT)) {
X while(cnt--) {
X--- 2720,2727 ----
X register int cnt = abs(depth(&u.uz)) + rnd(5);
X register int scnt = (cnt / 3) + 1; /* at least one sarge */
X register int lcnt = (cnt / 6); /* maybe a lieutenant */
X! register int kcnt = (cnt / 9); /* maybe a kaptain */
X! register int kocnt = (cnt / 13); /* and maybe a KOMMISIONER */
X
X if (!(mons[PM_KEYSTONE_KOP].geno & G_EXTINCT)) {
X while(cnt--) {
X***************
X*** 2743,2749 ****
X while(kcnt--) {
X if (enexto(mm, mm->x, mm->y, &mons[PM_KOP_KAPTAIN]))
X (void) makemon(&mons[PM_KOP_KAPTAIN], mm->x, mm->y);
X! }
X }
X }
X #endif /* KOPS */
X--- 2745,2757 ----
X while(kcnt--) {
X if (enexto(mm, mm->x, mm->y, &mons[PM_KOP_KAPTAIN]))
X (void) makemon(&mons[PM_KOP_KAPTAIN], mm->x, mm->y);
X! }
X! }
X! if (!(mons[PM_KOP_KOMMISIONER].geno & G_EXTINCT)) {
X! while(kocnt--) {
X! if (enexto(mm, mm->x, mm->y, &mons[PM_KOP_KOMMISIONER]))
X! (void) makemon(&mons[PM_KOP_KOMMISIONER], mm->x, mm->y);
X! }
X }
X }
X #endif /* KOPS */
Xdiff -c -r ../nh31c/src/sounds.c ./src/sounds.c
X*** ../nh31c/src/sounds.c Fri Jun 11 13:39:42 1993
X--- ./src/sounds.c Fri Aug 20 13:26:06 1993
X***************
X*** 113,118 ****
X--- 113,119 ----
X }
X return;
X }
X+
X if (level.flags.has_beehive && !rn2(200)) {
X switch (rn2(2)+hallu) {
X case 0:
X***************
X*** 156,161 ****
X--- 157,180 ----
X return;
X }
X #endif /* ARMY */
X+
X+ if( search_special( ROOMELEVEN ) && !rn2(200) )
X+ switch( rn2(2) + hallu ) {
X+ case 0:
X+ You( "hear strange noises!" );
X+ break;
X+ case 1:
X+ You( "hear electronic beeping!" );
X+ break;
X+ case 2:
X+ You( "hear classical music!" );
X+ break;
X+ case 3:
X+ You( "seem to hear Jimi Hendrix!" );
X+ break;
X+ }
X+
X+
X if (level.flags.has_zoo && !rn2(200)) {
X static const char *zoo_msg[3] = {
X "hear a sound reminiscent of an elephant stepping on a peanut.",
Xdiff -c -r ../nh31c/src/spell.c ./src/spell.c
X*** ../nh31c/src/spell.c Thu Aug 05 10:25:04 1993
X--- ./src/spell.c Fri Aug 20 13:26:10 1993
X***************
X*** 305,310 ****
X--- 305,311 ----
X /* level 7 spells */
X case SPE_CANCELLATION:
X case SPE_FINGER_OF_DEATH:
X+ case SPE_GENOCIDE:
X case SPE_BOOK_OF_THE_DEAD:
X delay = -8 * objects[booktype].oc_delay;
X break;
X***************
X*** 516,521 ****
X--- 517,523 ----
X case SPE_MAGIC_MAPPING:
X case SPE_CREATE_MONSTER:
X case SPE_IDENTIFY:
X+ case SPE_GENOCIDE:
X (void) seffects(pseudo);
X break;
X case SPE_HASTE_SELF:
Xdiff -c -r ../nh31c/src/wizard.c ./src/wizard.c
X*** ../nh31c/src/wizard.c Thu Aug 05 10:25:20 1993
X--- ./src/wizard.c Fri Aug 20 13:26:12 1993
X***************
X*** 30,36 ****
X PM_ELF_LORD, PM_ELVENKING, PM_YELLOW_DRAGON, PM_LEOCROTTA,
X PM_CARNIVOROUS_APE, PM_FIRE_GIANT, PM_COUATL,
X #ifdef ARMY
X! PM_CAPTAIN,
X #endif
X };
X
X--- 30,36 ----
X PM_ELF_LORD, PM_ELVENKING, PM_YELLOW_DRAGON, PM_LEOCROTTA,
X PM_CARNIVOROUS_APE, PM_FIRE_GIANT, PM_COUATL,
X #ifdef ARMY
X! PM_CAPTAIN, PM_GENERAL,
X #endif
X };
X
Xdiff -c -r ../nh31c/sys/atari/Install.tos ./sys/atari/Install.tos
X*** ../nh31c/sys/atari/Install.tos Mon Jan 25 14:32:40 1993
X--- ./sys/atari/Install.tos Fri Aug 20 13:42:10 1993
X***************
X*** 3,8 ****
X--- 3,9 ----
X =====================================================
X (or, How to make ST NetHack 3.1)
X Last revision: 23 Jan 1993
X+ [Updated August 20/93 for NetHack-- 3.1]
X
X 1. Make sure all the NetHack files are in the appropriate directory structure.
X You should have a main directory with subdirectories dat, doc, include,
X***************
X*** 82,87 ****
X--- 83,93 ----
X target configuration; the comments explain most of what needs to be done,
X at least for the gcc. If your compiler doesn't like directories separated
X by /'s, then change these to \'s.
X+
X+ [Atari ST/TT/Falcon users with only 4M of RAM will have to use a nasty
X+ hack to build monst.c; GCC and the monster file are too huge for small
X+ machines to handle. See the note in the src Makefile and use the second
X+ target for monst.o; you'll need a good working sed for this to work.]
X
X Next, go to the top, util, dat, and doc directories, and edit the Makefiles
X there, as necessary. You'll need nroff and/or TeX to do the files in doc;
Xdiff -c -r ../nh31c/sys/msdos/MakeMSC.src ./sys/msdos/MakeMSC.src
X*** ../nh31c/sys/msdos/MakeMSC.src Thu Aug 05 10:25:56 1993
X--- ./sys/msdos/MakeMSC.src Fri Aug 20 13:27:18 1993
X***************
X*** 67,73 ****
X # command line exceeds the MSDOS 128 character limit.
X #
X CFLAGS = /c
X! LFLAGS = /noi /seg:512 /map /st:5120 /DYNAMIC:1052 /INFO
X OVLMUCKING = # None required
X MSC6MUCK = # None required
X OVERLAY = # None required
X--- 67,73 ----
X # command line exceeds the MSDOS 128 character limit.
X #
X CFLAGS = /c
X! LFLAGS = /noi /seg:512 /map /st:5632 /DYNAMIC:1052 /INFO
X OVLMUCKING = # None required
X MSC6MUCK = # None required
X OVERLAY = # None required
Xdiff -c -r ../nh31c/sys/unix/Makefile.src ./sys/unix/Makefile.src
X*** ../nh31c/sys/unix/Makefile.src Thu Aug 05 10:26:36 1993
X--- ./sys/unix/Makefile.src Fri Aug 20 13:34:28 1993
X***************
X*** 21,26 ****
X--- 21,31 ----
X # 'Sysatt' -- AT&T UNIXPC, 7300, 3B1
X # 'SysV-AT' -- Microport 286 UNIX (put -DDUMB in CFLAGS)
X # 'Systos' -- Atari
X+ # NOTE for Systos! IF you're compiling NetHack on an
X+ # Atari ST with only 4M of RAM, you'll have to use a
X+ # brutal hack to compile monst.o; you'll need sed, and
X+ # you'll need to uncomment the monst.o below. See the
X+ # rule for monst.o, below.
X SYSTEM = Sysunix
X
X #
X***************
X*** 297,305 ****
X--- 302,325 ----
X
X # special rules, to force update of makedefs, real dependencies should be
X # below in the 'make depend' output.
X+ #
X+ # Atari ST users with only 4M of RAM use the NEXT one, not this one! Comment
X+ # out these three lines and uncomment the next monst.o rule below.
X monst.o:
X $(CC) $(CFLAGS) -c monst.c
X @rm -f $(MAKEDEFS)
X+
X+ # Special brutal hack version for Atari ST users with only 4M of RAM and
X+ # GCC 2.4.x or better. Oh, and you'll need a good working sed.
X+ #monst.o:
X+ # $(CC) $(CFLAGS) -S monst.c -o monst1.s -DSPLITMON_1
X+ # $(CC) $(CFLAGS) -S monst.c -o monst2.s -DSPLITMON_2
X+ # cp monst1.s monst.s
X+ # sed -e "s/LC/LD/g" -e "/gcc2_compiled/d" -e "/___gnu_compiled_c/d" \
X+ # monst2.s >> monst.s
X+ # $(CC) $(CFLAGS) -c monst.s
X+ # rm monst1.s monst2.s
X+ # @rm -f $(MAKEDEFS)
X
X objects.o:
X $(CC) $(CFLAGS) -c objects.c
SHAR_EOF
echo 'File NH31C--.Patch is complete' &&
true || echo 'restore of NH31C--.Patch failed'
rm -f _shar_wnt_.tmp
fi
# ============= ReadMe.Too ==============
if test -f 'ReadMe.Too' -a X"$1" != X"-c"; then
echo 'x - skipping ReadMe.Too (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting ReadMe.Too (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'ReadMe.Too' &&
XNetHack-- 3.1 pl 3
X~~~~~~~~~~~~~~~~~~
X
XOnce upon a time there was NetHack 3.0. NetHack 3.0 was a great game,
Xand many people loved to play it. Hopes were high as the fabled
XDevelopment Team, the raving horde responsible for the code, worked on
Xversion 3.1.
X
XUnfortunately, it took them a long time. Actually, this was good,
Xbecause it gave them a chance to work out many bugs, and rethink almost
Xeverything. The result was NetHack 3.1, a brilliant successor to 3.0.
X
XDuring the Time of Great Waiting between 3.0 and 3.1, some people played
XNetHack too much, and got a bit sick of not seeing anything new. A
Xcouple of these hackers, Yuval Oren (yu...@ocf.berkeley.edu) and Tom
XProudfoot (pro...@ocf.berkeley.edu), decided to expand Nethack.
XThey added a bunch of new Artifacts, many monsters, and over a dozen new
Xcharacter classes (each letter of the alphabet had a corresponding
Xcharacter class when they were through!). Many people played NetHack--
X(which is what their changed version became known as) and loved it
Xbecause of all the neat new stuff.
X
XIt was only about a month or so after NetHack-- came out that NetHack
X3.1 was released. Much fanfare, and NetHack-- was no longer needed.
X
XOr was it?
X
XHere, for the enjoyment of one and all, are the changes to NetHack 3.1.3
Xto incorporate NetHack--. The only things in NetHack-- that isn't in
XNetHack-- 3.1.3 are the extra character classes; I was too busy to
Xincorporate them and create quests and whatnot.
X
XI've also gone and added a few Artifacts and quite a few monsters.
X
XThese additions include new Artifacts:
X Icebiter (Axe) Firebiter (Axe)
X Soultheif (Sword) Equalizer (Sword)
X Kopkiller (Sword) Deathsword (Sword)
X Fungisword (Sword) Liontamer (Whip)
X Dirk (Dagger) Elfrist (Sword)
X Firestar (Morning Star) Disruptor (Mace)
X Cuthbert's Cudgel (Quarterstaff)
X
XNew rooms:
X Wasp Hive Giant Court
X Leprechaun Court Bad Food Shop
X Real Zoo Anthill
X Room Eleven
X
XTwo new monster classes:
X Bad Coins ($) Bad Lunch (%)
X
XNew monsters:
X snow ant black ant
X queen ant yellow jacket
X killer beetle giant wasp
X black wasp the King Bee
X red blob white blob
X blue blob poisonous blob
X gigantic blob The Blob
X chickatrice dingo
X coyote pit bull
X Wile E. Coyote burning eye
X glowing eye flaming sphere
X bloodshot eye blinking eye
X beholder leopard
X panther sabre-toothed cat
X hellcat Rexfelis
X gremlin leader hobbit theif
X hobbit bandit Bilbo
X huge bugbear bugbear cheiftan
X dwarven theif duergar
X dretch rutterkin
X red jelly The Jelly That Ate Cleveland
X kobold cheiftan Kroo the Kobold King
X Krooella the Kobold Queen leprechaun elder
X O'Brien Aphrodite
X goblin theif goblin shaman
X Grund the Orc King glass piercer
X Jumbo the Elephant scramper
X mangler berator
X bogwumpus rabbit
X black rat killer rabbit
X hellrat vampire bunny
X Energizer Bunny Bugs Bunny
X recluse spider giant scorpion
X Girtab nightmare
X maggot rot worm
X acid worm tunnel worm
X arc bug spark bug
X lightning bug rhumbat
X mongbat hellbat
X centaur shaman centaur cheiftan
X Silva the Centaur King undead dragon
X Tiamat black mold
X digusting mold creeping mold
X gnome theif large giant
X Kop Kommisioner The Mummy
X blue naga hatchling blue naga
X ogre magi tapioca pudding
X auto mechanic giant rust monster
X asp asphyx
X black troll hulk
X the Incredible Hulk Yuval
X cave ape J.R. `Bob' Dobbs
X ghoul ghast
X juju zombi mist golem
X elven mage elven priest
X bandit evil mage
X evil priest general
X Morgan La Fey Tom
X Butch Mordred
X bearded devil demon
X nycadaemon efreeti
X marid dao
X shark salamander
X basilisk Barney
X giant chameleon tyrannosaur
X Godzilla killer food ration
X killer tripe ration killer tomato
X ravenous cream pie goldbug
X pile of silver coins gold mimic
X pile of creeping coins pile of killer gold coins
X
XNew clothing, new rings, new weapons, new this, new that. LOTS of stuff!
X
XCredits
X~~~~~~~
X NetHack-- (based on NetHack 3.0 pl 10) was created by Yuval Oren
X and Tom Proudfoot.
X
X NetHack-- was adapted to NetHack 3.1 by Chris Herborth
X (cher...@semprini.tdkcs.waterloo.on.ca) for pl 1.
X
X Dan Riley (d...@lns598.tn.cornell.edu) patched my adaptation to fix
X some bugs, properly implement some monsters, and generally polish
X things.
X
X NetHack-- 3.1.2 was fixed/merged by Chris Herborth. Not a big job,
X but a couple of files wouldn't patch due to the changes from 3.1.1
X to 3.1.2. NetHack-- 3.1.2 contains all of NetHack 3.1.2, my original
X NetHack-- changes, Dan's patches, and my "genocided monsters" list
X patch (it lets you see what monsters you've genocided when you hit
X the '/' key).
X
X NetHack-- 3.1.3 was easy; I just applied my (unreleased) 3.1.2 patch
X to the NetHack 3.1.3 code.
X
X And, of course, the Dev Team is to thank for working on this great
X game. Their names are listed in the Guidebook. Thanks!
X
X-Chris-
XJuly 22/93
SHAR_EOF
true || echo 'restore of ReadMe.Too failed'
rm -f _shar_wnt_.tmp
fi
# ============= blah ==============
if test -f 'blah' -a X"$1" != X"-c"; then
echo 'x - skipping blah (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting blah (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'blah' &&
Xshar: No input files
Xshar 3.49
Xusage: shar [ options ] file ...
X shar -S [ options ]
X-V produce "vanilla" shars demanding little of the unshar environment
X-v verbose messages OFF while executing
X-m restore file modification dates & times with "touch" commands
X-w don't check with 'wc -c' after unpack
X-a generate Submitted-by: & Archive-name: headers
X-nXXX use XXX as the name of the archive (documentation)
X-s override automatically determined submitter name
X-x overwrite existing files without checking if they already exist
X-X interactively overwrite existing files (NOT FOR NET SHARS)
X-B treat all files as binary, use uuencode
X-T treat all files as text (default)
X-C compress and uuencode all files
X-bXX pass -bXX (default 12) to compress when compressing (implies -C)
X-p allow positional parameter options. The options "-B" and "-T"
X and "-C" may be embedded, and files to the right of the
X option will be processed in the specified mode
X-M mixed mode. Determine if the files are text or
X binary and archive correctly.
X-P use temp files instead of pipes in the shar file
X-F force the prefix character on every line (even if not required)
X-c start the shar with a cut line
X-f restore by filename only, rather than path
X-dXXX use XXX to delimit the files in the shar
X-oXXX (or -o XXX) output to file XXX.01 thru XXX.nn
X-lXX limit output file size to XXk bytes (but don't split files)
X-LXX limit output file size to XXk bytes (may split files)
X-S read files to wrap from stdin, ignoring argument line
X
XThe -S option reads filenames one per line from stdin; input
Xformat must be similar to 'find' output, except that if -p
Xis specified, -B, -T or -C may be used (on lines by themselves)
Xe.g., find . -type f -print | sort | shar -C -l50 -o /tmp/big
X
XThe 'o' option is required if the 'l' or 'L' option is used
XThe 'n' option is required if the 'a' option is used
X
X-a generates sharname/part## headers. If the -a argument contains
Xa '/', then /part is not appended
XThe automatic submitter name is trivial: essentially `whoami`@`uname`
SHAR_EOF
true || echo 'restore of blah failed'
rm -f _shar_wnt_.tmp
fi
rm -f _shar_seq_.tmp
echo You have unpacked the last part
exit 0
--
-------------------========================================-------------------
cher...@semprini.tdkcs.waterloo.on.ca
Chris Herborth

0 new messages