Commit Graph

974 Commits

Author SHA1 Message Date
cohrs
83ffd8077a U406 - running and mimic mimicking closed doors
If running in a way that stops at closed doors, you should stop when coming
across a mimic mimicking a closed door too.
2003-04-14 05:10:06 +00:00
cohrs
b53cdee210 U409 - hiding and eating bugs
Three related bug fixed, two reported in U409.
+ If you zapped a wand of cold downward while hiding underwater, the uundetected
flag was not reset (but the monster case was code correctly), resulting in
an impossible error on the next attack
+ If you finished eating something you were hiding under and were attacked,
another impossible would occur
+ While checking the eating gold case, I noticed that several cases would lose
gold on the floor if the attempt to eat it failed

The first case is fixed by resetting the flag just like the monster case.
The other cases are fixed by adding code to useupf to deal with this.
eatspecial and floorfood were modified to allow useupf to be called, and
fix the 3rd bug in the process.
2003-04-14 01:09:30 +00:00
cohrs
86253d5602 unpaid tinning kit usage
<Someone> reported that shopkeepers don't charge for using tinning kits.
2003-04-13 04:18:36 +00:00
cohrs
f6bb38f22b compilation bit
quiet a new gcc warning
2003-04-13 04:09:32 +00:00
nethack.allison
e1aa6d5148 GOLDOBJ compat (main trunk only)
This patch gives game and savefile compatibility
whether GOLDOBJ is defined or not.

You can build with GOLDOBJ defined or not, and
still load your saved games. Rebuild with the
opposite, and load the same game.

That way GOLDOBJ can be experimented with
more easily.

1. Leave the "you" struct and the "monst"
   struct the same under the hood between
   GOLDOBJ and !GOLDOBJ.

2. Always write out gold as an
   object on the player and monster
   inventory chains.

On a restore of the savefile with GOLDOBJ
not defined,  take the gold objects out of
the inventory chains and put it into u.ugold
or mtmp->mgold as appropriate.

On a restore of the savefile with GOLDOBJ
defined, nothing special is done.
2003-04-11 22:32:08 +00:00
nethack.rankin
d0e4d1e31b #tip command - container access
Another fix to address the complaints about two-handed weapons being
rendered useless by 3.4.1's change to require free hands in order to apply
containers.  Some players now fear to wield two-handed weapons because a
curse would make accessing their bag impossible, which is doubly nasty if
that's where they have scrolls of remove curse or potions of holy water
intended to deal with cursed items.  The same situation applies for cursed
one-handed weapon combined with cursed shield, so some are now claiming
that 3.4.1 has made two-weapon combat be even more attractive than before.

     This implements #tip, a new command that causes a container at the
current location or carried in inventory to have its contents emptied
onto the floor.  Hero's hands don't need to be free at the time but tipping
a floor container requires limbs; tipping an inventory container doesn't
need hands or even limbs.  The contained items don't pass through inventory
during the process, so don't cause objects (loadstones, crysknives, scrolls
of scare monster?) to go through their special handling unless it's part of
normally dropping to the floor.  Tipping a bag of tricks behaves the same
as applying it (one monster is released, and it only becomes empty if
that happened to be the last charge) and items tipped out of a cursed bag
of holding have their normal cursed bag chance (1/13) of being destroyed.
Tipping an inventory container while levitating or during unskilled riding
behaves similar to normal drop--from a height, so some fragile items break.

     Players have wanted this feature to get gray stones out of chests or
heavy corpses out of ice boxes but I didn't care much about that; losing
access to your bag is more significant.  I'm pretty sure that there was a
user patch to do something like this floating around at one time, but I
couldn't find it when I looked, so I implemented #tip totally from scratch.

     Bug?  Extended commands which lack meta-key shortcuts are not listed
