Change the post-3.4.3 extended command "#terrain" so that it can be
used in normal play rather than just in wizard mode. It's inspired by
a command in 'crawl' that lets you view the bare map without monsters,
objects, and traps so that you can see the floor at locations which have
been covered up by those things.
normal play
redraw map to show the known portion of it without displaying
monsters, objects, or traps; after player responds to --More--, the
map returns to normal.
explore mode
put up a menu so player can choose between the known portion of
the map as above or the full map. If the level isn't fully explored
then the latter provides information to the player that he hasn't
earned yet, but the _hero_ doesn't learn anything and after --More--
the map reverts to what it showed before. (In other words, unlike
with magic mapping, the unknown portion doesn't become known.)
wizard mode
put up a menu so player can choose among four alternatives: the
two above, the text representation of the map's internal levl[][].typ
codes, or a legend explaining those codes. (Originally, I wanted to
be able to toggle back and forth between these last two, but looking
at one and dismissing it, then reissuing #terrain to look at the
other is much simpler to implement and is good enough.)
585 lines
36 KiB
Plaintext
585 lines
36 KiB
Plaintext
$RCSfile$ $Revision$ $Date$
|
|
|
|
General Fixes and Modified Features
|
|
-----------------------------------
|
|
change the dreaded "Stop eating?" to "Continue eating?" with default "no"
|
|
setmangry should not be called when a monster enters a bones region
|
|
bad capitalization of msg when charging for something that catches light
|
|
missing opthelp for use_inverse
|
|
Never say "It moves only reluctantly"
|
|
expert fireball/cone of cold could not target a monster seen only with
|
|
infravision or ESP
|
|
display "lotus juice", not "lotu juice" for the fruit juice name
|
|
only humanoid angelic minions should get/use sword and armor
|
|
paper, straw and wood golems resist cold
|
|
the options lootabc, showrace, travelcmd, and runmode are now saved
|
|
use mons[] array offsets in mnum field in save file rather than storing
|
|
the ptr and calculating the distance from beginning of array
|
|
two-weapon combat makes two attacks instead of having one attack hit with
|
|
each weapon
|
|
apply weapon skill to-hit bonus or penalty to bare-handed attacks
|
|
only give monk's "cumbersome armor" message when the armor penalty causes
|
|
an attack to miss
|
|
dust vortex-induced blindness should kick in immediately when blindfold
|
|
is removed or glop is wiped off
|
|
prayer/unicorn-horn won't fix blindness while still engulfed in a dust
|
|
vortex since it will just return immediately
|
|
being confused and reading cursed scroll of charging drains your energy
|
|
class genocide recognizes species name as an example of the class to
|
|
genocide (Martin Snyder)
|
|
internals: use Is_box rather than explicitly checking what it checks
|
|
fix some unreachable messages (either make then reachable or remove them)
|
|
can quiver coins when GOLDOBJ is defined
|
|
make #loot behave same for GOLDOBJ as for !GOLDOBJ
|
|
for GOLDOBJ, can pick gold up into $ when all 52 letters are in use, and
|
|
can pick non-gold up into unused letter when gold uses one of 52 slots
|
|
grammar, spelling and other typos
|
|
keep various delayed killers separate to avoid mixed up messages
|
|
don't place randomly-placed aquatic monsters in lava on special levels
|
|
hiding monsters don't hide under cockatrice/chickatrice corpses
|
|
"sound" option renamed to "acoustics"
|
|
deafness now a full-fledged attribute
|
|
water should flow into pits from broken wand of digging and drum of earthquake
|
|
objects that fall thru trapdoors, et al, can break on impact
|
|
support engraving in blood in special level files
|
|
many instances of physical damage were not taking Half_physical_damage
|
|
into account when reducing your hitpoints
|
|
make it possible for the code to recognize your starting pet throughout the
|
|
game via is_starting_pet(mon) macro
|
|
healers notice when a wand of undead turning revives a monster so the
|
|
wand is then identified
|
|
update display if bestowed a spellbook while unable to see invisible self
|
|
use small pool of static buffers for mon_nam() and Monnam()
|
|
Acknowledge Schroedinger's cat at end of game
|
|
grammar fixes for applying stethoscope to corpses and statues
|
|
player polymorphed as a ceiling hider cannot reach the floor, but
|
|
automatically unhide on #sit
|
|
trappers do not hide on the ceiling
|
|
non-magical whistles do not work underwater
|
|
try to restrict whistles and musical instruments to monsters that can blow
|
|
thrown potions can sometimes hit a steed's saddle
|
|
sync default documentation of "null" option with the code
|
|
tripping over a cockatrice corpse didn't petrify, even when not wearing boots
|
|
do not call swamps on the Juiblex level "moat" when freezing or drowning;
|
|
likewise for Plane of Water when drowning
|
|
keep score from wrapping around and becoming negative by capping it
|
|
kicked objects do not slide when on the air or water levels
|
|
when a giant carrying a boulder dies in a pit, ensure that the corpse is
|
|
buried under the filled pit
|
|
when blind and levitating > shouldn't say "stairs" if player has not seen them
|
|
a slow-moving monster hidden under a rotting corpse was not immediately
|
|
displayed when the corpse rotted away
|
|
mimic that ends up on the rogue level should not mimic a closed door
|
|
mimic should not mimic a boulder while on a pit or hole or closed door
|
|
reviving invisible troll could appear visible until it moves
|
|
adjust some of the shop repair messages
|
|
charge for reviving a shop owned corpse or reanimating a shop owned statue
|
|
filled trap doors on castle can be re-dug
|
|
message order when swapping places with a pet (e.g. into a trap), also use
|
|
different term instead of "displace"
|
|
flyers can get out of pits more easily than non-flyers
|
|
allow use of the < command to try to exit a pit
|
|
clean up messages when you stop levitation while riding a flying steed
|
|
account for all attacks when determining max_passive_dmg
|
|
dipping in acid can erode the dipped object
|
|
various actions--such as enchanting--performed on an unpaid shop object
|
|
either force the hero to buy the item (when its value is lowered) or
|
|
increase the current bill (when its value is raised)
|
|
adjust health threshold where wounded hero will be healed by successful prayer
|
|
prevent lose-level+regain-level cycle from arbritrarily boosting HP and Pw
|
|
prevent polymorphing into "new man" at low level from magnifying HP and Pw
|
|
losing a level while polymorphed affects hero's current monster HP as well as
|
|
underlying normal HP
|
|
mind flayer brain eating is subject to certain fatal targets and to cannibalism
|
|
mind flayer can't eat brains of ghost or shade
|
|
corpses of unique monsters in bones behaved incorrectly if revived or eaten
|
|
fix pluralization for "this tin smells like mother-in-laws" when hallucinating
|
|
force user-specified fruit name to be singular
|
|
avoid false matches when looking up fruit names ("grapefruit" isn't "grape")
|
|
handle pluralization of man-at-arms and singularization of men-at-arms
|
|
assigning an artifact name is rejected on objects with similar description to
|
|
corresponding artifact's type rather than just those of the same type
|
|
adjust feedback for gas spore explosion when hallucinating
|
|
traps detected by scroll or crystal ball overlooked carried or buried chests
|
|
can't wish for a trapped box/chest/tin by specifying "poisoned"
|
|
grammar bit if killed by stealing a cockatrice corpse from a monster
|
|
being petrified by swallowing a cockatrice violates foodless conduct
|
|
devouring Medusa whole is fatal
|
|
eating pet won't continue eating after becoming paralyzed or falling asleep
|
|
randomize shopkeeper names when hallucinating
|
|
fix wording for "leprechaun steals gold from between your feet" when mounted
|
|
fix monsndx panic which happened after currently moving monster expelled
|
|
swallowed hero onto magic trap and was made tame by its effect; taming
|
|
no longer replaces monster
|
|
reduced message verbosity when re-entering a temple
|
|
reduced message verbosity when monster with multiple attacks missed wildly
|
|
putting on a never seen ring while blinded won't make the ring a discovery
|
|
zapping a never seen wand while blinded won't make the wand a discovery
|
|
zapping an unID'd wand of teleportation at self will discover it (usually)
|
|
zapping unlocking magic at self while punished will remove attached chain
|
|
don't see objects or read engraving when hero changes location (random
|
|
teleport) or position (levitation timeout) while asleep or fainted
|
|
polymorphed spellbooks may turn blank or be too faint to read
|
|
avoid inappropriate message when using a cursed lamp while blind
|
|
player polymorphed as a guardian naga spit the wrong kind of venom
|
|
put #define for potion occupant chance and cursed wand zap chance in one place
|
|
candles should not be fireproof
|
|
recognize most instances where hallucinatory monster name should be treated
|
|
as a personal name (to avoid "the Barney") instead of a description
|
|
avoid giving misleading or redundant feedback when reading scrolls
|
|
custom arrival message for special levels could be delivered too soon
|
|
custom arrival message for special levels now supports quest text substitution
|
|
prevent scroll of charging that has already disappeared from showing in the
|
|
picklist of things to charge
|
|
doors break instead of absorbing the blast of a broken wand of striking
|
|
avoid "Something's in the way" message with unidentified wand of locking
|
|
better handling for Fort Ludios and endgame in wizard mode's `^V ?' menu
|
|
no free lunch for gelatinous cubes eating scrolls of mail
|
|
eating gold in front of the vault guard will make the guard angry
|
|
calculate engulf time differently for non-digestion attacks than for digestion
|
|
preform autopickup and/or report on objects at the spot when a failed #untrap
|
|
attempt causes the hero to move onto a trap's location
|
|
thrown silver weapon hitting silver-hating poly'd hero got double silver damage
|
|
wielded silver weapon hitting silver-hating poly'd hero lacked silver message
|
|
don't welcome the hero to Delphi if the Oracle was angered before first entry
|
|
shopkeeper polymorphed into animal form can no longer speak
|
|
don't give attribute adjustment messages ("you feel wise") unless the current
|
|
value actually changes
|
|
meditating monsters stop meditating when affected by something which wakes
|
|
sleeping mosnters
|
|
monsters capable of hiding can't do so when trapped or while holding you
|
|
limit recursive calls to spoteffects (poly'd hero fell into water, reverted
|
|
to human because of it, fell into same water, then crawled out twice)
|
|
ensure that the punishment ball and chain make it into the save file after being
|
|
temporarily orphaned from the normal chains in the swallowing code
|
|
charge for thrown wand that shatters into a thousand pieces in a shop
|
|
wielded light source susceptible to water gets extinguished when weapon rusts
|
|
don't discover unknown bag of tricks when monster it releases is undetected
|
|
make region ttl field a long instead of short to get rid of lint warnings
|
|
about a possible loss of data
|
|
pushing a boulder onto a level teleporter trap could issue repeat messages
|
|
if shopkeeper or priest gets teleported while inside his shop or temple,
|
|
give locations inside that room preference when choosing destination
|
|
tame/peaceful grabber/engulfer will release hero after conflict ends
|
|
any grabber will release hero if it moves away while confused/stunned/afraid
|
|
make changes in hallucination be reflected by changes in mimickery feedback
|
|
add Unaware pseudo-property to suppress various messages while unconscious
|
|
missile which kills engulfer will now be placed prior to hero's return to map
|
|
bugles affect all monsters to some extent
|
|
nurses are affected if player is polymorphed as a cockatrice
|
|
getting a particular rotten food result can't make attempting to eat a
|
|
corpse of one of the Riders be survivable
|
|
pad shortest rumors to improve distribution of delivered rumors
|
|
wake up sleeping steed when putting on saddle or mounting
|
|
stop wielding cockatrice corpse which triggered own death followed by life-save
|
|
format various prompts to avoid "Query truncated" entries in paniclog
|
|
for inventory display, include cost info on hero-owned containers holding
|
|
shop goods
|
|
shops now claim ownership of items created by using an unpaid horn of plenty
|
|
shopkeepers shouldn't refer to non-male character as "cad"
|
|
tweak levitation timeout if trap is being triggered on same turn it is to end
|
|
if Rider corpse revival fails, usually try again later instead of rotting away
|
|
worn item transformed by polymorph remains worn if feasible
|
|
can't dip or apply grease to a worn item that's covered by another worn item
|
|
hero poly'd into stone golem and wielding cockatrice corpse casts stone-to-
|
|
flesh at self to become flesh golem will revert to stone if no gloves
|
|
demon lords/princes can't be summoned to the elemental or Astral planes
|
|
same-race sacrifice can't damage high altars
|
|
allow corpses on floor to be offered at high altars
|
|
allow hero to attempt to offer the Amulet at ordinary altars
|
|
shooting range for crossbow isn't affected by strength; multi-shot volley is
|
|
right-handed boomerang throw travels counterclockwise
|
|
monsters can use ranged attacks over/around boulders, same as hero
|
|
can't drop part of a stack of N weapons welded to hero's hand
|
|
pickup still accepts m as command prefix, but now rejects F,g,G,M,numpad 5
|
|
scatter piles of kicked gold rather than move the entire pile at once
|
|
#jump attempt fails if mounted on sleeping steed; jumping spell still works
|
|
if normal game save file is restored via `nethack -X', restore in normal
|
|
mode--with save file deletion--and require confirmation ala 'X'
|
|
command to make deferred switch into explore mode
|
|
stethoscope applied to hiding mimic will bring it out of hiding
|
|
rephrase "<artifact> evades your grasp" message if artifact is already held
|
|
artifacts which subsequently evade your grasp/control after already being
|
|
worn or wielded become unworn/unwielded
|
|
hero with lycanthropy is vulnerable to silver in both human and beast form
|
|
changing alignment or shape triggers a check for equipment evading hero's grasp
|
|
passive fire effects can damage attackers' weapons
|
|
wielded bow shouldn't affect outcome of kicked arrows
|
|
ranged polearm hit can divide puddings and can use confuse monster effect
|
|
charge for kicked shop-owned food if it gets used up taming a monster
|
|
give better feedback when thrown shop-owned food gets used up taming a monster
|
|
effect of negative AC on damage received was calculated differently than
|
|
normal when deciding whether hero poly'd into pudding would split
|
|
unicorn horn produced by revived monster will polymorph as if non-magic
|
|
stone-to-flesh on any golem statue or golem figurine creates flesh golem
|
|
stone-to-flesh which activates shop-owned figurine entails shop charges
|
|
make giants be less likely to be randomly generated in Sokoban
|
|
bear traps dish out some damage on initial entrapment
|
|
bear traps and webs are harmless to water elementals
|
|
hero with polymorph control and inflicted with lycanthropy can specify own
|
|
werecritter or human werecritter monster types as polymorph target
|
|
hero undergoing semi-controlled polymorph won't also undergo sex change
|
|
when doppelgangers taking on new shape don't specifically pick nasty monster
|
|
or role monster, bias the random form towards humanoid
|
|
salamanders can use green slime corpses to cure themselves of petrification
|
|
feedback about summoned monsters may use singular when it should use plural
|
|
rogue's backstab bonus doesn't apply for throwing attacks
|
|
hiding monsters who are unhidden when hero leaves a level can hide upon return
|
|
touching a pile of objects while blind affects hero even when the pile is
|
|
big enough to give "there are many objects here" and not list them
|
|
explosion while engulfed only affects engulfer and hero, not adjacent monsters
|
|
eliminate case-sensitivity when converting words from singular to plural and
|
|
vice versa, so some failing wishes like "Gauntlets of Power" now work
|
|
breath attack directed at self by poly'd hero always hits
|
|
override non-silver vs shades for artifacts which deal extra damage to undead
|
|
assorted mirror fixes--mainly visibility issues
|
|
some monsters can't be strangled; self-polymorph can stop/restart strangulation
|
|
re-adjust gem generation probabilities when revisiting existing dungeon levels
|
|
kick evasion shouldn't move monsters through walls
|
|
kick evasion and jousting/staggering blows shouldn't move grid bugs diagonally
|
|
#untrap didn't check whether hero could reach the ground
|
|
digging/chopping a closed drawbridge message mentioned digging a "wall"
|
|
attacking via applied polearm now honors the "confirm" option
|
|
engulfer under influence of conflict or confusion could swallow monster at
|
|
water/lava/trap spot and not be affected by destination til next move
|
|
unicorn horn restoration no longer overrides sustain ability characteristic
|
|
hider monster revived from corpse would start out hidden (even if own corpse
|
|
was only object around to hide under)
|
|
fix sequencing issues with dropping #invoked Heart of Ahriman
|
|
applying an unpaid stack of potions of oil forced hero to buy all of them
|
|
instead of just the one which got split off and lit
|
|
sometimes when hero is forced to buy an unpaid shop item its price changed
|
|
monster could attack with a polearm even after attempt to wield that failed
|
|
sometimes got "you trip over it" after intervening messages following the
|
|
one which described "it"
|
|
wizard mode: WIZKIT wishes could overflow inventory's 52 slots
|
|
when loading bones files, censor suspect characters from player-supplied
|
|
strings such as pet and fruit names
|
|
can't swap places with tame grid bug when moving diagonally
|
|
can't move diagonally through a long worm's body (can still fight that way)
|
|
require confirmation to read a scroll of mail if doing so will be the first
|
|
violation of illiteracy conduct
|
|
using F to force an attack towards a boulder gave "you attack thin air"
|
|
random "treasure drop" upon monster's death bypassed dropping side-effects
|
|
melted ice on Valkyrie quest should be pool, not moat
|
|
some variations of attempting to use open or close commands on a drawbridge
|
|
didn't give drawbridge-specific feedback
|
|
tin contents can now sometimes be accessed on the same turn that the tin
|
|
starts being opened; when not, the opening feedback is more accurate
|
|
Nth adjustment of feedback when observing a pet eating
|
|
monsters who want the Amulet won't attack temple priests to try to get it
|
|
it was possible to generate an object of 0 gold pieces by dropping 2**32 gold
|
|
wizard mode's sanity_check option missed nested containers and migrating mons
|
|
always update map display and use up turn if open or close command attempted
|
|
while blind reveals change in door state or discloses non-door spot
|
|
secret door detection's trap finding is no longer blocked by water or clouds
|
|
on the Planes of Water and Air
|
|
potion thrown by monster which hit a long worm's tail gave feedback about
|
|
hitting its head
|
|
implement energy vortex's previously unused energy drain attack
|
|
changing alignment type resets alignment record to 0 (nomimally aligned)
|
|
while polymorphed, suppress attribute gain/lose earned by pre-poly exercise
|
|
wizard mode #monpolycontrol prompting asked about "it" when monster was unseen
|
|
reprompt if player fails to make a menu choice during inventory identification
|
|
seen eels who were stuck in isolated pools would never re-hide
|
|
can no longer get both strength and resistance from eating one giant corpse
|
|
aborting key/lock pick usage via ESC at direction prompt no longer uses a move
|
|
when probing from inside an engulfer, "not carrying anything" overlooked hero
|
|
wearing or removing an amulet of restful sleep clobbered permanent sleepiness
|
|
if attempt to select a co-aligned artifact for first divine gift fails because
|
|
none is available, choose one from among nonaligned artifacts
|
|
if breaking a wand of polymorph causes hero to drop items, don't transform them
|
|
give "shuddering vibrations" feedback if breaking a poly wand uses up items
|
|
if polymorph causes a monster to drop items, they won't be used up via
|
|
shuddering vibrations or as golem creation fodder
|
|
monsters who ate green slime corpses weren't turned into green slime
|
|
"hand slip" while naming an object would never pick 'z' as a substitute letter
|
|
hero would "gladly take off <armor>" for nymph or succubus even while asleep
|
|
concealed mimic wasn't revealed if kicking attmpt yielded a clumsy miss
|
|
too accurate feedback given to a blinded hero when a monster summons insects
|
|
message sequencing for fatal explosions was confusing if feedback was given
|
|
for carried items being destroyed
|
|
when dipping something in holy/unholy water, only learn its new bless/curse
|
|
state if hero sees it glow
|
|
describe lit Sunsword as shining rather than glowing
|
|
prevent poly'd shopkeepers from taking on forms that can't handle objects
|
|
attempting to move direction 'u' as a grid bug performed #untrap command;
|
|
the other diagonals reported "unknown command" instead of "you can't"
|
|
mimic posing as statue or corpse now picks and maintains particular monst type
|
|
when levitating, don't show '>' as a likely direction for digging
|
|
poly'd or mimicking hero who was hidden from monsters would still be treated
|
|
as a normal target for their ranged attacks
|
|
hero would remain stuck to an adjacent monster after rehumanizing if he had
|
|
been attacked while hiding via #monster when poly'd into a small mimic
|
|
attacking via applied polearm never scuffed engraving underneath hero
|
|
auto-wielding a polearm took no time if ESC was used to cancel target choice
|
|
applying a bullwhip while at very edge of map could target beyond edge,
|
|
potentially leading to a panic or crash
|
|
prevent temple priests and minions from wearing helms of opposite alignment
|
|
'D' drop command didn't handle 'u' choice correctly if the only unpaid items
|
|
were inside containers
|
|
pearl rings shouldn't rust
|
|
shouldn't be able to read a worn T-shirt when it's covered by a worn suit
|
|
simplify hero placement on Castle level when climbing up stairs from Valley
|
|
spell attack by low-Int hero could inflict negative damage
|
|
some wand/spell/breath zaps that hit a secret door failed to reveal it
|
|
wand explosion feedback about adjacent door was phrased as if for a wand zap
|
|
improve the message sequencing when a thrown poisoned weapon loses is poison
|
|
attempting to open, close, or lock/unlock a door while confused or stunned
|
|
uses up a move regardless of whether direction choice finds a door
|
|
grammar fixes for vault guard messages given after player assigns guard a name
|
|
wearing cloak of displacement auto-discovered it even when hero couldn't see
|
|
wearing elven cloak auto-discovered it even when already stealthy
|
|
putting on ring of stealth never auto-discovered it
|
|
forgetting spells due to amnesia now sets memory retention to zero instead
|
|
of removing them from hero's list of known spells
|
|
shouldn't have been able write scrolls by guessing type name when they're
|
|
only partly known via name assignment
|
|
scrolls given names can be written by assigned name as well as by description
|
|
fix writing feedback "the spellbook warps strangely, then turns parchment"
|
|
make stone artifacts usually resist stone-to-flesh
|
|
when reading an unknown scroll and learning it, discovery of teleporation was
|
|
too late if hero happened to land on another scroll of teleportation
|
|
using an unlocking tool on a closed door which was actually a mimic reported
|
|
that there was no door to unlock instead of exposing the mimic
|
|
purple worm could end up in wall or solid rock when swallowing ghost or xorn
|
|
enhance life-saving by preventing subsequent poison from being fatal upon
|
|
rescue from death due to spiked pit, dart trap, or poisoned missile
|
|
don't create mail daemons when populating special levels with random demons
|
|
teleport control and polymorph control are ineffective while hero is stunned
|
|
don't report "fried to a crisp" for disintegration from divine wrath
|
|
spellcasting monsters' spell selection became less likely to choose harder
|
|
spells as their level got higher (including Wizard's "double trouble")
|
|
Eye of the Aethiopica, Eyes of the Overworld, and Sceptre of Might must be
|
|
worn or wielded rather than just carried to convey magic resistance
|
|
Mitre of Holiness and Tsurugi of Muramasa convey Protection when worn/wielded
|
|
effectiveness of magic cancellation by worn armor has been reduced
|
|
Protection improves the effectiveness of magic cancellation
|
|
if an angry shopkeeper chased the hero to a different level and then got paid
|
|
off, he'd dismiss kops on that other level but not on his shop level
|
|
dying in lava and being life-saved or leaving bones would destroy ring of
|
|
fire resistance if it happened to be made of wood, and also burn up
|
|
scrolls of fire and spellbook of fireball
|
|
surviving in lava boils away carried potions, but dying in lava and being
|
|
life-saved or leaving bones would keep them intact
|
|
when applicable, give "your body rises from the dead as an <undead>..."
|
|
even when bones data isn't being saved
|
|
have shk claim ownership of worn saddle dropped by dying pet if hero is
|
|
not within the same shop at the time of the drop
|
|
for poly'd hero hiding on ceiling who gets attacked, make attacker's position
|
|
be an eligible location for hero when vacating hero's spot for attacker
|
|
to prevent ending up far away under crowded conditions
|
|
for poly'd hero hiding on ceiling, attack by sea monsters won't move them
|
|
into hero's position unless it is over water or they're already on land
|
|
for poly'd hero hiding on ceiling, attack by long worm might fill hero's
|
|
destination with worm's tail, so double check and maybe choose again
|
|
when shop prices are adjusted, handle roundoff (integer truncation) better
|
|
for hero poly'd into a monster form that lacks a weapon attack but has a claw
|
|
attack, use wielded weapon even when claw attack isn't the very first
|
|
rename the SLEEPING property and Sleeping attribute to SLEEPY and Sleepy, resp.
|
|
give alternate message for "<mon> turns to flee" when mon can't move
|
|
all statues in a cockatrice nest were for giant ant if 'record' was empty
|
|
when dying outside all shops on a level with multiple shopkeepers and one takes
|
|
hero's stuff, choose one who is owed money over first one on fmon list
|
|
hero poly'd into a critter without hands could still open tins
|
|
if a vault guard was killed, his inventory would be dropped at <0,0>
|
|
throwing gold to/at a vault guard will no longer be treated as an attack
|
|
non-pit traps created in vault guard's temporary corridor would remain after
|
|
the location reverted to solid rock
|
|
using magic to light vault guard's temporary corridor would produce lit solid
|
|
rock after reversion, and then yield lit corridor if dug out again
|
|
if hero was blind, killing the vault guard while in his temporary corridor
|
|
would leave hero encased in solid rock without informing player
|
|
if hero dragged iron ball into temporary corridor and then killed vault guard,
|
|
the portion of corridor currently in existence would become permanent
|
|
on Plane of Water, restrict levitation and flying to air bubbles;
|
|
elsewhere, restrict them such that they don't work inside solid rock
|
|
wand/scroll/spell of light now hurts gremlins (lamp/candle light doesn't)
|
|
ditto for hero in gremlin form (camera too)
|
|
autosearch finds and transforms secret doors and corridors even while blind,
|
|
but it wasn't updating the map to show them unless the hero could see
|
|
panic save made during magic mapping or <foo> detection performed while
|
|
underwater could put hero on top of the water after restore
|
|
|
|
|
|
Platform- and/or Interface-Specific Fixes
|
|
-----------------------------------------
|
|
unix: new -wwindowtype option
|
|
unix: don't clobber old level files if 2nd hangup/disconnect occurs while
|
|
reconnected user is responding to the "destroy old game?" prompt
|
|
win32gui: better handling of "more" prompt for messages that would have scrolled
|
|
off the window
|
|
win32gui: set correct checkmark on "Lock Windows" menu item on startup
|
|
win32gui: redraw message window on resizing (it does not update properly otherwise)
|
|
win32gui: fixed copy/paste error in read registry settings function
|
|
win32gui: improved calculation of the size of the menu window
|
|
win32gui: made auto-arrange windows on/off option (it was reset automatically
|
|
which was unintuitive and in some cases annoying
|
|
win32gui: fix a possible crash with AltGr-4 WM_KEYDOWN handling
|
|
win32gui: use whatever alternate tile set is loaded in the menus
|
|
win32tty: prevent early error messages from flashing by too fast and not seen
|
|
win32tty: work around problem where display symbols were wrong or unrecognizable
|
|
on systems where the default language for non-Unicode programs was not
|
|
set to "US English" - courtesy Ray Chason
|
|
win32tty: work around problem where some characters did not show up if the
|
|
console code page was other than 437
|
|
platforms that support hangup: SAFERHANGUP to avoid losing objects in transit
|
|
between lists when hangup occurs, and also avoid cheats due to
|
|
well-timed hangups to stop a long melee
|
|
X11: support dynamic switching of map mode via tiled_map option
|
|
X11: added support for hilite_pet to text map mode
|
|
|
|
|
|
General New Features
|
|
--------------------
|
|
burying a punishment ball no longer ends your punishment
|
|
#tip command (with M-T shortcut) to empty a container's contents onto floor
|
|
add clicklook option to allow looking at things on the display by clicking
|
|
right mouse button when floating mouse pointer over them
|
|
Izchak's lighting store is now able to stock oil for your lamp
|
|
provide core support for saving of messsage history in save file
|
|
the following actions can now be continued after save/restore: digging,
|
|
eating, studying, removing armor
|
|
hero-created and monster-created ice will eventually melt away
|
|
extend Warning to include ice danger
|
|
wishing for particular variety of tin contents (deep fried, broiled, etc.)
|
|
debug-mode wishing for random monster(s) via '*'
|
|
debug-mode viewing of fully identified object descriptions without
|
|
actually identifying the objects
|
|
health-food store that stocks monk-appropriate foods in mine town when monk
|
|
give more information about your attributes in debug mode
|
|
polywarn to give intrinsic monster detection of limited species while polymorphed
|
|
rocks can skip on the water sometimes allowing them to pass over water creatures
|
|
vampires can now shapeshift into bats and fog clouds; the latter can be done at
|
|
will to slip through locked doors
|
|
shapeshifted vampire will transform back to vampire form after you defeat it and
|
|
continue to fight in its native form
|
|
container lknown flag for locked/unlocked/broken awareness
|
|
container cknown flag for container content awareness
|
|
plname is stored in the save file on all platforms now
|
|
introduce support for negation of role, race, align, gender values to eliminate
|
|
them from random selection and the pick list of startup choices
|
|
some intelligent pets will avoid cannibalism
|
|
keep track of which monsters were cloned from other monsters
|
|
cloned and revived monsters become worth fewer points than ordinary ones
|
|
number_pad:3 run-time option to use inverted phone keypad layout for movement
|
|
number_pad:-1 to swap function of y and z keys; z to move NW, y to zap wands
|
|
display spell retention information in the spell menu
|
|
tame ghouls can eat old eggs
|
|
new effect for reading a scroll of light while confused
|
|
allow digging an adjacent pit with wand of digging while trapped in a pit
|
|
#terrain command to show unobstructed view of map (w/o mons, objs, traps)
|
|
digging can activate or disarm some types of traps
|
|
some monsters can eat tins in addition to corpses to cure some ailments
|
|
add Roderick Schertler's pickup_thrown patch
|
|
add ability to sort the list when viewing known spells with '+' command
|
|
describe magic cancellation from worn armor in enlightment/end-of-game feedback
|
|
disclose half physical and/or spell damage in enlightment/end-of-game feedback
|
|
rephrase see invisibility enlightenment feedback when unable to see at all
|
|
add atmospheric sound messages for temples
|
|
sometimes give announcement message when monsters teleport to hero's vicinity
|
|
obsolete config file keywords: GRAPHICS, OBJECTS, TRAPS, EFFECTS
|
|
deprecated options: IBMGraphics, DECGraphics, boulder
|
|
new options: symset, roguesymset for choosing a symbol set from the symbols file
|
|
new config file keyword: SYMBOLS for overriding character symbol values by name
|
|
opening magic frees from bear traps and webs, activates trap doors
|
|
closing magic activates bear traps and webs
|
|
locking converts a hole into a trap door; striking does the opposite
|
|
add Malcolm Ryan's Statue Glyphs patch
|
|
lembas and cram never rot unless cursed
|
|
multiple squeaks for squeaky boards
|
|
include time, user ID, and play mode in paniclog entries
|
|
add oracle and rumor regarding priestly donations
|
|
anti-magic traps have alternate effect on targets who have magic resistance
|
|
the Amulet can be offered to Moloch
|
|
javelins and spears now share the same weapon skill
|
|
all stackable weapons are capable of being thrown/shot for multi-shot volleys
|
|
worm teeth and crysknives have become stackable
|
|
improved container interface
|
|
acid can destroy iron bars
|
|
OPTIONS=playmode:normal|explore|debug to choose mode without command-line
|
|
score bonus for ascending is reduced or denied for changing alignment
|
|
player can give a monster class when asked for type of monster to poly into
|
|
likewise when asked about type for #monpolycontrol
|
|
both controlled self-polymorph and #monpolycontrol accept ESC, "*" or "random"
|
|
when asking for type of monster; ESC aborts #polyself command
|
|
scroll of taming/spell of charm monster now gives some feedback
|
|
doppelgangers can take on the shape of alternate roles' quest guardians
|
|
pile_limit option to control when to switch to "there are objects here"
|
|
vs listing objects on floor when hero goes over objects while moving
|
|
some monsters will use fire to prevent selves being turned into green slime
|
|
add `#vanquished' debug mode command
|
|
C and #name commands are now same and use menu to choose monster vs object
|
|
hallucination provides partial protection against gaze attacks
|
|
attempting to read "dull" spellbook might cause hero to fall asleep
|
|
dipping prompt is more precise
|
|
using F to attack wall/boulder/statue while wielding pick digs/breaks target
|
|
shapechangers shouldn't receive starting inventory of their initial shape
|
|
streamline old ^X output and integrate it with enlightenment feedback;
|
|
new ^X output includes expanded form of abbreviated bottom line info
|
|
"killed by X" becomes "killed by a chameleon imitating X" when appropriate
|
|
eating disenchanter corpses is now considered risky
|
|
make '[' command more precise when poly'd hero has embedded dragon scales/mail
|
|
fainting while wielding a cockatrice corpse will be fatal
|
|
Sunsword's light radius depends on its curse/bless state
|
|
Add M-C and M-R meta-key shortcuts for #conduct and #ride, respectively
|
|
can now use ESC to cancel out of prompts for playing musical instruments
|
|
being crowned gives an additional benefit: one extra skill slot/credit
|
|
chatting to a gecko or shopkeeper while hallucinating gives alternate message
|
|
mimic posing as door might steal hero's key when [un]locking is attempted
|
|
polymorphing into a dragon while wearing dragon scale mail will cause that
|
|
mail to revert to dragon scales
|
|
adopt/adapt/improve the Paranoid_Quit patch; default is paranoid_confirm:pray
|
|
paranoid_confirm:Confirm when requiring "yes" instead of y to confirm,
|
|
also require explicit "no" to reject
|
|
paranoid_confirm:quit yes vs y to quit or to enter explore mode
|
|
paranoid_confirm:die yes vs y to die in explore or wizard mode
|
|
paranoid_confirm:bones yes vs y to save bones when dying in wizard mode
|
|
paranoid_confirm:attack yes vs y to attack a peaceful monster
|
|
paranoid_confirm:pray y to confirm #pray; supersedes prayconfirm
|
|
paranoid_confirm:Remove always pick from inventory for 'R' and 'T'
|
|
flexibility for specifying "detect <foo>" vs "<foo> detection" when wishing
|
|
when a sokoban puzzle has been completed (last pit or hole filled in),
|
|
stop assessing luck penalties and lift most movement restrictions
|
|
'`' command to show discoveries for one class of objects
|
|
add "about nethack" to '?' menu as an alternate way to view 'v'+'#version'
|
|
display version and build information at startup
|
|
|
|
|
|
Platform- and/or Interface-Specific New Features
|
|
------------------------------------------------
|
|
pcmain: check for dlb_init failure rather than relying on dungeon open failure
|
|
win32gui: support perm_invent
|
|
win32gui: menu option to add/remove windows captions
|
|
win32gui: support for saving/restoring message history
|
|
win32gui: added menu options "Copy ASCII Screenshot To Clipboard" and "Save
|
|
ASCII Screenshot To File"
|
|
win32tty: support for 'selectsaved' option for menu of existing save files
|
|
to choose from at game startup
|
|
tty: add window port routines for saving/restoring message history
|
|
tty: enhanced role, race, &c selection at start of new game
|
|
smartphone: added "Type Cmd" command that allows to type arbitrary commands
|
|
using phone keypad
|
|
smartphone: added Q(quiver) command to "Attack" layout
|
|
smartphone: fixed F command to prompt for direction
|
|
unix,vms: altmeta option to handle terminals which send "ESC c" for Alt+c
|
|
|
|
|
|
Code Cleanup and Reorganization
|
|
-------------------------------
|
|
removed OVLx section dividers previously used for TRAMPOLINE overlay system
|
|
move all flags that are system or port specific from flag struct to sysflags
|
|
struct which is used only if SYSFLAGS is defined
|
|
all fields in flags struct are unconditionally present
|
|
monst cham field now a short and uses mons[] index
|
|
rearrange some monster ordering to follow rule #2 listed at top of monst.c
|
|
change region player_flags to more appropriate unsigned int instead of boolean
|
|
remove remains of sync_hunger, which has been ifdef'd out for years
|
|
new mextra structure housing pointers to mname, egd, epri, eshk, emin, edog
|
|
consolidate vault.h, epri.h, eshk.h, emin.h and edog.h into new mextra.h
|
|
new oextra structure housing pointers to oname, omonst, omid, olong, and omailcmd
|
|
drawing symbols for DECGraphics, IBMGraphics, MACgraphics are now stored in an
|
|
external symbol file that can be changed without rebuilding
|
|
new hints-based configuration system
|
|
allow documentation to be specialized to the options in the game binary
|