From 42245f8e67d275de38a59a6257cb1b8d81dcf5b7 Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 24 Jul 2020 14:45:59 -0700 Subject: [PATCH] wizard mode vs venom object names I tried wishing for "splashes of venom" but was told that no such thing exists even though "splashs of venom" and "2 splash of venom" both work to produce "2 splashes of venom". After the spurious failure, retrying with EDIT_GETLIN enabled showed that "splashes" had been singularized to "splashe" so fix that. "2 splashes of venom" IDed to "2 uncursed blinding venoms" because the base name omits "splash of" prefix. And due to that, explicitly wishing for "splash of {acid,blinding} venom" didn't work either. Change the names to include the prefix, and add a hack to makedefs to keep generating the old macro names without the prefix. (Wishing for "{acid,blinding} venom" still works due to post-3.6.6 changes to " of " matching.) --- doc/fixes37.0 | 4 +++- src/objects.c | 6 +++--- src/objnam.c | 4 +++- util/makedefs.c | 12 +++++++++++- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/doc/fixes37.0 b/doc/fixes37.0 index 201ca8174..6dc8c6919 100644 --- a/doc/fixes37.0 +++ b/doc/fixes37.0 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.253 $ $NHDT-Date: 1595621524 2020/07/24 20:12:04 $ +$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.254 $ $NHDT-Date: 1595627151 2020/07/24 21:45:51 $ General Fixes and Modified Features ----------------------------------- @@ -226,6 +226,8 @@ if a mind flayer's psychic blast targetted a hidden monster, feedback named hero poly'd into a mind flayer who used #monster to emit a psychic blast was able to harm mindless monsters with it some hero attacks that should have gotten a skill bonus or penalty weren't +change internal name of " venom" to "splash of venom" +singularize "splashes" to "splash" instead of "splashe" Fixes to 3.7.0-x Problems that Were Exposed Via git Repository diff --git a/src/objects.c b/src/objects.c index 8c4d2a9ab..771178eed 100644 --- a/src/objects.c +++ b/src/objects.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 objects.c $NHDT-Date: 1578855624 2020/01/12 19:00:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.61 $ */ +/* NetHack 3.6 objects.c $NHDT-Date: 1595627151 2020/07/24 21:45:51 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.65 $ */ /* Copyright (c) Mike Threepoint, 1989. */ /* NetHack may be freely redistributed. See license for details. */ @@ -1150,10 +1150,10 @@ OBJECT(OBJ("iron chain", None), /* Venom is normally a transitory missile (spit by various creatures) * but can be wished for in wizard mode so could occur in bones data. */ -OBJECT(OBJ("blinding venom", "splash of venom"), +OBJECT(OBJ("splash of blinding venom", "splash of venom"), BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0, VENOM_CLASS, 500, 0, 1, 0, 0, 0, 0, 0, 0, HI_ORGANIC), -OBJECT(OBJ("acid venom", "splash of venom"), +OBJECT(OBJ("splash of acid venom", "splash of venom"), BITS(0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, P_NONE, LIQUID), 0, VENOM_CLASS, 500, 0, 1, 0, 6, 6, 0, 0, 0, HI_ORGANIC), /* +d6 small or large */ diff --git a/src/objnam.c b/src/objnam.c index ab70f3c03..4dc8c585b 100644 --- a/src/objnam.c +++ b/src/objnam.c @@ -1,4 +1,4 @@ -/* NetHack 3.7 objnam.c $NHDT-Date: 1583315888 2020/03/04 09:58:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.293 $ */ +/* NetHack 3.7 objnam.c $NHDT-Date: 1595627152 2020/07/24 21:45:52 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.303 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2011. */ /* NetHack may be freely redistributed. See license for details. */ @@ -713,6 +713,7 @@ unsigned cxn_flags; /* bitmask of CXN_xxx values */ } default: Sprintf(buf, "glorkum %d %d %d", obj->oclass, typ, obj->spe); + break; } if (pluralize) Strcpy(buf, makeplural(buf)); @@ -2592,6 +2593,7 @@ const char *oldstr; || !BSTRCMPI(bp, p - 4, "nxes") /* lynxes */ || !BSTRCMPI(bp, p - 4, "ches") || !BSTRCMPI(bp, p - 4, "uses") /* lotuses */ + || !BSTRCMPI(bp, p - 4, "shes") /* splashes [of venom] */ || !BSTRCMPI(bp, p - 4, "sses") /* priestesses */ || !BSTRCMPI(bp, p - 5, "atoes") /* tomatoes */ || !BSTRCMPI(bp, p - 7, "dingoes") diff --git a/util/makedefs.c b/util/makedefs.c index 12bf8009c..f113b0ae9 100644 --- a/util/makedefs.c +++ b/util/makedefs.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 makedefs.c $NHDT-Date: 1594347789 2020/07/10 02:23:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.182 $ */ +/* NetHack 3.6 makedefs.c $NHDT-Date: 1595627153 2020/07/24 21:45:53 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.183 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Kenneth Lorber, Kensington, Maryland, 2015. */ /* Copyright (c) M. Stephenson, 1990, 1991. */ @@ -2091,8 +2091,18 @@ do_objs() break; } /*FALLTHRU*/ + case VENOM_CLASS: + /* fall-through from gem class is ok; objects[] used to have + { "{acid,blinding} venom", "splash of venom" } + but those have been changed to + { "splash of {acid,blinding} venom", "splash of venom" } + so strip the extra "splash of " off to keep same macros */ + if (!strncmp(objnam, "SPLASH_OF_", 10)) + objnam += 10; + /*FALLTHRU*/ default: Fprintf(ofp, "#define\t"); + break; } if (prefix >= 0) Fprintf(ofp, "%s\t%d\n", limit(objnam, prefix), i);