in the help files displayed by the '?' command....
2003-04-03 10:56:46 +00:00
nethack.rankin
dd2ff34d0c pickup bit
Lint removal necessitated by accidental omission of a band from the
earlier "container groundwork" patch.
2003-04-03 10:05:42 +00:00
nethack.rankin
9ee9c9f8b3 container groundwork
Move a couple of instances of container contents manipulation into
their own routines.  Behavior for items disappearing from cursed bags of
holding isn't quite identical but is effectively the same.  I think its
use of stolen_value (or simply the behavior of the latter) is buggy, but
I haven't tried to fix that.  (Cursed bag of holding destroying a player
owned bag containing shopped owned items definitely doesn't work well.)
2003-04-03 09:28:28 +00:00
warwick
02fba50b34 Allow both UNIX and MacOSX conventions for configfile. 2003-04-03 04:21:57 +00:00
nethack.rankin
c8c7a463ff fix B02001 - WIZKIT artifacts
Fix the reported bug of artifacts created via wizard mode WIZKIT
being "forgotten" and possibly duplicated during play.  Perform artifact
initialization before $WIZKIT processing; role info needed by the former
is already sufficiently set up by that point.
2003-04-03 03:59:40 +00:00
nethack.rankin
b3d8161353 magicbane message grammar
> "The magic-absorbing blade scares the erinys!  The erinys resist!
> The erinys are stunned.  You kill the erinys!"

     vtense() already has code to handle "erinys", but it didn't work as
intended when the caller uses "the erinys" for the subject string.
2003-03-31 08:02:30 +00:00
cohrs
66ece5d870 B01006 - containers hitting the floor
<Someone> noted that if you dropped a box while levitating, nothing would
break.  This is true for sacks too, which shouldn't be immune either.
Throwing didn't break contained objects either, not mentioned in his report.

Refactored out the code in kick_object that handled damage for objects
contained in normal containers and added calls in hitfloor and throwit.
kick_object still only calls it for boxes, but other callers will call it
for any object letting it decide if damage is required.  BoH objects aren't
affected, since traditionally the inside of the BoH is "somewhere else".
2003-03-29 03:31:51 +00:00
cohrs
18f39cfcdd B01005 - infinite objects from traps
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.
2003-03-27 03:01:38 +00:00
cohrs
345ffcfaec B01003 - blindfold vs dust vortex
This started out as a change to address the strange sequence of messages if
you remove a blindfold while engulfed in a dust vortex.  That is addressed
by a new function that can be called in such situations.  Calls to this
function were added in all the cases where the can_blnd() engulfing
conditions end as a result of player action.  There are some other cases
that end ucreamed or usleep, but they happen between turns and shouldn't
need extra handling.

While I was at it, I noticed that a unicorn horn or prayer would cure
blindness even while engulfed in a dust vortex.  This is useless, because
you immediately get blind again the next turn.  So, I added checks to avoid
doing this.  Finally, it didn't make sense for eating a carrot to cure your
blindness in these situations either, only for it to return immediately.
2003-03-26 05:10:22 +00:00
cohrs
7fa28ea693 jumping over sokoban pits
reported to the list.  The code in hurtle_step was returning FALSE one
step too early, resulting in the player not actually ending up in the pit.
2003-03-24 21:56:59 +00:00
nethack.rankin
213bd793fd fix U382 - missing map display update
> Receiving Excalibur from a fountain while blind doesn't update the
> display (i.e. the missing fountain) immediately.

     Various other topology changes had the same problem.  The display
