Instead of an additional options file directive to end the last section of a CHOOSE directive, simplify by using an empty-name section, [], instead. So ... CHOOSE one,two [one] ... [two] ... [] ... As with the short-lived END-CHOOSE directive, if no [] is present then the rest of the file is part of the last choice.
556 lines
34 KiB
Plaintext
556 lines
34 KiB
Plaintext
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.276 $ $NHDT-Date: 1596785361 2020/08/07 07:29:21 $
|
|
|
|
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
|
|
[later: or arrows, bolts, and missiles (darts, shuriken, boomerangs)]
|
|
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
|
|
revamp amnesia to forget skills instead of objects or maps
|
|
when Punished and carrying the iron ball and levitating, hurtling in the
|
|
opposite direction of a thrown object didn't bring along the chain
|
|
recognize "kirin" as alias for "ki-rin" when asked to create a monster
|
|
make unique swallowing monsters (Juiblex) resist magical digging from inside
|
|
correctly account for fuel remaining when lit candles are attached
|
|
to candelabrum (the previous code would make the game unwinnable if
|
|
there were 15 or fewer turns remaining)
|
|
praying on an unaligned altar outside of Gehennom behaved like an ordinary
|
|
prayer; make that always fail
|
|
Discworld typo: Moving Pictures passage 12 "or" -> "of"
|
|
unicorn corpses and wraith corpses could be sacrificed even if "too old"
|
|
hero polymorphed into a hider and hiding was not unhidden when teleporting
|
|
impose tighter restraints on 'summon nasties', both for spellcasting monsters
|
|
and post-Wizard harassment
|
|
prevent swallowing monster ending up in a solid wall if it killed vault guard
|
|
fix attached ball getting deallocated if swallowed, going down into a pit,
|
|
and saving
|
|
level compiler creates correct novel with supplied name
|
|
for farlook, describe water in the castle moat and in Juiblex's swamp as moat
|
|
and as swamp, respectively, rather than just as "water"
|
|
make hezrous emit poison clouds when they move
|
|
stepping from one type of terrain to another was triggering an unnecessary
|
|
status update
|
|
make shriekers summon baby purple worms if purple worms would be too tough
|
|
make non-tame (baby) purple worms eat corpses off the ground
|
|
make baby purple worms attack shriekers
|
|
make hero polymorphed into baby purple worm warned against shriekers
|
|
confused scroll of light summons tame cancelled lights
|
|
potions of hallucination can give enlightenment
|
|
add a small chance of surviving food poisoning
|
|
deliberate level teleporter activation ignores magic resistance
|
|
auto-id scroll of remove curse when a known buc-state was changed
|
|
demon lords hate Demonbane
|
|
pets avoid eating shapeshifter corpses unless starving or nearly feral
|
|
blessed scroll of teleportation gives a single controlled teleport
|
|
allow opening a tin without interruption if slimed
|
|
tell player when wielding a different weapon toggles off dual-wielding
|
|
object taking erosion damage might give feedback message when out of view
|
|
or not give such when in view, depending on stale value of 'bhitpos'
|
|
[cited case assumed message came from drowned monster's dropped
|
|
inventory when out-of-view ice melted]
|
|
it's possible to wish for tins of the Riders in wizard mode; eating one is
|
|
fatal but if you're life-saved or decline to die, the game crashed
|
|
revival via undead turning of corpse carried by hero said "your <mon> corpse
|
|
comes alive" even when revived monster was undead
|
|
prevent searching or waiting next to a hostile monster - override with 'm'
|
|
allow random mimics to show up mimicing more furniture than just stairs
|
|
scatter exploding bag of holding contents instead of outright deleting them
|
|
male hero poly'd into nymph chooses charm vs seduce message based on being
|
|
male rather than on all nymphs being female but charm message was
|
|
using hardcoded pronouns She,her for target monster--wrong for male
|
|
target and noticable if "<mon> finishes taking off his suit" is given
|
|
hostile monsters with launcher and ammo try to stay away from melee range
|
|
allow displacing peaceful creatures
|
|
unicorn horns don't restore attribute loss anymore
|
|
when a shop is changed from food to health food, change room type to match
|
|
wish parsing of things containing monster names would accept all supported
|
|
alternate spellings if they occurred at the end ("corpse of mumakil")
|
|
but only some when they occurred elsewhere ("gray-elf corpse" worked,
|
|
"mumakil corpse" yielded "does not exist") depending upon name length
|
|
couldn't wish for werecreature corpse or tin because monster name lookup
|
|
always matched the beast form which is flagged no-corpse; switch to
|
|
human form for "were<creature>"
|
|
wishing for werecreature figurine always made one that created the monster in
|
|
beast form if activated; allow "human were<creature>" to explicitly
|
|
specify werecreature's human form (for corpses and tins as well as
|
|
figurines); override the restriction against human figurines for that
|
|
wishing for "royal jelly" yielded "lump of royal jelly" as a special case, but
|
|
other 'of' items such as "clove of garlic", "sprig of wolfsbane", or
|
|
"piece of cloth" didn't allow using their post-of words as shorthand
|
|
monster or object detection found semi-dead vault guard at <0,0> while
|
|
traversing fmon list; monster detection gave misleading feedback
|
|
(blank map instead of 'strange feeling') if there were no other
|
|
monsters on level; likewise object detection and guard's minvent
|
|
squadprob[] in mkroom.c was defined with 5 elements but initialized only 4
|
|
resulting in giant ants sometimes
|
|
allow nurses heal attack when wielding a non-weapon/weaptool
|
|
if riding or levitating, hero could apply bullwhip downward to pull up things
|
|
from underwater or lava; feedback implied the item was on the surface
|
|
some monster code was checking whether pets or engulfers were eating green
|
|
slime by checking for green slime corpse instead of glob
|
|
change light radius of stack of candles to square root
|
|
could get redundate "mon hits other-mon" messages when mon wields an artifact
|
|
failed untrap while mounted that moved hero onto the trap would leave steed
|
|
with stale coordinates, triggering warnings if 'sanity_check' is On
|
|
when digging a pit results in it being filled by adjacent pool or lava, any
|
|
objects at the spot weren't subjected to water or fire damage;
|
|
also, riding hero's steed wasn't subjected to immersion either
|
|
after "double trouble", cloned Wizard would wait until he had suffered some
|
|
damage or hero moved into direct view; keep STRAT_WAIT for original
|
|
Wizard but avoid that for clones
|
|
beyond turn 100000, prayer timeout is longer (scaling with game length)
|
|
falling while going down stairs and dropping items due to encumbrance or
|
|
punishment wasn't subjecting fragile ones to breakage
|
|
objects scattered by an explosion which land on water or lava weren't affected
|
|
by the water or lava
|
|
hold_another_object (for wishing, horn of plenty, theft while poly'd, other
|
|
non-pickup actions giving hero another inventory item) wasn't
|
|
reporting change in encumbrance; that would catch up on next turn but
|
|
could be off during additional move(s) for current turn
|
|
hold_another_object added item to inventory first, then maybe removed and
|
|
dropped it, resulting in spurious add and remove perm_invent updates
|
|
hold_another_object used hardcoded Stressed to limit carrying instead of
|
|
using the 'pickup_burden' option for that
|
|
when hold_another_object fails while hero is swallowed, drop the item into
|
|
swallower's inventory instead of onto the floor
|
|
change mkclass() to usually honor (always honor for L class) the hell-only and
|
|
never-in-hell monster creation flags; no more achi-lich in the Castle
|
|
(nor master lich there unless demilich gets a potion of gain level)
|
|
thieving monster could be killed while hero was removing armor, triggering
|
|
warning "stealarm(): dead monster stealing" when taking-off finished
|
|
petrifying a long worm and then reanimating it handled tail incorrectly;
|
|
with sanity_check On, X coordinate of head segment was reported as 0
|
|
attempting to read a novel while blind reported "you can't read the mystic
|
|
runes" like for a spellbook; use "you can't read the words" for novel
|
|
don't let life draining reduce a monster's max HP below its level + 1
|
|
report "<Mon> expires" rather than "<Mon> dies" if polymorphed hero kills a
|
|
non-living monster (golem, vortex) with life drain (vampire bite)
|
|
allow hero in silver-hating form to ring the silver bell but only if on/over
|
|
the vibrating square
|
|
reading the Book of the Dead while blind is allowed; doing so gives
|
|
"you turn the pages of the Book of the Dead" and the type of item
|
|
becomes discovered, but the object wasn't being flagged as 'dknown'
|
|
so if not seen yet it remained "a spellbook" in hero's inventory
|
|
reading cursed Book of the Dead while blind gave feedback for sighted hero
|
|
reading non-cursed Book of the Dead after prepping with the other tools gave
|
|
a message referring to those as "artifacts" if either of them were
|
|
cursed; those unique items aren't artifacts so use "relics" instead
|
|
zapping a line of boulders with striking or force bolt was updating 'couldsee'
|
|
but deferring 'cansee', resulting in seeing the first boulder fracture
|
|
and only hearing that happen for the others despite coming into view
|
|
the default engraving, epitaph, and bogus monster inserted by 'makedefs -s'
|
|
(3.6.6 fix for empty source data file) lacked terminating newline, so
|
|
when the corresponding file wasn't actually empty its first line ended
|
|
up concatenated; default portion of the bad combined entry would be
|
|
decrypted properly but the portion from the file's first line wouldn't
|
|
if the Wizard of Yendor fled up the stairs on level 1, the game would behave
|
|
as if he was still in play, but he wouldn't be on migrating monsters
|
|
list so couldn't be brought back and wouldn't appear on Plane of Earth
|
|
(stale non-zero value for context.no_of_wizards)
|
|
if a mind flayer's psychic blast targetted a hidden monster, feedback named
|
|
the monster but it wasn't brought out of hiding
|
|
hero poly'd into a mind flayer who used #monster to emit a psychic blast was
|
|
able to harm mindless monsters with it
|
|
some hero attacks that should have gotten a skill bonus or penalty didn't
|
|
change internal name of "<foo> venom" to "splash of <foo> venom"
|
|
singularize "splashes" to "splash" instead of "splashe"
|
|
treat slinging gems and tossing or slinging stones at unicorns as attacks
|
|
give rot-away timer instead of revive timer to corpses of cancelled trolls
|
|
switch revive timer to rot-away timer if a troll corpse gets cancelled
|
|
uncancel an ice troll if its corpse is put into an ice box; give corpse a
|
|
revive timer if later taken out
|
|
splitting a stack of candy bars gave new wrapper text depending upon the
|
|
obj->o_id value assigned; keep existing text for both halves of stack
|
|
(side-effect: separate candy bars usually won't merge anymore)
|
|
describing tin variety (deep fried, pureed, &c) relied on the 'contents known'
|
|
flag but object identification wasn't setting obj->cknown for tins
|
|
wizard mode #wizintrinsic: setting Levitation wouldn't block Flying as
|
|
intended because the check for that was being made too soon
|
|
chatting to the quest leader in wizard mode with sufficient experience level
|
|
and insufficient piety, player is asked whether alignment should be
|
|
boosted; answering 'n' resulted in being prompted a second time
|
|
|
|
|
|
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
|
|
more sequencing: if wielding Sting or similar and level teleporting to a
|
|
level with different warning effect, the start-glowing or stop-glowing
|
|
message came before the materialize message on the destination level
|
|
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
|
|
creating Mine Town variant 1 (Orcish Town) sometimes complained about being
|
|
unable to place lregion type 1 and failed to have any staircase up
|
|
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
|
|
handle gone portal when going back in quest
|
|
'use_inverse' option was accidentally made Windows-only; change it back to
|
|
being more general; change its default to True
|
|
change inconsistent achievement spelling of "Mine Town" to "Minetown"
|
|
fix crash in water_damage_chain
|
|
teleport feedback "you materialize at another location" was given too soon
|
|
'mention_decore' was repeatedly reporting "you are back on bottom" when
|
|
moving around underwater
|
|
revised 'mention_decor' was describing furniture or ice right before look-here
|
|
described the same thing when stepping onto object(s)
|
|
poison gas clouds located over known but unlit pools were visible as known
|
|
clouds but steam clouds in that situation were not
|
|
after the wish parsing change, wishing for "<something of monster>" or for
|
|
"<monster something>" worked as intended but wishing for "<monster>"
|
|
(where <monster> used the canonical spelling) triggered a crash
|
|
fix new "objects[0] class #1 not in order!" panic if plain 'char' is unsigned
|
|
only generate shop items on solid floor squares
|
|
avoid gcc 10 warning by removing duplicate definition of 'head_engr'
|
|
if a monster removed a corpse from an ice box, the corpse would never rot away
|
|
monster creation on quest levels could make genocided creatures
|
|
enabling wizard mode 'sanity_check' option would complain about invalid mhpmax
|
|
value for level N monsters created with a d8 value of 1 for all N d8's
|
|
disable that extra check because gremlim HP split after cloning triggers it
|
|
some versions of tiles processing (not X11's) complained about the rename of
|
|
"{acid,blinding} venom" to "splash of {acid,blinding} venom"
|
|
wizard mode #timeout changed to show timed Displacement in 'can be timed in
|
|
normal play' section instead of 'timed via #wizintrinsic only' section
|
|
|
|
curses: 'msg_window' option wasn't functional for curses unless the binary
|
|
also included tty support
|
|
tty: redraw unexplored locations as S_unexplored rather than <space> after
|
|
map has been partially overwritten by popup menu or text display
|
|
tty: previous change resulted in remnants of previous level being shown on
|
|
new level after level change when S_unexplored is <space>
|
|
Unix: after lua changes to Makefiles, 'make spotless' for dat subdirectory
|
|
left some generated data files which should have been deleted
|
|
X11: was still initializing map to 'stone' instead of 'unexplored' after they
|
|
became separate glyphs
|
|
X11: for text map without color, add support for black&white ice; draw it in
|
|
inverse video to distinguish from ordinary floor
|
|
|
|
|
|
Platform- and/or Interface-Specific Fixes
|
|
-----------------------------------------
|
|
SYSCF: treat most sysconf directives that have invalid values as warnings
|
|
rather than errors; use a conservative default value and continue
|
|
curses: for vertical status, line up conditions in columns; usually two but
|
|
condense to three per line if the status window isn't tall enough
|
|
[at present, highlighting with inverse video includes trailing spaces
|
|
used to align entries in their columns--that's a feature...]
|
|
msdos: add -DSTATUES_LOOK_LIKE_MONSTERS to Makefile1.cross so the VESA mode
|
|
can display statue glyphs
|
|
Qt: quit if can't load tiles file instead of continuing and then segfaulting
|
|
Qt: use more columns for extended command selection dialog so that the number
|
|
of rows needed doesn't result in some commands being unaccessible
|
|
Qt: suppress wizard mode commands from '#' handling when not in wizard mode
|
|
Qt: organize extended command selection grid by columns instead of by rows
|
|
(first N entries down left column, next N entries down 2nd column, &c)
|
|
Qt: when selecting an extended command by typing its name, support <delete>
|
|
(aka <rubout>) in addition to <backspace> to go back a character
|
|
Qt: switch to fixed-width font for menus
|
|
Qt: don't disable [cancel] button when viewing inventory or other pick-none
|
|
menus; ESC works to dismiss those and [cancel] should be the same
|
|
Qt: bring status conditions up to 3.6 levels but new ones lack pictures
|
|
Qt: fix control key on OSX
|
|
Qt: clicking on the window's Close button brought up a dialog offering
|
|
choices of "Save" and "Cancel"; picking Cancel sent nethack into an
|
|
infinite loop with complaints about Qt's event loop already being
|
|
active; change dialog: offer "Save and exit" or "Quit without saving"
|
|
with no opportunity to try to back out of the Close operation
|
|
Qt: add 3.6 status fields Stone, Slime, Strngl, Deaf, Lev, Fly, Ride
|
|
Qt: add Attributes, Overview, and Annotate to the "Info" pull down menu
|
|
tiles: add indicator of thonged portion to aklys tile
|
|
tty: role and race selection menus weren't filtering out potential choices
|
|
which got excluded by OPTIONS=align:!lawful or !neutral or !chaotic
|
|
Unix: when user name is used as default character name, keep hyphenated value
|
|
intact instead stripping off dash and whatever follows as if that
|
|
specified role/race/&c (worked once upon a time; broken since 3.3.0)
|
|
Unix: add "ec2-user" to the list of user names 'sysconf' classifies as generic
|
|
user_sounds: move the message hook from inside individual window display ports
|
|
to the core where it allows MSGTYP_NOSHOW msgtyp's to still trigger
|
|
sounds to correct a reported github issue; also fixes a past reported
|
|
issue that the curses port on Windows not working with user_sounds
|
|
Windows: update for new status condition fields
|
|
Windows: include commented-out 'PORTABLE_DEVICE_PATHS' in sysconf.template
|
|
X11: substantial overhaul of status display, both 'fancy' and 'tty-style'
|
|
X11: extend fancy status one-turn inverse video status-change highlighting to
|
|
hunger, encumbrance, and conditions
|
|
X11: stop including unused column 0 in the map
|
|
|
|
|
|
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
|
|
include more skill information in ^X output when dual-wielding
|
|
include monk's to-hit penalty for worn suit in the status section of ^X output
|
|
item-using monsters will zap wand of undead turning at corpse-wielding hero
|
|
when the corpse is harmful
|
|
boiling a pool or fountain now creates a temporary cloud of steam
|
|
random themed rooms in the dungeons of doom
|
|
extended achievement and conduct fields for xlogfile
|
|
record amount of gold in hero's possession in xlogfile
|
|
new objects: amulets of flying and guarding
|
|
new monsters: displacer beast ('f') and genetic engineer ('Q')
|
|
make camera flash which reveals previously unseen map features or objects or
|
|
monsters record those on the hero's map; monsters revert to 'unseen'
|
|
boolean options can optionally have the form "name:value" with value taken
|
|
from among "true", "yes", "on", or "false", "no", "off"
|
|
record number of wishes and artifact wishes in xlogfile
|
|
give feedback for '#chat' directed at walls
|
|
add 'Sokoban' conduct, tracking the number of times the special Sokoban rules
|
|
which incur luck penalties have been violated; don't report it
|
|
unless/until Sokoban branch has been entered
|
|
reduce verbosity when a mind flayer attacks a headless monster; when a
|
|
tentacle-to-head attack hits but fails to accomplish anything skip
|
|
remaining attacks (mind flayer has 3, master mind flayer has 5)
|
|
add section marker [] support to run-time config file; CHOOSE section1,section2
|
|
followed by [section1] ... [section2] ... forced all the rest of the
|
|
file to be part of the last section; that still works the same, but []
|
|
can be used to terminate the last section and revert to common options
|
|
for the remainder of the file
|
|
|
|
|
|
Platform- and/or Interface-Specific New Features
|
|
------------------------------------------------
|
|
user_sounds: provide an experimental mechanism for terminal-side sounds similar
|
|
to the method used for vt_tiledata; new option vt_sounddata that also
|
|
requires compile-time definition of TTY_SOUND_ESCCODES (also requires
|
|
terminal-side code external to NetHack to recognize the sequence and
|
|
act on it)
|
|
|
|
|
|
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
|
|
resurrect 'makedefs -m' to be able to derive default mons[].diffculty values
|
|
suitable for assigning to new or changed monsters
|
|
convert obj->oextra->omid from pointer to scalar
|
|
get rid of unused obj->oextra->olong
|
|
relocated unmaintained code to outdated folder, specifically sys/amiga,
|
|
sys/atari, sys/be, sys/mac, sys/os2, sys/wince, win/Qt3, win/gem,
|
|
win/gnome, include/amiconf.h, include/beconf.h, include/def_os2.h,
|
|
include/os2conf.h, include/macconf.h, include/tosconf.h,
|
|
include/wceconf.h
|
|
removed SYSFLAGS conditional code
|
|
removed MFLOPPY conditional code
|
|
get rid of 3.6.1 workaround needed to retain compatibility with 3.6.0 bones
|
|
files after fix for 3.3.0 through 3.6.0 bug for invalid 'bonesid'
|
|
designation in bones of quest levels
|
|
add an additional note to mextra.h and obj.h comments that reminds people to
|
|
appropriately init new fields if they need to initialize to something
|
|
other than zero
|
|
|