Document the way to decline a wish or genocide, and allow both
actions to accept both "none" and "nothing" so that players don't
have to remember which response goes with which prompt.
This fixes the wizkit so that if someone wishes for a non-object such as
a trap, not only is no message printed, but we don't try to create anything.
Incidentally, if you have two bad wizkit items in a row, you get told to hit
space to continue, then you can hit space, then the error message for the
second bad item is printed on the same line as the first hit space message.
(I haven't tried to fix that.)
- switch aobjnam() to use cxname, not xname
- update Tobjnam() comment, since it can still use xname w/o confusion
A specific case that's fixed: You begin bashing monsters with your corpse.
This prevents wizkit items that aren't objects from having their names
printed on the screen if they are gold pieces, traps, or similar.
(Note that the only one of those that actually works is gold. For some reason
if you put "a hole" (for instance) in the wizkit, the hole will not get
created, even though it will, even on the stairs, if the wizard wishes for it
in-game.)
- new cxname() to simplify doing the right thing in increasingly common cases
- use for bullwhip snagging
- in shopkeeper offer code
- in a couple other existing places rather than duplicating CORPSE checks
- use singular(...) in "swings" cases, since only one can hit. Singular uses
corpse_xname automatically when appropriate
includes container contents, not just the cost of the
container itself (a prices in inventory phenomenon).
Along the way I discovered a peculiarity -
contained_cost() was adding up the cost of everything in
a container, even if you had stashed items in it that were your
own and not marked unpaid it seems.
I added a flag to force the code to only add objects
that were marked "unpaid" so I could use it in this new
instance, but I didn't change any of
the existing usages (I left the flag at FALSE which leaves
the consideration of the unpaid status alone just as
before).
Some of this is correction of some messages that were
wrong prior to this when dealing with selling of objects
inside a container when only part of the contents was unpaid.
Add absent prototypes to some core routines.
Also add some port function() to function(void) in some win32 routines.
Also updates the Borland C Makefile for win32.
The inability to wish for a blessed +2 fireproof speed boots really was a bug.
Prefixes are checked for inside a loop which should allow them to be in any
order; for some reason +nnn and empty were outside that loop.
Also adding the secret door detection fix to betabugs 3.3.0. (Is it safe to
hand-modify betabugs 3.3.2?)