fix #K3739: engraving in dust mentions frost
[sic] should be "engraving in frost mentions dust" Writing on ice with fingers is described as writing in frost, but if you overwrite an existing engraving rather than add to it the game said you wiped out the engraving in the dust (immediately followed by writing in the frost). Not mentioned in the report: finishing a multi-turn engraving on ice had the same problem.
This commit is contained in:
+3
-1
@@ -1,4 +1,4 @@
|
|||||||
HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1023 $ $NHDT-Date: 1661295667 2022/08/23 23:01:07 $
|
HDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1046 $ $NHDT-Date: 1664616859 2022/10/01 09:34:19 $
|
||||||
|
|
||||||
General Fixes and Modified Features
|
General Fixes and Modified Features
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@@ -1035,6 +1035,8 @@ if a bones file contains a doppelganger imitating a unique monster, a game
|
|||||||
for that arrives (the doppelganger will change its shape normally,
|
for that arrives (the doppelganger will change its shape normally,
|
||||||
not be stuck in the unique monster's form)
|
not be stuck in the unique monster's form)
|
||||||
when mounted hero got hit by an explosion, hero and steed shared resistances
|
when mounted hero got hit by an explosion, hero and steed shared resistances
|
||||||
|
removing an engraving from frost (ie, written with fingers on ice) reported
|
||||||
|
"you wipe out the message that was written in the _dust_"
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
+27
-24
@@ -1,4 +1,4 @@
|
|||||||
/* NetHack 3.7 engrave.c $NHDT-Date: 1612055954 2021/01/31 01:19:14 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.102 $ */
|
/* NetHack 3.7 engrave.c $NHDT-Date: 1664616835 2022/10/01 09:33:55 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.131 $ */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
@@ -540,10 +540,10 @@ doengrave(void)
|
|||||||
const char *eloc; /* Where the engraving is (ie dust/floor/...) */
|
const char *eloc; /* Where the engraving is (ie dust/floor/...) */
|
||||||
char *sp; /* Place holder for space count of engr text */
|
char *sp; /* Place holder for space count of engr text */
|
||||||
size_t len; /* # of nonspace chars of new engraving text */
|
size_t len; /* # of nonspace chars of new engraving text */
|
||||||
struct engr *oep = engr_at(u.ux, u.uy);
|
struct engr *oep = engr_at(u.ux, u.uy); /* The current engraving */
|
||||||
/* The current engraving */
|
|
||||||
struct obj *otmp; /* Object selected with which to engrave */
|
struct obj *otmp; /* Object selected with which to engrave */
|
||||||
char *writer;
|
char *writer;
|
||||||
|
boolean frosted, adding;
|
||||||
|
|
||||||
g.multi = 0; /* moves consumed */
|
g.multi = 0; /* moves consumed */
|
||||||
g.nomovemsg = (char *) 0; /* occupation end message */
|
g.nomovemsg = (char *) 0; /* occupation end message */
|
||||||
@@ -577,6 +577,7 @@ doengrave(void)
|
|||||||
} else {
|
} else {
|
||||||
writer = yname(otmp);
|
writer = yname(otmp);
|
||||||
}
|
}
|
||||||
|
frosted = is_ice(u.ux, u.uy);
|
||||||
|
|
||||||
/* There's no reason you should be able to write with a wand
|
/* There's no reason you should be able to write with a wand
|
||||||
* while both your hands are tied up.
|
* while both your hands are tied up.
|
||||||
@@ -649,7 +650,7 @@ doengrave(void)
|
|||||||
case SCROLL_CLASS:
|
case SCROLL_CLASS:
|
||||||
case SPBOOK_CLASS:
|
case SPBOOK_CLASS:
|
||||||
pline("%s would get %s.", Yname2(otmp),
|
pline("%s would get %s.", Yname2(otmp),
|
||||||
is_ice(u.ux, u.uy) ? "all frosty" : "too dirty");
|
frosted ? "all frosty" : "too dirty");
|
||||||
ptext = FALSE;
|
ptext = FALSE;
|
||||||
break;
|
break;
|
||||||
case RANDOM_CLASS: /* This should mean fingers */
|
case RANDOM_CLASS: /* This should mean fingers */
|
||||||
@@ -785,7 +786,7 @@ doengrave(void)
|
|||||||
? "You feel tremors."
|
? "You feel tremors."
|
||||||
: IS_GRAVE(levl[u.ux][u.uy].typ)
|
: IS_GRAVE(levl[u.ux][u.uy].typ)
|
||||||
? "Chips fly out from the headstone."
|
? "Chips fly out from the headstone."
|
||||||
: is_ice(u.ux, u.uy)
|
: frosted
|
||||||
? "Ice chips fly up from the ice surface!"
|
? "Ice chips fly up from the ice surface!"
|
||||||
: (g.level.locations[u.ux][u.uy].typ
|
: (g.level.locations[u.ux][u.uy].typ
|
||||||
== DRAWBRIDGE_DOWN)
|
== DRAWBRIDGE_DOWN)
|
||||||
@@ -878,14 +879,14 @@ doengrave(void)
|
|||||||
You("wipe out the message here.");
|
You("wipe out the message here.");
|
||||||
else
|
else
|
||||||
pline("%s %s.", Yobjnam2(otmp, "get"),
|
pline("%s %s.", Yobjnam2(otmp, "get"),
|
||||||
is_ice(u.ux, u.uy) ? "frosty" : "dusty");
|
frosted ? "frosty" : "dusty");
|
||||||
dengr = TRUE;
|
dengr = TRUE;
|
||||||
} else {
|
} else {
|
||||||
pline("%s can't wipe out this engraving.", Yname2(otmp));
|
pline("%s can't wipe out this engraving.", Yname2(otmp));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pline("%s %s.", Yobjnam2(otmp, "get"),
|
pline("%s %s.", Yobjnam2(otmp, "get"),
|
||||||
is_ice(u.ux, u.uy) ? "frosty" : "dusty");
|
frosted ? "frosty" : "dusty");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -948,7 +949,7 @@ doengrave(void)
|
|||||||
if (!IS_GRAVE(levl[u.ux][u.uy].typ))
|
if (!IS_GRAVE(levl[u.ux][u.uy].typ))
|
||||||
You(
|
You(
|
||||||
"are not going to get anywhere trying to write in the %s with your dust.",
|
"are not going to get anywhere trying to write in the %s with your dust.",
|
||||||
is_ice(u.ux, u.uy) ? "frost" : "dust");
|
frosted ? "frost" : "dust");
|
||||||
useup(otmp);
|
useup(otmp);
|
||||||
otmp = 0; /* wand is now gone */
|
otmp = 0; /* wand is now gone */
|
||||||
ptext = FALSE;
|
ptext = FALSE;
|
||||||
@@ -988,7 +989,9 @@ doengrave(void)
|
|||||||
if (!Blind) {
|
if (!Blind) {
|
||||||
You("wipe out the message that was %s here.",
|
You("wipe out the message that was %s here.",
|
||||||
(oep->engr_type == DUST)
|
(oep->engr_type == DUST)
|
||||||
? "written in the dust"
|
? (frosted
|
||||||
|
? "written in the frost"
|
||||||
|
: "written in the dust")
|
||||||
: (oep->engr_type == ENGR_BLOOD)
|
: (oep->engr_type == ENGR_BLOOD)
|
||||||
? "scrawled in blood"
|
? "scrawled in blood"
|
||||||
: "written");
|
: "written");
|
||||||
@@ -1000,8 +1003,8 @@ doengrave(void)
|
|||||||
}
|
}
|
||||||
} else if (type == DUST || type == MARK || type == ENGR_BLOOD) {
|
} else if (type == DUST || type == MARK || type == ENGR_BLOOD) {
|
||||||
You("cannot wipe out the message that is %s the %s here.",
|
You("cannot wipe out the message that is %s the %s here.",
|
||||||
oep->engr_type == BURN
|
(oep->engr_type == BURN)
|
||||||
? (is_ice(u.ux, u.uy) ? "melted into" : "burned into")
|
? (frosted ? "melted into" : "burned into")
|
||||||
: "engraved in",
|
: "engraved in",
|
||||||
surface(u.ux, u.uy));
|
surface(u.ux, u.uy));
|
||||||
return ECMD_TIME;
|
return ECMD_TIME;
|
||||||
@@ -1017,32 +1020,31 @@ doengrave(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
eloc = surface(u.ux, u.uy);
|
eloc = surface(u.ux, u.uy);
|
||||||
|
adding = (oep && !eow);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
default:
|
default:
|
||||||
everb = (oep && !eow ? "add to the weird writing on"
|
everb = adding ? "add to the weird writing on" : "write strangely on";
|
||||||
: "write strangely on");
|
|
||||||
break;
|
break;
|
||||||
case DUST:
|
case DUST:
|
||||||
everb = (oep && !eow ? "add to the writing in" : "write in");
|
everb = adding ? "add to the writing in" : "write in";
|
||||||
eloc = is_ice(u.ux, u.uy) ? "frost" : "dust";
|
eloc = frosted ? "frost" : "dust";
|
||||||
break;
|
break;
|
||||||
case HEADSTONE:
|
case HEADSTONE:
|
||||||
everb = (oep && !eow ? "add to the epitaph on" : "engrave on");
|
everb = adding ? "add to the epitaph on" : "engrave on";
|
||||||
break;
|
break;
|
||||||
case ENGRAVE:
|
case ENGRAVE:
|
||||||
everb = (oep && !eow ? "add to the engraving in" : "engrave in");
|
everb = adding ? "add to the engraving in" : "engrave in";
|
||||||
break;
|
break;
|
||||||
case BURN:
|
case BURN:
|
||||||
everb = (oep && !eow
|
everb = adding ? (frosted ? "add to the text melted into"
|
||||||
? (is_ice(u.ux, u.uy) ? "add to the text melted into"
|
: "add to the text burned into")
|
||||||
: "add to the text burned into")
|
: (frosted ? "melt into" : "burn into");
|
||||||
: (is_ice(u.ux, u.uy) ? "melt into" : "burn into"));
|
|
||||||
break;
|
break;
|
||||||
case MARK:
|
case MARK:
|
||||||
everb = (oep && !eow ? "add to the graffiti on" : "scribble on");
|
everb = adding ? "add to the graffiti on" : "scribble on";
|
||||||
break;
|
break;
|
||||||
case ENGR_BLOOD:
|
case ENGR_BLOOD:
|
||||||
everb = (oep && !eow ? "add to the scrawl on" : "scrawl on");
|
everb = adding ? "add to the scrawl on" : "scrawl on";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1250,7 +1252,8 @@ engrave(void)
|
|||||||
finishverb = "your weird engraving";
|
finishverb = "your weird engraving";
|
||||||
break;
|
break;
|
||||||
case DUST:
|
case DUST:
|
||||||
finishverb = "writing in the dust";
|
finishverb = is_ice(u.ux, u.uy) ? "writing in the frost"
|
||||||
|
: "writing in the dust";
|
||||||
break;
|
break;
|
||||||
case HEADSTONE:
|
case HEADSTONE:
|
||||||
case ENGRAVE:
|
case ENGRAVE:
|
||||||
|
|||||||
Reference in New Issue
Block a user