Commit Graph

932 Commits

Author SHA1 Message Date
cohrs
d4c5f883d4 post-3.4.1 betabug: mimick
mimicking is correct, mimick is not.
2003-03-05 06:04:08 +00:00
cohrs
baa912fa61 U319 - lotu juice
Valid fruit names like lotus would result in funny fruit juice names, eg
"lotu juice".  Looking at a long list of words ending in "us", the ones one
might reasonbly use for a fruit name were all singular, as were almost all
of the unreasonable words.  Changed the logic to prefer to leave "us" words
alone, except for 2 monster types that might be entered with "s" at the end.
Tengus is not correct, according to makeplural, but I put that in to be nice.
2003-03-05 05:45:45 +00:00
nethack.allison
5122409416 Several things that break savefile compatibility
- Version change from 3.4.x
- timed_delay feature ignore in makedefs
- several flags from iflags to flags
- use offsets from mons array entries in save file rather than storing
  the ptr and calculating the distance from beginning of array
2003-03-05 04:39:47 +00:00
cohrs
4d6cfb01a7 U313 - crash applying figurine, cursed bell or candles
Reported for applying a figurine that was used up, but I found the same
problem could affect cursed bells and candles.  Modified all three helper
functions to indicate when the object is gone, and modified doapply to
deal with this before doing the artifact check.
2003-03-04 06:53:25 +00:00
cohrs
b83d8d3b5d U58 - Targetting problem with infravision/ESP
A skilled/expert caster of fireball/cone of cold was not able to target
a location with a monster seen only by infravision/ESP.  Since you can
focus on the monster there, targetting shouldn't fail in this case.
Attempting to lock onto a monster inside stone still won't work.
2003-03-03 05:56:58 +00:00
cohrs
77c538e164 B20008 - seeing pet move
The cansee() checks are not really correct for seeing your pet move.
Changed them to a pair of canseemon() checks, one before the move, one after.
I can see an argument for canspotmon(), but decided to keep it based on sight.
If your pet is unseen in both locations, you won't get any messages, which
I think is more correct.  If you do get the message, use noit_Monnam to
ensure no more "it" message.
2003-03-02 21:54:37 +00:00
nethack.allison
eab7064510 W341-2 Finnish and international keyboard arrangements 2003-03-02 12:58:29 +00:00
cohrs
bfd5856d4f Yname2 vs yname
<Someone> noticed a capitalization mistake in a new message.
2003-03-02 07:02:00 +00:00
cohrs
a9a7ffe18f U295 - bones file creation cursing secondary weapon caused panic
As reported, if you're twoweaponing and die, your secondary weapon may
become cursed and drop.  But, the bones file code is dropping everything
and tries to drop it again, causing a panic.  drop_upon_death just clears
things out, so follow suit for uswapwep.
2003-03-02 05:41:00 +00:00
cohrs
0e3d283508 C341-1 - don't make monsters angry if they enter non-hero regions
this currently affects only regions created created by deads heros
found in bones files
2003-03-02 05:33:45 +00:00
nethack.allison
e60b33d9fd get ready for tarball 2003-02-20 00:36:14 +00: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
4107ce55af confuse monster bit
'+' is not a valid argument to resist(), although it still works
since the default case catches it.  Make the spell class explicit,
although I don't think having the effectiveness of scrolls of confuse
monster depend on the character's level makes much sense.
2003-02-19 12:26:03 +00:00
nethack.allison
0c4bd66545 runtime port identification
The CE ports use makedefs hosted on another platform,
so the version string generated at build time isn't really
appropriate.

Add a way to add information to the version string
at runtime for such ports.
2003-02-19 11:44:14 +00:00
nethack.allison
3d9d7f24b3 ensure that shade_aware is only set for shades. 2003-02-19 11:19:30 +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.rankin
7a1fcd008a wizkit revisited
The previous changed ended up discarding the begining portion of
excessively long lines and keeping the end.  It's unlikely that either
part is going to be valid, but reporting the ending portion as a failed
wish would make tracking down and fixing the situation trickier.
2003-02-19 08:35:51 +00:00
nethack.allison
0e2630f817 wizkit fgets() buffer size
also ignore lines where we didn't read a newline within BUFSZ characters
2003-02-19 06:14:47 +00:00
nethack.allison
1284e86476 lint follow up
Janet wrote:
>There is one more new complaint that might cause problems:
>explode.c(545): warning: conversion from long may lose accuracy
2003-02-19 05:12:31 +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
jwalz
6689de0e04 Lint cleanup, nothing significant.
There is one more new complaint that might cause problems:
explode.c(545): warning: conversion from long may lose accuracy
2003-02-19 03:18:49 +00:00
jwalz
1d488f4762 Allow use of old compiler. 2003-02-18 22:31:12 +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
86dd975ec6 fix warning without STEED defined 2003-02-18 12:28:35 +00:00
nethack.allison
58c504954d beta 20 2003-02-15 02:45:37 +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
nethack.allison
edee769d37 tombstone engraving with fingers
<email deleted> wrote:
> comments: When I try to write in the dust, with my finger, on a
> tombstone, it works the first time, but after that I'm getting a
> message that I can not erase what's written here.  Is that an
> intentional way of preventing us gaining a bunch of levels fighting

