fix #H7707 - terrain change leaving stale flags
struct rm.flags in overloaded for a bunch of rm.typ -dependent things (doormask, altarmask, throne/fountain/sink looted, a few others) and wasn't being reset for various cases where rm.typ gets changed. I've changed a lot, some no doubt unnecessarily, and probably missed plenty. This compiles but has not been thoroughly tested.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 apply.c $NHDT-Date: 1542765339 2018/11/21 01:55:39 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.254 $ */
|
||||
/* NetHack 3.6 apply.c $NHDT-Date: 1544442708 2018/12/10 11:51:48 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.269 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2012. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -418,7 +418,7 @@ register struct obj *obj;
|
||||
return res;
|
||||
case SCORR:
|
||||
You_hear(hollow_str, "passage");
|
||||
lev->typ = CORR;
|
||||
lev->typ = CORR, lev->flags = 0;
|
||||
unblock_point(rx, ry);
|
||||
feel_newsym(rx, ry);
|
||||
return res;
|
||||
@@ -3394,7 +3394,7 @@ struct obj *obj;
|
||||
*/
|
||||
typ = fillholetyp(x, y, FALSE);
|
||||
if (typ != ROOM) {
|
||||
levl[x][y].typ = typ;
|
||||
levl[x][y].typ = typ, levl[x][y].flags = 0;
|
||||
liquid_flow(x, y, typ, t_at(x, y),
|
||||
fillmsg
|
||||
? (char *) 0
|
||||
|
||||
Reference in New Issue
Block a user