OSDN Git Service

[Refactor] #3152 choose_object() の引数がitem になっているものをi_idx に差し替えた
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 14 Oct 2023 08:52:08 +0000 (17:52 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sun, 15 Oct 2023 12:35:09 +0000 (21:35 +0900)
41 files changed:
src/cmd-action/cmd-hissatsu.cpp
src/cmd-action/cmd-shoot.cpp
src/cmd-action/cmd-spell.cpp
src/cmd-item/cmd-destroy.cpp
src/cmd-item/cmd-eat.cpp
src/cmd-item/cmd-equipment.cpp
src/cmd-item/cmd-item.cpp
src/cmd-item/cmd-quaff.cpp
src/cmd-item/cmd-read.cpp
src/cmd-item/cmd-refill.cpp
src/cmd-item/cmd-throw.cpp
src/cmd-item/cmd-usestaff.cpp
src/cmd-item/cmd-zaprod.cpp
src/cmd-item/cmd-zapwand.cpp
src/floor/floor-object.cpp
src/floor/floor-object.h
src/inventory/player-inventory.cpp
src/market/building-craft-weapon.cpp
src/market/building-enchanter.cpp
src/market/building-recharger.cpp
src/mind/mind-archer.cpp
src/mind/mind-mage.cpp
src/mind/mind-magic-eater.cpp
src/mind/mind-mindcrafter.cpp
src/mind/mind-priest.cpp
src/mind/mind-weaponsmith.cpp
src/object-use/throw-execution.cpp
src/object-use/throw-execution.h
src/realm/realm-hex.cpp
src/spell-kind/magic-item-recharger.cpp
src/spell-kind/spells-enchant.cpp
src/spell-kind/spells-perception.cpp
src/spell-realm/spells-craft.cpp
src/spell-realm/spells-nature.cpp
src/spell-realm/spells-sorcery.cpp
src/spell/spells-object.cpp
src/spell/spells-summon.cpp
src/store/sell-order.cpp
src/view/object-describer.cpp
src/view/object-describer.h
src/wizard/wizard-item-modifier.cpp

index 631b2e4..5d616fe 100644 (file)
@@ -390,8 +390,8 @@ void do_cmd_gain_hissatsu(PlayerType *player_ptr)
     constexpr auto q = _("どの書から学びますか? ", "Study which book? ");
     constexpr auto s = _("読める書がない。", "You have no books that you can read.");
     constexpr auto options = USE_INVEN | USE_FLOOR;
-    short item;
-    const auto *o_ptr = choose_object(player_ptr, &item, q, s, options, TvalItemTester(ItemKindType::HISSATSU_BOOK));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, TvalItemTester(ItemKindType::HISSATSU_BOOK));
     if (o_ptr == nullptr) {
         return;
     }
index af4ee76..387c577 100644 (file)
@@ -55,14 +55,14 @@ void do_cmd_fire(PlayerType *player_ptr, SPELL_IDX snipe_type)
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU });
     constexpr auto q = _("どれを撃ちますか? ", "Fire which item? ");
     constexpr auto s = _("発射されるアイテムがありません。", "You have nothing to fire.");
-    short item;
-    const auto *ammo_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, TvalItemTester(player_ptr->tval_ammo));
+    short i_idx;
+    const auto *ammo_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, TvalItemTester(player_ptr->tval_ammo));
     if (!ammo_ptr) {
         flush();
         return;
     }
 
-    exe_fire(player_ptr, item, item_ptr, snipe_type);
+    exe_fire(player_ptr, i_idx, item_ptr, snipe_type);
     if (!player_ptr->is_fired || !PlayerClass(player_ptr).equals(PlayerClassType::SNIPER)) {
         return;
     }
index 978a611..1d3b9f6 100644 (file)
@@ -576,7 +576,6 @@ static FuncItemTester get_learnable_spellbook_tester(PlayerType *player_ptr)
  */
 void do_cmd_browse(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
     SPELL_IDX spell = -1;
     int num = 0;
 
@@ -604,9 +603,10 @@ void do_cmd_browse(PlayerType *player_ptr)
     constexpr auto q = _("どの本を読みますか? ", "Browse which book? ");
     constexpr auto s = _("読める本がない。", "You have no books that you can read.");
     constexpr auto options = USE_INVEN | USE_FLOOR;
-    const auto *o_ptr = choose_object(player_ptr, &item, q, s, options | (pc.equals(PlayerClassType::FORCETRAINER) ? USE_FORCE : 0), item_tester);
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options | (pc.equals(PlayerClassType::FORCETRAINER) ? USE_FORCE : 0), item_tester);
     if (o_ptr == nullptr) {
-        if (item == INVEN_FORCE) /* the_force */
+        if (i_idx == INVEN_FORCE) /* the_force */
         {
             do_cmd_mind_browse(player_ptr);
             return;
@@ -760,8 +760,8 @@ void do_cmd_study(PlayerType *player_ptr)
     constexpr auto q = _("どの本から学びますか? ", "Study which book? ");
     constexpr auto s = _("読める本がない。", "You have no books that you can read.");
 
-    short item;
-    const auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), item_tester);
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), item_tester);
     if (o_ptr == nullptr) {
         return;
     }
@@ -991,10 +991,10 @@ bool do_cmd_cast(PlayerType *player_ptr)
     constexpr auto s = _("呪文書がない!", "You have no spell books!");
     auto item_tester = get_castable_spellbook_tester(player_ptr);
     const auto options = USE_INVEN | USE_FLOOR | (pc.equals(PlayerClassType::FORCETRAINER) ? USE_FORCE : 0);
-    short item;
-    const auto *o_ptr = choose_object(player_ptr, &item, q, s, options, item_tester);
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, item_tester);
     if (o_ptr == nullptr) {
-        if (item == INVEN_FORCE) {
+        if (i_idx == INVEN_FORCE) {
             do_cmd_mind(player_ptr);
             return true; //!< 錬気キャンセル時の処理がない
         }
index 1128806..574af00 100644 (file)
@@ -40,7 +40,7 @@
 #include "view/display-messages.h"
 
 struct destroy_type {
-    OBJECT_IDX item = 0;
+    short i_idx = 0;
     QUANTITY amt = 0;
     QUANTITY old_number = 0;
     bool force = false;
@@ -88,7 +88,7 @@ static bool check_destory_item(PlayerType *player_ptr, destroy_type *destroy_ptr
         }
 
         if (autopick_autoregister(player_ptr, destroy_ptr->o_ptr)) {
-            autopick_alter_item(player_ptr, destroy_ptr->item, true);
+            autopick_alter_item(player_ptr, destroy_ptr->i_idx, true);
         }
 
         return false;
@@ -99,7 +99,7 @@ static bool select_destroying_item(PlayerType *player_ptr, destroy_type *destroy
 {
     constexpr auto q = _("どのアイテムを壊しますか? ", "Destroy which item? ");
     constexpr auto s = _("壊せるアイテムを持っていない。", "You have nothing to destroy.");
-    destroy_ptr->o_ptr = choose_object(player_ptr, &destroy_ptr->item, q, s, USE_INVEN | USE_FLOOR);
+    destroy_ptr->o_ptr = choose_object(player_ptr, &destroy_ptr->i_idx, q, s, USE_INVEN | USE_FLOOR);
     if (destroy_ptr->o_ptr == nullptr) {
         return false;
     }
@@ -205,13 +205,13 @@ static void exe_destroy_item(PlayerType *player_ptr, destroy_type *destroy_ptr)
     msg_format(_("%sを壊した。", "You destroy %s."), destroy_ptr->item_name.data());
     sound(SOUND_DESTITEM);
     reduce_charges(destroy_ptr->o_ptr, destroy_ptr->amt);
-    vary_item(player_ptr, destroy_ptr->item, -destroy_ptr->amt);
+    vary_item(player_ptr, destroy_ptr->i_idx, -destroy_ptr->amt);
     process_destroy_magic_book(player_ptr, destroy_ptr);
     if ((destroy_ptr->q_ptr->to_a != 0) || (destroy_ptr->q_ptr->to_d != 0) || (destroy_ptr->q_ptr->to_h != 0)) {
         chg_virtue(player_ptr, Virtue::HARMONY, 1);
     }
 
-    if (destroy_ptr->item >= INVEN_MAIN_HAND) {
+    if (destroy_ptr->i_idx >= INVEN_MAIN_HAND) {
         calc_android_exp(player_ptr);
     }
 }
index 2f87579..96f474b 100644 (file)
@@ -346,17 +346,13 @@ void exe_eat_food(PlayerType *player_ptr, INVENTORY_IDX i_idx)
  */
 void do_cmd_eat_food(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    concptr q, s;
-
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU, SamuraiStanceType::KOUKIJIN });
-
-    q = _("どれを食べますか? ", "Eat which item? ");
-    s = _("食べ物がない。", "You have nothing to eat.");
-
-    if (!choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_eatable, player_ptr))) {
+    constexpr auto q = _("どれを食べますか? ", "Eat which item? ");
+    constexpr auto s = _("食べ物がない。", "You have nothing to eat.");
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_eatable, player_ptr))) {
         return;
     }
 
-    exe_eat_food(player_ptr, item);
+    exe_eat_food(player_ptr, i_idx);
 }
