Commit Graph

1154 Commits

Author SHA1 Message Date
cohrs
421ec1767f restore autodig behavior
autodig messages were broken due to a change in the dig_typ interface which
shifted all the values by 1, but not all callers of dig_typ got changed.
2002-07-05 15:30:51 +00:00
nethack.allison
b41dab0b7a validate_prefix_locations follow-up
translate errno in the log file too.
2002-07-05 14:46:31 +00:00
nethack.allison
895199a83b validate_prefix_locations
Add the actual value of the prefix, and the error returned by the system
to the paniclog file entry.
2002-07-05 14:42:49 +00:00
nethack.allison
fff14e7eed NOCWD_ASSUMPTIONS under MSDOS followup 2002-07-05 13:22:28 +00:00
cohrs
26381228bc knights and covetous monsters
Implement Pat's suggestion of setting the mavenge flag when a covetous
monster flees, since they may subsequently teleport back and attack even
if mflee is set.
2002-07-04 19:13:10 +00:00
cohrs
2a058618e5 B03002 followup
copied over the wrong version of fountain.c
2002-07-04 18:27:22 +00:00
cohrs
0859b5d30a B03002 - missing fountain messages
<Someone> reported that dowaternymph and dowaterdemon did not print a message
when their G_GONE checks failed.  Now they do.  I wasn't feeling
imaginative, so the the dowaterdemon message is the same as for no snakes.
2002-07-04 18:25:26 +00:00
cohrs
2c6a1eb7e1 R972 - rust monster eating gold
When !GOLDOBJ, player polymorphed to a rust monster that attempted to eat
gold in the inventory would fail to eat it, but the gold would be consumed
anyway.  Under GOLDOBJ, a later check would work around the invalid prompt.
2002-07-04 17:47:18 +00:00
cohrs
ff68892016 B03001 - trapdoors while blind and levitating
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).
2002-07-04 17:29:42 +00:00
cohrs
8a44a437e5 R926 - polymorphed player does not explode at thin air
Reported that player polymorphed into an exploding monster does not explode
when attacking thin air.  Also noticed that if player is Unchanging, they
wouldn't die after exploding in the existing code.  Set u.mh = -1 to ensure
they won't still be around after exploding.
2002-07-04 06:36:37 +00:00
cohrs
9d51c1853a cursed daggers thrown by monsters can go thru closed doors
based on a bugfix forwarded by <Someone>, check for closed doors and drop
the missle before it.  I re-arranged the pre checks a bit so m_throw no
longer needs to trust the caller to ensure everything is OK beforehand.
2002-07-03 06:35:35 +00:00
nethack.allison
4d402e1b07 B01012 involuntary dismount crash
Nethack crashes when you are riding a flying monster over a
	pool/moat and some engulfing monster plucks you off your saddle.
	After falling into the water you'll get the normal message
	sequence (sink like rock ... phew, that was close; you also get
	chance to teleport if you can).  After the last message the game
	will crash with a segmentation fault.
	- reproducible; null pointer dereference in swallowed()

The crash results because dismount_steed() calls float_down(), which
calls drown(), which calls teleds(), which clears u.ustuck.  So when
gulpmu calls swallowed after dismount_steed(), this line attempts to
derefernce a null pointer:
    swallower = monsndx(u.ustuck->data);

This patch bypasses the float_down() in dismount steed() altogether.
That routine is meant to return the hero to the floor, and that
isn't appropriate if a purple worm just plucked you off the steed
anyway.

While this fixes the crash, a problem still exists. The
way swallowing works, the swallowing monster's location
switches to that of the hero.  Since that location is
over water, the purple worm ends up drowning almost
immediately after you are swallowed, while you are
swallowed.  The purple worm's death is not revealed
to you since the "The purple worm drowns." message is
conditional. This patch also adds a message when
the purple worm dies, but should this guaranteed
drowing take place?
2002-07-03 02:22:50 +00:00
nethack.allison
186a2ccbcf B01001
<Someone> reported this bug (B01001):
	"Tower of flame" as cause of death _still_ lacks "killed by"
	prefix.
2002-07-03 00:11:22 +00:00
cohrs
c6ec3e35a7 dropping gold on an altar
<Someone> reported that dropping gold on an altar prints no message.
As a side effect, gnostic conduct was never affected, which seemed odd;
dropping other known objects would still affect your gnostic conduct.
While fixing this, I noticed a GOLDOBJ-related bug when dropping gold while
levitating.
2002-07-02 05:55:23 +00:00
cohrs
2c277e15d1 R975 - message for charging for items lost in a cursed magic bag
The loss message was not always printed due to testing the wrong variable
before printing the message.
2002-07-02 04:14:59 +00:00
nethack.rankin
3842c87c0f grammar of food warnings
Change "The corpses smell like it could be tainted! Eat it anyway?"
to be "The corpses smell like they could be tainted! Eat one anyway?"
when eating one of multiple stacked food objects.
2002-07-02 02:39:27 +00:00
cohrs
0acba3f7db paniclog: log correct string 2002-07-01 23:06:01 +00:00
nethack.allison
eac7db7278 early directory validation follow-up
Don't test file creation on the read-only areas: dataprefix, configprefix
2002-07-01 22:53:30 +00:00
nethack.allison
ea268b5b6f early directory validation
Allow early prefix directory validation to help prevent
failed games and lost save files due to incorrect config
file settings.
2002-07-01 22:42:57 +00:00
nethack.allison
47d32c6e45 It was possible to terminate the win32 ports late in the user
save process, after the save file had already been written by
forcing execution of an interrupt handler at one of the
termination prompts.  This resulted in "You were not healthy
enough to survive restoration" and worse.

