Files
nethack/doc/fixes37.0
Pasi Kallinen b0e645a650 Lock castle chest
Just to keep the wand in the chest. Even if the soldiers pick up
the chest, they won't open it, and the wand is better protected.
2020-03-14 21:49:18 +02:00

260 lines
15 KiB
Plaintext

$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.128 $ $NHDT-Date: 1583926845 2020/03/11 11:40:45 $
General Fixes and Modified Features
-----------------------------------
hero polymorphed into a vampire can use #monster to shape-shift rather than
just do a one-shot polymorph into bat/cloud/wolf and shifted vampire
hero can use #monster again to take on another form (randomly chosen
among the shiftable shapes and true vampire form)
adjust bones filename buffer sizes to accommodate suffix
fix internal self-recover to work with recent fields added to checkpoint file
improvements to pronoun usage when hallucinating
function calls made from mapglyph based on dungeon level are now called once
per level
fast hero could have random clairvoyance happen more than once on same turn
using 'Q' on wielded weapon would offer to split stack; make using 'w' on a
quivered stack behave similarly
weight for giant spider was too low for creature of size 'large';
weight for giant beetle was much too low for 'large'
leave some menu items out of "invert all" via '@' when their inclusion would
degrade the usefulness of that interface feature
change crysknife from mineral to bone and worm tooth from unspecified to bone
worn meat ring shouldn't cause increased hunger; neither should fake Amulet
worn +0 ring of protection should cause increased hunger if it is the only
source of extrinsic Protection
monster wielding Stormbringer or healer's Staff against another monster would
heal the hero instead of the wielding monster when draining life
change twoweapon feedback from "not a weapon" to "not a suitable weapon"
don't allow twoweapon combat if either weapon is a bow, crossbow, or sling
drum of earthquake feedback reported various things (fountains, thrones, &c)
falling into a chasm but they remained intact because trap creation
had been changed to not clobber such things (so couldn't make pits)
make earthquake which hits a secret door or a secret corridor reveal it
wizard mode wishing for "Amulet of Yendor" had 50:50 chance for true Amulet
or a cheap plastic imitation; recognize "real Amulet of Yendor" and
"fake Amulet of Yendor" to precisely specify either of them but also
take away the 50% chance of yielding a fake one when neither real nor
fake is specified
unpaid globs showed weight info unconditionally outside of wizmode
walking out of tethered-to-buried-object trap condition was supposed to
reinstate punishment but wasn't finding the buried iron ball because
the trap condition was cleared first to indicate escape; result was
attached chain that got dragged around but had no ball attached
when poly'd into a giant and moving onto a boulder's spot, message given was
confused about whether autopickup would occur so could be misleading
random role selection wasn't honoring unwanted alignment(s) properly
if at the edge of the map window, trying to move farther fails but used a turn
hero can no longer wear blindfold/towel/lenses when poly'd into headless form
revamp achievement tracking for exploring Mine's End and Sokoban (by acquiring
luckstone and bag of holding or amulet of reflection, respectively)
throttle long worm growth rate and HP accumulation
poly'd hero was able to zap wands, apply tools, and #rub objects without
having any hands
spellcasting monster got an extra move after casting
allow defining #wizgenesis quantity in the prompt
digging through iron bars from an adjacent pit made a pit on top of the bars
give feedback if controlled level teleport attempt fails because hero is
already on the bottom level and player tries to go even deeper
unseen pet that drowned didn't give "you have a sad feeling" message
prevent ravens from blinding other ravens: /corvus oculum corvi non eruit/
have ^X provide more information when held or swallowed
display wasn't updating immediately after toggling hilite_pet option
randomly choosing role could lead to crash via segfault
if eel bite attack caused hero to move (killed + rehumanized + crawled out
of water), its grab attack could succeed even if no longer adjacent
specifying a count when picking [part of] a stack of scrolls of scare monster
ignored that count and the whole stack was affected
wizmakemap didn't account for unique monsters and didn't correct monster
birth counts
generate objects (eg. statues) with genocided or extinct monster classes
in special levels, if requested
if the orc-town version of mine town has been loaded, creation of orc zombies
or orc mummies would name them as part of the town raiding orc clan
when punished, involuntarily teleporting and landing within chain range of
attached ball while encumbered worse than burdened could trigger
"remove_object: obj not on floor" panic on hero's next move
inventory cursing caused by "this water's no good" effect when drinking from
a fountain didn't update persistent inventory window
fix priest created inside temple wall
fix vault guard occasionally encasing monsters in stone
tone down scare monster by excluding humans and uniques
lock the castle chest
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
------------------------------------------------------------------
fix compile when DLB isn't defined
urealtime.realtime was being incorrectly calculated
revised "mysterious force" when climbing out of gehennom could generate
warnings about "rn2(0) attempted" or "rn2(-n) attempted"
after 'w' on split stack patch, wielding '-' would cause an object_lost panic
same patch allowed partial stack from getobj to replace cursed wielded weapon
autounlock of door or chest took no time; chest case depended on whether
anything got looted along with the unlocking
autounlock with artifact unlocking tool didn't do touch check on that tool
autounlock picked Rogue's artifact key over lock-pick or credit card (or
ordinary key depending upon invent order) even for non-rogues who
would be blasted when touching it
wielded aklys had its "(tethered weapon...)" description scrambled
randomized trap name could pick trap #0 which isn't a trap and yielded "water"
if running and Blind or Stunned or Fumbling or Dex < 10, encountering a closed
door orthogonally would keep reporting "ouch! you bump into a door"
repeatedly until eventually interrupted by approaching monster or
hunger or ^C
data.base lookup of an entry with any blank lines would falsely claim that
"'data' file in wrong fromat or corrupted" after some extra checks
were added while investigating tab handling anomalies
using nhl_error() to report a Lua processing problem would clobber the stack
level teleporation's "You materialize on a different level!" could be given
out of sequence with other arrival messages
creating Mine Town variant 1 (Orcish Town) sometimes complained about being
unable to place lregion type 1 and failed to have any staircase up
prevent "you materialize on a different level" after "a mysterious force
prevents you from descending" if you try to level teleport past the
stairs down from the quest home level before being granted access
set g.context.botl for glove and wielding actions that could start or end
bare-handedness in support of condtests[bl_bareh]
reinstate ranked ordering of the status condition fields
grammar for messages about a monster removing items from a container was bad
some new status conditions didn't always update when they should
fix flipping non-existent stairs and ladders (github #311)
fix door created into random wall or position opening into solid wall
Platform- and/or Interface-Specific Fixes
-----------------------------------------
msdos: Add -DSTATUES_LOOK_LIKE_MONSTERS to Makefile1.cross so the VESA mode
can display statue glyphs.
tty: role and race selection menus weren't filtering out potential choices
which got excluded by OPTIONS=align:!lawful or !neutral or !chaotic
windows: update for new status condition fields
X11: substantial overhaul of status display, both 'fancy' and 'tty-style'
General New Features
--------------------
if a killer bee encounters a lump of royal jelly and there is no queen bee on
the level, the bee will eat the jelly and become a new queen
automatic annotation "gateway to Moloch's Sanctum" for vibrating square level
once that square's location becomes known (found or magic mapped);
goes away once sanctum temple is found (entered or high altar mapped)
savefile: add support to deconstruct internal data structures down into their
individual fields and save those fields instead of the entire struct
savefile: use little-endian format for fields where that makes a difference
replace build-time level compiler and dungeon compiler with run-time loading of
the dungeon and level descriptions and interpreting them via Lua
split off some of the functionality that was in makedefs (compiled-in options
build date/time, etc) so that it can be built by a cross-compiler
and accessed on the target platform
replace quest.txt and associated conversion to quest.dat via makedefs with
Lua quest texts loaded at runtime
some altars are displayed in different colors (for tty and curses at least)
add 'quick_farsight' option to provide some control over random clairvoyance
where pausing to be able to browse temporarily visible aspects of the
revealed map can seem intrusive; doesn't affect clairvoyance spell
replace "money" in in-game texts with "gold"
when hallucinating, see hallucinated currencies instead of bits for an ale
when hallucinating, see hallucinated liquids when looking at water or lava
on the map
applying a spellbook hints about read charges left
wizard mode wishing for level topology can now create hidden doors (ask for
"secret door" when at a door or wall location), hidden corridor
spots ("secret corridor" at a corridor location), and clouds
tiny chance for randomly created spellbooks to be Discworld novels instead
of having only one in the first book or scroll shop created (won't
occur in hero's initial inventory or NPC priest inventory or be
bestowed as a prayer boon or be found in statues)
'goldX', 'implicit_uncursed', and 'mention_walls' options changed to be
persistent across save/restore
wearing a wet towel confers "half damage from poison gas" attribute
for end of game disclosure and dumplog, show 'achievements' (previously only
available as an encoded value in xlogfile) along with 'conduct'
more grades of self-appearance than beautiful or handsome vs ugly
when 'color' if Off and 'use_inverse' is On, draw ice on the map in inverse
video if it uses the same character as room floor or as dark floor
new 'mention_decor' option; when On, describe dungeon features being stepped
on or floated/flown over even when they're not covered by objects
applying royal jelly on an egg kills, revives, or changes the egg
intelligent monsters pick up and rummage through containers
toggling 'travel' option Off now only inhibits travel by mouse click, not by
'_' command where choosing the destination provides a chance to cancel
different glyphs and symbols for stone and unexplored areas
new glyph GLYPH_NOTHING was added so !dark_room has something to be set to
now that stone could be mapped to an entirely different symbol
added several new status conditions all of which are opt-in except
the new cond_grab and cond_lava which are opt-out
tipping your cap might get a response
special levels can be flipped horizontally and/or vertically
new special level initialization routine, "swamp"
demon lords and princes suppress teleporting in Gehennom
for !fixinv option where inventory letters normally don't stick, try to put
a throw-and-return weapon back into the same inventory slot it gets
thrown from; only works if it does return and is successfully caught
wizard mode #wizborn command
Platform- and/or Interface-Specific New Features
------------------------------------------------
NetHack Community Patches (or Variation) Included
-------------------------------------------------
hallucinatory trap names from github pull request #174
autounlock feature originally from unnethack in github pull request #228
replace "You feel cold" message for freezing unseen door (github #265)
applying a candelabrum with no candles gives a tip (github #265)
candelabrum now reads "(n of 7 candles attached)" (github #265)
show appropriate message on throne when crowned (github #265)
choir chanting, bathing in darkness for death by Moloch (github #265)
remove "iron hook" unidentified description (github #265)
suppress "Unknown command" messages in the dumplog. (github #265)
give player message informing them they can use #enhance (github #265)
neutral sacrifices disappear in a cloud of smoke (github #265)
call potion bottles by nonsensical names if hallucinating (github #265)
add a default message for chatting to gnomes (github #265)
better reporting directions for impossible() (github #265)
underwater fire scroll causes vaporization (github #265)
default shk sell prompt to N (github #265)
teach non-mindless monsters about the Castle trapdoors (github #265)
always print a message when the hero teleports (github #265)
always print a message when the hero level teleports (github #265)
remove Sokoban luck penalties for actions you can't cheat with (github #260)
sounds for minotaurs (github #298)
correct the Guidebook descriptions for msdos video_width and video_height to
state that they work with video:vesa; the video:vga setting that was
described there forces the 640x480x16 mode where video_width and
video_height don't operate (github #294)
redo rndmonst() to operate in a single pass (github pull request #286)
Code Cleanup and Reorganization
-------------------------------
new core file insight.c - move enlightenment and conduct from cmd.c to it,
also move vanquished, genocided, and extinct monsters from end.c,
and move one-line stethoscope/probing feedback from priest.c
move majority of global variables into instance_globals struct g
move zeroobj, zeromonst, zeroany into const_globals struct cg
remove STATIC_DCL, STATIC_OVL, STATIC_VAR, STATIC_PTR
old Qt moved from win/Qt to win/Qt3 and files renamed to use qt3_ prefix
more current Qt for Qt version 4 and 5 moved from win/Qt4 to win/Qt; qt4
moniker changed to qt_
window-port-interface: add_menu() modified to take a more general itemflags
parameter to support uses beyond just 'preselected'
window-port-interface: start_menu() modified to take a new mbehavior parameter
add some bounds checking to tabexpand (doesn't prevent the apparent compiler
optimization bug that put homebrew OSX executable into endless loop)
unified breamm and breamu
added some stair helper functions
unified the code for finding a queen bee
unified the code for multishot class bonus code
unified the code for obtaining the inventory letter value for sortloot
unified the code for (un)locking boxes in inventory
unified the code for finding room pos for some features
unified the code for revealing hiding monsters for mvm attacks
options overhaul: moved the option definitions into include/optlist.h;
combined the boolean and compound options into one allopt[] array;
each option has its own individual function for setting the option,
for retrieving the option value, and for processing the option
following its selection in the 'O' menu, added doc/options.doc file.
function reglyph_darkroom() relocated from options.c to display.c