index e1f5ae3..20a5ef4 100644 (file)
@@ -129,23 +129,21 @@ void do_cmd_equip(PlayerType *player_ptr)
  */
 void do_cmd_wield(PlayerType *player_ptr)
 {
-    OBJECT_IDX item, slot;
     ItemEntity forge;
     ItemEntity *q_ptr;
-    ItemEntity *o_ptr;
     concptr act;
     OBJECT_IDX need_switch_wielding = 0;
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU });
 
     constexpr auto selection_q = _("どれを装備しますか? ", "Wear/Wield which item? ");
     constexpr auto selection_s = _("装備可能なアイテムがない。", "You have nothing you can wear or wield.");
-    o_ptr = choose_object(player_ptr, &item, selection_q, selection_s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_wear, player_ptr));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, selection_q, selection_s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_wear, player_ptr));
     if (!o_ptr) {
         return;
     }
 
-    slot = wield_slot(player_ptr, o_ptr);
-
+    auto slot = wield_slot(player_ptr, o_ptr);
     const auto o_ptr_mh = &player_ptr->inventory_list[INVEN_MAIN_HAND];
     const auto o_ptr_sh = &player_ptr->inventory_list[INVEN_SUB_HAND];
     const auto tval = o_ptr->bi_key.tval();
@@ -274,19 +272,19 @@ void do_cmd_wield(PlayerType *player_ptr)
     check_find_art_quest_completion(player_ptr, o_ptr);
     if (player_ptr->ppersonality == PERSONALITY_MUNCHKIN) {
         identify_item(player_ptr, o_ptr);
-        autopick_alter_item(player_ptr, item, false);
+        autopick_alter_item(player_ptr, i_idx, false);
     }
 
     PlayerEnergy(player_ptr).set_player_turn_energy(100);
     q_ptr = &forge;
     q_ptr->copy_from(o_ptr);
     q_ptr->number = 1;
-    if (item >= 0) {
-        inven_item_increase(player_ptr, item, -1);
-        inven_item_optimize(player_ptr, item);
+    if (i_idx >= 0) {
+        inven_item_increase(player_ptr, i_idx, -1);
+        inven_item_optimize(player_ptr, i_idx);
     } else {
-        floor_item_increase(player_ptr, 0 - item, -1);
-        floor_item_optimize(player_ptr, 0 - item);
+        floor_item_increase(player_ptr, 0 - i_idx, -1);
+        floor_item_optimize(player_ptr, 0 - i_idx);
     }
 
     o_ptr = &player_ptr->inventory_list[slot];
@@ -369,14 +367,13 @@ void do_cmd_wield(PlayerType *player_ptr)
  */
 void do_cmd_takeoff(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
     PlayerClass pc(player_ptr);
     pc.break_samurai_stance({ SamuraiStanceType::MUSOU });
 
     constexpr auto q = _("どれを装備からはずしますか? ", "Take off which item? ");
     constexpr auto s = _("はずせる装備がない。", "You are not wearing anything to take off.");
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return;
     }
@@ -406,8 +403,8 @@ void do_cmd_takeoff(PlayerType *player_ptr)
 
     sound(SOUND_TAKE_OFF);
     energy.set_player_turn_energy(50);
-    (void)inven_takeoff(player_ptr, item, 255);
-    verify_equip_slot(player_ptr, item);
+    (void)inven_takeoff(player_ptr, i_idx, 255);
+    verify_equip_slot(player_ptr, i_idx);
     calc_android_exp(player_ptr);
     static constexpr auto flags_srf = {
         StatusRecalculatingFlag::BONUS,
index 4db1a82..6697cae 100644 (file)
@@ -109,19 +109,18 @@ void do_cmd_inven(PlayerType *player_ptr)
  */
 void do_cmd_drop(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
     int amt = 1;
-    ItemEntity *o_ptr;
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU });
 
     constexpr auto q = _("どのアイテムを落としますか? ", "Drop which item? ");
     constexpr auto s = _("落とせるアイテムを持っていない。", "You have nothing to drop.");
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return;
     }
 
-    if ((item >= INVEN_MAIN_HAND) && o_ptr->is_cursed()) {
+    if ((i_idx >= INVEN_MAIN_HAND) && o_ptr->is_cursed()) {
         msg_print(_("ふーむ、どうやら呪われているようだ。", "Hmmm, it seems to be cursed."));
         return;
     }
@@ -134,9 +133,9 @@ void do_cmd_drop(PlayerType *player_ptr)
     }
 
     PlayerEnergy(player_ptr).set_player_turn_energy(50);
-    drop_from_inventory(player_ptr, item, amt);
-    if (item >= INVEN_MAIN_HAND) {
-        verify_equip_slot(player_ptr, item);
+    drop_from_inventory(player_ptr, i_idx, amt);
+    if (i_idx >= INVEN_MAIN_HAND) {
+        verify_equip_slot(player_ptr, i_idx);
         calc_android_exp(player_ptr);
     }
 
@@ -148,10 +147,10 @@ void do_cmd_drop(PlayerType *player_ptr)
  */
 void do_cmd_observe(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
     constexpr auto q = _("どのアイテムを調べますか? ", "Examine which item? ");
     constexpr auto s = _("調べられるアイテムがない。", "You have nothing to examine.");
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return;
     }
@@ -174,11 +173,10 @@ void do_cmd_observe(PlayerType *player_ptr)
  */
 void do_cmd_uninscribe(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
     constexpr auto q = _("どのアイテムの銘を消しますか? ", "Un-inscribe which item? ");
     constexpr auto s = _("銘を消せるアイテムがない。", "You have nothing to un-inscribe.");
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return;
     }
@@ -211,10 +209,10 @@ void do_cmd_uninscribe(PlayerType *player_ptr)
  */
 void do_cmd_inscribe(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
     constexpr auto q = _("どのアイテムに銘を刻みますか? ", "Inscribe which item? ");
     constexpr auto s = _("銘を刻めるアイテムがない。", "You have nothing to inscribe.");
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return;
     }
@@ -260,8 +258,8 @@ void do_cmd_use(PlayerType *player_ptr)
     constexpr auto q = _("どれを使いますか?", "Use which item? ");
     constexpr auto s = _("使えるものがありません。", "You have nothing to use.");
     const auto options = USE_INVEN | USE_EQUIP | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    short item;
-    const auto *o_ptr = choose_object(player_ptr, &item, q, s, options, FuncItemTester(item_tester_hook_use, player_ptr));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, FuncItemTester(item_tester_hook_use, player_ptr));
     if (o_ptr == nullptr) {
         return;
     }
@@ -271,34 +269,34 @@ void do_cmd_use(PlayerType *player_ptr)
         do_cmd_spike(player_ptr);
         break;
     case ItemKindType::FOOD:
-        exe_eat_food(player_ptr, item);
+        exe_eat_food(player_ptr, i_idx);
         break;
     case ItemKindType::WAND:
-        ObjectZapWandEntity(player_ptr).execute(item);
+        ObjectZapWandEntity(player_ptr).execute(i_idx);
         break;
     case ItemKindType::STAFF:
-        ObjectUseEntity(player_ptr, item).execute();
+        ObjectUseEntity(player_ptr, i_idx).execute();
         break;
     case ItemKindType::ROD:
-        ObjectZapRodEntity(player_ptr).execute(item);
+        ObjectZapRodEntity(player_ptr).execute(i_idx);
         break;
     case ItemKindType::POTION:
-        ObjectQuaffEntity(player_ptr).execute(item);
+        ObjectQuaffEntity(player_ptr).execute(i_idx);
         break;
     case ItemKindType::SCROLL:
         if (cmd_limit_blind(player_ptr) || cmd_limit_confused(player_ptr)) {
             return;
         }
 
-        ObjectReadEntity(player_ptr, item).execute(true);
+        ObjectReadEntity(player_ptr, i_idx).execute(true);
         break;
     case ItemKindType::SHOT:
     case ItemKindType::ARROW:
     case ItemKindType::BOLT:
-        exe_fire(player_ptr, item, &player_ptr->inventory_list[INVEN_BOW], SP_NONE);
+        exe_fire(player_ptr, i_idx, &player_ptr->inventory_list[INVEN_BOW], SP_NONE);
         break;
     default:
-        exe_activate(player_ptr, item);
+        exe_activate(player_ptr, i_idx);
         break;
     }
 }
@@ -309,18 +307,17 @@ void do_cmd_use(PlayerType *player_ptr)
  */
 void do_cmd_activate(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
     if (player_ptr->wild_mode || cmd_limit_arena(player_ptr)) {
         return;
     }
 
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU, SamuraiStanceType::KOUKIJIN });
-
     constexpr auto q = _("どのアイテムを始動させますか? ", "Activate which item? ");
     constexpr auto s = _("始動できるアイテムを装備していない。", "You have nothing to activate.");
-    if (!choose_object(player_ptr, &item, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT), FuncItemTester(&ItemEntity::is_activatable))) {
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | IGNORE_BOTHHAND_SLOT), FuncItemTester(&ItemEntity::is_activatable))) {
         return;
     }
 
-    exe_activate(player_ptr, item);
+    exe_activate(player_ptr, i_idx);
 }
index 54ee0bf..8562d8f 100644 (file)
@@ -39,10 +39,10 @@ void do_cmd_quaff_potion(PlayerType *player_ptr)
     constexpr auto q = _("どの薬を飲みますか? ", "Quaff which potion? ");
     constexpr auto s = _("飲める薬がない。", "You have no potions to quaff.");
 
