fix? #S15277 - Engulfer gets placed over itself
Bug report was that engulfer killed hero who was life-saved and expelled onto a rolling boulder trap which resulted in the death of a bystanding monster. That triggered an impossible about placing the engulfer onto the map at an already occupied spot (containing the engulfer itself) while dealing with the dead bystander. This removes the code in mon_leaving_level() that was putting the engulfer on the map. I'm no longer able to reproduce the problem it was intended to solve, and if that problem (message delivery about the swallow attack delivered with the engulfer missing from the map) exists, it would be less severe than the impossible feedback. I didn't attempt to reproduce the actual reported problem since the code removal should make it moot. Once again, the bug report via the web contact form got misclassified as spam.
This commit is contained in:
15
src/mon.c
15
src/mon.c
@@ -2696,20 +2696,6 @@ mon_leaving_level(struct monst *mon)
|
||||
#endif
|
||||
}
|
||||
if (onmap) {
|
||||
/* gulpmm() tries to deal with this, but without this extra
|
||||
place_monster() the messages for exploding engulfed gas spore
|
||||
are delivered without the engulfer being shown on the map */
|
||||
if (gm.mswallower && gm.mswallower != mon) {
|
||||
if (gm.mswallower != &gy.youmonst) {
|
||||
place_monster(gm.mswallower,
|
||||
gm.mswallower->mx, gm.mswallower->my);
|
||||
} else {
|
||||
u_on_newpos(u.ux, u.uy);
|
||||
if (canspotself())
|
||||
display_self();
|
||||
}
|
||||
}
|
||||
|
||||
mon->mundetected = 0; /* for migration; doesn't matter for death */
|
||||
/* unhide mimic in case its shape has been blocking line of sight
|
||||
or it is accompanying the hero to another level */
|
||||
@@ -3441,6 +3427,7 @@ unstuck(struct monst *mtmp)
|
||||
set_ustuck((struct monst *) 0);
|
||||
|
||||
if (swallowed) {
|
||||
gm.mswallower = (struct monst *) 0;
|
||||
u.ux = mtmp->mx;
|
||||
u.uy = mtmp->my;
|
||||
if (Punished && uchain->where != OBJ_FLOOR)
|
||||
|
||||
Reference in New Issue
Block a user