was only being updated if the hero was invisible on the assumption that
it wouldn't matter otherwise, but a blind character who moved off the
affected location would still have the old map info (fountain, trap, &c)
shown--until he walked back onto that spot or searched next to it or
regained sight--even though the player is told about the map change as
it happens.
2003-03-24 08:58:45 +00:00
cohrs
cff0fb7870 B01002 - tame dwarf won't eat
<Someone> reported that a tame dwarf wouldn't eat food tossed at it.
He also reported that it wouldn't eat off the ground, which I couldn't
reproduce nor see in a problem in the code.  The code in thitmonst didn't
allow for sharing food with non-domestic, already tame monsters.
2003-03-24 07:30:49 +00:00
cohrs
2ec40201f4 U384 - dopay impossible
If you zapped a WoStriking while outside a shop and broke the door and 2
separate objects, the shopkeeper would come out to get paid but if you
tried, it would result in "dopay: not to shopkeeper?" due to stolen_value
not adding the cost of the 2nd object to the right accumulator.
2003-03-24 02:15:49 +00:00
arromdee
b7fea371b6 statue gender
Reported on the newsgroup (a few weeks ago in the middle of a post about
something else): someone turned Perseus to flesh and found out he was female.
2003-03-24 02:02:08 +00:00
cohrs
310d1d53fd B01001 - locking/unlocking a door while in a pit
Since you can't reach a door to open it while in a pit, it makes sense you
can't lock/unlock it either.
2003-03-23 20:22:00 +00:00
cohrs
2ae7f10dd9 carrying capacity
As suggested in the newsgroup, re-factor the calculation of carrcap
so that any change in strength or constitution affects your capacity.
The integer division was rounding off the result.
2003-03-22 17:25:09 +00:00
cohrs
f159dd596c U337 - putting gold in a shop container
When you drop a container in a shop, gold in that container is added to
your credit.  However, if you put gold into a container after it was already
on the shop floor, no credit was given.  Then when you picked up the bag or
tried to take out the gold, you'd be debited for it.  This change causes
in_container to handle gold the same as container dropping does.
2003-03-17 05:38:36 +00:00
nethack.allison
96b149208f B20007 age of potion of oil from bones
First From a bug report.4.1 beta 20.
2003-03-17 01:20:41 +00:00
cohrs
4cf1b2964d gold and touchstones
Implement Pat's suggestion of allowing even identified touchstones
to test gold, removing the getobj hack recently added.  This actually
brings the touchstone a bit more in line with the data.base entry.
2003-03-16 03:07:48 +00:00
cohrs
79735fde8b gold and touchstones
Implement Pat's suggestion of allowing even identified touchstones
to test gold, removing the getobj hack recently added.  This actually
brings the touchstone a bit more in line with the data.base entry.
2003-03-15 21:42:34 +00:00
cohrs
6746cebac9 compilation bit
remove unused variable
2003-03-15 21:34:11 +00:00
nethack.rankin
9fa5cc7630 combat fixes
1) make two-weapon combat perform two attacks instead of always either
   hitting twice or missing twice;
2) address <Someone>'s report of weapon skill to-hit adjustment being ignored
   for bare-handed and martial arts attacks;
3) address newsgroup complaints about the intrusive "your armor is rather
   cumbersome" message given every time a monk wearing a suit attacks;
   this implements the suggestion that it only occur for those times where
   you miss because of the penalty involved, suppressing it when you miss
   due to other reasons and when you successfully hit;
4) bonus fix:  a side-effect of #3 is that the order of the messages "your
   armor is cumbersome" and Stormbringer's "bloodthirsty blade attacks" is
   inverted, making a sensible sequence instead of implying precognition.
2003-03-15 05:38:44 +00:00
nethack.allison
e2d9e01e84 rndcolor()
> "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.
>
2003-03-12 18:26:17 +00:00
cohrs
b27d66c723 blessed genocide bit
A suggestion to the mailing list.  If the response is more than a single
letter and doesn't match any class description, don't say "symbol" in the
followup message.  I left "symbol" in if the response in a single
character, I thought it was more helpful.
2003-03-12 07:26:13 +00:00
cohrs
94ae25c1ef golems and cold
<Someone> wondered post-3.4.1 why paper golems are affected by cold.
Given what I know of paper, straw and wood, and fantasy golems of each
type, all three types of golem seem like they should resist cold.  The
others were less clear to me, someone else can address them if necessary.
2003-03-12 06:05:17 +00:00
nethack.allison
0a71d2c918 missing noun
Below is the result of your feedback form.  It was submitted by
<email deleted> on Tuesday, March 11, 2003 at 07:48:17
---------------------------------------------------------------------------

mailversion: 1.17

nhversion: 3.4.1

nhfrom: Our 3.4.1 source release, unmodified

hardware: i686 arch.

