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:
11
src/dokick.c
11
src/dokick.c
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user