-    OBJECT_IDX item;
-    if (!choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_quaff, player_ptr))) {
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(item_tester_hook_quaff, player_ptr))) {
         return;
     }
 
-    ObjectQuaffEntity(player_ptr).execute(item);
+    ObjectQuaffEntity(player_ptr).execute(i_idx);
 }
index b83af5a..aa90dbb 100644 (file)
@@ -39,12 +39,11 @@ void do_cmd_read_scroll(PlayerType *player_ptr)
 
     constexpr auto q = _("どの巻物を読みますか? ", "Read which scroll? ");
     constexpr auto s = _("読める巻物がない。", "You have no scrolls to read.");
-    ItemEntity *o_ptr;
-    OBJECT_IDX item;
-    o_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::is_readable));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::is_readable));
     if (!o_ptr) {
         return;
     }
 
-    ObjectReadEntity(player_ptr, item).execute(o_ptr->is_aware());
+    ObjectReadEntity(player_ptr, i_idx).execute(o_ptr->is_aware());
 }
index cf4ae2b..a8ac6c6 100644 (file)
  */
 static void do_cmd_refill_lamp(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
-    ItemEntity *j_ptr;
     constexpr auto q = _("どの油つぼから注ぎますか? ", "Refill with which flask? ");
     constexpr auto s = _("油つぼがない。", "You have no flasks of oil.");
-    o_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_refill_lantern));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_refill_lantern));
     if (!o_ptr) {
         return;
     }
@@ -39,7 +37,7 @@ static void do_cmd_refill_lamp(PlayerType *player_ptr)
     const auto flags = o_ptr->get_flags();
 
     PlayerEnergy(player_ptr).set_player_turn_energy(50);
-    j_ptr = &player_ptr->inventory_list[INVEN_LITE];
+    auto *j_ptr = &player_ptr->inventory_list[INVEN_LITE];
     const auto flags2 = j_ptr->get_flags();
     j_ptr->fuel += o_ptr->fuel;
     msg_print(_("ランプに油を注いだ。", "You fuel your lamp."));
@@ -54,7 +52,7 @@ static void do_cmd_refill_lamp(PlayerType *player_ptr)
         msg_print(_("ランプの油は一杯だ。", "Your lamp is full."));
     }
 
-    vary_item(player_ptr, item, -1);
+    vary_item(player_ptr, i_idx, -1);
     RedrawingFlagsUpdater::get_instance().set_flag(StatusRecalculatingFlag::TORCH);
 }
 
@@ -64,12 +62,10 @@ static void do_cmd_refill_lamp(PlayerType *player_ptr)
  */
 static void do_cmd_refill_torch(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
-    ItemEntity *j_ptr;
     constexpr auto q = _("どの松明で明かりを強めますか? ", "Refuel with which torch? ");
     constexpr auto s = _("他に松明がない。", "You have no extra torches.");
-    o_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_refill_torch));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_refill_torch));
     if (!o_ptr) {
         return;
     }
@@ -77,7 +73,7 @@ static void do_cmd_refill_torch(PlayerType *player_ptr)
     const auto flags = o_ptr->get_flags();
 
     PlayerEnergy(player_ptr).set_player_turn_energy(50);
-    j_ptr = &player_ptr->inventory_list[INVEN_LITE];
+    auto *j_ptr = &player_ptr->inventory_list[INVEN_LITE];
     const auto flags2 = j_ptr->get_flags();
     j_ptr->fuel += o_ptr->fuel + 5;
     msg_print(_("松明を結合した。", "You combine the torches."));
@@ -94,7 +90,7 @@ static void do_cmd_refill_torch(PlayerType *player_ptr)
         msg_print(_("松明はいっそう明るく輝いた。", "Your torch glows more brightly."));
     }
 
-    vary_item(player_ptr, item, -1);
+    vary_item(player_ptr, i_idx, -1);
     RedrawingFlagsUpdater::get_instance().set_flag(StatusRecalculatingFlag::TORCH);
 }
 
index dfc6f5d..585ff31 100644 (file)
@@ -61,7 +61,7 @@ bool ThrowCommand::do_cmd_throw(int mult, bool boomerang, OBJECT_IDX shuriken)
     }
 
     ote.reflect_inventory_by_throw();
-    if (ote.item >= INVEN_MAIN_HAND) {
+    if (ote.i_idx >= INVEN_MAIN_HAND) {
         ote.equiped_item = true;
         RedrawingFlagsUpdater::get_instance().set_flag(MainWindowRedrawingFlag::EQUIPPY);
     }
index 25d6851..6064951 100644 (file)
@@ -307,9 +307,6 @@ int staff_effect(PlayerType *player_ptr, int sval, bool *use_charge, bool powerf
  */
 void do_cmd_use_staff(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    concptr q, s;
-
     if (player_ptr->wild_mode) {
         return;
     }
@@ -319,12 +316,12 @@ void do_cmd_use_staff(PlayerType *player_ptr)
     }
 
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU, SamuraiStanceType::KOUKIJIN });
-
-    q = _("どの杖を使いますか? ", "Use which staff? ");
-    s = _("使える杖がない。", "You have no staff to use.");
-    if (!choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::STAFF))) {
+    constexpr auto q = _("どの杖を使いますか? ", "Use which staff? ");
+    constexpr auto s = _("使える杖がない。", "You have no staff to use.");
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::STAFF))) {
         return;
     }
 
-    ObjectUseEntity(player_ptr, item).execute();
+    ObjectUseEntity(player_ptr, i_idx).execute();
 }
index 9318f2a..8a2631d 100644 (file)
@@ -297,12 +297,12 @@ void do_cmd_zap_rod(PlayerType *player_ptr)
 
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU, SamuraiStanceType::KOUKIJIN });
 
-    auto q = _("どのロッドを振りますか? ", "Zap which rod? ");
-    auto s = _("使えるロッドがない。", "You have no rod to zap.");
-    OBJECT_IDX item;
-    if (!choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::ROD))) {
+    constexpr auto q = _("どのロッドを振りますか? ", "Zap which rod? ");
+    constexpr auto s = _("使えるロッドがない。", "You have no rod to zap.");
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::ROD))) {
         return;
     }
 
-    ObjectZapRodEntity(player_ptr).execute(item);
+    ObjectZapRodEntity(player_ptr).execute(i_idx);
 }
index 6b6476e..91a07a7 100644 (file)
@@ -325,9 +325,6 @@ bool wand_effect(PlayerType *player_ptr, int sval, int dir, bool powerful, bool
  */
 void do_cmd_aim_wand(PlayerType *player_ptr)
 {
-    OBJECT_IDX item;
-    concptr q, s;
-
     if (player_ptr->wild_mode) {
         return;
     }
@@ -336,11 +333,12 @@ void do_cmd_aim_wand(PlayerType *player_ptr)
     }
     PlayerClass(player_ptr).break_samurai_stance({ SamuraiStanceType::MUSOU, SamuraiStanceType::KOUKIJIN });
 
-    q = _("どの魔法棒で狙いますか? ", "Aim which wand? ");
-    s = _("使える魔法棒がない。", "You have no wand to aim.");
-    if (!choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::WAND))) {
+    constexpr auto q = _("どの魔法棒で狙いますか? ", "Aim which wand? ");
+    constexpr auto s = _("使える魔法棒がない。", "You have no wand to aim.");
+    short i_idx;
+    if (!choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), TvalItemTester(ItemKindType::WAND))) {
         return;
     }
 
-    ObjectZapWandEntity(player_ptr).execute(item);
+    ObjectZapWandEntity(player_ptr).execute(i_idx);
 }
index eca554f..a0dfa32 100644 (file)
@@ -633,29 +633,28 @@ void floor_item_describe(PlayerType *player_ptr, INVENTORY_IDX i_idx)
 }
 
 /*
- * Choose an item and get auto-picker entry from it.
+ * @brief Choose an item and get auto-picker entry from it.
+ * @todo initial_i_idx をポインタではなく値に変え、戻り値をstd::pairに変える
  */
