]> granicus.if.org Git - nethack/commitdiff
more bz 1604 - re-do vs autoquiver
authorPatR <rankin@nethack.org>
Fri, 22 Feb 2019 20:54:39 +0000 (12:54 -0800)
committerPatR <rankin@nethack.org>
Fri, 22 Feb 2019 20:54:39 +0000 (12:54 -0800)
Take another crack at describing yesterday's do-again fix.  Having
'autoquiver' enabled wasn't necessary to encounter the problem.
Also, 'in_doagain' is an int rather than a boolean.

doc/fixes36.2
src/dothrow.c

index 7c2cb092f76b2d00d12ec9cf72d4670a57ab6ff7..7a8595c786125dfaacac913b091b02635d33d05f 100644 (file)
@@ -1,4 +1,4 @@
-$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.261 $ $NHDT-Date: 1550800390 2019/02/22 01:53:10 $
+$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.262 $ $NHDT-Date: 1550868876 2019/02/22 20:54:36 $
 
 This fixes36.2 file is here to capture information about updates in the 3.6.x
 lineage following the release of 3.6.1 in April 2018. Please note, however,
@@ -373,11 +373,11 @@ when donning armor, defer flagging its +/- value--which can be deduced from
        then (player might still deduce the +/- value but hero won't learn it)
 a monster with resistances supplied by worn armor would lose them if that
        monster went through a shape change even if the armor stayed worn
-after using 'f' to fire/throw with autoquiver enabled and numpad off, then
-       using ^A to repeat, if ammo was just used up and there's nothing
-       suitable to autoquiver it would pick the item in the inventory slot
-       corresponding to the direction letter from preceding 'fire' (and if
-       there was such an item, then ask for direction since ^A data ran out)
+when using 'f' to fire/throw--and possibly some ^A's to repeat--then running
+       out of ammo (with either 'autoquiver' off or nothing suitable to put
+       in quiver), using ^A would put whichever inventory item was assigned
+       the same letter as the prior direction into quiver slot (unless item
+       was already worn or wielded) and then ask for a direction to fire it
 early rolling boulder trap lacking any boulder might still have the corpse
        of a dead adventurer
 
index 05923e867e62e6e5a8ec2fd69fb4f160eb8e90ae..7a83cdd33f98824ed7d401e2c7f3210e240c16b8 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 dothrow.c       $NHDT-Date: 1550784489 2019/02/21 21:28:09 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.157 $ */
+/* NetHack 3.6 dothrow.c       $NHDT-Date: 1550868876 2019/02/22 20:54:36 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.158 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /*-Copyright (c) Robert Patrick Rankin, 2013. */
 /* NetHack may be freely redistributed.  See license for details. */
@@ -382,10 +382,12 @@ dofire()
                 You("have nothing appropriate for your quiver.");
         }
         /* if autoquiver is disabled or has failed, prompt for missile;
-           fill quiver with it if it's not wielded */
+           fill quiver with it if it's not wielded or worn */
         if (!obj) {
-            /* direction of previous throw is not suitable answer here */
-            in_doagain = FALSE;
+            /* in case we're using ^A to repeat prior 'f' command, don't
+               use direction of previous throw as getobj()'s choice here */
+            in_doagain = 0;
+            /* choose something from inventory, then usually quiver it */
             obj = getobj(uslinging() ? bullets : toss_objs, "throw");
             /* Q command doesn't allow gold in quiver */
             if (obj && !obj->owornmask && obj->oclass != COIN_CLASS)