Commit Graph

205 Commits

Author SHA1 Message Date
nethack.rankin
ad243c0286 cmdassist bits
If the player gives the 'T' command while not wearing any armor,
don't suggest "use 'R' to remove accessories" unless the character is
actually wearing accessories.  Likewise for 'R' while not wearing any
accessories, don't suggest "use 'T' to take off armor" unless wearing
some.

     Add missing amulet case to the silly_thing() handling for 'W' and
'T'.  Also handle boots, gloves, and lenses as plural in the message
there.  silly_thing() has been simplified a little bit in the process.
2003-05-26 17:34:28 +00:00
nethack.rankin
9a39064b8f more perm_invent handling
Keep permanent inventory window up to date when using charged items.
Also a status line bit for the #tip command.
2003-05-24 04:07:14 +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
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
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
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
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
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.allison
d1c2a37deb 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.
2003-01-11 17:22:58 +00:00
nethack.rankin
137bd330e4 fix B14021 - inconsistent menu styles
Menu styles `partial' and `full' will let you remove any type of
item from the three weapon slots via the 'A' command, but `traditional'
and `combination' would only do that for the primary weapon slot.  For
the alternate weapon and quiver slots, the item in question had to be
one which can normally be wielded or worn, otherwise when choosing the
object class letter you'd be told that it was "Not applicable."  And
for wearable items, you needed to be really wearing one of that class
(besides the quivered one) or else you'd get "not wearing any amulet"
or similar.
2002-12-14 11:53:22 +00:00
cohrs
b4664e981f B14009 order of altar feeling messages
Special case the altar feeling messages to avoid saying you're feeling
the altar and then saying there's an altar here.
2002-10-27 16:30:35 +00:00
cohrs
71480033c6 B12010 - boulders in throw menu for giants
When the player is poly'd to a giant, it was a bit odd that boulders
weren't listed in the throw menu, especially since the usual check for them
is throws_rocks.  Since statues are not appropriate, I added this thru yet
another ugly check in getobj.
2002-10-24 01:40:58 +00:00
nethack.rankin
a0067f97e2 luck artifact dependencies
Instead of adding a new artifact.h to pray.c, remove the existing
ones from attrib.c, invent.c, and mkobj.c.  This also updates the Unix
and VMS editions of Makefile.src; having stale dependencies in those
for other ports could cause unnecessary recompilation but can't break
anything in this case.
2002-10-09 07:06:08 +00:00
nethack.rankin
c3a9637ba7 touchstone use
Make touchstones more convenient to use after they're identified
by only listing unknown gems as likely candidates.  This doesn't prevent
other stuff from being rubbed on them, just alters the prompt string and
the subset of inventory shown for '?'.
2002-10-01 07:23:10 +00:00
nethack.rankin
abf1ee5797 fix B08011 - request for "wield" change
Implement's <Someone>'s suggestion that the currently wielded
weapon be included among the list of inventory candidates for the
wield command.  It affects the list of letters shown in the prompt
and the subset inventory displayed if you respond with '?'; it doesn't
change how wielding works or what item you can pick to wield.

     Do the same thing for quivering:  include any currently quivered
item among the choices.  Also include the secondary weapon as a choice
if you're not actively two-weaponing.
2002-09-28 06:48:25 +00:00
nethack.rankin
ef14456b3d eucalyptus leaf whistles
Add <Someone>'s patch that enables using the apply command
on eucalyptus leaves to produce a whistle effect.  Blessed leaves
behave like magic whistles; I added a chance for the blessing to be
used up in the process.

     The invent.c diff is almost all reformatting.
2002-09-26 07:26:03 +00:00
nethack.rankin
4d251c6688 fix B10003 - GOLDOBJ: BUC gold; identification
Curse and bless status has no meaning for gold.  Likewise
for erosion and other object flags controlling whether an item is
considered to be fully identified.
2002-09-24 03:20:22 +00:00
nethack.rankin
651e886d66 fix B12001 - ?--More--single line menu
From a bug report:
3.4.0 broke the ability to pick the only listed inventory letter when
user typed '?' during object selection and one candidate was listed on
the top line followed by --More--.

What do you want to throw? [b or ?*] ?
b - 7 +0 daggers (alternate weapon; not wielded).--More--b
<behaved as if user hit ESC instead of 'b' but didn't say "Never mind.">