-ItemEntity *choose_object(PlayerType *player_ptr, OBJECT_IDX *idx, concptr q, concptr s, BIT_FLAGS option, const ItemTester &item_tester)
+ItemEntity *choose_object(PlayerType *player_ptr, short *initial_i_idx, concptr q, concptr s, BIT_FLAGS option, const ItemTester &item_tester)
 {
-    OBJECT_IDX item;
-
-    if (idx) {
-        *idx = INVEN_NONE;
+    if (initial_i_idx) {
+        *initial_i_idx = INVEN_NONE;
     }
 
     FixItemTesterSetter setter(item_tester);
-
-    if (!get_item(player_ptr, &item, q, s, option, item_tester)) {
+    short i_idx;
+    if (!get_item(player_ptr, &i_idx, q, s, option, item_tester)) {
         return nullptr;
     }
 
-    if (idx) {
-        *idx = item;
+    if (initial_i_idx) {
+        *initial_i_idx = i_idx;
     }
 
-    if (item == INVEN_FORCE) {
+    if (i_idx == INVEN_FORCE) {
         return nullptr;
     }
 
-    return ref_item(player_ptr, item);
+    return ref_item(player_ptr, i_idx);
 }
index c4c5e03..85985a1 100644 (file)
@@ -21,4 +21,4 @@ ObjectIndexList &get_o_idx_list_contains(FloorType *floor_ptr, OBJECT_IDX o_idx)
 OBJECT_IDX drop_near(PlayerType *player_ptr, ItemEntity *o_ptr, PERCENTAGE chance, POSITION y, POSITION x);
 void floor_item_charges(FloorType *player_ptr, INVENTORY_IDX i_idx);
 void floor_item_describe(PlayerType *player_ptr, INVENTORY_IDX i_idx);
-ItemEntity *choose_object(PlayerType *player_ptr, OBJECT_IDX *idx, concptr q, concptr s, BIT_FLAGS option, const ItemTester &item_tester = AllMatchItemTester());
+ItemEntity *choose_object(PlayerType *player_ptr, short *initial_i_idx, concptr q, concptr s, BIT_FLAGS option, const ItemTester &item_tester = AllMatchItemTester());
index e590f88..8ffd756 100644 (file)
@@ -65,12 +65,12 @@ bool can_get_item(PlayerType *player_ptr, const ItemTester &item_tester)
  */
 static bool py_pickup_floor_aux(PlayerType *player_ptr)
 {
-    OBJECT_IDX this_o_idx;
-    OBJECT_IDX item;
+    short this_o_idx;
+    short i_idx;
     constexpr auto q = _("どれを拾いますか?", "Get which item? ");
     constexpr auto s = _("もうザックには床にあるどのアイテムも入らない。", "You no longer have any room for the objects on the floor.");
-    if (choose_object(player_ptr, &item, q, s, (USE_FLOOR), FuncItemTester(check_store_item_to_inventory, player_ptr))) {
-        this_o_idx = 0 - item;
+    if (choose_object(player_ptr, &i_idx, q, s, (USE_FLOOR), FuncItemTester(check_store_item_to_inventory, player_ptr))) {
+        this_o_idx = 0 - i_idx;
     } else {
         return false;
     }
index ed30c31..3db937b 100644 (file)
@@ -365,9 +365,9 @@ PRICE compare_weapons(PlayerType *player_ptr, PRICE bcost)
     constexpr auto first_q = _("第一の武器は?", "What is your first weapon? ");
     constexpr auto first_s = _("比べるものがありません。", "You have nothing to compare.");
 
-    OBJECT_IDX item;
+    short i_idx_first;
     constexpr auto options = USE_EQUIP | USE_INVEN | IGNORE_BOTHHAND_SLOT;
-    o_ptr[0] = choose_object(player_ptr, &item, first_q, first_s, options, FuncItemTester(&ItemEntity::is_orthodox_melee_weapons));
+    o_ptr[0] = choose_object(player_ptr, &i_idx_first, first_q, first_s, options, FuncItemTester(&ItemEntity::is_orthodox_melee_weapons));
     if (!o_ptr[0]) {
         screen_load();
         return 0;
@@ -421,8 +421,8 @@ PRICE compare_weapons(PlayerType *player_ptr, PRICE bcost)
 
         constexpr auto q = _("第二の武器は?", "What is your second weapon? ");
         constexpr auto s = _("比べるものがありません。", "You have nothing to compare.");
-        OBJECT_IDX item2;
-        ItemEntity *i2_ptr = choose_object(player_ptr, &item2, q, s, (USE_EQUIP | USE_INVEN | IGNORE_BOTHHAND_SLOT), FuncItemTester(&ItemEntity::is_orthodox_melee_weapons));
+        short i_idx_second;
+        auto *i2_ptr = choose_object(player_ptr, &i_idx_second, q, s, (USE_EQUIP | USE_INVEN | IGNORE_BOTHHAND_SLOT), FuncItemTester(&ItemEntity::is_orthodox_melee_weapons));
         if (!i2_ptr) {
             continue;
         }
index 6552988..4845aea 100644 (file)
@@ -32,8 +32,8 @@ bool enchant_item(PlayerType *player_ptr, PRICE cost, HIT_PROB to_hit, int to_da
     constexpr auto q = _("どのアイテムを改良しますか?", "Improve which item? ");
     constexpr auto s = _("改良できるものがありません。", "You have nothing to improve.");
 
-    OBJECT_IDX item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_EQUIP | IGNORE_BOTHHAND_SLOT), item_tester);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_EQUIP | IGNORE_BOTHHAND_SLOT), item_tester);
     if (!o_ptr) {
         return false;
     }
@@ -83,7 +83,7 @@ bool enchant_item(PlayerType *player_ptr, PRICE cost, HIT_PROB to_hit, int to_da
 #endif
 
     player_ptr->au -= total_cost;
-    if (item >= INVEN_MAIN_HAND) {
+    if (i_idx >= INVEN_MAIN_HAND) {
         calc_android_exp(player_ptr);
     }
     return true;
index 6337a1c..4cd9f23 100644 (file)
@@ -38,8 +38,8 @@ void building_recharge(PlayerType *player_ptr)
     prt(_("  再充填の費用はアイテムの種類によります。", "  The prices of recharge depend on the type."), 6, 0);
     constexpr auto q = _("どのアイテムに魔力を充填しますか? ", "Recharge which item? ");
     constexpr auto s = _("魔力を充填すべきアイテムがない。", "You have nothing to recharge.");
-    OBJECT_IDX item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
     if (o_ptr == nullptr) {
         return;
     }
@@ -56,7 +56,7 @@ void building_recharge(PlayerType *player_ptr)
             identify_item(player_ptr, o_ptr);
             const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
             msg_format(_("%s です。", "You have: %s."), item_name.data());
-            autopick_alter_item(player_ptr, item, false);
+            autopick_alter_item(player_ptr, i_idx, false);
             building_prt_gold(player_ptr);
         }
 
index b919423..d3620cd 100644 (file)
@@ -147,8 +147,8 @@ bool create_ammo(PlayerType *player_ptr)
     case AMMO_ARROW: {
         constexpr auto q = _("どのアイテムから作りますか? ", "Convert which item? ");
         constexpr auto s = _("材料を持っていない。", "You have no item to convert.");
-        OBJECT_IDX item;
-        auto *q_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::is_convertible));
+        short i_idx;
+        auto *q_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::is_convertible));
         if (!q_ptr) {
             return false;
         }
@@ -163,7 +163,7 @@ bool create_ammo(PlayerType *player_ptr)
         q_ptr->discount = 99;
         const auto item_name = describe_flavor(player_ptr, q_ptr, 0);
         msg_print(_(format("%sを作った。", item_name.data()), "You make some ammo."));
-        vary_item(player_ptr, item, -1);
+        vary_item(player_ptr, i_idx, -1);
         int16_t slot = store_item_to_inventory(player_ptr, q_ptr);
         if (slot >= 0) {
             autopick_alter_item(player_ptr, slot, false);
@@ -174,8 +174,8 @@ bool create_ammo(PlayerType *player_ptr)
     case AMMO_BOLT: {
         constexpr auto q = _("どのアイテムから作りますか? ", "Convert which item? ");
         constexpr auto s = _("材料を持っていない。", "You have no item to convert.");
-        OBJECT_IDX item;
-        auto *q_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_convertible));
+        short i_idx;
+        auto *q_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_convertible));
         if (!q_ptr) {
             return false;
         }
@@ -190,7 +190,7 @@ bool create_ammo(PlayerType *player_ptr)
         q_ptr->discount = 99;
         const auto item_name = describe_flavor(player_ptr, q_ptr, 0);
         msg_print(_(format("%sを作った。", item_name.data()), "You make some ammo."));
-        vary_item(player_ptr, item, -1);
+        vary_item(player_ptr, i_idx, -1);
         int16_t slot = store_item_to_inventory(player_ptr, q_ptr);
         if (slot >= 0) {
             autopick_alter_item(player_ptr, slot, false);
index df31ec6..440a35c 100644 (file)
@@ -31,8 +31,8 @@ bool eat_magic(PlayerType *player_ptr, int power)
     byte fail_type = 1;
     constexpr auto q = _("どのアイテムから魔力を吸収しますか?", "Drain which item? ");
     constexpr auto s = _("魔力を吸収できるアイテムがありません。", "You have nothing to drain.");
-    short item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
     if (o_ptr == nullptr) {
         return false;
     }
@@ -67,7 +67,7 @@ bool eat_magic(PlayerType *player_ptr, int power)
                 player_ptr->csp += lev / 2;
                 o_ptr->pval--;
 
-                if ((tval == ItemKindType::STAFF) && (item >= 0) && (o_ptr->number > 1)) {
+                if ((tval == ItemKindType::STAFF) && (i_idx >= 0) && (o_ptr->number > 1)) {
                     ItemEntity forge;
                     ItemEntity *q_ptr;
                     q_ptr = &forge;
@@ -76,7 +76,7 @@ bool eat_magic(PlayerType *player_ptr, int power)
                     q_ptr->number = 1;
                     o_ptr->pval++;
                     o_ptr->number--;
-                    item = store_item_to_inventory(player_ptr, q_ptr);
+                    i_idx = store_item_to_inventory(player_ptr, q_ptr);
 
                     msg_print(_("杖をまとめなおした。", "You unstack your staff."));
                 }
@@ -184,7 +184,7 @@ bool eat_magic(PlayerType *player_ptr, int power)
             msg_format(_("乱暴な魔法のために%sが壊れた!", "Wild magic consumes your %s!"), item_name.data());
         }
 
-        vary_item(player_ptr, item, -1);
+        vary_item(player_ptr, i_idx, -1);
     }
 
     if (fail_type == 3) {
@@ -194,7 +194,7 @@ bool eat_magic(PlayerType *player_ptr, int power)
             msg_format(_("乱暴な魔法のために%sが壊れた!", "Wild magic consumes your %s!"), item_name.data());
         }
 
