sequencing issue: dismounting from dying steed
Reported by entrez: if a trap killed hero's steed and dismounting
was fatal for the hero (probably by falling onto the same trap),
impossible "dmonsfree: 1 removed doesn't match 0 pending" warning
occurred during game-over cleanup.
Move the dismount calls in mondead() and mongone() from before their
m_detach() call to the end of m_detach() itself. This led to a
cascade of problems and attempted fixes until finally zeroing in on
place_monster()'s sanity checks and dismount_steed()'s attempts to
work-around one of them.
This reverts the convoluted hack from four years ago in commit
be327d9822 and deals with the issue in
a simpler way. After that, the new dismount_steed() placement at
end of m_detach() works cleanly.
This commit is contained in:
@@ -1075,6 +1075,8 @@ if punished and iron ball was cursed and wielded--so welded to hand--falling
|
||||
if player's run-time config file had OPTIONS=role:Val and the environment had
|
||||
NETHACKOPTIONS='role:!Val' the hero would be a Val instead of !Val
|
||||
sleeping or unconscious hero attacked by Medusa would meet her gaze
|
||||
if a trap killed both the hero's steed and the hero an impossible "dmonsfree:
|
||||
N+1 removed doesn't match N pending" warning could occur
|
||||
|
||||
|
||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||
|
||||
Reference in New Issue
Block a user