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?)
81 lines
4.1 KiB
Groff
81 lines
4.1 KiB
Groff
$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,
|
|
that another 3.6.x release is not anticipated, and most developer
|
|
focus will shift to the next major release.
|
|
|
|
General Fixes and Modified Features
|
|
-----------------------------------
|
|
when place_object() puts a non-boulder on the map at a spot which contains
|
|
other objects, put it under all boulders in the pile rather than just
|
|
under the top one; previously, map wasn't showing a boulder there if
|
|
the top one got moved by means other than pushing
|
|
when examining the map with '/' or ';', picking a symbol which is used for
|
|
more than 4 things yielded a sentence lacking its terminating period
|
|
billing and payment issue as a result of glob coalescing
|
|
glob pricing did not consider weight properly
|
|
glob shop interaction improved to handle more of the expected scenarios
|
|
non-flying steed on Plane of Water would drown when air bubble moved hero
|
|
xans fly, but could not reach your feet if you flew
|
|
adjust vortex database entry to be consistent with fire and energy vortices
|
|
when co-located with a boulder you could sometimes swap places with pets of
|
|
any size
|
|
on rare occasions, multiple mine's end luckstones were being marked as the
|
|
prize and triggering an impossible() on a public server
|
|
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
|
|
------------------------------------------------------------------
|
|
curses: sometimes the message window would show a blank line after a prompt
|
|
|
|
|
|
Platform- and/or Interface-Specific Fixes or Features
|
|
-----------------------------------------------------
|
|
curses: very tall menus tried to use selector characters a-z, A-Z, and 0-9,
|
|
but 0-9 should be reserved for counts and if the display was tall
|
|
enough for more than 62 entries, arbitrary ASCII punctuation got used
|
|
curses: when all available lines in the message window are in use,
|
|
autodescribe feedback for 'pick a position with cursor' overwrote
|
|
the last line (usually the 'pick a position' prompt/hint), sometimes
|
|
leaving part of longer underlying line's text visible
|
|
curses: if message window is only one line, cancelling some prompts with ESC
|
|
left the prompts visible on the message line instead of erasing them
|
|
curses: support EDIT_GETLIN (but like with tty, it's disabled by default) to
|
|
pre-load an earlier response as the default answer for some prompts
|
|
curses: when display windows get reconfigured (after setting align_status,
|
|
align_message, statuslines, windowborders or due to external resize),
|
|
the message window was being refreshed with the oldest available N
|
|
messages rather than most recent N. [Still room for improvement;
|
|
when feasible it combines short lines, resulting in N messages on
|
|
fewer than N lines and leaving some of the available lines blank.]
|
|
curses: plug memory leak when getting a line of input is cancelled by ESC
|
|
tty: re-do one optimization used when status conditions have all been removed
|
|
and remove another that tried to check whether condition text to be
|
|
displayed next was the same as the existing value; sometimes new
|
|
status condition wouldn't be shown unless a screen redraw was forced
|
|
Windows: some startup error messages were not being delivered successfully
|
|
|
|
|
|
General New Features
|
|
--------------------
|
|
classify sources as released, beta, or work-in-progress via NH_DEVEL_STATUS
|
|
rather than just released vs beta via BETA
|
|
|
|
|
|
NetHack Community Patches (or Variation) Included
|
|
-------------------------------------------------
|
|
add a couple of engraving suggestions in pull request #79
|
|
|
|
|
|
Code Cleanup and Reorganization
|
|
-------------------------------
|
|
|