Another minor oddity (did not have time to trace it). Charges for damaged
weapon refer to it as "weapon in hand":
--
As you read the scroll, it disappears. Being confused, you mispronounce
the magic words... Demirci's long sword is covered by a mottled purple
glow! "You degrade that long sword, you pay for it!"
Call a scroll labeled VERR YED HORRE:
What do you want to wield? [- ajrw or ?*] j
j - a rustproof athame named Magicbane (weapon in hand) (10 aum).
What do you want to drop? [$a-df-rtwxM or ?*] r
You drop a long sword (40 aum).
Demirci offers 8 gold pieces for your long sword. Sell it? [ynaq] (y) y
You sold a long sword (40 aum) for 8 gold pieces.
You see here a scale mail (250 aum).
You see here a ring mail (250 aum).
A rustproof long sword (weapon in hand) (40 aum) for 15 zorkmids. Pay?
[yn] (n)
You paid for a rustproof long sword (weapon in hand) (40 aum) at a cost of
15 gold pieces. "Thank you for shopping in Demirci's used armor
dealership!"
--
Limit vampire shapeshifting on rogue level to vampire bats (only
choice represented by uppercase letter) and have other shapeshifting
try for uppercase. The latter isn't rigorous because shapeshifters
(chameleon=':', doppelganger='@', sandestin='&') aren't uppercase
themselves, so won't be created there under ordinary circumstances.
It applies to the "summon nasties" monster spell and post-invocation/
post-Wizard's-death harassment effect too.
From Boudewijn:
> I am currently swallowed by an ice vortex, and used the ; command
> to identify the \ on my top right.
>
> It said: "\ an opulent throne (interior of a monster)"
Now, when you're swallowed, and look at anything else than yourself,
you'll get "\ the interior of a monster (interior of an ice vortex)".
Based on the comment in the code, it seems this was the original
intention anyway.
Augment the existing enlightenment feedback for blindness: "innately"
blind if poly'd into something without eyes, "permanently" blind if
using the blind-from-birth option, "deliberately" blind if blindness
is solely due to a blindfold, or "temporarily" blind otherwise.
Add status of "not wearing any armor" when applicable, with slightly
different phrasing if it's due to adhering the OPTIONS:nudist conduct.
The Blindfolded_only macro didn't track u.uroleplay.blind so would
give a false positive if wearing a blindfold, not able to see due to
the blind option, and not afflicted with any other blindness factors.
Dipping a worn blindfold into holy or unholy water is supposed to
reveal a glow if that blindfold is the only reason for blindness but
the glow was described even when blind-from-birth.
There's no feedback at all when the glow isn't seen. I'm punting on
that one. (This change didn't introduce that, just added one extra
situation where it happens.)
OPTIONS:blind starts the hero off blind, but putting on the Eyes of the
Overworld confers sight. Make that break the blind-from-birth conduct.
Sight persists after removing the Eyes even though they aren't intended
to cure anything. It doesn't make sense to restore the blind-from-birth
flag when taking the Eyes off, but we may want to add another flag, or
make u.uroleplay.blind into a bit mask that can track both can't-see-now
for play and could-never-see for conduct. (Actually, u.uroleplay.blind
should track only the conduct, and starting the game with it enabled
should set one of the extra bits in u.uprops[BLINDED].intrinsic. The
Eyes already override that, and taking them off would restore blindness
since the bit would still be set. As a bonus, the expression in the
macro 'Blind' could be simplified.)
Honor things like OPTIONS:role=!tourist and NETHACKOPTIONS='race=!orc'
when performing interactive role selection. I don't think it was
completely correct when players let the program choose, but it must
have been close enough because we haven't gotten any complaints.
The post-3.4.3 interactive selection was ignoring options-base filtering
entirely and did get complaints for the pre-beta.
Role selection has a ton of code which bloats the program without doing
anything useful for actual game play. It ought to be split off into a
separate front end.
Gnomes in mines during level generation have 1/20 chance of getting a candle
(should give approximately 4 candles in all of the mines total), and every
randomly generated gnome has 1/60 chance.
When looking to see whether the monsndx() panic could provide any more
useful information [if a pointer that's supposed to point into the
mons[] array doesn't, I don't think that there's a whole lot of other
information available aside from whether it is null or not, and that's
implicitly provided already], I went through the whole file cleaning up
the formatting and making sure every routine was preceded by a short
(usually one line) comment.
There were a few bits of code reorganization. I changed little_to_big
to have a single point of return. The 25 year old workaround for a
compiler bug on a defunct platform may or may not still be applicable;
I took that out. If we get segfault reports for AIX on PS/2, this is
the first place to look. (big_to_little is nearly identical and didn't
have the same workaround. Not needed, or not called often enough for
any AIX PS/2 user to be affected?)
Changes to be committed:
modified: include/botl.h
modified: include/extern.h
modified: include/wintty.h
modified: src/botl.c
modified: src/options.c
modified: src/windows.c
modified: win/tty/wintty.c
get the tty versions started
Changes to be committed:
modified: include/extern.h
modified: src/botl.c
modified: src/options.c
modified: src/windows.c
defer notification of the window port until after
proper initialization. Options are processed very
early in 3.6.0
Changes to be committed:
modified: include/botl.h
modified: src/botl.c
modified: src/windows.c
modified: win/tty/wintty.c
Move the windowport stuff out of botl.c and into windows.c
where it belongs.
If Sting is glowing when blindness gets toggled, give a new "glowing"
message.
So instead of
Sting glows blue! [...] You can't see! [...] Sting stops quivering.
if you're still blind when the last orc goes away, or
Sting quivers slightly. [...] You can see again. [...] Sting stops
glowing.
if you were blind when the first orc arrived, now you'll get an
intermediate message between the second and third ones. 'Sting is
quivering' for the first case, 'Sting is glowing' for the second.
No matter how many times blindness toggles back and forth, the final
"stops glowing" or "stops quivering" will be consistent with the most
recent "is glowing" or "is quivering".