If a long worm's head is on the drawbridge and a tail segment is at the
portcullis and you raise the drawbridge, bad monster handling occurs
because of some recursion that occurs before set_entity is called again.
Not sure when this last worked; it's broken in 3.4.2 as well. Modified
e_died to ensure both entity objects for the same monster get cleaned up
so subsequent e_at calls behave as expected.
when you're asleep you shouldn't "notice" monsters that have become undetected
must be able to reach floor in order to use stethoscope on corpse or statue
fix a few coordinate (y,y) -> (x,y) typos in apply.c, mon.c, and wizard.c
+killing a long worm on a drawbridge could produce a panic
Platform- and/or Interface-Specific Fixes
/* we might have crawled out of the moat to survive */
etmp->ex = u.ux, etmp->ey = u.uy;
} else {
+ int entitycnt;
+
killer.name[0] = 0;
/* fake "digested to death" damage-type suppresses corpse */
#define mk_message(dest) ((dest & 1) ? "" : (char *)0)
else /* you caused it */
xkilled(etmp->emon, dest);
etmp->edata = (struct permonst *)0;
+
+ /* dead long worm handling */
+ for (entitycnt = 0; entitycnt < ENTITIES; entitycnt++) {
+ if (etmp != &(occupants[entitycnt]) &&
+ etmp->emon == occupants[entitycnt].emon)
+ occupants[entitycnt].edata = (struct permonst *)0;
+ }
#undef mk_message
#undef mk_corpse
}