-        vary_item(player_ptr, item, -999);
+        vary_item(player_ptr, i_idx, -999);
     }
 
     return redraw_player(player_ptr);
index 5695eaa..b45bfbf 100644 (file)
@@ -23,8 +23,8 @@ bool import_magic_device(PlayerType *player_ptr)
 {
     constexpr auto q = _("どのアイテムの魔力を取り込みますか? ", "Gain power of which item? ");
     constexpr auto s = _("魔力を取り込めるアイテムがない。", "There's nothing with power to absorb.");
-    OBJECT_IDX item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_recharge));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_INVEN | USE_FLOOR, FuncItemTester(&ItemEntity::can_recharge));
     if (o_ptr == nullptr) {
         return false;
     }
@@ -76,7 +76,7 @@ bool import_magic_device(PlayerType *player_ptr)
     const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
     msg_format(_("%sの魔力を取り込んだ。", "You absorb magic of %s."), item_name.data());
 
-    vary_item(player_ptr, item, -999);
+    vary_item(player_ptr, i_idx, -999);
     PlayerEnergy(player_ptr).set_player_turn_energy(100);
     return true;
 }
index d41a487..32593da 100644 (file)
@@ -55,9 +55,8 @@ bool psychometry(PlayerType *player_ptr)
 {
     constexpr auto q = _("どのアイテムを調べますか?", "Meditate on which item? ");
     constexpr auto s = _("調べるアイテムがありません。", "You have nothing appropriate.");
-    ItemEntity *o_ptr;
-    OBJECT_IDX item;
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT));
     if (!o_ptr) {
         return false;
     }
@@ -130,7 +129,7 @@ bool psychometry(PlayerType *player_ptr)
         break;
     }
 
-    autopick_alter_item(player_ptr, item, (bool)(okay && destroy_feeling));
+    autopick_alter_item(player_ptr, i_idx, (bool)(okay && destroy_feeling));
     return true;
 }
 
index ddb28dc..ab7cd3b 100644 (file)
@@ -27,9 +27,9 @@ bool bless_weapon(PlayerType *player_ptr)
     constexpr auto q = _("どのアイテムを祝福しますか?", "Bless which weapon? ");
     constexpr auto s = _("祝福できる武器がありません。", "You have no weapon to bless.");
 
-    OBJECT_IDX item;
+    short i_idx;
     constexpr BIT_FLAGS options = USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, options, FuncItemTester(&ItemEntity::is_weapon));
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, FuncItemTester(&ItemEntity::is_weapon));
     if (!o_ptr) {
         return false;
     }
@@ -47,7 +47,7 @@ bool bless_weapon(PlayerType *player_ptr)
 #ifdef JP
             msg_format("%sを覆う黒いオーラは祝福を跳ね返した!", item_name.data());
 #else
-            msg_format("The black aura on %s %s disrupts the blessing!", ((item >= 0) ? "your" : "the"), item_name.data());
+            msg_format("The black aura on %s %s disrupts the blessing!", ((i_idx >= 0) ? "your" : "the"), item_name.data());
 #endif
 
             return true;
@@ -56,7 +56,7 @@ bool bless_weapon(PlayerType *player_ptr)
 #ifdef JP
         msg_format("%s から邪悪なオーラが消えた。", item_name.data());
 #else
-        msg_format("A malignant aura leaves %s %s.", ((item >= 0) ? "your" : "the"), item_name.data());
+        msg_format("A malignant aura leaves %s %s.", ((i_idx >= 0) ? "your" : "the"), item_name.data());
 #endif
         o_ptr->curse_flags.clear();
         set_bits(o_ptr->ident, IDENT_SENSE);
@@ -82,7 +82,7 @@ bool bless_weapon(PlayerType *player_ptr)
 #ifdef JP
         msg_format("%s は既に祝福されている。", item_name.data());
 #else
-        msg_format("%s %s %s blessed already.", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "were" : "was"));
+        msg_format("%s %s %s blessed already.", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "were" : "was"));
 #endif
         return true;
     }
@@ -91,7 +91,7 @@ bool bless_weapon(PlayerType *player_ptr)
 #ifdef JP
         msg_format("%sは輝いた!", item_name.data());
 #else
-        msg_format("%s %s shine%s!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
+        msg_format("%s %s shine%s!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
 #endif
         o_ptr->art_flags.set(TR_BLESSED);
         o_ptr->discount = 99;
@@ -135,7 +135,7 @@ bool bless_weapon(PlayerType *player_ptr)
 #ifdef JP
             msg_format("%s は劣化した!", item_name.data());
 #else
-            msg_format("%s %s %s disenchanted!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "were" : "was"));
+            msg_format("%s %s %s disenchanted!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "were" : "was"));
 #endif
         }
     }
index 0d6eade..dd5797f 100644 (file)
@@ -125,9 +125,9 @@ static void drain_essence(PlayerType *player_ptr)
     auto q = _("どのアイテムから抽出しますか?", "Extract from which item? ");
     auto s = _("抽出できるアイテムがありません。", "You have nothing you can extract from.");
 
-    OBJECT_IDX item;
+    short i_idx;
     constexpr auto options = USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    auto o_ptr = choose_object(player_ptr, &item, q, s, options, FuncItemTester(&ItemEntity::is_weapon_armour_ammo));
+    auto o_ptr = choose_object(player_ptr, &i_idx, q, s, options, FuncItemTester(&ItemEntity::is_weapon_armour_ammo));
     if (!o_ptr) {
         return;
     }
@@ -156,7 +156,7 @@ static void drain_essence(PlayerType *player_ptr)
     }
 
     /* Apply autodestroy/inscription to the drained item */
-    autopick_alter_item(player_ptr, item, true);
+    autopick_alter_item(player_ptr, i_idx, true);
     set_smith_redrawing_flags();
 }
 
@@ -316,10 +316,6 @@ static void display_smith_effect_list(const Smith &smith, const std::vector<Smit
  */
 static void add_essence(PlayerType *player_ptr, SmithCategoryType mode)
 {
-    OBJECT_IDX item;
-    bool flag;
-    concptr q, s;
-    ItemEntity *o_ptr;
     int menu_line = (use_menu ? 1 : 0);
 
     Smith smith(player_ptr);
@@ -332,7 +328,7 @@ static void add_essence(PlayerType *player_ptr, SmithCategoryType mode)
 
     COMMAND_CODE i = -1;
     COMMAND_CODE effect_idx;
-
+    bool flag;
     if (!repeat_pull(&effect_idx) || effect_idx < 0 || effect_idx >= smith_effect_list_max) {
         flag = false;
 
@@ -450,10 +446,10 @@ static void add_essence(PlayerType *player_ptr, SmithCategoryType mode)
 
     auto item_tester = Smith::get_item_tester(effect);
 
-    q = _("どのアイテムを改良しますか?", "Improve which item? ");
-    s = _("改良できるアイテムがありません。", "You have nothing to improve.");
-
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
+    constexpr auto q = _("どのアイテムを改良しますか?", "Improve which item? ");
+    constexpr auto s = _("改良できるアイテムがありません。", "You have nothing to improve.");
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
     if (!o_ptr) {
         return;
     }
@@ -529,8 +525,8 @@ static void erase_essence(PlayerType *player_ptr)
 {
     constexpr auto q = _("どのアイテムのエッセンスを消去しますか?", "Remove from which item? ");
     constexpr auto s = _("エッセンスを付加したアイテムがありません。", "You have nothing with added essence to remove.");
-    OBJECT_IDX item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_smith));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_smith));
     if (!o_ptr) {
         return;
     }
index e1c6a21..81b06f9 100644 (file)
@@ -87,7 +87,7 @@ bool ObjectThrowEntity::check_can_throw()
         return false;
     }
 
-    if (this->o_ptr->is_cursed() && (this->item >= INVEN_MAIN_HAND)) {
+    if (this->o_ptr->is_cursed() && (this->i_idx >= INVEN_MAIN_HAND)) {
         msg_print(_("ふーむ、どうやら呪われているようだ。", "Hmmm, it seems to be cursed."));
         return false;
     }
@@ -157,18 +157,18 @@ void ObjectThrowEntity::reflect_inventory_by_throw()
         this->return_when_thrown = true;
     }
 
-    if (this->item < 0) {
-        floor_item_increase(this->player_ptr, 0 - this->item, -1);
-        floor_item_optimize(this->player_ptr, 0 - this->item);
+    if (this->i_idx < 0) {
+        floor_item_increase(this->player_ptr, 0 - this->i_idx, -1);
+        floor_item_optimize(this->player_ptr, 0 - this->i_idx);
         return;
     }
 
-    inven_item_increase(this->player_ptr, this->item, -1);
+    inven_item_increase(this->player_ptr, this->i_idx, -1);
     if (!this->return_when_thrown) {
-        inven_item_describe(this->player_ptr, this->item);
+        inven_item_describe(this->player_ptr, this->i_idx);
     }
 
-    inven_item_optimize(this->player_ptr, this->item);
+    inven_item_optimize(this->player_ptr, this->i_idx);
 }
 
 void ObjectThrowEntity::set_class_specific_throw_params()