(Dismissing --More-- the normal way and getting a new selection prompt
worked as usual.)  The problem was caused by changes in getobj's count
handling; the message_menu() routine isn't able to handle counts but
display_pickinv left the count as 0 while caller expects -1 for "count
not specified".

     This was a core bug but I put the fixes entry under "tty" since
no other interfaces are affected.
2002-09-17 06:35:49 +00:00
nethack.allison
02ed5c37c9 From the newsgroup, there was a discussion about how you
can't just blind yourself with a cream pie in your inventory
directly by applying it or by throwing it.

On 27 Jul 2002 14:11:06 GMT, <Someone> wrote:
> <email deleted> wrote:
>> <email deleted> (<Someone>) hypothesised:
>>
>> [cream pie]
>>> So I a)pply the pie. What I want to do is to hit MYSELF in the
>>> face with the pie, thereby blinding me and giving me T-P for
>>> just a few turns.
>>
>> Not a bad TTDTDTO ("Thing The DevTeam Didn't Think Of," which is
>> subtly different to a YANI, and not a bug; sorry, I seem to be
>> on a neologismathon today.)
> I tried throwing a cream pie upwards, hoping it would blind me,
> but no luck:
>
> "A cream pie hits the ceiling. What a mess!"
>
2002-07-27 20:48:45 +00:00
nethack.allison
40940991bb change GOLD_CLASS to COIN_CLASS 2002-07-08 23:25:53 +00:00
cohrs
40c4800613 B01016 - misplaced "you steal" message after being blasted by an artifact
I saw no straight-forward way to insert the message earlier in the
sequence, so...  I reasoned that you might not yet have a good grasp and
not be able to continue holding the object when reverting form.  So, I made
this into a drop case and made the drop message a rare past tense message.
Past tense is still OK for the other drop cases.
While testing this, I noticed you'd keep stealing even after reverting
form.  Added code to stop this.  Finally, there was a missing MON_NOWEP
call in the stealing code, added it.
2002-07-07 20:22:57 +00:00
cohrs
2c6a1eb7e1 R972 - rust monster eating gold
When !GOLDOBJ, player polymorphed to a rust monster that attempted to eat
gold in the inventory would fail to eat it, but the gold would be consumed
anyway.  Under GOLDOBJ, a later check would work around the invalid prompt.
2002-07-04 17:47:18 +00:00
cohrs
94837b78d4 hangups with temp gold in inventory
- Implement Michael's suggestion of marking temp gold put in inventory
so it can be cleaned up during restore.
2002-05-21 05:04:09 +00:00
kmhugo
31c824dbf3 digging rock vs. chopping wood
Refinement of the digging code:
* Picks should not chop down trees, but axes should.
* Picks should break walls, rock, statues, and boulders; axes shouldn't.
* Either picks or axes should chop down doors.
2002-04-16 01:37:57 +00:00
nethack.allison
817bdf58e7 B/U/C Priest suggestion by Pat
- also a win32 dsp file modification
2002-04-07 12:51:28 +00:00
nethack.allison
b940ca0ee7 Priests recognize B/U/C status on items in container menus
<email deleted>
> Since Priests' knowledge of the buc-status of an object only
> kicks in when the name is being looked at for the first time,
> they get an "X" option when taking items out of a newly-looted
> container, but B, U, and C thereafter; could their ability be
> pre-applied to the container's contents when constructing the
> menu, to avoid this anomaly?
>
2002-04-06 18:06:59 +00:00
cohrs
5c1ea899bf ensure touch_artifact is always called via hold_another_object
- remove the touch_artifact calls just added
- put a check into hold_another_object itself, based on the complete check
removed from makewish
2002-04-02 05:32:02 +00:00
cohrs
adf468910c re-merge objects removed from containers when pack is full
- affects failed removal of a partial count of objects due to a full pack
2002-03-30 20:56:09 +00:00
cohrs
0f1615c7ad simplify touchstone object choosing
- remove special case code from getobj for touchstone
- remove other hacks from getobj that resulted from earlier hack, solves
  the "rub on the gold stone" problem completely
- pass correct letter list to getobj from use_stone, like other callers
2002-02-26 07:36:30 +00:00
nethack.allison
490ceaee6c change is_greystone() to is_graystone()
-Rename is_greystone() to is_graystone() since I've
had one complaint about my choice of spelling for
the macro already.

