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:
cohrs
2002-08-21 23:06:58 +00:00
parent a78e08d0c5
commit 5d492abf6f
10 changed files with 48 additions and 21 deletions

View File

@@ -541,8 +541,15 @@ xchar x, y;
}
/* the object might have fallen down a hole */
if (kickobj->where == OBJ_MIGRATING)
if (kickobj->where == OBJ_MIGRATING) {
if (costly) {
if(isgold)
costly_gold(x, y, kickobj->quan);
else (void)stolen_value(kickobj, x, y,
(boolean)shkp->mpeaceful, FALSE);
}
return 1;
}
bhitroom = *in_rooms(bhitpos.x, bhitpos.y, SHOPBASE);
if (costly && (!costly_spot(bhitpos.x, bhitpos.y) ||
@@ -1014,7 +1021,7 @@ dumb:
unblock_point(x,y); /* vision */
if (shopdoor) {
add_damage(x, y, 400L);
pay_for_damage("break");
pay_for_damage("break", FALSE);
}
if (in_town(x, y))
for(mtmp = fmon; mtmp; mtmp = mtmp->nmon) {