fix #4138 - 'text bug' for freezing moat

Freezing a moat--unlike other types of water--substitutes the type
of water (because that isn't "moat" for Medusa's level) in the freeze
message but was doing so after changing the affected terrain to ICE,
yielding "The ice is bridged with ice."
This commit is contained in:
PatR
2016-01-06 17:57:39 -08:00
parent 22685763d1
commit d8591be858
2 changed files with 10 additions and 7 deletions

View File

@@ -97,6 +97,7 @@ make vault guard accept names starting with number
fix weight of containers in special levels
make the raven medusa level shortsighted
fix possible segfault in lev_comp when map was too tall
fix "the ice is bridged with ice" when freezing castle's moat or Medusa's sea
Platform- and/or Interface-Specific Fixes

View File

@@ -4234,8 +4234,8 @@ short exploding_wand_typ;
case ZT_COLD:
if (is_pool(x, y) || is_lava(x, y)) {
boolean lava = is_lava(x, y);
boolean moat = is_moat(x, y);
boolean lava = is_lava(x, y),
moat = is_moat(x, y);
if (lev->typ == WATER) {
/* For now, don't let WATER freeze. */
@@ -4245,23 +4245,25 @@ short exploding_wand_typ;
You_hear("a soft crackling.");
rangemod -= 1000; /* stop */
} else {
char buf[BUFSZ];
Strcpy(buf, waterbody_name(x, y)); /* for MOAT */
rangemod -= 3;
if (lev->typ == DRAWBRIDGE_UP) {
lev->drawbridgemask &= ~DB_UNDER; /* clear lava */
lev->drawbridgemask |= (lava ? DB_FLOOR : DB_ICE);
} else {
if (!lava)
lev->icedpool =
(lev->typ == POOL ? ICED_POOL : ICED_MOAT);
lev->typ = (lava ? ROOM : ICE);
lev->icedpool = (lev->typ == POOL) ? ICED_POOL
: ICED_MOAT;
lev->typ = lava ? ROOM : ICE;
}
bury_objs(x, y);
if (see_it) {
if (lava)
Norep("The lava cools and solidifies.");
else if (moat)
Norep("The %s is bridged with ice!",
waterbody_name(x, y));
Norep("The %s is bridged with ice!", buf);
else
Norep("The water freezes.");
newsym(x, y);