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.
> "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.
<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".
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.
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.
> 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.
<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.
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.
> It appears that if showrace is set, and your race is not human, a
> potion of invisibility (or any other form of invisibility) doesn't cause
> your symbol to disappear on screen, even if you don't have see invisible.
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.
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.
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.
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.
> "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> 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.
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.
Incorporate a mod submitted by <Someone> to implement the TODO in the
class genocide code by walking thru the species to find a class to genocide
if the user input does not match the class description.
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.
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.
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).
<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.
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.
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.
-better handling of "more" prompt for messages that would have scrolled off the window
-support perm_invent
-menu option to add/remove windows captions
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.
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.
Un-list fixes also listed in fixes34.2. This causes the fixes files to
still reflect all the changes since the last one, from the point of view of
someone seeing a release tarball.
<Someone> noticed that if one builds something in util and the required .o
files aren't already built in src, the .o gets placed in the wrong place.
Added the missing '-o $@' to the compilation command.
Reported on RH 7.2 and 8.0. Compilation failed because system headers that
needed _GNU_SOURCE on these Redhat versions got included before it was
defined. To ensure _GNU_SOURCE is defined, added an autodetect for it to
config1.h and removed the need to set it in unixres.c. __linux__ is also
checked elsewhere.
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.