wishing for water terrain

Allow a wizard mode wish for "wall of water" to create WATER terrain.
Previously there was no way to do that.  Wishing for "pool" and "moat"
work but "water" for terrain isn't supported because it yields a potion.
This commit is contained in:
PatR
2022-02-08 11:06:26 -08:00
parent e10dff845f
commit ed606cae8c
2 changed files with 18 additions and 6 deletions
+4 -2
View File
@@ -1,4 +1,4 @@
/* NetHack 3.7 do_name.c $NHDT-Date: 1625885761 2021/07/10 02:56:01 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.213 $ */ /* NetHack 3.7 do_name.c $NHDT-Date: 1644347168 2022/02/08 19:06:08 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.231 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Pasi Kallinen, 2018. */ /*-Copyright (c) Pasi Kallinen, 2018. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -2341,7 +2341,9 @@ const char *
hliquid( hliquid(
const char *liquidpref) /* use as-is when not hallucintg (unless empty) */ const char *liquidpref) /* use as-is when not hallucintg (unless empty) */
{ {
if (Hallucination || !liquidpref || !*liquidpref) { boolean hallucinate = Hallucination && !g.program_state.gameover;
if (hallucinate || !liquidpref || !*liquidpref) {
int indx, count = SIZE(hliquids); int indx, count = SIZE(hliquids);
/* if we have a non-hallucinatory default value, include it /* if we have a non-hallucinatory default value, include it
+14 -4
View File
@@ -1,4 +1,4 @@
/* NetHack 3.7 objnam.c $NHDT-Date: 1634584224 2021/10/18 19:10:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.336 $ */ /* NetHack 3.7 objnam.c $NHDT-Date: 1644347179 2022/02/08 19:06:19 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.343 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */ /*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */ /* NetHack may be freely redistributed. See license for details. */
@@ -3170,11 +3170,21 @@ wizterrainwish(struct _readobjnam_data *d)
/* ("water" matches "potion of water" rather than terrain) */ /* ("water" matches "potion of water" rather than terrain) */
} else if (!BSTRCMPI(bp, p - 4, "pool") } else if (!BSTRCMPI(bp, p - 4, "pool")
|| !BSTRCMPI(bp, p - 4, "moat")) { || !BSTRCMPI(bp, p - 4, "moat")
lev->typ = !BSTRCMPI(bp, p - 4, "pool") ? POOL : MOAT; || !BSTRCMPI(bp, p - 13, "wall of water")) {
long save_prop;
const char *new_water;
lev->typ = !BSTRCMPI(bp, p - 4, "pool") ? POOL
: !BSTRCMPI(bp, p - 4, "moat") ? MOAT
: WATER;
lev->flags = 0; lev->flags = 0;
del_engr_at(x, y); del_engr_at(x, y);
pline("A %s.", (lev->typ == POOL) ? "pool" : "moat"); save_prop = EHalluc_resistance;
EHalluc_resistance = 1;
new_water = waterbody_name(x, y);
EHalluc_resistance = save_prop;
pline("%s.", An(new_water));
/* Must manually make kelp! */ /* Must manually make kelp! */
water_damage_chain(g.level.objects[x][y], TRUE); water_damage_chain(g.level.objects[x][y], TRUE);
madeterrain = TRUE; madeterrain = TRUE;