-Change the recent "#rub touchstone" code to use
the macro which pre-existed under the other spelling
and was already used in the very same "if" statement
with that spelling in invent.c. :-)
2002-02-24 17:23:02 +00:00
nethack.rankin
753cc7089f fix B3024: remove vs take off
Change the prompts for P and R commands to use "put on" instead
of "wear" and "remove" instead of "take off", respectively; W and T
commands aren't affected.  There is no change in game play.
2002-02-24 05:05:11 +00:00
nethack.rankin
4bc3561a96 from <Someone>: #rub touchstone
<Someone>'s message said this was committed, but the cvs repository
didn't reflect his changes.

> Subject: patch: #rub touchstone
> Date: Wed, 20 Feb 2002 23:33:27 -0800
> <email deleted>
>
> Implement <Someone>'s suggestion.
>
> - allow the #rub command to apply to gray stones
> - update various doc & help files to reflect the change
>
> Committed to CVS.
2002-02-24 03:19:20 +00:00
nethack.allison
a65c59a104 BUC follow-up bit 2002-02-19 14:29:15 +00:00
nethack.allison
4170c75993 More BUC
Defer to the validation code from pickup.c for checking
valid categories.  This reduces the number of callback
functions required, and allows combinations of BUCX
to be used in traditional menu style.
2002-02-19 14:20:21 +00:00
nethack.allison
126294b4de follow-up to Allow BUC with menustyles other than full. 2002-02-19 08:29:31 +00:00
nethack.allison
e054b25590 Allow BUC with menustyles other than full. 2002-02-19 08:22:15 +00:00
cohrs
3b2aa68d24 touchstone: cannot rub on the stone gold
hack around the silly grammar
2002-02-19 07:50:42 +00:00
cohrs
443035da2f player eating metal followup
new #ifdef was backwards
2002-02-12 03:58:13 +00:00
cohrs
924f3cbd37 player eating metal
1) player-as-rust monster should obey same rules for edible metal as monsters.
2) with GOLDOBJ, player-as-xorn couldn't eat gold in inventory
2002-02-12 03:53:05 +00:00
cohrs
747d1ee70f more inventory selection
the !allowcnt case wasn't being handled correctly, cuasing counts to
be set to 0 inappropriately.
2002-02-05 03:08:36 +00:00
nethack.allison
06528d1002 3.3.2 to 3.4.0 2002-02-04 16:06:00 +00:00
cohrs
273c0f7f2d remove left over debugging message 2002-01-29 08:07:13 +00:00
cohrs
05ab895737 /tmp/msg 2002-01-29 04:19:46 +00:00
nethack.allison
39f24cda78 Fix "gems in apply menu" From a bug report. 2002-01-28 11:38:25 +00:00
cohrs
494b133ec2 getobj using counts from inventory display
getobj used display_inventory when "?" was selected.  However, any count
entered via the menu interface was lost.  Provide a new internal function
that can return both a letter and a count
2002-01-26 20:21:18 +00:00
nethack.allison
1454fb5e71 touchstone ugly check didn't take GOLDOBJ into consideration. 2002-01-26 15:16:06 +00:00
nethack.allison
69ce21fe0b Add a macro to provide universal consistency around the check
for what sort of creatures tend to revive.
2002-01-26 15:05:00 +00:00
nethack.allison
4c46f6eb2b Fix several touchstone-related things:
1. The switch statement was using the material "GOLD"
   rather than GOLD_CLASS.
2. If getobj() had been working for gold when it
   came to touchstones, there would have been a
   memory leak here because the object returned
   would have been from mkgoldobj().  The goldobj
   was not being freed anywhere, nor was it being
   put on a chain. You also would have had zero
   gold after rubbing it on the stone. The intent
   was clearly to allow gold since there was a
   case in the switch statement.
3. getobj() wasn't working properly for gold
   selection here anyway, so this was
   not the cause of <Someone>'s gold obj in inventory.
   You ended up dropping through to code that
   was supposed to print "You cannot verb object."
   For touchstones that came out as:
   "You cannot rub on the stone gold."
2002-01-24 02:39:55 +00:00
nethack.allison
7d593cb1d6 bit 2002-01-23 20:13:15 +00:00