Reported to the mailing list on 5/23. To fix this, u.usteed cannot simply
be unset earlier, so I put a check for this special case into enlightenment().
<email deleted>
Sent: Thursday, June 13, 2002 12:03 PM
Subject: Beta 1 comments
>A minor thing, but it'd be nice if the "trapped" now in lookat()
>had a defsyms[trap_to_defsym(tt)].explanation to tell you _how_
>the monster's trapped.
<email deleted>
Sent: Thursday, June 13, 2002 12:03 PM
Subject: Beta 1 comments
> Headstone writing still uses the adjective "weird" when engraving with
> a wand of digging.
<email deleted>
Subject: Beta 1 comments
> Is "You swing your axe through thin air" the right message to give
> when you try to use it to chop through a statue or boulder? Relatedly,
> this line in dig() looks as if it needs updating to the new dig_typ
> indices:
Based on a report from <Someone>, avoid calling rn2(ml) when ml == 0.
Since level 0 monster always fail in their spells, just skip the whole
loop looking for a good spell.
The NOCWD_ASSUMPTIONS conditional code allows readonly
parts of NetHack to be separated from areas that require write-access.
This allows the recent panic log needed a prefix.
Make all the quest nemesis monsters resist stoning so their death messages
make sense. Some already did resist. Stoning seems like such a trivial
way to overcome a quest nemesis anyway. If it were to be allowed, multiple
death messages would be needed in the quests.
I'm surprised that no one has noticed this one yet. When
wielding two weapons, naming either of them caused two-weapon
combat mode to stop (unless the weapon already had another name
which was long enough to be overwritten by the new name without
allocating a replacement object).
From the newsgroup: creating Sting via naming didn't produce
intrinsic warning (orc detection) if it was already wielded at the
time. (Un- and re-wielding it sufficed as a workaround.)
Reported to the mailing list. If you set your monster symbol options, and
use ';' and select a known invisible monster by screen, a crash would occur
accessing a null pointer.
Reported directly to the list. If you are not the wizard and start nethack
on the command line with the -D flag (or -X), the game reports that you're
entering discover mode but does not actually do it. The flags.explore in
the save file overwrote the new value. Save the flag while reading flags
if discover mode was requested.
Add an optional paniclog file, controlled by a new PANICLOG macro that can
be used to log all panic and impossible messages. Helpful when people
forget to send, or didn't see, the message.
"Force the mount to succeed?" doesn't necessarily do so;
it's worse than useless to suppress the message which indicates
why a mount attempt is failing when a failure occurs.
when investigating the report of death due to falling off steed leaving
"you were riding" in the final attributes. (This doesn't fix that bug.)
Dismounting calls teleds() to put the character on the map and teleds()
does various iron ball manipulations, but during level change the ball
is removed from the map and those manipulations won't work as intended.
As per <Someone>:
> I had a game today where I was polymorphed (by a sink) into a mimic, and
> #monster-ed (hid). The symbol on the map for me was ]. Then, I polymorphed
> again, this time into a kobold lord -- but the symbol remained ]. This
> seems wrong.
Handle this similar to the polyman code.
longtime bug in damageum, if hero is poly'd to something with fire damage,
and hits a paper or straw golem, mondead will get called twice for the
monster. Fix this, by working like AD_CURS does no clay golem. Also, make
sure no scrolls, et al, get dropped by disallowing a corpse.
Fix the reported bug of being double-billed for a bag of
holding destroyed if #loot is used to put a wand of cancellation
into it while it's on a shop floor. (The bug report neglected
to mention a second aspect of the situation: you wouldn't get
billed for the wand if you used an unpaid one to trigger this.)
There's a check in doloot that's supposed to disallow looting nearby
monsters if you loot a container at the current location. But, it only
worked if you looted the last container. Make the behavior consistent.
The worn bits, et al, were not all cleared when the shopkeeper grabbed your
pack. This currently affects only alternate (non-twoweap) and quivered
objects. This could lead to a panic or a crash.
[I've lost the #Rxxx number for this bug report....]
When attacking a non-stone golem with a cockatrice corpse,
suppress the redundant "<monster> turns to stone" message which
preceeded the "<monster> solidifies. It's now a stone golem."
messages.
From the newsgroup: using #chat to talk to a "meditating"
monster like quest nemesis or Medusa could elicilit responses
without waking it up (at least if you moved fast enough enough
to probe it before it got its next turn).
From the newsgroup:
> Apparent bug or weird-seeming feature:
> If you try to mount a horse that is already in a pit,
> you get the message "You lead the poor <foo> into a pit!"
I checked into fixing this properly (you mount the steed and
then shared its trapped status without actively retriggering the
trap in the process), but the trap code is too convoluted to do
that cleanly. So this "fix" just makes mounting attempts fail if
the steed is trapped.
(This diff is mostly whitespace cleanup.)
This fixes a long worm display bug. The bug wasn't really in the worm code, it
was in goodpos(). goodpos() could place worm segments on top of one another.
If you split a worm when the tail was located on top of the head, the tail
would be removed from the screen, making the head seem to vanish.
If you first pushed an undiscovered boulder while blind with ESP and
there's a monster behind it, you'd get a message referring to the boulder
but the boulder wasn't displayed. Move the feel_location test.
Also, improved the grammar of the message a bit.
u.umonnum was used to create the corpse in a bones file. However, unless
you're polymorphed and manage to actually die in that form, u.umonnum
refers to a role monster, which all have M2_HUMAN set, so they're all
human. Even if the role monsters were mutated dynamically when the game
starts, the problem would still exist, just in a different form.
Use urace to determine the corpse type instead.
Add a param to newcham() to let it print "The oldmon turns into a newmon!"
rather than always printing this externally. Should ensure a good ordering
of the messages. Also put some special name handling in one place and
catch a couple cases where "saddled" was printed, resulting in funny messages.
Based on the limited research I've done, it does not appear that crocodiles
of any size have legs that can effectively kick doors, chests, et al. They
could kick objects, but kicking a monster would be more of a claw attack.
It's simpler to just print a message in all cases.
Bug reported was that Vlad the Impaler never figured out that a wand of
teleportation was useless.
1) Rather than change the monst struct, overload the use of the mtrapseen
TELEP_TRAP bit to be set when a monster uses teleportation on a noteleport
level. This has the side effect of causing the monster to know about
teleport traps if they manage to leave the level.
2) reduce chance for monsters to get teleport wands on noteleport levels,
since they will otherwise simply be left mostly charged for the player.
by <Someone>
(the following text accompanies the patch at <Someone>'s web page)
add more configurability to the new msg_window option of [..]3.4.0.
It allows the configuration option to take an optional parameter to
specify the style of message history display to use.
allows the following configuration options:
msg_window:s - single message (as was the default in 3.3.0)
msg_window:c - combination; two messages in 'single', then as 'full'
msg_window:f - full window; oldest message first
msg_window:r - full window reversed; newest message first
In the event of no parameter being provided,
the patch is compatible with the current 3.4.0 behaviour:
msg_window = 'full'
!msg_window = 'single'
msg_window can be configured for these options in the
Options menu (Shift-O)
msg_window stores the current window type in the non-persistent
iflags structure, which means that savefile/bones files should be
100% compatible with Vanilla, but at the disadvantage that your
customisations to msg_window will be replaced with your
defaults.nh (or ~/.nethackrc) value every time you restart a saved game.
Credits:
The patch draws inspiration (and code snippets) extensively
from <Someone>'s original msg_window patch, [...] as well as <Someone>'s code for reverse ordering implemented until recently in
Slash'em.
From the newsgroup: vault guards would ask your name--and you'd
be able to respond--even when you were unconscious (for any reason
besides fainting from lack of food) or paralyzed. (The code already
made the guard be forgiving when you failed to promptly follow him
out due to that situation, but it would repeatedly say "move along!"
even though you were unable to move.)
From the newsgroup: if the Candelabrum of Invocation already
has six candles attached and you apply another one to add the seventh,
the message said it "now has seven candle attached."
Eliminate or at least reduce one of the idiosyncratic differences
between enchant weapon and enchant armor: make reading enchant weapon
discover that scroll if the effect is adequately discernible, instead
of always asking the player to supply a name for it. If your weapon
is identified and its +/- enchantment value goes up, or you're wielding
a worm tooth and it transforms into a crysknife, you learn the scroll.
However for the negative effect of a cursed one, that's only applicable
when the scroll is already known to be cursed.