This clears program_state.something_worth_saving immediately
after the save has been completed.
2002-07-01 12:28:14 +00:00
nethack.allison
a8b7d559cb axing boulder/statue follow-up
<email deleted>
Sent: Sunday, June 30, 2002 6:30 PM
Subject: Sparks from statue-axing
> First, the message given when your axe-handle vibrates is a little
> ambiguous; I'd be explicit and include the name of obj.
>
> More seriously, potions of oil catching light from the sparks are a) a
> great idea, but b) slightly broken. They catch light fine, but
> snuffing them produces a "del_light_source: not found"
> impossible(). (This probably means the same applies to being lit by
> fire_damage(), but that's rare enough this hasn't been caught before.)
>
> (Also, a)pplying a potion of oil to light one identifies its object
> type, so lighting one by this means probably ought to as well. And
> oughtn't it to be charged for if you don't own it, as light_cocktail()
> does?)
2002-07-01 06:41:08 +00:00
cohrs
fbdc238f33 grateful frozen monsters
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.
2002-07-01 02:44:26 +00:00
cohrs
a868473df6 feeling monsters while blind and levitating
<Someone> reported this during 3.4.0 beta.  If you are blind and levitating,
unseen monsters are shown as "I", just like when not levitating, but they
are never erased after they move, unlike not levitating.  Display this
case correctly as well.
2002-06-30 22:29:58 +00:00
nethack.allison
2c4306b4f9 B01011 can't #untrap container on trap
A chest on a [known] trapped square cannot be untrapped--game
	will always attempt to disarm the trap on the square.
2002-06-30 21:02:55 +00:00
cohrs
fbd986d031 final attributes say riding when you die while dismounting
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().
2002-06-30 07:11:26 +00:00
nethack.allison
d845ae45d8 typos from <Someone> 2002-06-30 00:59:41 +00:00
nethack.allison
65325f4067 lookat() trapped detail
<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.
2002-06-30 00:52:49 +00:00
nethack.allison
2fc940d51e headstone engraving with wand of digging
<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.
2002-06-30 00:40:30 +00:00
nethack.allison
d307fb9de6 axes and boulders
<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:
2002-06-30 00:22:04 +00:00
cohrs
60f057ff8e GOLDOBJ zero payment in money2mon
backport of fix to slashem-Bugs-566538 from <Someone>.  money2mon
only makes sense if called with a non-zero amount.
2002-06-29 18:04:30 +00:00
cohrs
cbc70f562a spellcasting level 0 monsters
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.
2002-06-29 17:05:18 +00:00
nethack.allison
6b47ae351d more NOCWD_ASSUMPTIONS
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.
2002-06-29 12:44:54 +00:00
cohrs
c0f63425df R920: Weird message when stoning quest nemesis
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.
2002-06-26 15:19:05 +00:00
nethack.rankin
9524894d3f naming wielded weapons
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).
2002-06-26 05:54:50 +00:00
nethack.rankin
fbeccb7257 Sting's anti-orc warning
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.)
2002-06-25 08:27:31 +00:00
nethack.rankin
174dbea372 #levelchange fix
Using #levelchange to reduce experience level would put nethack
into an infinite loop if the character had life-drain resistance.
2002-06-24 10:30:23 +00:00
nethack.rankin
25f25a396d polymorphed two-weaponing
Cease two-weapon combat if you're using it in polymorphed form
and revert to normal form for any of the roles which can't use it.
2002-06-24 09:59:40 +00:00
cohrs
3db1e7858f fix crash when using ';' to look at I monsters
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.
2002-06-24 05:10:44 +00:00
cohrs
f5b4406f8d entering discover mode while restoring a game
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.
2002-06-07 21:24:52 +00:00
cohrs
2e2ce4effa the panic log
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.
2002-06-02 18:49:18 +00:00
nethack.rankin
c6d02b30c3 wizard mode riding
"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.
2002-06-01 10:40:59 +00:00
nethack.rankin
ac5975ea9d Fix the "remove_object: obj not on floor" panic I encountered
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.
2002-06-01 10:32:55 +00:00
nethack.rankin
a99a8fcba8 singularization of irregularly pluralized monster types
Fix makesingular() to handle "vortices", "liches", and "fungi"
as suggested by <Someone> a while back; also "fungus".
2002-05-31 03:39:00 +00:00
cohrs
761164a30f Staff of Aesculapius didn't always cure sliming
- incorporated <Someone>'s 1-line fix to the precheck
2002-05-21 16:14:36 +00:00
cohrs
94837b78d4 hangups with temp gold in inventory
- Implement Michael's suggestion of marking temp gold put in inventory
so it can be cleaned up during restore.
2002-05-21 05:04:09 +00:00
cohrs
b0cef1a0e2 R883 - disappearing thrown money
this is a !GOLDOBJ bug, the money was not put back into ugold in this
case when it was not thrown
2002-05-20 05:03:13 +00:00
cohrs
d62c6eac08 change appearance if polymorphing while mimicing
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.
2002-05-16 04:02:52 +00:00
cohrs
25e5208deb R868 - don't kill paper/straw golems twice
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.
2002-05-16 03:13:34 +00:00
nethack.rankin
4c07c88dac #loot in shop
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.)
2002-05-15 23:15:39 +00:00
nethack.rankin
b0872d064f twoweapon feedback
When #twoweapon fails, the message referring to "your current form"
sounds pretty odd when you're not polymorphed.
2002-05-15 06:48:46 +00:00