diff --git a/doc/fixes34.4 b/doc/fixes34.4 index 408d3a4f5..14e23f4be 100644 --- a/doc/fixes34.4 +++ b/doc/fixes34.4 @@ -246,6 +246,8 @@ in the quest, if the locate level hasn't been reached yet, don't fall or randomly teleport past it fix phrasing in monster against monster attack feedback when attacker is wielding stacked weapons +don't place hero on top of monster when arriving on level which is so full + that the monster can't be moved out of the way Platform- and/or Interface-Specific Fixes diff --git a/src/do.c b/src/do.c index faa11fce4..7e60a1e50 100644 --- a/src/do.c +++ b/src/do.c @@ -1296,8 +1296,16 @@ boolean at_stairs, falling, portal; mnexto(mtmp); if ((mtmp = m_at(u.ux, u.uy)) != 0) { - impossible("mnexto failed (do.c)?"); - (void) rloc(mtmp, FALSE); +#ifdef WIZARD + /* there was an unconditional impossible("mnearto failed") + here, but it's not impossible and we're prepared to cope + with the situation, so only say something when debugging */ + if (wizard) pline("(monster in hero's way)"); +#endif + if (!rloc(mtmp, TRUE)) + /* no room to move it; send it away, to return later */ + migrate_to_level(mtmp, ledger_no(&u.uz), + MIGR_RANDOM, (coord *)0); } }