Commit Graph

333 Commits

Author SHA1 Message Date
Sean Hunt
1c081b1647 Remove stale version control lines. 2015-05-25 09:21:31 +09:00
keni
03140969ee Bulk recovery of file CVS headers and addition of NHDT- headers. 2015-02-26 09:19:03 -05:00
nethack.rankin
7aeaeac8e3 fix B20003 - hallucination and warning
> Why does warning work normally while hallucinating?  I'd like to see
> random numbers.

     It's just a one-liner, although it has pointed out problems in the
symbol lookup code.  "0" won't work at present, so this doesn't use it,
but warning symbols "1" through "5" also have trouble--regardless of
hallucination--if someone overloads them to represent any feature aside
from warning.
2003-02-20 00:19:49 +00:00
nethack.rankin
8d6d715f8d teleporting monster strategy
Reported last spring and again last week:  monsters who teleport to
your location (named demons, master liches, and so forth) continue to do
that even if they've just used a scroll or wand of teleportation to get
away from you.  This doesn't prevent that situation but does make it be
much less likely to occur.
2003-02-19 09:55:17 +00:00
nethack.allison
0f51c0174f undead turning of ghost on bones level
<email deleted>
Newsgroups: rec.games.roguelike.nethack
Subject: Re: Other ways to destroy the Amulet

<Someone> wrote:
>>> Zapped undead turning at his _corpse_, which brought the corpse
>>> back to life and also destroyed the ghost. The revived
>>> character was not carrying anything.
>>
>> Hmm, didn't the Amulet fall to the floor like when you genocide
>> something that's carrying something?
>
> Nope.
>
> That's because undead turning does mongone(ghost). The mongone
> function destroys the inventory of the monster:
> discard_minvent(mdef); /* release monster's inventory */
>
> Whereas genocided monsters are removed with mondead, which calls
> m_detach, which calls relobj, which drops the monster's inventory
> on the floor.
2003-02-19 04:31:46 +00:00
cohrs
7c937d2186 B20001 - shopkeeper angry at unnamed customer
The "following" flag could get set in several places where it was not
obvious that the customer name would be remembered.  Since the shopkeeper
should always get angry at the current player, set the name at the same
place that the flag is set.
2003-02-18 17:08:04 +00:00
nethack.allison
9ac4afe46e fixes update SELF_RECOVER on winCE 2003-02-15 13:53:24 +00:00
nethack.rankin
4496ca3d85 fix B18012 - Werebane
Make wielding Werebane confer defense against catching lychanthropy
from monster bites.  It doesn't protect against catching that from eating
lycanthrope corpses and might blast the character if wielded at such time.

     Also fix artifact handling to recognize the character as lycanthrope
while in normal human/elf/whatever form--rather than only when in beast
form--just like it does for monsters.
2003-02-14 01:06:08 +00:00
nethack.rankin
a20dc69dee fix U206 - cursed leash/pacifist conduct
Treat strangling a pet with a cursed leash like a regular monster
kill; you'll get experience, lose pacifism conduct, and suffer various
pet-killer effects.  Also do some minor damage and reduce tameness for
the case where the pet is described as being choked but isn't killed.
2003-02-13 23:32:48 +00:00
cohrs
d1fdc497d2 U162 - killing shopkeeper with unpaid thrown objects
While an object is being thrown, it isn't on any list.  This means that
killing a shopkeeper with an unpaid object wouldn't be able to clear the
unpaid bit.  By the time the object lands, the shopkeeper is gone, and then
it's too late.  Added a new global to track a thrown object, set it and later
clear it in throwit(), also clear it as needed in dealloc_obj(), and check
it in setpaid().  It should be possible to use this global to avoid losing
thrown objects during hangup saves as well.  But that can wait.
2003-02-13 07:52:49 +00:00
cohrs
6885f18bb1 steeds don't remember traps
<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.
2003-02-13 05:23:46 +00:00
cohrs
b48b6addf3 U260 - waiting times out for no reason while in were form
The initial report thought this was related to summoning help.  It's not.
moveloop would attempt to call you_were() even when you_were() would not
actually change your form.  Certainly there's a layering problem here, but
for now, just put in the same check peffects() uses to avoid calling
you_were() unnecessarily.
2003-02-12 02:07:22 +00:00
nethack.rankin
fe05bcf52d falling into water while asleep
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.
2003-02-11 11:57:14 +00:00
cohrs
8930e5b442 nethack -s buffer overflow fix
When printing invalid player names in -s mode, it was possible to overflow
the output buffer due to a missing buffer size check.  On shared Unix-like
systems with executable stacks, this could be used as a security exploit,
eg to obtain a shell running as user or group games.
While I was at it, removed a dead block of "#if 0" code
2003-02-10 19:01:58 +00:00
nethack.rankin
6c1d28753c magicbane fixes
Revamp the Magicbane code so that it won't result in "<monster>
turns to flee" followed by "the magic-absorbing blade scares <monster>".
In the process I noticed that resistance checks for its scare and purge
effects were based on the character's experience level regardless of who
was wielding it or who its target was.

     I didn't try to retain the exact behavior it had before, but the