@@ -298,13 +298,13 @@ void ObjectThrowEntity::check_boomerang_throw()
 void ObjectThrowEntity::process_boomerang_back()
 {
     if (this->come_back) {
-        if ((this->item != INVEN_MAIN_HAND) && (this->item != INVEN_SUB_HAND)) {
+        if ((this->i_idx != INVEN_MAIN_HAND) && (this->i_idx != INVEN_SUB_HAND)) {
             store_item_to_inventory(this->player_ptr, this->q_ptr);
             this->do_drop = false;
             return;
         }
 
-        this->o_ptr = &player_ptr->inventory_list[this->item];
+        this->o_ptr = &player_ptr->inventory_list[this->i_idx];
         this->o_ptr->copy_from(this->q_ptr);
         this->player_ptr->equip_cnt++;
         auto &rfu = RedrawingFlagsUpdater::get_instance();
@@ -320,7 +320,7 @@ void ObjectThrowEntity::process_boomerang_back()
     }
 
     if (this->equiped_item) {
-        verify_equip_slot(this->player_ptr, this->item);
+        verify_equip_slot(this->player_ptr, this->i_idx);
         calc_android_exp(this->player_ptr);
     }
 }
@@ -340,8 +340,8 @@ void ObjectThrowEntity::drop_thrown_item()
 bool ObjectThrowEntity::check_what_throw()
 {
     if (this->shuriken >= 0) {
-        this->item = this->shuriken;
-        this->o_ptr = &this->player_ptr->inventory_list[this->item];
+        this->i_idx = this->shuriken;
+        this->o_ptr = &this->player_ptr->inventory_list[this->i_idx];
         return true;
     }
 
@@ -349,10 +349,9 @@ bool ObjectThrowEntity::check_what_throw()
         return this->check_throw_boomerang();
     }
 
-    concptr q, s;
-    q = _("どのアイテムを投げますか? ", "Throw which item? ");
-    s = _("投げるアイテムがない。", "You have nothing to throw.");
-    this->o_ptr = choose_object(this->player_ptr, &this->item, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
+    constexpr auto q = _("どのアイテムを投げますか? ", "Throw which item? ");
+    constexpr auto s = _("投げるアイテムがない。", "You have nothing to throw.");
+    this->o_ptr = choose_object(this->player_ptr, &this->i_idx, q, s, USE_INVEN | USE_FLOOR | USE_EQUIP);
     if (!this->o_ptr) {
         flush();
         return false;
@@ -367,7 +366,7 @@ bool ObjectThrowEntity::check_throw_boomerang()
         concptr q, s;
         q = _("どの武器を投げますか? ", "Throw which item? ");
         s = _("投げる武器がない。", "You have nothing to throw.");
-        this->o_ptr = choose_object(this->player_ptr, &this->item, q, s, USE_EQUIP, FuncItemTester(&ItemEntity::is_throwable));
+        this->o_ptr = choose_object(this->player_ptr, &this->i_idx, q, s, USE_EQUIP, FuncItemTester(&ItemEntity::is_throwable));
         if (!this->o_ptr) {
             flush();
             return false;
@@ -377,13 +376,13 @@ bool ObjectThrowEntity::check_throw_boomerang()
     }
 
     if (has_melee_weapon(this->player_ptr, INVEN_SUB_HAND)) {
-        this->item = INVEN_SUB_HAND;
-        this->o_ptr = &this->player_ptr->inventory_list[this->item];
+        this->i_idx = INVEN_SUB_HAND;
+        this->o_ptr = &this->player_ptr->inventory_list[this->i_idx];
         return true;
     }
 
-    this->item = INVEN_MAIN_HAND;
-    this->o_ptr = &this->player_ptr->inventory_list[this->item];
+    this->i_idx = INVEN_MAIN_HAND;
+    this->o_ptr = &this->player_ptr->inventory_list[this->i_idx];
     return true;
 }
 
@@ -500,7 +499,7 @@ void ObjectThrowEntity::calc_racial_power_damage()
     this->tdam = critical_shot(this->player_ptr, this->q_ptr->weight, this->q_ptr->to_h, 0, this->tdam);
     this->tdam += (this->q_ptr->to_d > 0 ? 1 : -1) * this->q_ptr->to_d;
     if (this->boomerang) {
-        this->tdam *= (this->mult + this->player_ptr->num_blow[this->item - INVEN_MAIN_HAND]);
+        this->tdam *= (this->mult + this->player_ptr->num_blow[this->i_idx - INVEN_MAIN_HAND]);
         this->tdam += this->player_ptr->to_d_m;
     } else if (this->obj_flags.has(TR_THROW)) {
         this->tdam *= (3 + this->mult);
@@ -553,13 +552,13 @@ void ObjectThrowEntity::process_boomerang_throw()
 void ObjectThrowEntity::display_boomerang_throw()
 {
     const auto is_blind = this->player_ptr->effects()->blindness()->is_blind();
-    if ((this->back_chance > 37) && !is_blind && (this->item >= 0)) {
+    if ((this->back_chance > 37) && !is_blind && (this->i_idx >= 0)) {
         msg_format(_("%sが手元に返ってきた。", "%s comes back to you."), this->o2_name.data());
         this->come_back = true;
         return;
     }
 
-    auto back_message = this->item >= 0 ? _("%sを受け損ねた!", "%s comes back, but you can't catch!") : _("%sが返ってきた。", "%s comes back.");
+    auto back_message = this->i_idx >= 0 ? _("%sを受け損ねた!", "%s comes back, but you can't catch!") : _("%sが返ってきた。", "%s comes back.");
     msg_format(back_message, this->o2_name.data());
     this->y = this->player_ptr->y;
     this->x = this->player_ptr->x;
index a102db6..ab88a0a 100644 (file)
@@ -22,7 +22,7 @@ public:
     virtual ~ObjectThrowEntity() = default;
 
     ItemEntity *q_ptr;
-    OBJECT_IDX item{};
+    OBJECT_IDX i_idx{};
     POSITION y{};
     POSITION x{};
     POSITION prev_y{};
index 177af19..18a3351 100644 (file)
@@ -165,8 +165,8 @@ std::optional<std::string> do_hex_spell(PlayerType *player_ptr, spell_hex_type s
         if (cast) {
             constexpr auto q = _("どれを呪いますか?", "Which weapon do you curse?");
             constexpr auto s = _("武器を装備していない。", "You're not wielding a weapon.");
-            short item;
-            auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_melee_weapon));
+            short i_idx;
+            auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_melee_weapon));
             if (o_ptr == nullptr) {
                 return "";
             }
@@ -517,13 +517,13 @@ std::optional<std::string> do_hex_spell(PlayerType *player_ptr, spell_hex_type s
         if (cast) {
             constexpr auto q = _("どれを呪いますか?", "Which piece of armour do you curse?");
             constexpr auto s = _("防具を装備していない。", "You're not wearing any armor.");
-            OBJECT_IDX item;
-            auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_protector));
+            short i_idx;
+            auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_protector));
             if (!o_ptr) {
                 return "";
             }
 
-            o_ptr = &player_ptr->inventory_list[item];
+            o_ptr = &player_ptr->inventory_list[i_idx];
             const auto item_name = describe_flavor(player_ptr, o_ptr, OD_NAME_ONLY);
             if (!input_check(format(_("本当に %s を呪いますか?", "Do you curse %s, really?"), item_name.data()))) {
                 return "";
@@ -740,14 +740,10 @@ std::optional<std::string> do_hex_spell(PlayerType *player_ptr, spell_hex_type s
             return _("呪われた装備品の呪いを吸収して魔力を回復する。", "Drains curse on your equipment and heals SP a little.");
         }
         if (cast) {
-            OBJECT_IDX item;
-            concptr s, q;
-            ItemEntity *o_ptr;
-
-            q = _("どの装備品から吸収しますか?", "Which cursed equipment do you drain mana from?");
-            s = _("呪われたアイテムを装備していない。", "You have no cursed equipment.");
-
-            o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_cursed));
+            constexpr auto q = _("どの装備品から吸収しますか?", "Which cursed equipment do you drain mana from?");
+            constexpr auto s = _("呪われたアイテムを装備していない。", "You have no cursed equipment.");
+            short i_idx;
+            auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_cursed));
             if (!o_ptr) {
                 return "";
             }
index c6f6d8f..0868504 100644 (file)
@@ -53,8 +53,8 @@ bool recharge(PlayerType *player_ptr, int power)
     constexpr auto q = _("どのアイテムに魔力を充填しますか? ", "Recharge which item? ");
     constexpr auto s = _("魔力を充填すべきアイテムがない。", "You have nothing to recharge.");
 
-    OBJECT_IDX item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::can_recharge));
     if (o_ptr == nullptr) {
         return false;
     }
@@ -212,7 +212,7 @@ bool recharge(PlayerType *player_ptr, int power)
             o_ptr->pval = 0;
         }
 
-        vary_item(player_ptr, item, -1);
+        vary_item(player_ptr, i_idx, -1);
         break;
     case 3:
         if (o_ptr->number > 1) {
@@ -221,7 +221,7 @@ bool recharge(PlayerType *player_ptr, int power)
             msg_format(_("乱暴な魔法のために%sが壊れた!", "Wild magic consumes your %s!"), item_name.data());
         }
 
