OSDN Git Service

[Refactor] #40520 select_ring_slot を player_type に取り込む. / Incorporate select_ring_slo...
authordeskull <deskull@users.sourceforge.jp>
Sat, 9 Jan 2021 16:34:58 +0000 (01:34 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Sat, 9 Jan 2021 16:34:58 +0000 (01:34 +0900)
src/cmd-item/cmd-equipment.c
src/inventory/floor-item-getter.c
src/inventory/inventory-util.c
src/inventory/inventory-util.h
src/inventory/item-getter.c
src/player/player-status.h
src/window/display-sub-windows.c
src/window/main-window-equipments.c

index a10d3e7..e2c80b4 100644 (file)
@@ -79,7 +79,6 @@ void do_cmd_equip(player_type *creature_ptr)
     command_gap = wid - 30;
 }
 
-bool select_ring_slot = FALSE;
 
 /*!
  * @brief 装備するコマンドのメインルーチン / Wield or wear a single item from the pack or floor
@@ -161,13 +160,13 @@ void do_cmd_wield(player_type *creature_ptr)
             q = _("どちらの手に装備しますか?", "Equip which hand? ");
 
         s = _("おっと。", "Oops.");
-        select_ring_slot = TRUE;
+        creature_ptr->select_ring_slot = TRUE;
         if (!choose_object(creature_ptr, &slot, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT), 0)) {
-            select_ring_slot = FALSE;
+            creature_ptr->select_ring_slot = FALSE;
             return;
         }
 
-        select_ring_slot = FALSE;
+        creature_ptr->select_ring_slot = FALSE;
         break;
     }
 
index 2af2696..6830999 100644 (file)
@@ -182,7 +182,7 @@ static void test_equipment_floor(player_type *owner_ptr, fis_type *fis_ptr)
         return;
 
     for (inventory_slot_type i = INVEN_RARM; i < INVEN_TOTAL; i++)
-        if (select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, &owner_ptr->inventory_list[i], fis_ptr->tval) || (fis_ptr->mode & USE_FULL))
+        if (owner_ptr->select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, &owner_ptr->inventory_list[i], fis_ptr->tval) || (fis_ptr->mode & USE_FULL))
             fis_ptr->max_equip++;
 }
 
index d3be743..29b32c4 100644 (file)
@@ -171,7 +171,7 @@ bool get_item_okay(player_type *owner_ptr, OBJECT_IDX i, tval_type item_tester_t
     if ((i < 0) || (i >= INVEN_TOTAL))
         return FALSE;
 
-    if (select_ring_slot)
+    if (owner_ptr->select_ring_slot)
         return is_ring_slot(i);
 
     return item_tester_okay(owner_ptr, &owner_ptr->inventory_list[i], item_tester_tval);
@@ -224,7 +224,7 @@ INVENTORY_IDX label_to_equipment(player_type *owner_ptr, int c)
     if ((i < INVEN_RARM) || (i >= INVEN_TOTAL))
         return -1;
 
-    if (select_ring_slot)
+    if (owner_ptr->select_ring_slot)
         return is_ring_slot(i) ? i : -1;
 
     if (!owner_ptr->inventory_list[i].k_idx)
index cae8738..b26b062 100644 (file)
@@ -3,8 +3,6 @@
 #include "object/tval-types.h"
 #include "system/angband.h"
 
-extern bool select_ring_slot;
-
 bool is_ring_slot(int i);
 bool get_tag_floor(floor_type *floor_ptr, COMMAND_CODE *cp, char tag, FLOOR_IDX floor_list[], ITEM_NUMBER floor_num);
 bool get_tag(player_type *owner_ptr, COMMAND_CODE *cp, char tag, BIT_FLAGS mode, tval_type tval);
index 9d75809..b528147 100644 (file)
@@ -168,7 +168,7 @@ static void test_equipment(player_type *owner_ptr, item_selection_type *item_sel
         return;
 
     for (int j = INVEN_RARM; j < INVEN_TOTAL; j++)
-        if (select_ring_slot ? is_ring_slot(j)
+        if (owner_ptr->select_ring_slot ? is_ring_slot(j)
                              : item_tester_okay(owner_ptr, &owner_ptr->inventory_list[j], item_selection_ptr->tval) || (item_selection_ptr->mode & USE_FULL))
             item_selection_ptr->max_equip++;
 
index 9162544..4de7bd2 100644 (file)
@@ -287,6 +287,8 @@ typedef struct player_type {
 
     /*** Temporary fields ***/
 
+    bool select_ring_slot;
+
     bool playing; /* True if player is playing */
     bool leaving; /* True if player is leaving */
 
index dbf5463..38aaf58 100644 (file)
@@ -210,7 +210,7 @@ static void display_equipment(player_type *owner_ptr, tval_type tval)
         object_type *o_ptr;
         o_ptr = &owner_ptr->inventory_list[i];
         tmp_val[0] = tmp_val[1] = tmp_val[2] = ' ';
-        if (select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, o_ptr, tval)) {
+        if (owner_ptr->select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, o_ptr, tval)) {
             tmp_val[0] = index_to_label(i);
             tmp_val[1] = ')';
         }
index 66739a5..ab4bd2d 100644 (file)
@@ -40,7 +40,7 @@ COMMAND_CODE show_equipment(player_type *owner_ptr, int target_item, BIT_FLAGS m
     int len = wid - col - 1;
     for (k = 0, i = INVEN_RARM; i < INVEN_TOTAL; i++) {
         o_ptr = &owner_ptr->inventory_list[i];
-        if (!(select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, o_ptr, tval) || (mode & USE_FULL))
+        if (!(owner_ptr->select_ring_slot ? is_ring_slot(i) : item_tester_okay(owner_ptr, o_ptr, tval) || (mode & USE_FULL))
             && (!((((i == INVEN_RARM) && has_left_hand_weapon(owner_ptr)) || ((i == INVEN_LARM) && has_right_hand_weapon(owner_ptr))) && has_two_handed_weapons(owner_ptr))
                 || (mode & IGNORE_BOTHHAND_SLOT)))
             continue;