more mimic-as-boulder (trunk only)
I started to add handling for doorways containing mimic-as-boulder
to doopen() and doclose() as was done for pick_lock(), but decided that
it was better just to prevent mimics from appearing as boulders at closed
door locations in the first place. So the most recent pick_lock() change
and its fixes entry go away.
This also fixes a post-3.4.3 bug. On the top level of Sokoban I
discovered a boulder over a hole; probing reported it as a mimic with
0 hp. The special level loading code moves mimic-as-boulder away from
trap spots by using place_monster() to put it on another spot, but it
was missing the corresponding remove_monster() to take it away from the
original location so left a stale pointer on the map.
This commit is contained in:
11
src/lock.c
11
src/lock.c
@@ -407,17 +407,6 @@ pick_lock(pick)
|
||||
/* "The door actually was a <mimic>!" */
|
||||
stumble_onto_mimic(mtmp);
|
||||
return PICKLOCK_LEARNED_SOMETHING;
|
||||
/* mimic-as-boulder on last Sokoban level */
|
||||
} else if (mtmp && mtmp->m_ap_type == M_AP_OBJECT &&
|
||||
mtmp->mappearance == BOULDER) {
|
||||
if (Blind) /* by touch */
|
||||
/* "Wait! That's a monster!" */
|
||||
stumble_onto_mimic(mtmp);
|
||||
else if (IS_DOOR(door->typ))
|
||||
pline("That door is blocked.");
|
||||
else
|
||||
You("see no door there.");
|
||||
return PICKLOCK_LEARNED_SOMETHING;
|
||||
}
|
||||
if(!IS_DOOR(door->typ)) {
|
||||
if (is_drawbridge_wall(cc.x,cc.y) >= 0)
|
||||
|
||||
Reference in New Issue
Block a user