Add option windowcolors to control foreground/background
color of menu, message, status, and text windows.
(foreground color is the text color).
The value of the colors is window port specific, the
core code handles the storing of the strings only.
Most NetHack players have picked up on the fact that you can
easily distinguish between a fake amulet and the real thing
simply by trying to put it into a container. That's too easy.
The message was adjusted too, to make it seem less
like the objects have their own special will to resist, something
that a hunk of plastic is unlikely to have.
This fixes beta bug 3020. It was hard to notice because the presence of a
monster in the room stops your occupation anyway, so it wasn't triggered unless
you were blind.
Fix a minor cloning problem; clones didn't retain the monster's name or
tameness. (The name *was* retained if you were cloned.) I also added a
minor change in wizard mode to display a few tameness fields of a dog.
From the newsgroup: some of the fake player monsters on the
astral level were unable to use artifacts that they were created
with due to alignment mismatch. Rather than try to adjust the
artifact creation of only select matching items, this patch lets
them handle artifacts when alignments differ (more or less like
the player; monsters don't occasionally get blasted though).
This also restores chaotic monsters with the ability to use
Stormbringer; I'm not sure how long that has been broken. It also
gives lawful ones the ability to use Excalibur.
Change the prompts for P and R commands to use "put on" instead
of "wear" and "remove" instead of "take off", respectively; W and T
commands aren't affected. There is no change in game play.
<Someone>'s message said this was committed, but the cvs repository
didn't reflect his changes.
> Subject: patch: #rub touchstone
> Date: Wed, 20 Feb 2002 23:33:27 -0800
> <email deleted>
>
> Implement <Someone>'s suggestion.
>
> - allow the #rub command to apply to gray stones
> - update various doc & help files to reflect the change
>
> Committed to CVS.
From the newsgroup: when an undead monster got killed by a wand
or spell of undead turning, if it left a corpse that corpse would be
hit by the same zap and was immediately revived. This fix uses the
flag bits that were added to prevent objects that are dropped by a
polymorphed monster from being hit by the same polymorph zap.
This also fixes a post-3.3.1 bug that produced "the <undead>
turns to flee" even when that monster had been killed by the turning
attack. 3.3.1 had the same bogus fleeing effect but didn't give any
message so it was unnoticeable.
Make being hit by an artifact which does fire, cold, or
lightning (or magic missiles, since the code is there) affect
inventory even when the target resists the damage him-/her-/itself.
This removes the need for the redundant fire vs slime handling that
I put in yesterday. Unfortunately it also means that Valkyries who
throw Mjollnir will inevitably end up destroying all their mettalic
wands and rings, so I reduced the chance of it hitting upon its
return.
Being hit by Fire Brand now stops the sliming process if you're
being turned into green slime. And throwing an artifact up will give
artifact hit effects when it falls back down, making it possible to
hit yourself with Fire Brand (among other things). Hitting yourself
with Vorpal Blade or the Tsurugi of Muramasa will never behead or
bisect you; hitting yourself with Stormbringer will drain levels.
(I hope the latter doesn't make it too easy for players to manipulate
their experience level.)
This doesn't add artifact_hit() handling to mthrowu. If monsters
ever start throwing artifacts that will need to be added.
Generally modify the AD_DGST damage type so that:
- players and pets get no AD_DGST nutrition from G_NOCORPSE monsters
- undead no longer convey any nutrition, to either monsters or you-as-monster
I decided on this based on the age typically assigned to undead corpses.
- digestion conveys 50% or normal nutrition, and takes 25% the time to eat.
- all AD_DGST attacks are now subject to gas spore explosions, including player
In the skills list shown by #enhance, add an annotation
for skills that have had enough practive to be advanced but
can't be because there aren't enough slots available or the
role-specific limit has been reached.
I was asked how a window-port controls which options are
set to SET_IN_FILE, DISP_IN_GAME, or SET_IN_GAME.
This provides a run-time way to change an option's SET_IN_FILE,
DISP_IN_GAME, or SET_IN_GAME status through code, rather
than clog up options.c with a lot of compile-time #ifdefs
for different ports to offer different default option settings.
Update the documentation to reflect this.
As Warwick suggested, instead of having fixed tile
sizes as options, allow specification of the size
explicitly.
Also, at Yitzhak's suggestion, provide a hook for
overriding the port's tile file name. That name,
and the contents of the file it points to, will
be window-port specific of course.
to allow common parsing in the core, and direct access to the
results by the window port.
Notes:
o Adds a new field, wincap, to the window_procs
structure for setting bits related to the preference
features that the window port supports. This allows
run-time determination of whether a particular option
setting is applicable to the running window port. A
window-port is free to support as many, or as few,
of the available options as it wants. Ensure that
only the ones supported have their corresponding bit
set in window_proc.wincap. [see chart in
doc/window.doc for help with that.]
o The settings I stuck into wincap for each window
port are almost certainly not accurate, so each port
team should review them. You should only include
the ones that you will actually react to and make
adjustments for if the user changes that option.
Without the setting in wincap, the option won't even
show up in the 'O'ptions menu.
o preference_update() added to the window-port
interface, so that the window-port can be notified
if an option of interest (an option with its
corresponding bit set in wincap field) is
changed.
o provided a genl_preference_update() routine in
windows.c and used it for all the existing
window ports since they don't have a functional
one of their own yet.
o this messes around heavily with iflags and the options
arrays in options.c
o I hope I didn't break any port's existing code. I
tried not to. The Mac however, in particular, should
be looked at because it suffered a namespace collision
with what I was working on around fontname. It had
Mac specific font stuff in options.c. Please test
the Mac.
The inability to wish for a blessed +2 fireproof speed boots really was a bug.
Prefixes are checked for inside a loop which should allow them to be in any
order; for some reason +nnn and empty were outside that loop.
Also adding the secret door detection fix to betabugs 3.3.0. (Is it safe to
hand-modify betabugs 3.3.2?)