Remove melting ice timeouts when terrain changes
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.
This commit is contained in:
@@ -1635,6 +1635,9 @@ mkstairs(xchar x, xchar y,
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -348,6 +348,7 @@ maketrap(int x, int y, int typ)
|
||||
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))
|
||||
@@ -459,6 +460,8 @@ maketrap(int x, int y, int typ)
|
||||
: DOOR;
|
||||
|
||||
unearth_objs(x, y);
|
||||
if (was_ice && lev->typ != ICE)
|
||||
spot_stop_timers(x, y, MELT_ICE_AWAY);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user