end of game oddities: thrownobj, ball&chain
If you died while Punished but with attached ball and chain temporarily off the map (changing levels and when swallowed are the cases I looked at; there may be others), the ball and chain objects would not appear in bones (for the falling-down-stairs case; bones are never saved if hero dies while swallowed) and they weren't being freed. Put them back on the map so that they'll be included in bones and also freed as part of normal map cleanup. This caused a problem if the attached ball had state OBJ_FREE due to being thrown rather than being temporarily off the map. 'thrownobj' was being deallocated without first cancelling punishment, so uball object was freed via thrownobj pointer but stale uball pointer still referenced it. Unpunishing would introduce sequencing issues because that would need to be after attribute disclosure. So instead of deallocating thrown or kicked object, put it/them (can't actually have both at the same time) back on the map. This has a side-effect of saving thrown Mjollnir in bones if it kills hero when failing to be caught upon return. (I thought that that had been fixed ages ago?)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.23 $ $NHDT-Date: 1558856435 2019/05/26 07:40:35 $
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.24 $ $NHDT-Date: 1558921075 2019/05/27 01:37:55 $
|
||||
|
||||
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
||||
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
||||
@@ -26,6 +26,10 @@ on rare occasions, multiple mine's end luckstones were being marked as the
|
||||
make sure the correct luckstone is the prize in mine's end
|
||||
free dungeon overview's bones information at end of game
|
||||
free current level's bones information at end of game
|
||||
free ball and chain if Punished hero dies while descending stairs or dies or
|
||||
quits while swallowed; put ball and chain in bones for the stairs case
|
||||
if hero dies while a thrown or kicked object is in transit, put that object
|
||||
on the map in case bones data gets saved
|
||||
|
||||
|
||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||
|
||||
Reference in New Issue
Block a user