Files
nethack/doc/fixes36.3
PatR 7ea69225e9 fix github issue #198 - mon wielding cursed weapon
Fixes #198

Watching a monster try to switch from a cursed weapon to some other
weapon (of any bless/curse state) reported that the old weapon was
welded to the monster's hand and wouldn't switch to the new one.
But watching a monster try to wield a cursed weapon didn't say that
it was becoming welded at the time.  Report correctly pointed out
that the weld-to-hand check wouldn't work unless the weapon was
already flagged as wielded, and the code in question was deferring
wielding so that the message wouldn't include "(weapon in hand)" in
the formatted object description.  There was also another problem:
it was erroneously testing the monster's old weapon (if any, after
unwielding it), instead of the new one being wielded.

Also, Sunsword starting to emit light when first wielded by a monster
only reported that it was shining if hero could see the monster.
Give an alternate message if hero sees the location instead.  (Just
the monster's/Sunsword's location rather than any newly lit spot
within Sunsword's radius.)
2019-06-08 05:58:42 -07:00

126 lines
7.1 KiB
Groff

$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.44 $ $NHDT-Date: 1559998716 2019/06/08 12:58:36 $
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
fix a memory leak that occurred if player used wizard mode to leave and return
to the Plane of Air or Plane of Water (not possible in normal play)
free sortloot data if object handling is short-circuited by cockatrice corpse
on the Plane of Water, make water go all the way to the edges of the level
on the Plane of Air, make clouds disrupt line of sight along the edges
have '&' (whatdoes) command describe movement keystrokes instead of reporting
them as unknown or showing their number_pad action when that is Off
some improvement to the handling of endgame levels filling up with monsters
if you survive turning into green slime due to life-saving (surviving as a
green slime) then die again due to green slimes having been genocided,
the feedback was strange because it assumed that the prior message
came from answering No to "Really die?" in explore or wizard mode
various cases where objects had their bless/curse state become known weren't
updating persistent inventory window, when enabled, to reflect changes
(cited case was trying to remove cursed armor and being told of the
curse but there were lots of other situations with the same issue)
similar perm_invent issue when lock state known and/or contents known become
set for carried container
blessed scroll of remove curse read while confused might be shown to operate
on itself by perm_invent after player is told that it has disappeared
fix memory leak if corpse auto-revival attempt failed ("you feel less hassled")
allow a parent function to issue an an unplacebc() call that restricts
subsequent placebc() calls to that parent only
flying monsters could enter water on the Plane of Water but then they'd drown
unless they could also swim or else didn't need to breathe
when finding a place to put a monster on the Plane of Water, don't pick a
water location for flyers or floaters (levitate) or clingers (ceiling)
#turn worked when unable to speak despite "you chant an arcane formula"
#turn implicitly required sight due to wrong check for avoiding spanning walls
thrown or kicked light source (lit lamp, candle, oil) should emit light as it
traverses the map; dungeon features, objects, or monsters seen while
it's in transit will become part of hero's memory of the level, and
any messages delivered won't have stale light from it around the hero
unlike watching a monster trying to swap out a cursed weapon for some other
weapon and failing, watching it wield a cursed weapon didn't report
that weapon becoming welded to the monster's hand/claw/whatever
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
------------------------------------------------------------------
elemental_clog() loop needed to guard against obliteration of the monster
that was trying to be placed
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
(however, it's skipped if the 'popup_dialog' option is On)
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
curses: after requesting a line of input from player, next line of message
window could end up being skipped
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
if you reach the edge of a level (relatively uncommon) and try to move off,
report that you can't go farther if the 'mention_walls' option is set
NetHack Community Patches (or Variation) Included
-------------------------------------------------
add a couple of engraving suggestions in pull request #79
Code Cleanup and Reorganization
-------------------------------
began to add some function caller BREADCRUMBS to aid debugging