5 days, no objections to proposed code change.
2003-02-13 11:04:56 +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
2643ae3ee9 pline bits
a few plines that were without punctuation.  There may be more non-DEBUG
pline or pline-like things that are still missing punctuation.  They are
almost impossible to find after the fact, since they could be anywhere,
including in various dat files and functions that pass strings and formats
into other functions that call pline.
2003-02-12 06:30:06 +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
nethack.rankin
97cd4c2ef7 magicbane tweaks
Update the comments to [try to] more accurately describe the behavior.
Also add hallucination handling and make the probe effect be more likely
to occur (or to put it another way, make the stun effect be less likely
since one or the other always takes place--except when stun is superseded
by something more severe).
2003-02-11 10:10:17 +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.rankin
00d320c3d3 magicbane groundwork
To fix Magicbane's message sequencing, its code needs to be redone
substantially.  These changes make that easier.

cancel_monst()  let caller know whether cancellation succeeds
resist()  give artifact weapons a resistance attack rating
vtense()  handle monster names and "you" as subjects; checking against
          object names and descriptions pointed out a couple of other
          words that would have ended up being miscategorized.
2003-02-10 10:23:01 +00:00
nethack.allison
6f0783dad3 grammar bit
<email deleted> wrote:
> On Sun, 12 Jan 2003 15:40:33 +0100, <Someone>
> <email deleted> wrote:
>
> >You begin praying to Anu. You are surrounded by a shimmering light.
> >You finish your prayer. You feel that Anu is well-pleased.
> >Your stomach feels content.
> >You are feeling mildly nauseous.
>
> Huh.
>
> sh-2.03$ grep nauseous *.c
> pline.c:        if (Vomiting)           Strcat(info, ", nauseated"); /*
> !"nauseous" */
> potion.c:           if(talk) You_feel("much less nauseous now.");
> timeout.c:      "are feeling mildly nauseous.",         /* 14 */
>
> Well, pline.c has it right.  Nauseated means feeling sick.  Nauseous
> means sickening to contemplate.

Second opinion (dictionary.com):
> Usage Note: Traditional critics have insisted that nauseous is
> properly used only to mean causing nausea and that it is
> incorrect to use it to mean affected with nausea, as in Roller
> coasters make me nauseous. In this example, nauseated is
> preferred by 72 percent of the Usage Panel. Curiously, though, 88
> percent of the Panelists prefer using nauseating in the sentence
> The children looked a little green from too many candy apples and
> nauseating (not nauseous) rides. Since there is a lot of evidence
> to show that nauseous is widely used to mean feeling sick, it
> appears that people use nauseous mainly in the sense in which it
> is considered incorrect. In its correct sense it is being
> supplanted by nauseating.
2003-02-09 15:42:42 +00:00
nethack.allison
ae8fd8e77e beta 19 2003-02-09 06:02:42 +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
fd22b557ed Cloning monsters doesn't count for extinction as comments imply
Another from <Someone>'s list.

Adjust the comment.
2003-02-09 02:25:02 +00:00
nethack.allison
217e9dadbb xorns sink follow-up
|
2003-02-09 02:10:55 +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
4b92592056 freezing sphere and amulet of lifesaving
<Someone> wrote:
> "The freezing sphere explodes!  You seem unaffected by it.  But wait...
>   The freezing sphere's medallion begins to glow!
>   The freezing sphere looks much better!
>   The medallion crumbles to dust!"
> How can sphere wear a medaillon?
> How can an exploded creature start to look better, if it leaves no corpse?

This addresses the part about looking better, it does not
address spheres wearing medallions (which is not a bug
in my opinion, but other opinions may differ)
2003-02-04 00:56:03 +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.allison
b7be80ab22 fix other way to get "silly thing to wear"
It was possible for the code to end up in do_wear.c
to put out the "silly thing to wear" message.
2003-01-31 13:19:09 +00:00