-        vary_item(player_ptr, item, -999);
+        vary_item(player_ptr, i_idx, -999);
         break;
     default:
         THROW_EXCEPTION(std::logic_error, "Invalid fail type!");
index 8398fbb..9d76a12 100644 (file)
@@ -28,9 +28,8 @@ bool artifact_scroll(PlayerType *player_ptr)
 {
     constexpr auto q = _("どのアイテムを強化しますか? ", "Enchant which item? ");
     constexpr auto s = _("強化できるアイテムがない。", "You have nothing to enchant.");
-    ItemEntity *o_ptr;
-    OBJECT_IDX item;
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), FuncItemTester(object_is_nameless_weapon_armour));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), FuncItemTester(object_is_nameless_weapon_armour));
     if (!o_ptr) {
         return false;
     }
@@ -39,7 +38,7 @@ bool artifact_scroll(PlayerType *player_ptr)
 #ifdef JP
     msg_format("%s は眩い光を発した!", item_name.data());
 #else
-    msg_format("%s %s radiate%s a blinding light!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
+    msg_format("%s %s radiate%s a blinding light!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
 #endif
 
     bool okay = false;
@@ -72,10 +71,10 @@ bool artifact_scroll(PlayerType *player_ptr)
             msg_format("%d of your %s %s destroyed!", (o_ptr->number) - 1, item_name.data(), (o_ptr->number > 2 ? "were" : "was"));
 #endif
 
-            if (item >= 0) {
-                inven_item_increase(player_ptr, item, 1 - (o_ptr->number));
+            if (i_idx >= 0) {
+                inven_item_increase(player_ptr, i_idx, 1 - (o_ptr->number));
             } else {
-                floor_item_increase(player_ptr, 0 - item, 1 - (o_ptr->number));
+                floor_item_increase(player_ptr, 0 - i_idx, 1 - (o_ptr->number));
             }
         }
 
@@ -126,12 +125,10 @@ bool mundane_spell(PlayerType *player_ptr, bool only_equip)
         item_tester = std::make_unique<FuncItemTester>(&ItemEntity::is_weapon_armour_ammo);
     }
 
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
     constexpr auto q = _("どのアイテムを凡庸化しますか?", "Mundanify which item? ");
     constexpr auto s = _("凡庸化できるアイテムがない。", "You have nothing to mundanify.");
-
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
     if (!o_ptr) {
         return false;
     }
index fdad604..c481f63 100644 (file)
@@ -127,8 +127,8 @@ bool ident_spell(PlayerType *player_ptr, bool only_equip)
     }
 
     constexpr auto s = _("鑑定するべきアイテムがない。", "You have nothing to identify.");
-    OBJECT_IDX item;
-    auto o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
     if (!o_ptr) {
         return false;
     }
@@ -136,15 +136,15 @@ bool ident_spell(PlayerType *player_ptr, bool only_equip)
     auto old_known = identify_item(player_ptr, o_ptr);
 
     const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
-    if (item >= INVEN_MAIN_HAND) {
-        msg_format(_("%s^: %s(%c)。", "%s^: %s (%c)."), describe_use(player_ptr, item), item_name.data(), index_to_label(item));
-    } else if (item >= 0) {
-        msg_format(_("ザック中: %s(%c)。", "In your pack: %s (%c)."), item_name.data(), index_to_label(item));
+    if (i_idx >= INVEN_MAIN_HAND) {
+        msg_format(_("%s^: %s(%c)。", "%s^: %s (%c)."), describe_use(player_ptr, i_idx), item_name.data(), index_to_label(i_idx));
+    } else if (i_idx >= 0) {
+        msg_format(_("ザック中: %s(%c)。", "In your pack: %s (%c)."), item_name.data(), index_to_label(i_idx));
     } else {
         msg_format(_("床上: %s。", "On the ground: %s."), item_name.data());
     }
 
-    autopick_alter_item(player_ptr, item, (bool)(destroy_identify && !old_known));
+    autopick_alter_item(player_ptr, i_idx, (bool)(destroy_identify && !old_known));
     return true;
 }
 
@@ -176,8 +176,8 @@ bool identify_fully(PlayerType *player_ptr, bool only_equip)
 
     constexpr auto s = _("*鑑定*するべきアイテムがない。", "You have nothing to *identify*.");
 
-    OBJECT_IDX item;
-    auto o_ptr = choose_object(player_ptr, &item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), *item_tester);
     if (!o_ptr) {
         return false;
     }
@@ -189,15 +189,15 @@ bool identify_fully(PlayerType *player_ptr, bool only_equip)
     window_stuff(player_ptr);
 
     const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
-    if (item >= INVEN_MAIN_HAND) {
-        msg_format(_("%s^: %s(%c)。", "%s^: %s (%c)."), describe_use(player_ptr, item), item_name.data(), index_to_label(item));
-    } else if (item >= 0) {
-        msg_format(_("ザック中: %s(%c)。", "In your pack: %s (%c)."), item_name.data(), index_to_label(item));
+    if (i_idx >= INVEN_MAIN_HAND) {
+        msg_format(_("%s^: %s(%c)。", "%s^: %s (%c)."), describe_use(player_ptr, i_idx), item_name.data(), index_to_label(i_idx));
+    } else if (i_idx >= 0) {
+        msg_format(_("ザック中: %s(%c)。", "In your pack: %s (%c)."), item_name.data(), index_to_label(i_idx));
     } else {
         msg_format(_("床上: %s。", "On the ground: %s."), item_name.data());
     }
 
     (void)screen_object(player_ptr, o_ptr, 0L);
-    autopick_alter_item(player_ptr, item, (bool)(destroy_identify && !old_known));
+    autopick_alter_item(player_ptr, i_idx, (bool)(destroy_identify && !old_known));
     return true;
 }
index b4d0291..9cf7e9e 100644 (file)
@@ -292,8 +292,8 @@ bool pulish_shield(PlayerType *player_ptr)
     constexpr auto q = _("どの盾を磨きますか?", "Polish which shield? ");
     constexpr auto s = _("磨く盾がありません。", "You have no shield to polish.");
     const auto options = USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    short item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, options, TvalItemTester(ItemKindType::SHIELD));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, TvalItemTester(ItemKindType::SHIELD));
     if (o_ptr == nullptr) {
         return false;
     }
@@ -306,7 +306,7 @@ bool pulish_shield(PlayerType *player_ptr)
 #ifdef JP
         msg_format("%sは輝いた!", item_name.data());
 #else
-        msg_format("%s %s shine%s!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
+        msg_format("%s %s shine%s!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
 #endif
         o_ptr->ego_idx = EgoType::REFLECTION;
         enchant_equipment(o_ptr, randint0(3) + 4, ENCH_TOAC);
index 9267bac..e6788ff 100644 (file)
@@ -21,9 +21,9 @@ bool rustproof(PlayerType *player_ptr)
 {
     constexpr auto q = _("どの防具に錆止めをしますか?", "Rustproof which piece of armour? ");
     constexpr auto s = _("錆止めできるものがありません。", "You have nothing to rustproof.");
-    OBJECT_IDX item;
+    short i_idx;
     const auto options = USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, options, FuncItemTester(&ItemEntity::is_protector));
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, FuncItemTester(&ItemEntity::is_protector));
     if (o_ptr == nullptr) {
         return false;
     }
@@ -34,7 +34,7 @@ bool rustproof(PlayerType *player_ptr)
 #ifdef JP
         msg_format("%sは新品同様になった!", item_name.data());
 #else
-        msg_format("%s %s look%s as good as new!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
+        msg_format("%s %s look%s as good as new!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
 #endif
         o_ptr->to_a = 0;
     }
@@ -42,7 +42,7 @@ bool rustproof(PlayerType *player_ptr)
 #ifdef JP
     msg_format("%sは腐食しなくなった。", item_name.data());
 #else
-    msg_format("%s %s %s now protected against corrosion.", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "are" : "is"));
+    msg_format("%s %s %s now protected against corrosion.", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "are" : "is"));
 #endif
     calc_android_exp(player_ptr);
     return true;
index 7ff5a0f..601dba6 100644 (file)
@@ -30,8 +30,8 @@ bool alchemy(PlayerType *player_ptr)
 
     constexpr auto q = _("どのアイテムを金に変えますか?", "Turn which item to gold? ");
     constexpr auto s = _("金に変えられる物がありません。", "You have nothing to turn to gold.");
-    short item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR));
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR));
     if (!o_ptr) {
         return false;
     }
@@ -67,7 +67,7 @@ bool alchemy(PlayerType *player_ptr)
     auto price = object_value_real(o_ptr);
     if (price <= 0) {
         msg_format(_("%sをニセの金に変えた。", "You turn %s to fool's gold."), item_name.data());
-        vary_item(player_ptr, item, -amt);
+        vary_item(player_ptr, i_idx, -amt);
         return true;
     }
 
@@ -86,6 +86,6 @@ bool alchemy(PlayerType *player_ptr)
     auto &rfu = RedrawingFlagsUpdater::get_instance();
     rfu.set_flag(MainWindowRedrawingFlag::GOLD);
     rfu.set_flag(SubWindowRedrawingFlag::PLAYER);
-    vary_item(player_ptr, item, -amt);
+    vary_item(player_ptr, i_idx, -amt);
     return true;
 }
