]> granicus.if.org Git - nethack/commitdiff
Permit gold to be included in justpicked typeinv
authorMichael Meyer <me@entrez.cc>
Mon, 27 Jun 2022 14:10:17 +0000 (10:10 -0400)
committerPatR <rankin@nethack.org>
Sun, 3 Jul 2022 23:52:06 +0000 (16:52 -0700)
Just-picked-up gold was included in the list of items in the just-picked
category for most category-based menus like 'D' or #loot, but special
handling of gold for 'I'/#inventtype (to accomodate the 'goldX' option)
caused it to be excluded from consideration as a just-picked item.
Include recently picked up gold in 'P'/justpicked when doing type
inventory, consist with other category-menu-based actions.

src/invent.c

index 07c74ca3cd4b9116d818115f2c8756370a138ce1..99ffc93354798ded7e9219c97c06a7458308a41b 100644 (file)
@@ -3632,6 +3632,8 @@ tally_BUCX(struct obj *list, boolean by_nexthere,
         /* priests always know bless/curse state */
         if (Role_if(PM_CLERIC))
             list->bknown = (list->oclass != COIN_CLASS);
+        if (list->pickup_prev)
+            ++(*jcp);
         /* coins are either uncursed or unknown based upon option setting */
         if (list->oclass == COIN_CLASS) {
             if (flags.goldX)
@@ -3640,8 +3642,6 @@ tally_BUCX(struct obj *list, boolean by_nexthere,
                 ++(*ucp);
             continue;
         }
-        if (list->pickup_prev)
-            ++(*jcp);
         /* ordinary items */
         if (!list->bknown)
             ++(*xcp);
@@ -3795,7 +3795,9 @@ this_type_only(struct obj *obj)
 {
     boolean res = (obj->oclass == g.this_type);
 
-    if (obj->oclass == COIN_CLASS) {
+    if (g.this_type == 'P') {
+        res = obj->pickup_prev;
+    } else if (obj->oclass == COIN_CLASS) {
         /* if filtering by bless/curse state, gold is classified as
            either unknown or uncursed based on user option setting */
         if (g.this_type && index("BUCX", g.this_type))
@@ -3814,9 +3816,6 @@ this_type_only(struct obj *obj)
         case 'X':
             res = !obj->bknown;
             break;
-        case 'P':
-            res = obj->pickup_prev;
-            break;
         default:
             break; /* use 'res' as-is */
         }