If special level lua code creates a melting ice timeout, but
later in the code places stairs, or a trap which might change
the ice to room floor, the timer sanity checking doesn't
like that.
dest.dlevel = u.uz.dlevel + (up ? -1 : 1);
stairway_add(x, y, up ? TRUE : FALSE, FALSE, &dest);
+ if (levl[x][y].typ == ICE)
+ spot_stop_timers(x, y, MELT_ICE_AWAY);
+
levl[x][y].typ = STAIRS;
levl[x][y].ladder = up ? LA_UP : LA_DOWN;
}
boolean oldplace;
struct trap *ttmp;
struct rm *lev = &levl[x][y];
+ boolean was_ice = (lev->typ == ICE);
if ((ttmp = t_at(x, y)) != 0) {
if (undestroyable_trap(ttmp->ttyp))
: DOOR;
unearth_objs(x, y);
+ if (was_ice && lev->typ != ICE)
+ spot_stop_timers(x, y, MELT_ICE_AWAY);
break;
}