new behavior is pretty close.  The main differences are that the "purge"
effect is now called "cancel" and that the stun effect will be less
common now and always gives feedback when it occurs.  It used to combine
stun with scare and/or purge in some cases, now it won't; and it used to
always scare when purging, now it will pick one or the other.
2003-02-10 11:08:29 +00:00
nethack.allison
c75490f67f win32tty fixes34.1 catch up 2003-02-09 11:35:38 +00:00
nethack.allison
c2c72d11e7 B18009 animate figurine over water
>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.
2003-02-09 05:39:32 +00:00
nethack.allison
0a0c4dde30 xorns sink when drawbridge is raised
From <Someone>'s list: Xorns don't sink if the drawbridge they're standing on is
raised.
2003-02-09 02:05:02 +00:00
nethack.allison
9033b80719 fix B18011 warning loss
> If you remove a ring of warning, see_monsters() is called to make
> sure that the numbers get removed from the display. However, if
> your only source of warning is experience level and you get
> drained and feel "less sensitive", it isn't, and they're not.
2003-02-09 00:36:33 +00:00
nethack.allison
7dbed130dc fix B18010 fatal exploding chest at ball & chain 2003-02-08 22:00:58 +00:00
nethack.rankin
02d9ab252d fix B18007 - travel cmd forces extra keystroke
I don't know whether there were any other odd situations besides moving
onto known traps being caused by the out of date value in flags.run; several
places do check to see whether it's 8.
2003-02-07 10:04:27 +00:00
nethack.allison
2eeb979497 port-specific debug-mode command
Provide a way to have a port-specific debug-mode commands
if PORT_DEBUG is defined at build time.

Add a win32 keystroke checking routine to assist debugging
of international keyboards.

Fix a problem with the way NetHack was handling
international keyboards by letting ToAscii() come
up with an input character based on the virtual key,
and the shift and caps lock state.
2003-02-06 03:07:43 +00:00
nethack.allison
4c03322d92 Crunched to crunched
<email deleted>
> comments: When dieing from an iron ball landing on your head, the death is
> listed as: "Crunched in the head by an iron ball"
> However no other deaths start with a capital letter.
2003-02-04 00:14:08 +00:00
nethack.rankin
02d784f039 fix U242 - bug with monks
Monks get a big penalty to hit when wearing a suit; otherwise they
get a bonus when not wielding a weapon.  But as reported, that lets them
have their martial arts bonus even while wearing a shield which does seem
rather unexpected.  This change makes them only get their to-hit bonus
while shieldless as well as weaponless.  Impact on play balance is likely
to be quite small; late game characters hardly ever miss due to high luck
bonus and very early game ones won't have found a shield yet.

     Shouldn't the "your armor is cumbersome" message be ``if (verbose)''?
