Noticed recently when a user reported that an unseen monster zapping
an unseen wand caused wand of striking to become discovered. [That was
because the zap also hit a door and the code for the latter didn't check
whether the wand had been seen, and it got fixed a couple of weeks ago.]
When the player zaps wands while the hero is blinded, it was discovering
(for the cases where the effect can be observed without sight) the wand
even though the wand's description was unknown (showed in inventory as
"a wand"). This replaces the calls to makeknown() in zap.c with calls to
new learnwand(), which checks whether the wand description is known; you
no longer discover something you've never seen. Reverse effect has also
been added: if the type of wand has been discovered earlier, zapping an
unseen wand (another of the same type, picked up when blind and zapped
while still blind) will now mark it as seen (to show up in inventory as
"a wand of <whatever>" instead of just a "a wand"). The latter aspect
really ought to be independent of prior discovery, but we currently have
no way to record "we know what this particular item does even though we
don't know what type of item it is yet". [If we add that, it would be
applicable to potions (when operating on stacks) and rings too.]
Minor change: zapping yourself with wand of opening or spell of
knock will remove attached ball&chain rather than give a "chain quivers"
message. Explicitly zapping the chain already did that; if the unlocking
magic works on the chain connected to your leg then it really should also
work on your leg connected to the chain. Zapping unlocking at yourself
probably should also scan inventory to check for carrying locked chests,
but I didn't add that. (If added, then locking magic will need to be
augmented likewise.)
This also fixes <Someone>'s recent complaint: zapping an unknown
wand of teleportation at yourself didn't make it become discovered.
Now it will be, under the same circumstances as when you're riding: if
teleport control causes you to be prompted for destination, or if random
destination moves you more than jumping distance away from your original
position. (The Stunned exception to teleport control, which was missing
in zap_steed, perhaps ought to be moved into the macro definition of
Teleport_control itself so that all code always handles it consistently.)
199 lines
11 KiB
Plaintext
199 lines
11 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
|
|
grammar, spelling and other typos
|
|
oracle and rumor regarding priestly donations
|
|
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
|
|
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 location
|
|
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
|
|
corpses of unique monsters in bones behaved incorrectly if revived or eaten
|
|
fix pluralization for "this tin smells like mother-in-laws" when hallucinating
|
|
try harder to keep pluralization straight when user assigns an already plural
|
|
value for named fruit
|
|
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
|
|
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
|
|
|
|
|
|
Platform- and/or Interface-Specific Fixes
|
|
-----------------------------------------
|
|
unix: new -wwindowtype option
|
|
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
|
|
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--pay a modest gratuity
|
|
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 '*'
|
|
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
|
|
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
|
|
|
|
|
|
Platform- and/or Interface-Specific New Features
|
|
------------------------------------------------
|
|
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
|
|
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
|
|
|
|
|
|
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
|