software: Debian woody, gcc 2.95.4


comments: When polymorphing to eg. horned devil, and wearing a helmet,
I get "Your pierce through your elven leather helm.". Likely
there is a broken variable there.
2003-03-11 16:14:06 +00:00
nethack.allison
176d31c980 buried punishment ball
Prevent burying a ball from ending your punishment.

When you bury the ball, internally NetHack Punishment
ceases, but a new trap type of TT_BURIEDBALL  immediately
kicks in (acting similar to TT_INFLOOR in some ways).
You can eventually work the ball free (or teleport, etc.),
but that will just return you back to normal Punishment.
2003-03-11 03:40:17 +00:00
nethack.rankin
6b1811007c new prayer trouble
3.4.1 included a change which requires you to be able to use hands
in order to manipulate containers; that makes sense but has introduced
an unintended side-effect.  It has become much harder to uncurse a
two-handed weapon or combination of a one-handed weapon and a shield
because you can't get scrolls or potions out of your bag.  This adds a
new major trouble for prayer to address that, escalating it above the
normal minor cursed item trouble.  It also removes a nonsensical check
for combination of two-handed weapon and shield that I added long ago.

     Not related, but same file:  add the missing artifact touch checks
for putting on accessories (quest amulets and lenses).  I can't remember
if this was From a bug report.
2003-03-10 23:49:04 +00:00
nethack.rankin
9327d35592 gameover
The recent bones panic included "program initialization failed"
during final rundown.  The cause of the panic has already been fixed;
this fixes the silly message that was delivered with it.

     Also, disclose the contents of carried statues along with normal
containers when the game ends.
2003-03-10 23:43:28 +00:00
nethack.rankin
7350d4fc98 tune notes hint
Add <Someone>'s suggestion for the expected input value to the prompt for
playing a tune, and implement handling for alternate note "H" which seems
to be used as a variation of "B" by some Europeans.  The Amiga part is
untested but "can't be wrong"(tm).
2003-03-10 23:36:01 +00:00
cohrs
1a428307f3 non-humanoid lawful minions wearing armor
<Someone> reported that couatl and ki-rin could wear boots and gloves.
Two problems: 1. all minions were created with a sword and armor, even those
that couldn't use them.  2. couatl and ki-rin were missing some important
bits in their M1 flags.
Now neither couatl or ki-rin are created with armor, and they won't try
to wear any armor they cross in the dungeon.
2003-03-10 20:57:49 +00:00
arromdee
6cbff0150f invisible pets
Invisible pet fix for the recently reported bug, as well as another one found
in the process.
2003-03-10 04:13:05 +00:00
nethack.allison
956c9727b0 more golem stone-to-flesh
Since all golem statues are stone, make them all become flesh.
2003-03-09 22:24:19 +00:00
nethack.allison
30d81e9097 statue of stone golem animates as flesh golem 2003-03-09 18:39:26 +00:00
cohrs
8de1ed25c0 yet another grammar bit
<Someone> mentioned a bad grammar bit in the newsgroup.  Backported
to 3.4.2 as well to save us from many repeat bug reports.
2003-03-09 17:47:05 +00:00
nethack.allison
5425e818a3 win32tty prototype followup 2003-03-09 15:58:47 +00:00
nethack.allison
78ce3749dc win32tty keystroke handling
- Move the code for keystroke handling into its own source file.
- Compile and link it as a dynamic link library.
- Dynamically load the keystroke handler at runtime
- Add support for specifying a different handler in defaults.nh
  so that internationalization issues can be dealt with without
  rebuilding nethack, just supply alternative handlers in HACKDIR.

The following exported functions need to be present in
the keystroke handler .dll:
ProcessKeystroke - returns an ascii value to NetHack
NHkbhit  - allows peeking to see if a key/mouse press is waiting
SourceWhere - returns location for souce code for a keystroke handler
SourceAuthor  - returns author information for a keystroke handler
KeyHandlerName  - returns the full or short name of the keystroke handling dll.
2003-03-09 15:44:50 +00:00
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