[B04003 and B04004 are still marked "Reported"]
<Someone>:
> You aren't very skilled at reaching from the saddled blue dragon.
> Continue your attempt to set the land mine? [yn] (n)
> You begin setting your land mine.
> There is the trigger of your mine in a pile of soil below you.
> KAABLAMM!!! The air currents set your land mine off!
> I somehow suspect that it'd be more than the air currents, if I were
> trying to arm a land mine from dragonback while not very good at
> controlling it.
<Someone>:
> What do you want to use or apply? [cmu or ?*]
> You aren't very skilled at reaching from the saddled warhorse.
> Continue your attempt to set the land mine? [yn] (n)
> You begin setting your land mine. You escape your land mine.
> Is "escape" really the right word here?
Mostly `gcc -Wwrite-strings' complaining about passing string
literals to safe_qbuf(). `gcc -Wformat' didn't catch the type mismatch
of formatting the return value of strlen() with %d, presumeably because
size_t is defined as unsigned int on this system and it treats int and
unsigned int as interchangeable as far as printf/scanf checking goes.
I'm not sure whether the sizeof() values being passed to safe_qbuf()
ought to have casts. Any system where size_t isn't the same width as
unsigned int is bound to support prototypes, but might possibly warn about
the implicit conversion of unsigned long (or even unsigned long long these
days) to unsigned int.
"You can't loot or pick up containers on the floor if you're not
skilled enough to reach them from your saddle, but you can check
for and disarm traps on them; this seems a little odd. (Likewise,
being able to set land mines and beartraps while riding.)"
When attempting to disarm a trapped chest, wisdom should only be exercised
when not confused. It stands to reason that even if you manage to find a
trap in a confused/hallucinating state, wisdom shouldn't be exercised.
add another bit to the flags passed to launch_obj so it can print
the initial "rumbling" message at the appropriate time rather than
having the caller print the message, possibly out of order.
1) killer reason for scattered land mine shrapnel used "a" or "an" prefix
even when multiple projectiles hit as a group -- one of various things
From a bug report.oextra field) --
noticed while investigating #1 and later From a bug report.4.0 due to an unintentional side-effect of missile killer reason
handling in 3.4.1 (removal of redundant "poisoned" prefix by m_throw()
confused the poison handling routine) -- noticed while investigating #3.
This is my final src mod to ensure that a qbuf does not overflow due to
a lengthy named object. These recent patches, coupled with the core yn_function() patch earlier, should make it much rarer for a QBUFSZ
buffer overflow to occur in a window port routine (unless the window
port routine has its own bugs, but that isn't the core's fault).
Noticed when investigating one of the killer reason bugs recently
reported: a land mine explosion shouldn't create a concealed pit trap;
make a revealed pit instead. And while testing that, I noticed that the
"Kaboom" message given when pushing a boulder onto a land mine was given
while the map still showed the boulder at its original location even
though it had actually been moved already. It's a little odd that you
get hit by shrapnel at your original position--as if you're shoving the
boulder ahead of you and then pausing a moment before stepping into its
former location--but that's trickier to fix; sometimes you won't advance
due to there being multiple boulders present (in that case you evidently
do shove the boulder instead of performing a steady push, so maybe the
current behavior is fine as it is).
Added a random factor to arrow, dart and rock traps so they'll eventually
stop producing new objects. Also fixed a bug in mklev that set the trap
"once" flag even for traps where it wasn't currently appropriate.
> "A cloud of sangria gas billows from the chest.
> You stagger and your vision blurs."
> When I see the gas billowing from the chest, I'm not yet
> hallucinating. Shouldn't the gas have a normal colour, then?
> Only after my vision blurs should the gas assume a fake colour, I
> think.
>
<Someone> reported to the list that steeds didn't remember traps
encountered while mounted. When not mounted, a monster will remember
traps, even when they don't damage the monster. To that end, added code to
set the steed's mtrapseen mask.
Try to fix the reported bug of not waking up if sleeping on ice
that gets melted out from under you. This fixes the straightforward
case but I suspect there are other permutations that it doesn't cover.
Teleporting out of water is now blocked if asleep; waking up occurs
after the chance for that has passed.
>More worrying is the fact that applying a figurine over water lets
>the monster wait until its next move before it drowns (giving
>you time to teleport it to safety, or whatever) [...]
>Should there be a minliquid() check as part of make_familiar()?
Applying at the water location next to you was easy. But
applying it at your own location (triggering BY_YOU) could
end up placing the figurine at the far side of the level if
there was lots of water.
Correcting that required the ability to pass a flag from
make_familiar to makemon() telling it to not rule out
water locations as good positions. The flag had to
be passed on down to goodpos() and enexto().
The bulk of this patch is just adding an additional
argument to goodpos() in all of the callers.
Building with an old version of gcc with various warnings enabled
generated a lot of noise. Most of it was due to not guarding string
literals with `const', but there were a couple of actual problems too.
- The code in xkilled failed to call spoteffects after killing the monster
that was engulfing you. Being expelled already worked correctly.
- While testing this, I discovered that removing a ring of levitation or
similar while engulfed would call spoteffects when it shouldn't. Fixed
that too.
Prompted by a message to the list from <Someone> which noted that your
strength controls the traps effect, not the steed's strength, although the
messages say otherwise. Changed this case to use mintrap to determine what
happens.
Handle sleeping consistently; of the nine places fall_asleep
is being called, only one of the them actually affected sounds.
The two cases where sleep is used to penalize overexertion aren't
affected.
Someone posted in the newsgroup about using stone-to-flesh
to reanimate a petrified pet and having it come back to life with
boosted speed intact. When the character gets petrified, stripping
speed is one of the first things which happens, so now do that for
monsters too. I decided not to make monsters who have normal speed
become slow; there isn't any analogous case for the player.
Possible bug: while testing this, I zapped a wand of probing
at a hill orc which had just eaten a lizard corpse to save itself
from stoning. The feedback said "eating" but the orc immediately
hit and killed me as if it wasn't affected by any movement delay.
- Breaking wand of digging dug through rock which should be undiggable.
Checks assumed pits would never show up in solid rock.
- Breaking wand of digging near shop walls wouldn't anger the shopkeeper
Checks assumed pits would never show up in walls, also, added a special
case to pay_for_damage to handle the case where you're falling thru and
can't be asked to pay.
- Shop walls wouldn't be restored if there are pits in the way.
Checks assumed pits would never show up in walls.
- If there was a hole outside the shop, you could kick stuff out of the
door into the hole without shopkeeper noticing. Added the missing check.
<Someone> wrote:
> Linux, Redhat 7.1 nethack 3.4.0
>
>Please see attached patch file.
>
>I'm attempting to move more stuff into the "read-only" area, in
>preparation for a port to another OS.
<email deleted> on Sunday, August 18, 2002 at 15:28:18
> comments: player is blind, and not hallucinating (initially). On #loot:
>
> You trigger a trap!
> A cloud of ultraviolet gas billows from the large box.
> You stagger and get dizzy...
From a bug report, a rolling boulder
trap could report that the boulder had fallen into the pit with you
and then let it keep rolling. flooreffects() only returns true
when it uses up the object being manipulated but it doesn't use up
boulders that hit pits which hold monsters or the hero. Its caller
needs to handle the cases where the boulder ends up sharing the pit
with a monster.
Paper golems destroyed by fire traps won't leave any scrolls
of blank paper behind. (There's still no handling of other forms
of fire attack against such critters.)
Paper golems take 100% damage in a fire trap. Straw is very flammable
unless tightly packed, but straw golems have a lot of surface area, so give
them 50% damage.
> The intention is, I believe, to cater for the situation where you, a
> chest, and a dungeon-trap are all on the same square; previously
> (C340-71), you wouldn't have been able to check the chest for traps
> because an #untrap in direction '.' would always have tried to disarm
> the dungeon trap. However, since you can't trap-check containers on
> adjacent squares, it'd wouldn't hurt if the question was dispensed
> with when you specify a direction that isn't your square.
>
> (Note that "you cannot deal with traps while trapped!", so there's
> still several situations when you can't trap-check a chest on a
> trap-square, even though you can loot it, until you've untrapped
> yourself; is this really consistent? Should the if(u.utrap) check
> be moved to the "case y:" branch of the switch?)
The seetrap() was done for trapdoors & holes independent of whether a
message was printed. Move the seetrap call into fall_through where
the message logic lives (Sokoban holes always activate).
a frozen (possibly sleeping) monster cannot be grateful unless it wakes up.
From a bug report. The pit case can only happen if mfrozen is
non-zero, but other traps may leave msleeping set as well.
[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.
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.