R1049 - various wand of digging bugs
- Breaking wand of digging dug through rock which should be undiggable. Checks assumed pits would never show up in solid rock. - Breaking wand of digging near shop walls wouldn't anger the shopkeeper Checks assumed pits would never show up in walls, also, added a special case to pay_for_damage to handle the case where you're falling thru and can't be asked to pay. - Shop walls wouldn't be restored if there are pits in the way. Checks assumed pits would never show up in walls. - If there was a hole outside the shop, you could kick stuff out of the door into the hole without shopkeeper noticing. Added the missing check.
This commit is contained in:
@@ -283,9 +283,11 @@ register int x, y, typ;
|
||||
case TRAPDOOR:
|
||||
lev = &levl[x][y];
|
||||
if (*in_rooms(x, y, SHOPBASE) &&
|
||||
((typ == HOLE || typ == TRAPDOOR) || IS_DOOR(lev->typ)))
|
||||
((typ == HOLE || typ == TRAPDOOR) ||
|
||||
IS_DOOR(lev->typ) || IS_WALL(lev->typ)))
|
||||
add_damage(x, y, /* schedule repair */
|
||||
(IS_DOOR(lev->typ) && !flags.mon_moving) ? 200L : 0L);
|
||||
((IS_DOOR(lev->typ) || IS_WALL(lev->typ))
|
||||
&& !flags.mon_moving) ? 200L : 0L);
|
||||
lev->doormask = 0; /* subsumes altarmask, icedpool... */
|
||||
if (IS_ROOM(lev->typ)) /* && !IS_AIR(lev->typ) */
|
||||
lev->typ = ROOM;
|
||||
|
||||
Reference in New Issue
Block a user