When attached iron ball was in a pit (or a pool) with a monster,
and your levitation ended, you were put on top of the monster.
Add a sanity check for hero over monster.
'F'orcefighting with a war hammer has a small chance of breaking iron bars
very rarely random items are generated eroded, erodeproof, or greased
Nazgul can see invisible
+fix a case where punished iron ball yanked hero on top of a monster
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
static void
you_sanity_check(void)
{
+ struct monst *mtmp;
+
if (u.uswallow && !u.ustuck) {
/* this probably ought to be panic() */
impossible("sanity_check: swallowed by nothing?");
u.uswldtim = 0;
docrt();
}
+ if ((mtmp = m_at(u.ux, u.uy)) != 0) {
+ /* u.usteed isn't on the map */
+ if (u.ustuck != mtmp)
+ impossible("sanity_check: you over monster");
+ }
+
(void) check_invent_gold("invent");
}
return 1;
}
- if (Punished && !carried(uball)
+ if (Punished && !carried(uball) && !m_at(uball->ox, uball->oy)
&& (is_pool(uball->ox, uball->oy)
|| ((trap = t_at(uball->ox, uball->oy))
&& (is_pit(trap->ttyp) || is_hole(trap->ttyp))))) {