rationalize extensions in doc directory
rename text files to have .txt extension, etc
update references to changed filenames
This commit is contained in:
@@ -0,0 +1,503 @@
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.197 $ $NHDT-Date: 1575173931 2019/12/01 04:18:51 $
|
||||
|
||||
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
|
||||
accept "hidden" as an attribute for wizard mode ^G monster creation; created
|
||||
monsters which can't be seen will have their locations highlighted
|
||||
don't give feedback for monster zapping a wand if a monster plays a fire horn
|
||||
directed at self to burn away slime
|
||||
if hero knows the number of charges in a wand or magical horn and a monster
|
||||
acquires it and zaps/plays it when not in view, remove the hero's
|
||||
memory of the number of charges
|
||||
for wizard mode 'monpolycontrol', allow usually disallowed type 'chameleon',
|
||||
'doppelganger', or 'sandestin' as answer to "change <monster> @ <x,y>
|
||||
into what?" prompt when <monster> is really that type of creature
|
||||
add Space, Return, and Escape to '? k' (help for menu control keys)
|
||||
hero can no longer negotiate a bribe with a demon lord when deaf
|
||||
wishing for "foo amulet" now yields an "amulet of foo" rather than random one
|
||||
code in parse_conf_file() to trim trailing blanks/cr was skipping over them
|
||||
partly eaten food with one bite left had message anomalies when eaten; the
|
||||
usual "you resume your meal" case lacked the "you're finished" message
|
||||
when done; eating something else in between to clobber meal context
|
||||
resulted in no messages at all when restarting and finishing last bite
|
||||
wizard mode ^I menu could list "Not carrying anything" after inventory items
|
||||
if perm_invent option was On (even on tty where that's not supported)
|
||||
wizard mode ^I with 'perm_invent' On would unintentionally filter the content
|
||||
of the persistent inventory window to unIDed items if any item got
|
||||
chosen to be identified (^R would fix it, as would any invent change)
|
||||
change #adjust to treat carrying only gold as not having anything to adjust
|
||||
saving bones with 'perm_invent' On could result in "Bad fruit #N" warnings
|
||||
update persistent inventory window immediately if 'sortpack' option is toggled
|
||||
grammar bit for wizard mode final disclosure; attribute section could show
|
||||
"You had N experience points, 1 more were needed to attain level X+1."
|
||||
if an engulfer has any worn items, hero could pick them up from inside and
|
||||
they wouldn't be unworn properly, eventually triggering warnings or
|
||||
worse (Juiblex will wear an amulet if created with one; a shapechanger
|
||||
might wear one and then turn into an engulfer)
|
||||
kicking an altar ignored god's wrath if hero injured himself during the kick
|
||||
detect unseen/secret door detection/^E failed to find monsters hiding under
|
||||
objects and failed to find monsters hiding at trap locations
|
||||
when farlook describes a monster at a visible spot as trapped, reveal the trap
|
||||
fix theft when poly'd into nymph form; 3.6.2 change made that anger the victim
|
||||
hero poly'd into nymph would steal gold along with other items
|
||||
change wizard mode #panic to require "yes" if 'paranoid_confirm:quit' is set
|
||||
add some additional validation checks when setting up a new timer (triggered
|
||||
by an ancient source comment rather than by any observed problems)
|
||||
if a chaotic monk or wizard gets crowned and is given a spellbook rather than
|
||||
Stormbringer as the crowning gift, don't describe the hero as having
|
||||
been "chosen to steal souls for [Arioch's] glory"
|
||||
for multi-shot shooting by monsters, a typo checked hero's weapon for
|
||||
compatibility with ammo when monster was wielding an elven bow
|
||||
when a boulder was teleported, if it landed in a pit or trap door or hole its
|
||||
former location wasn't updated to show that it wasn't there anymore
|
||||
(noticed in Sokoban but not limited to there)
|
||||
Terry Pratchett tribute, fix typo in passage #4 for Mort ("the" -> "they");
|
||||
also passage #7 for Soul Music ("genious" -> "genius");
|
||||
and passage #11 for The Light Fantastic ("to" -> "do");
|
||||
passage #3 for Eric ("short" -> "sort");
|
||||
passage #10 for Witches Abroad ("was" -> "what")
|
||||
fix typo in end_of_input() present since 3.6.0 that would prevent compilation
|
||||
for NOSAVEONHANGUP+INSURANCE configuration
|
||||
when a status condition becomes fatal, keep it listed as an active condition
|
||||
during disclosure and/or dumplog rather than having it already reset
|
||||
when a shape-shifted sandestin was turned to stone, it died and reverted to
|
||||
sandestin form with 0 HP; that confused known_hitum() because
|
||||
sandestins are immune to stoning; net result was monster dying twice,
|
||||
triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
|
||||
instead of dying, make it revert to sandestin form with full health
|
||||
toggling perm_invent (where supported) while swallowed or underwater didn't
|
||||
necessarily update the persistent inventory window right away
|
||||
have 'O' update persistent inventory window if 'implicit_uncursed',
|
||||
'menucolors', or 'guicolors' (curses) is toggled or if menucolors is
|
||||
On and any menu color patterns are added or removed
|
||||
'O's "set <option> to what?" could be used to force a buffer overflow
|
||||
'O's response to bad 'statuslines' value said "must be 2 and 3" (at one point
|
||||
it was "must be between 2 and 3", change it to "must be 2 or 3")
|
||||
when spellcasting monster aimed at wrong spot due to not being able to see
|
||||
invisible hero, feedback could be erroneous if hero could see self
|
||||
[messages used 'if (Invisible)' test where 'if (Invis)' was meant]
|
||||
prevent impossible when guard tries to relocate a monster on a full level
|
||||
hallucination provides partial protection from passive gaze counterattack
|
||||
against hero's attack; check for that before checking for free action
|
||||
feedback from blessed potion of restore ability never reported "you feel great"
|
||||
due to bad logic for not-unihorn case in unfixable_trouble_count()
|
||||
when rubbing a ring on a touchstone, all types of rings were treated as if
|
||||
they were gems; an iron ring made a cyan streak instead of yielding
|
||||
"scritch, scritch" and a gold ring made a yellow streak rather than
|
||||
a golden scratch
|
||||
zapping self with wand of opening or spell of knock to escape from a trap
|
||||
reported "you're released from <trap>" rather than "from the <trap>"
|
||||
zapping self with wand of opening or spell of knock to escape from a pit trap
|
||||
didn't reset vision limits--only spots adjacent to pit were visible
|
||||
wielded aklys that returned to hero when thrown while inside an engulfer left
|
||||
a stale 'thrownobj' pointer that triggered "add_to_minv: obj not free"
|
||||
panic if same weapon killed any engulfer via melee from inside
|
||||
uarmh null pointer dereference if a helm of opposite alignment came off due
|
||||
to being polymorphed
|
||||
verb tense was inappropriate in some messages when a mon/pet had a name
|
||||
ending in 's'
|
||||
orctown booty items should have been initialized in mksobj()
|
||||
query_category() and whatdoes_help() had early returns which could each leave
|
||||
a temporary window around, which in turn might eventually lead to a
|
||||
panic due to lack of window slots [probably moot for unmodified 3.6.x;
|
||||
the query one couldn't happen unless there is a coding error for
|
||||
object classes somewhere and the help one couldn't happen unless the
|
||||
installed data files left 'keyhelp' missing]
|
||||
ball and chain could end up too far from punished hero (triggering b&c warning
|
||||
for wizard mode with sanity checking active) when crawling out of
|
||||
water failed because dropping stuff left hero overly encumbered and
|
||||
hero was life saved--or player declined to die--if the hero got
|
||||
teleported one step further from ball and chain's current location
|
||||
avoid 'object lost' panic when polymorph causes loss of levitation boots or
|
||||
water walking boots which dumps hero into water where emergency
|
||||
disrobing/dropping in order to crawl out chooses to drop those boots
|
||||
'sortloot's attempt to group musical instruments separately from other tools
|
||||
didn't work as intended due to missing 'break' in sortloot_classify()
|
||||
<shift><letter> running told player about engravings as they were being moved
|
||||
over but buffered output didn't show it until hero stopped, so it
|
||||
wasn't possible to tell where they were, unlike all other forms of
|
||||
multiple movement; so stop running if/when an engraving is reached
|
||||
fix exploding land mine moving ball or chain and causing a sanity error
|
||||
fix firing attached iron ball when swallowed causing a sanity error
|
||||
fix vault guard impossible when he could not relocate in certain situation
|
||||
fix temple priests or shopkeepers moving over other monsters
|
||||
fix hero still hiding under a statue shattered by a land mine
|
||||
fix helping a monster out of a pit addressing a deleted trap
|
||||
fix launched rolling boulder code accessing deleted trap
|
||||
fix monster stepping on a land mine code accessing deleted trap
|
||||
revise 'O' to show symbol sets in the same order they appear in the symbols
|
||||
file and order the sets in dat/symbols to yield a sensible symset menu
|
||||
yellow dragons had green breath
|
||||
partly eaten food in a bones level shop would show a non-zero sale price
|
||||
while on the floor but not be placed on shop bill if picked up;
|
||||
sale price should have been "no charge"
|
||||
when non-empty container is dropped in shop and hero is asked whether to sell,
|
||||
counting the subset of contents owned by hero vs those owned by shk
|
||||
could obtain wrong answer because the container had been placed on
|
||||
the floor but the 'unpaid' and 'no_charge' flags of its contents
|
||||
hadn't been updated yet, they were still set for when it was carried
|
||||
in a shop which doesn't care about tools: You drop a <box> containing 1 item.
|
||||
<Shk> offers you <gold> for your items in your <box>. Sell them?
|
||||
[plural 'items' and 'them' were including the box along with the one
|
||||
item in it even though shk was only offering to buy its contents]
|
||||
grammar correction for "That walking shoes is really a small mimic" when
|
||||
applying a stethoscope
|
||||
mimic immitating a slime mold would change fruit type when player assigned new
|
||||
named fruit
|
||||
parsing for the argument to 'scores' option was sloppy; "3a/o" (slash) and
|
||||
"3a 1o" (space and digit one, not lowercase L) both worked but "3a o"
|
||||
(just space) was supposed to but didn't
|
||||
wizmakemap could leave genocided monsters on map
|
||||
when entering Astral level, initial rendering of guardian angel didn't show
|
||||
it as tame; noticeable if the level was entered with 'hilite_pet' On
|
||||
fix a leashed pet polymorphed into a long worm staying leashed
|
||||
prevent leashing unsolid monsters and monsters with no extremities
|
||||
playing musical instruments gave feedback which ignored deafness
|
||||
some other deafness-related message corrections
|
||||
when dipping into holy/unholy water while blind (where the glow message is
|
||||
suppressed), clear dipped item's bknown flag unless water potion's
|
||||
bless/curse state is known
|
||||
playing music while hallucinating: message misspelled "butterflies"
|
||||
putting on gloves while having slippery fingers transfered slipperiness to
|
||||
those gloves; taking off slippery gloves directly was disallowed but
|
||||
losing them in other ways transfered slipperiness to bare fingers
|
||||
when a monster reads a scroll of fire to cure sliming, don't access that
|
||||
scroll's memory after it has been used up (bcsign)
|
||||
monster vs monster attacks didn't handle shades or silver weapon feedback
|
||||
successful alchemy would show new potion's description (color) even when blind
|
||||
dipping some types of objects into oil would yield "<object> gleams with an
|
||||
oily sheen" even when blind
|
||||
dipping into an undiscovered potion would offer chance to give a name to the
|
||||
potion even when its description wasn't known (picked up while blind)
|
||||
dipping lichen corpse into acid when not blind and acid was undicovered would
|
||||
not offer a chance to give a name to the potion after lichen feedback
|
||||
pluralization improvement for words ending in a k-sound like "biotech"
|
||||
check for whether a monster was entering a region (gas cloud) erroneously
|
||||
depended upon whether or not the hero was inside the same region
|
||||
all Is_*_level tests during early startup would test as true until
|
||||
dungeon_topology was initialized in a new game or restored from
|
||||
a save file
|
||||
|
||||
|
||||
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
|
||||
using ^G to create "hidden mimic" shouldn't have marked it as undetected since
|
||||
mimics 'hide' by appearing to be something else; honor "hidden" for
|
||||
'hides_under' creatures if/when created at location with object(s),
|
||||
also for eels and other fish if/when created at water location
|
||||
for wizard mode 'wizweight' option, glob weight wasn't shown unless glob had
|
||||
shop price information attached
|
||||
fix for feedback when a monster plays a fire horn at self to cure green slime
|
||||
ended up being used for zapping a wand of fire at self too
|
||||
wizard mode ^I "not carrying anything" still claimed "not carrying anything"
|
||||
if "(all items are already identified)" was given
|
||||
monster throwing from stack of missiles (darts, daggers, spears) would cause
|
||||
crash if it wasn't wielding a weapon (bug in multi-shot shooting fix)
|
||||
surviving death while polymorphed would yield "You are a <foo>" without
|
||||
terminating period
|
||||
'mksobj failure' commit resulted in wrong corpse types for dying monsters
|
||||
a recent intended sanity check fix inadvertently bypassed placing a thrown
|
||||
chained ball back onto the floor
|
||||
in symset:curses, symbol S_tree was accidentally set to horizontal line where
|
||||
plus-or-minus sign was meant; also, change S_bars to not-equals sign
|
||||
percentage highlighting for Xp broke up/down/changed highlighting for it;
|
||||
it was flagged as having gone up every time the percentage changed
|
||||
deaf change to zap_over_floor needed to be restricted to player actions only
|
||||
monster vs shade attack inflicted damage despite "passes harmlessly through"
|
||||
fix for feedback from musical instruments played while deaf ignored whistles
|
||||
special map display symbol S_player_override renamed to S_hero_override
|
||||
curses: sometimes the message window would show a blank line after a prompt
|
||||
curses: the change to show map in columns 1..79 instead of 2..80 made the
|
||||
highlight for '@' show up in the wrong place if clipped map had been
|
||||
panned horizontally
|
||||
curses+'perm_invent': menu coloring patterns which match ordinary inventory
|
||||
menu might fail to match persistent inventory window because leading
|
||||
article and space ("a ", "an ", "the ") is stripped off for brevity;
|
||||
perform the pattern matching tests before stripping doname() prefix
|
||||
tty: revert the attempt to fix "message line anomaly: if autodecribe feedback
|
||||
wrapped to second line, the wrapped portion wasn't erased when a
|
||||
shorter line was shown or getpos was dismissed" because it disrupted
|
||||
prompts that spanned more than one line, a more significant issue
|
||||
|
||||
|
||||
Fixes post-beta1
|
||||
------------------------------------------------------------------
|
||||
fix several tribute typos
|
||||
pluralization correction for unlikely epoch and loch
|
||||
ensure that --showpaths displays the personal configuration file last
|
||||
don't strip leading slash from hallucinatory monster name "/b/tard"
|
||||
quaffing unknown potion of see invisible resulted in asking what to call the
|
||||
potion while updated monster display was buffered so not yet shown,
|
||||
hence potentially noticeable effect was concealed from player
|
||||
when Riders use their bargethrough capability, don't let them swap places with
|
||||
something located at a spot where corpses can't be created (their
|
||||
door opening ability was letting them exchange places with something
|
||||
co-located with a closed door without opening it; if killed there,
|
||||
there'd be no corpse so no auto-revive)
|
||||
putting on levitation boots while on sink would crash when attempting to set
|
||||
the enchantment known flag on Null 'uarmf' pointer
|
||||
look-at of mimics mimicking altars got an arbitary alignment from misuse of
|
||||
underlying terrain
|
||||
polymorph_sink creating an altar passed a call to rn2() as an argument to a
|
||||
macro which evaluates its parameter more than once
|
||||
if a monster (presumably sensed but not seen) was displayed at a location
|
||||
showing "remembered, unseen monster", remove that since hero now knows
|
||||
something else is there (3.6.1 had similar fix for warned-of monsters)
|
||||
clairvoyance showed all monsters in range, then after player viewed the map,
|
||||
replaced them with "remembered, unseen monster" glyph and finally
|
||||
did a normal monster refresh; the 'I' glyph step clobbers remembered
|
||||
object at same spot, so skip it for locations where monster refresh
|
||||
is going to immediately redisplay a monster
|
||||
take holes that you avoided into consideration when you're on the brink
|
||||
update window port spec to include a color-availability table that the window
|
||||
port can set; merge all has_color() implementations into one central
|
||||
function in src/windows.c which uses a few data checks only and
|
||||
elminates multiple string function calls for each map cell update
|
||||
that were being done in some cases previously
|
||||
taking off a fedora or dented pot (no-delay helmets) left the helmet stuck
|
||||
and took off hero's suit
|
||||
unix: fix double DLB definition in linux hints file
|
||||
windows: fix --showpaths output for the data file which relies on being
|
||||
constructed programmatically to incorporate the version suffix
|
||||
windows+tty: add code to make keypad support for swap_yz behave (currently
|
||||
commented out in include/ntconf.h)
|
||||
windows: fix self-recover user prompting (tty, curses, mswin)
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific Fixes or Features
|
||||
-----------------------------------------------------
|
||||
EDIT_GETLIN: wizard mode 'monpolycontrol' was using the getlin() answer buffer
|
||||
to format the coordinate portion of the "change <monster> @ <x,y> into
|
||||
what kind of monster?" prompt, resulting in "<x,y>" as default answer
|
||||
EDIT_GETLIN: when naming an object or a monster use the existing name, if
|
||||
there is one, as the default answer
|
||||
EDIT_GETLIN: using 'O' to set message types or menu colors was overloading the
|
||||
answer buffer with other stuff, resulting in bogus default response
|
||||
during repeat prompting
|
||||
EDIT_GETLIN: for paranoid confirmation, if answer was neither "yes" nor "no",
|
||||
don't supply the rejected answer as the default when retrying
|
||||
USE_FCNTL: nethack wasn't closing lock file 'perm'
|
||||
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 most recent message and
|
||||
the oldest available N-1 messages rather than next to most recent N-1.
|
||||
[Still room for improvement when short lines are combined or long
|
||||
ones are wrapped, where it still shows a subset of N original lines.]
|
||||
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
|
||||
curses: don't convert ^M (or <return> or <enter> key) into ^J; both ^J and ^M
|
||||
indicate end of input when typing a line of text but as nethack
|
||||
commands, ^J means run toward bottom of screen (when number_pad is
|
||||
off) and ^M is not bound to any command, so accidental <return> won't
|
||||
cause the hero to try to move
|
||||
curses: draw map in screen columns 1..79 like tty, rather than in 2..80
|
||||
curses: make text windows wider so that help feedback is more readable
|
||||
curses: using ':' for toggling menu items which match a search string, in a
|
||||
multi-page menu it would highlight arbitrary items on the currently
|
||||
visible page in sync with lines that matched items have on other pages
|
||||
curses: when map window was clipped, position bars shown to indicate which
|
||||
part of the map was in view didn't work as intended, always drawing
|
||||
"*--------------" for horizontal (and comparable '*' with multiple '|'
|
||||
underneath for vertical) when it meant to show "---******------" if
|
||||
the 2nd and 3rd fifths (for example) were currently within view
|
||||
curses: support users's setting for erase char and kill char when getting a
|
||||
line of input with 'popup_dialog' Off (already supported for popup On)
|
||||
curses: support erase char and kill char when choosing an extended command
|
||||
curses: attempting to use ^H to rush left actually executed ^G (#wizgenesis)
|
||||
curses: disable the attempt to support Ctrl+Left_click as an alternate way
|
||||
to generate Right_click for systems with one-button mouse or trackpad;
|
||||
the mouse data passed to nethack didn't match the curses (ncurses on
|
||||
OSX 10.11) documentation and things didn't work as intended
|
||||
curses: menu coloring required that both 'menucolors' and 'guicolor' be On;
|
||||
for menus, ignore 'guicolor' and honor more-specific 'menucolors'
|
||||
curses: support symset:curses and symset:DECgraphics for map display
|
||||
curses: enable the 'use_inverse' boolean option (via wincap WC_INVERSE flag)
|
||||
for extended monster detection and black&white lava; forced to True
|
||||
to override default of False (for tty's benefit)
|
||||
curses: force 'O' command's menus for 'symset' and 'roguesymset' options to
|
||||
be wider so that fewer entries with set descriptions will wrap
|
||||
curses: stop restricting menu width to half the display width
|
||||
curses+'perm_invent': entries were wrapping without any control; usually not
|
||||
noticeable because next entry overwrote, but visible for final entry
|
||||
when whole inventory fit within the available height; looked ok with
|
||||
borders Off but clearly wrong for borders On
|
||||
curses+'perm_invent': if too many entries for window height, last one which
|
||||
fit had the next one appended (including hightlighted selector letter)
|
||||
when window borders were Off
|
||||
curses+'perm_invent': top line was wasted (left blank) when borders Off
|
||||
curses+'perm_invent': don't highlight inventory letters since nothing is
|
||||
selectable from the menu comprising the persistent inventory window
|
||||
curses+'perm_invent': could crash during restore if game was saved while
|
||||
hero was swallowed (invalid u.ustuck pointer; suppressing attempts to
|
||||
update persistent inventory window during restore hides the problem)
|
||||
curses+'popup_dialog': show the text cursor at the end of prompts for single
|
||||
character input
|
||||
curses+DUMPLOG: pass along old messages from save file and quest message
|
||||
summaries to dumplog message history
|
||||
curses+EDIT_GETLIN: when a prompt's answer was preloaded, using ESC to discard
|
||||
it deleted it from the answer buffer but didn't erase it from screen
|
||||
curses+EDIT_GETLIN: the preceding fix handled an answer which spanned more
|
||||
than one line but didn't remove the answer properly if the prompt
|
||||
portion of prompt+answer spanned more than one line
|
||||
msdos: code fixes to allow a build with curses and PDCurses
|
||||
msdos: added Makefile1.cross (host portion) and Makefile2.cross (target
|
||||
platform portion) to assist in moving this port toward a cross-compiled
|
||||
build hosted on linux/OSX/Windows with recent C dialect support; that
|
||||
will also pave the way for CI automation and testing of the msdos port
|
||||
build in future should the port remain on the radar; currently only
|
||||
useful for testing the msdos port compile as it cannot yet build a
|
||||
complete game
|
||||
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
|
||||
tty: take two, if/when autodecribe feedback wraps past top line, clear
|
||||
continuation lines and redraw map if needed when top line is cleared
|
||||
['exposed by git' section has an entry for reversal of 'take one']
|
||||
tty: video attributes (bold, inverse, &c) for status highlighting sometimes
|
||||
were scrambled
|
||||
unix: sysconf CHECK_PLNAME=1 wouldn't work if attempt to obtain unix username
|
||||
failed even though it didn't need that to check player character name
|
||||
unix+curses: startup error only reset terminal for tty; one noticeable
|
||||
example was answering 'n' to "Destroy old game?"
|
||||
vms: update install.com to include overlooked file bigrm-10.lev in nh-data.dlb
|
||||
Windows: some startup error messages were not being delivered successfully
|
||||
WindowsGUI: player selection dialog box layout was not being adjusted for DPI
|
||||
Windows: significant changes to default directory choices; see documentation
|
||||
for details
|
||||
|
||||
|
||||
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
|
||||
'attributes' disclosure at end of game includes number of experience points
|
||||
that were needed to reach the next experience level (new for normal
|
||||
play and explore mode; previously only shown for wizard mode)
|
||||
report Friday-13th/phase-of-moon/time-of-day for ^X and final disclosure when
|
||||
their values matter to game play (date and moon are from the start of
|
||||
current session and are not dynamically updated as real time elapses;
|
||||
night is a fixed range of hours using the computer's conception of
|
||||
local time which could differ from player's if there are time zone or
|
||||
system clock issues or simply seasonal variation based on latitude;
|
||||
not new but needs to be documented somewhere other than spoilers...)
|
||||
status highlighting using percentage rules now supported for experience level
|
||||
and experience points; for both, percent is based on Exp progress from
|
||||
the start of the current Xp level to the start of the next Xp level;
|
||||
100% isn't possible so used as special case for next_Xp_lvl - 1 Exp_pt
|
||||
wizard-mode: display effect to show where an unseen wished-for monster landed
|
||||
for 'O's symset and roguesymset menus, mark current symbol set as preselected
|
||||
curses: enable latent mouse support
|
||||
curses: give menus and text windows a minimum size of 5x25 since tiny ones can
|
||||
sometimes be overlooked when shown over old messages rather than map
|
||||
curses+'perm_invent': since persistent inventory is narrow, strip off "a",
|
||||
"an", or "the" prefix on inventory entries shown there so that a tiny
|
||||
bit more of the interesting portion is visible
|
||||
curses+'curses': change the curses map display to use new symbol set 'curses'
|
||||
instead of hard-coded values; it attempts to show IBMgraphics-style
|
||||
map using DECgraphics characters; DECgraphics can also be used as-is
|
||||
fulfill a request from a blind player to have a unique overriding SYMBOL for
|
||||
pets and for the player
|
||||
ROGUESYMBOLS can be overridden in config files like SYMBOLS can
|
||||
in symset:DECgraphics, set S_altar to 'pi' (was default '_'), S_bars to
|
||||
not-equals sign (was 'pi')
|
||||
|
||||
|
||||
NetHack Community Patches (or Variation) Included
|
||||
-------------------------------------------------
|
||||
add a couple of engraving suggestions in pull request #79
|
||||
chasonr's faster method to write characters to msdos VGA in pull request #220
|
||||
chasonr's msdos Makefile.gcc pdcurses build changes in pull request #243
|
||||
autopickup exception priority change in pull request #226
|
||||
FIQ's curses (PDCurses) number pad changes in pull request #247
|
||||
|
||||
|
||||
Code Cleanup and Reorganization
|
||||
-------------------------------
|
||||
began to add some function caller BREADCRUMBS to aid debugging
|
||||
flag existing occurrences of "You hear" as "Deaf-aware" to aid in
|
||||
future maintenance
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user