index 92f085a..e533440 100644 (file)
@@ -487,9 +487,9 @@ bool enchant_spell(PlayerType *player_ptr, HIT_PROB num_hit, int num_dam, ARMOUR
 
     constexpr auto q = _("どのアイテムを強化しますか? ", "Enchant which item? ");
     constexpr auto s = _("強化できるアイテムがない。", "You have nothing to enchant.");
-    short item;
+    short i_idx;
     const auto options = USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, options, item_tester);
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, item_tester);
     if (!o_ptr) {
         return false;
     }
@@ -498,7 +498,7 @@ bool enchant_spell(PlayerType *player_ptr, HIT_PROB num_hit, int num_dam, ARMOUR
 #ifdef JP
     msg_format("%s は明るく輝いた!", item_name.data());
 #else
-    msg_format("%s %s glow%s brightly!", ((item >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
+    msg_format("%s %s glow%s brightly!", ((i_idx >= 0) ? "Your" : "The"), item_name.data(), ((o_ptr->number > 1) ? "" : "s"));
 #endif
 
     auto is_enchant_successful = false;
@@ -539,9 +539,9 @@ void brand_weapon(PlayerType *player_ptr, int brand_type)
 {
     constexpr auto q = _("どの武器を強化しますか? ", "Enchant which weapon? ");
     constexpr auto s = _("強化できる武器がない。", "You have nothing to enchant.");
-    short item;
+    short i_idx;
     const auto options = USE_EQUIP | IGNORE_BOTHHAND_SLOT;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, options, FuncItemTester(&ItemEntity::allow_enchant_melee_weapon));
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, options, FuncItemTester(&ItemEntity::allow_enchant_melee_weapon));
     if (o_ptr == nullptr) {
         return;
     }
index 66d82c7..33e1317 100644 (file)
@@ -218,9 +218,8 @@ bool cast_summon_greater_demon(PlayerType *player_ptr)
 {
     constexpr auto q = _("どの死体を捧げますか? ", "Sacrifice which corpse? ");
     constexpr auto s = _("捧げられる死体を持っていない。", "You have nothing to sacrifice.");
-    OBJECT_IDX item;
-    ItemEntity *o_ptr;
-    o_ptr = choose_object(player_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_offerable));
+    short i_idx;
+    const auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, (USE_INVEN | USE_FLOOR), FuncItemTester(&ItemEntity::is_offerable));
     if (!o_ptr) {
         return false;
     }
@@ -232,7 +231,7 @@ bool cast_summon_greater_demon(PlayerType *player_ptr)
     if (summon_specific(player_ptr, -1, player_ptr->y, player_ptr->x, summon_lev, SUMMON_HI_DEMON, (PM_ALLOW_GROUP | PM_FORCE_PET))) {
         msg_print(_("硫黄の悪臭が充満した。", "The area fills with a stench of sulphur and brimstone."));
         msg_print(_("「ご用でございますか、ご主人様」", "'What is thy bidding... Master?'"));
-        vary_item(player_ptr, item, -1);
+        vary_item(player_ptr, i_idx, -1);
     } else {
         msg_print(_("悪魔は現れなかった。", "No Greater Demon arrives."));
     }
index f02f22b..6a32270 100644 (file)
@@ -90,14 +90,14 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
         break;
     }
 
-    short item_index;
+    short i_idx;
     const auto options = USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT;
-    auto *o_ptr = choose_object(player_ptr, &item_index, q, s_none, options, FuncItemTester(store_will_buy, player_ptr, store_num));
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s_none, options, FuncItemTester(store_will_buy, player_ptr, store_num));
     if (o_ptr == nullptr) {
         return;
     }
 
-    if ((item_index >= INVEN_MAIN_HAND) && o_ptr->is_cursed()) {
+    if ((i_idx >= INVEN_MAIN_HAND) && o_ptr->is_cursed()) {
         msg_print(_("ふーむ、どうやらそれは呪われているようだね。", "Hmmm, it seems to be cursed."));
         return;
     }
@@ -132,7 +132,7 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
     bool placed = false;
     if ((store_num != StoreSaleType::HOME) && (store_num != StoreSaleType::MUSEUM)) {
         const auto item_name = describe_flavor(player_ptr, q_ptr, 0);
-        msg_format(_("%s(%c)を売却する。", "Selling %s (%c)."), item_name.data(), index_to_label(item_index));
+        msg_format(_("%s(%c)を売却する。", "Selling %s (%c)."), item_name.data(), index_to_label(i_idx));
         msg_print(nullptr);
 
         auto res = prompt_to_sell(player_ptr, q_ptr, store_num);
@@ -179,13 +179,13 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
 
             distribute_charges(o_ptr, q_ptr, amt);
             q_ptr->timeout = 0;
-            inven_item_increase(player_ptr, item_index, -amt);
-            inven_item_describe(player_ptr, item_index);
+            inven_item_increase(player_ptr, i_idx, -amt);
+            inven_item_describe(player_ptr, i_idx);
             if (o_ptr->number > 0) {
-                autopick_alter_item(player_ptr, item_index, false);
+                autopick_alter_item(player_ptr, i_idx, false);
             }
 
-            inven_item_optimize(player_ptr, item_index);
+            inven_item_optimize(player_ptr, i_idx);
             int item_pos = store_carry(q_ptr);
             if (item_pos >= 0) {
                 store_top = (item_pos / store_bottom) * store_bottom;
@@ -208,10 +208,10 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
         q_ptr->ident |= IDENT_FULL_KNOWN;
 
         distribute_charges(o_ptr, q_ptr, amt);
-        msg_format(_("%sを置いた。(%c)", "You drop %s (%c)."), museum_item_name.data(), index_to_label(item_index));
+        msg_format(_("%sを置いた。(%c)", "You drop %s (%c)."), museum_item_name.data(), index_to_label(i_idx));
         placed = true;
 
-        vary_item(player_ptr, item_index, -amt);
+        vary_item(player_ptr, i_idx, -amt);
 
         int item_pos = home_carry(player_ptr, q_ptr, store_num);
         if (item_pos >= 0) {
@@ -221,9 +221,9 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
     } else {
         distribute_charges(o_ptr, q_ptr, amt);
         const auto item_name = describe_flavor(player_ptr, q_ptr, 0);
-        msg_format(_("%sを置いた。(%c)", "You drop %s (%c)."), item_name.data(), index_to_label(item_index));
+        msg_format(_("%sを置いた。(%c)", "You drop %s (%c)."), item_name.data(), index_to_label(i_idx));
         placed = true;
-        vary_item(player_ptr, item_index, -amt);
+        vary_item(player_ptr, i_idx, -amt);
         int item_pos = home_carry(player_ptr, q_ptr, store_num);
         if (item_pos >= 0) {
             store_top = (item_pos / store_bottom) * store_bottom;
@@ -236,8 +236,8 @@ void store_sell(PlayerType *player_ptr, StoreSaleType store_num)
     rfu.set_flag(SubWindowRedrawingFlag::PLAYER);
     handle_stuff(player_ptr);
 
-    if (placed && (item_index >= INVEN_MAIN_HAND)) {
+    if (placed && (i_idx >= INVEN_MAIN_HAND)) {
         calc_android_exp(player_ptr);
-        verify_equip_slot(player_ptr, item_index);
+        verify_equip_slot(player_ptr, i_idx);
     }
 }
index 28af8d6..09e9299 100644 (file)
@@ -44,9 +44,9 @@ void inven_item_charges(const ItemEntity &item)
  * @param player_ptr プレイヤーへの参照ポインタ
  * @param item 残量を表示したいプレイヤーのアイテム所持スロット
  */
-void inven_item_describe(PlayerType *player_ptr, short item)
+void inven_item_describe(PlayerType *player_ptr, short i_idx)
 {
-    auto *o_ptr = &player_ptr->inventory_list[item];
+    auto *o_ptr = &player_ptr->inventory_list[i_idx];
     const auto item_name = describe_flavor(player_ptr, o_ptr, 0);
 #ifdef JP
     if (o_ptr->number <= 0) {
index 37f7884..06603c0 100644 (file)
@@ -3,5 +3,5 @@
 class ItemEntity;
 class PlayerType;
 void inven_item_charges(const ItemEntity &item);
-void inven_item_describe(PlayerType *player_ptr, short item);
+void inven_item_describe(PlayerType *player_ptr, short i_idx);
 void display_koff(PlayerType *player_ptr);
index 44e2045..f1de863 100644 (file)
@@ -247,8 +247,8 @@ void wiz_modify_item_activation(PlayerType *player_ptr)
 {
     constexpr auto q = _("どのアイテムの発動を変更しますか? ", "Which item? ");
     constexpr auto s = _("発動を変更するアイテムがない。", "Nothing to do with.");
-    short item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT);
     if (!o_ptr) {
         return;
     }
@@ -734,8 +734,8 @@ void wiz_modify_item(PlayerType *player_ptr)
 {
     constexpr auto q = "Play with which object? ";
     constexpr auto s = "You have nothing to play with.";
-    short item;
-    auto *o_ptr = choose_object(player_ptr, &item, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT);
+    short i_idx;
+    auto *o_ptr = choose_object(player_ptr, &i_idx, q, s, USE_EQUIP | USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT);
     if (!o_ptr) {
         return;
     }