2003-01-31 06:41:56 +00:00
nethack.rankin
1114722335 fix B18002 and B18003 - #rub worn blindfold and wield_tool() feedback
Prevent #rub from wielding an item that is already being worn
(which should narrow things down to the various types of eyewear;
other tools and weapons that go through wield_tool() can't be worn).
Fix up the wield_tool message spacing in the process.

     This moves wield_tool() from apply.c to wield.c.  Some plural
handling for messages is included; it is feasible to try to #rub a
"pair of lenses" or a stack of N candles.
2003-01-30 11:31:12 +00:00
nethack.allison
2b9cc7282c B17003 Asmodeus can't use intended wands
m_initweap() was trying to give him wands of fire and cold; since
he had no weapon attacks, he wasn't is_armed(), so this code never
got called.

This moves the code to m_initinv().
2003-01-26 04:11:49 +00:00
nethack.allison
bd0541679a Using 'P' to put on armour or 'W' to wear a ring
resulted in "That is a silly thing to [put on | wear]".

But those two cases really aren't so "silly", so adjust
the messages to better explain why the game objected
to the action and point new players at the appropriate
command.

Also adds a cmdassist message for the case where
'R' or 'T' have no appropriate items to point
new players to the correct command. (That can be
turned off with !cmdassist, of course.)

Also adds a const to a recent shade patch by request.
2003-01-25 18:41:25 +00:00
nethack.rankin
b9f9a6415b fix B17005 - autoquiver bug
hold_another_object() will try to quiver the object being held if
it's a weapon (or gem/rock ammo) and the autoquiver option is enabled and
the quiver is empty.  It was doing that even if the object had just merged
with primary or secondary weapon, resulting in it being equipped in two
slots at once.  (Easiest way to reproduce it is via wish+wield+wish for
similar item, but it could also occur when stealing while in nymph form.)

     This also addresses one of the old items on <Someone>'s list:  if you
carry a sling equipped in the alternate weapon slot, include gems and
rocks as likely candidates for quivering same as when wielding a sling.
This extends that to autoquivering; ammo appropriate for your alternate
is now given preference over arbitrary weapons (ammo for your wielded
weapon and arbitrary missiles still take precedence over alternate ammo).

     Bug?  pickup_object() is not autoquiver aware, hence autopickup isn't
either.

     Bug too (perhaps moot if the above is changed)?  Snagging a monster's
weapon with a bullwhip uses hold_another_object() so possibly autoquivers;
snagging an object off the floor with a grappling hook uses pickup_object()
so doesn't.
2003-01-25 04:46:11 +00:00
nethack.rankin
9ba2632a29 fix B16003 - Oracle only renamable named unique monster
This makes all unique monsters resist being given a name.  Aside
from the Oracle, the four high priests are the only monsters affected
that weren't already being covered by the old tests.  They might as well
decline to receive names too.

     This also fixes a longstanding quirk that prevented you from
calling a type of object something if the representative sample of it
had been picked up while blind and you hadn't explicitly examined your
inventory since regaining sight.  There's not much point in requiring
an extra 'i' command or use of '?' or '*' at the "what do you want to
call?" prompt, particularly since that makes gameplay be slightly
different depending on whether perm_invent is available and in use.
2003-01-15 08:59:04 +00:00
nethack.allison
1b6794d246 flaming attacks
> Bug with flaming attacks...? These monsters should be unaffected,
> IMO.
>
> The fire elemental hits the stone golem. The stone golem is on
> fire!

fixed in patch

> The pyrolisk gazes at the flaming sphere... The flaming sphere is
> on fire!

This was already corrected in CVS.
2003-01-13 11:48:47 +00:00
nethack.allison
ace325b692 fix B16005 engraving headstone with weapon
>If you're engraving one with a weapon, shouldn't it dull that
>	weapon?
2003-01-11 17:53:26 +00:00
nethack.allison
29bdf381e6 fix buglist entry: menu upon request
For "traditional" menu style, pickup and #loot/apply can't accept an 'm'
response to bring up a menu upon request when all items involved are of
the same class, because the prompt where that response is allowed only
gets issued when multiple classes are present.

Also allow 'm' prefix for pickup.
2003-01-11 17:28:31 +00:00
nethack.allison
a411ff7e9b fixes34.1 catch up 2003-01-11 14:33:13 +00:00
nethack.rankin
2e9e62c528 grammar bit
From the newsgroup recently:  cause of death on tombstone and in
log file was "slipped while mounting a saddled Stockholm" (with horse
named after city).  This fix will produce "slipped while mounting a
saddled horse called Stockholm" in that case.
2003-01-11 06:48:24 +00:00
nethack.allison
0814d95040 B15005 narrow openings and hurtling
Narrow openings are currently not checked for by hurtle_step() or
mhurtle_step. This has the consequence that you can jump or use
Newton's 3rd to get through somewhere you can't get through on the
ground, and monsters can stagger or be jousted through somewhere
they wouldn't attempt under their own steam.

This patch fixes hurtle_step().  It does not address mhurtle_step.
2003-01-11 03:46:56 +00:00
nethack.rankin
c03947d2f8 ^G control
Wizard mode monster creation underwent several changes for 3.4.0
(explicitly create "tame <monster>", create a monster by class letter,
repeat the creation for N monsters) and one of them rendered the check
to prevent creating orphaned shopkeepers, temple priests, vault guards,
and worm tails inoperative.  Put that back, and extend the control to
allow you to specify "peaceful <monster>" and "hostile <monster>" too.
2003-01-10 10:44:31 +00:00
nethack.allison
dd7ab6b94d B16002
This patch ensures that two-weaping stops if uswapwep gets cursed
while two-weaponing.  I think this means the 'A' command will never
encounter the situation now in the complaint now.
See rules at top of wield.c.
2003-01-10 04:46:21 +00:00
nethack.rankin
9988440b2e artifacts in final score
Fix the problem From a bug report.  An earlier fix (3.3.1)
made them be listed during final disclosure, but the points shown for
them actually got left out of the total due to misplaced brackets.
Rather than just fixing the brackets, merge the two inventory scanning
loops so that both passes will always be synchronized with each other.
2003-01-08 22:07:06 +00:00
nethack.allison
cebd0ccbab B14004 Cloaks of invisibility
There's no feedback message nor item discovery when you see a monster
	disappear as it puts on a cloak of invisibility.
2003-01-05 03:57:21 +00:00
nethack.allison
a26514bd61 mimic orange follow-up 2003-01-04 16:54:48 +00:00
nethack.rankin
4fb26adf87 fix B16006 - cancelled monster-monster attacks
Various damage types which wouldn't work when a cancelled monster
attacks the player were working when it attacked other monsters instead.
Besides attempting to fix that, this also makes cloaks and other magic
blocking armor ("magic cancellation factor") work for monsters similar
to the way it works for the player.

     Most types of damage appear to revert to physical damage when the
attacker is cancelled; I'm not sure that's appropriate in many of the
instances.  The leg-pricking case was clearly wrong, since it gives
messages about the attack failing yet still hurt the character.

     This really needs a lot more testing than I have energy for.  I've
tried to clean up various inconsistencies and may have made some typos
in the process.
2003-01-04 02:29:35 +00:00
nethack.allison
38c3e5a9f9 fix B14022
> You're equally unlikely to be wishing for spellbooks by colour,
> but I note that 'grey' for 'gray' only works for dragonscale and
> stones, not the spellbook description.
2003-01-03 04:40:27 +00:00
nethack.rankin
133566ff1b new data.base entries
Add the caveman, healer, and monk data.base entries supplied by
<Someone>, plus the healer one from <Someone>'s list of outstanding bugs and
requests.  Every role now has its own entry.  I left "dwarven caveman"
and "gnomish caveman" pointing at the generic dwarf and gnome entries
respectively, because the caveman quote feels to me to be more human-
specific than the earlier role ones have been.

     I added blank lines to the monk quote to break it into paragraphs,
and made two minor tweaks to the text.  I hope we can find or invent a
separate entry for Master Kaen though.  Getting a quote that refers to
Buddhism for him seems wrong to me, but leaving the generic human one
now that there's a monk-specific one didn't feel right either.

     I've moved a few quest guardians around this time.  Deciding which
of them should yield the corresponding role entries and which shouldn't
involves judgement calls and I don't claim that the current situation
is now perfect.
2002-12-31 04:31:38 +00:00
nethack.allison
e72dbb7c59 buglist fix: gnomish wizard
<Someone> wrote: If you polymorph into a gnomish wizard (even if you *are* a gnomish
wizard), you shrink out of your armour.
2002-12-31 03:30:33 +00:00
nethack.allison
e8ca725e92 buglist entry: hobbits and elven mithril armour
<Someone> wrote: "Also, hobbits can't wear armour,
at least, you can't wear armour when polymorphed into a hobbit, even
though hobbits do tend to be carrying elven mithril-coats.
It's tempting to suggest adding an explicit exception in
sliparm() for elven mithril just to keep the Tolkienness."

- added a general routine for adding race-based /object
combination exceptions.
- hobbits can wear elven mithril-coats
2002-12-29 23:55:58 +00:00
nethack.rankin
df07fd4b90 fix buglist entry - artifact bow wielded by monsters
The Longbow of Diana (ranger quest artifact) confers reflection
to the hero when wielded but didn't do the same for monsters when they
wielded it.
2002-12-27 03:40:57 +00:00
nethack.allison
70d60e16d2 beta 16
- also fix typo that Pat noticed
2002-12-26 16:43:38 +00:00
nethack.rankin
0b2e205117 artifact invisibility fixes
Invoking the archeologist's Orb of Detection gave "you feel a surge
of power, but nothing seems to happen" if you were able to see invisible,
but various other ways of toggling invisibility give fade/unfade messages
in that situation.  Also, you would get false reports of invisibility
changes if you invoked the artifact while temporarily invisible due to
potion or spell or while wearing a mummy wrapping.
2002-12-19 02:24:13 +00:00
cohrs
aabc54549e U189 - killing an engulfing monster over water allows waterwalking
- 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.
2002-12-19 01:57:10 +00:00
nethack.rankin
f210367c13 fix B15003 - behavior of bribe-able demons
Prevent a demon who is carrying the Amulet of Yendor from being
removed from the game when player meets his demand for a bribe since
that was effectively destroying the Amulet.  There are various ways
to accomplish this; I chose to make the bribe demand be for an amount
that the player cannot possibly satisfy in that case.
2002-12-18 18:15:55 +00:00