OSDN Git Service

[Refactor] #39964 Moved autopick.c/h to autopick/autopick.c/h
[hengband/hengband.git] / src / cmd / cmd-smith.c
index 10e2d6f..455cc1a 100644 (file)
@@ -1,6 +1,6 @@
 #include "angband.h"
 #include "util.h"
-#include "term.h"
+#include "gameterm.h"
 
 #include "object-flavor.h"
 #include "object-hook.h"
@@ -8,8 +8,8 @@
 #include "player-status.h"
 #include "cmd-basic.h"
 #include "cmd-smith.h"
-#include "objectkind.h"
-#include "autopick.h"
+#include "object/object-kind.h"
+#include "autopick/autopick.h"
 #include "view-mainwindow.h"
 #include "player-inventory.h"
 
@@ -486,7 +486,7 @@ static concptr const kaji_tips[5] =
  * @brief 所持しているエッセンス一覧を表示する
  * @return なし
  */
-static void display_essence(void)
+static void display_essence(player_type *creature_ptr)
 {
        int i, num = 0;
 
@@ -500,7 +500,7 @@ static void display_essence(void)
        for (i = 0; essence_name[i]; i++)
        {
                if (!essence_name[i][0]) continue;
-               prt(format("%-11s %5d", essence_name[i], p_ptr->magic_num1[i]), 2 + num % 21, 8 + num / 21 * 22);
+               prt(format("%-11s %5d", essence_name[i], creature_ptr->magic_num1[i]), 2 + num % 21, 8 + num / 21 * 22);
                num++;
        }
        prt(_("現在所持しているエッセンス", "List of all essences you have."), 0, 0);
@@ -511,12 +511,13 @@ static void display_essence(void)
 
 /*!
  * @brief エッセンスの抽出処理
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @return なし
  */
-static void drain_essence(void)
+static void drain_essence(player_type *creature_ptr)
 {
-       int drain_value[sizeof(p_ptr->magic_num1) / sizeof(s32b)];
-       int i;
+       int drain_value[sizeof(creature_ptr->magic_num1) / sizeof(s32b)];
+       size_t i;
        OBJECT_IDX item;
        int dec = 4;
        bool observe = FALSE;
@@ -526,7 +527,7 @@ static void drain_essence(void)
        object_type *o_ptr;
        concptr q, s;
        POSITION iy, ix;
-       byte_hack marked;
+       byte marked;
        ITEM_NUMBER number;
        OBJECT_IDX next_o_idx;
        WEIGHT weight;
@@ -539,17 +540,17 @@ static void drain_essence(void)
        q = _("どのアイテムから抽出しますか?", "Extract from which item? ");
        s = _("抽出できるアイテムがありません。", "You have nothing you can extract from.");
 
-       o_ptr = choose_object(p_ptr, &item, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), 0);
+       o_ptr = choose_object(creature_ptr, &item, q, s, (USE_INVEN | USE_FLOOR | IGNORE_BOTHHAND_SLOT), 0);
        if (!o_ptr) return;
 
        if (object_is_known(o_ptr) && !object_is_nameless(o_ptr))
        {
                GAME_TEXT o_name[MAX_NLEN];
-               object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
+               object_desc(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
                if (!get_check(format(_("本当に%sから抽出してよろしいですか?", "Really extract from %s? "), o_name))) return;
        }
 
-       take_turn(p_ptr, 100);
+       take_turn(creature_ptr, 100);
 
        object_flags(o_ptr, old_flgs);
        if (have_flag(old_flgs, TR_KILL_DRAGON)) add_flag(old_flgs, TR_SLAY_DRAGON);
@@ -606,9 +607,9 @@ static void drain_essence(void)
        o_ptr->marked = marked;
        o_ptr->number = number;
        if (o_ptr->tval == TV_DRAG_ARMOR) o_ptr->timeout = old_timeout;
-       if (item >= 0) p_ptr->total_weight += (o_ptr->weight*o_ptr->number - weight * number);
-       o_ptr->ident |= (IDENT_MENTAL);
-       object_aware(o_ptr);
+       if (item >= 0) creature_ptr->total_weight += (o_ptr->weight*o_ptr->number - weight * number);
+       o_ptr->ident |= (IDENT_FULL_KNOWN);
+       object_aware(creature_ptr, o_ptr);
        object_known(o_ptr);
 
        object_flags(o_ptr, new_flgs);
@@ -723,17 +724,17 @@ static void drain_essence(void)
                        if (!essence_name[i][0]) continue;
                        if (!drain_value[i]) continue;
 
-                       p_ptr->magic_num1[i] += drain_value[i];
-                       p_ptr->magic_num1[i] = MIN(20000, p_ptr->magic_num1[i]);
+                       creature_ptr->magic_num1[i] += drain_value[i];
+                       creature_ptr->magic_num1[i] = MIN(20000, creature_ptr->magic_num1[i]);
                        msg_print(NULL);
                        msg_format("%s...%d%s", essence_name[i], drain_value[i], _("。", ". "));
                }
        }
 
        /* Apply autodestroy/inscription to the drained item */
-       autopick_alter_item(item, TRUE);
-       p_ptr->update |= (PU_COMBINE | PU_REORDER);
-       p_ptr->window |= (PW_INVEN);
+       autopick_alter_item(creature_ptr, item, TRUE);
+       creature_ptr->update |= (PU_COMBINE | PU_REORDER);
+       creature_ptr->window |= (PW_INVEN);
 }
 
 /*!
@@ -1121,18 +1122,18 @@ static void add_essence(player_type *creature_ptr, ESSENCE_IDX mode)
 
        if ((mode != 10) && (object_is_artifact(o_ptr) || object_is_smith(o_ptr)))
        {
-               msg_print(_("そのアイテムはこれ以上改良できない。", "This item is no more able to be improved."));
+               msg_print(_("そのアイテムはこれ以上改良できない。", "This item can not be improved any further."));
                return;
        }
 
-       object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
+       object_desc(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
 
        use_essence = es_ptr->value;
        if ((o_ptr->tval >= TV_SHOT) && (o_ptr->tval <= TV_BOLT)) use_essence = (use_essence + 9) / 10;
        if (o_ptr->number > 1)
        {
                use_essence *= o_ptr->number;
-               msg_format(_("%d個あるのでエッセンスは%d必要です。", "It will take %d essences."), o_ptr->number, use_essence);
+               msg_format(_("%d個あるのでエッセンスは%d必要です。", "For %d items, it will take %d essences."), o_ptr->number, use_essence);
        }
 
        if (es_ptr->essence != -1)
@@ -1312,8 +1313,8 @@ static void add_essence(player_type *creature_ptr, ESSENCE_IDX mode)
        }
 
        take_turn(creature_ptr, 100);
-
-       msg_format(_("%sに%sの能力を付加しました。", "You have added ability of %s to %s."), o_name, es_ptr->add_name);
+       _(msg_format("%sに%sの能力を付加しました。", o_name, es_ptr->add_name),
+         msg_format("You have added ability of %s to %s.", es_ptr->add_name, o_name));
        creature_ptr->update |= (PU_COMBINE | PU_REORDER);
        creature_ptr->window |= (PW_INVEN);
 }
@@ -1322,7 +1323,7 @@ static void add_essence(player_type *creature_ptr, ESSENCE_IDX mode)
  * @brief エッセンスを消去する
  * @return なし
  */
-static void erase_essence(void)
+static void erase_essence(player_type *creature_ptr)
 {
        OBJECT_IDX item;
        concptr q, s;
@@ -1335,13 +1336,13 @@ static void erase_essence(void)
        q = _("どのアイテムのエッセンスを消去しますか?", "Remove from which item? ");
        s = _("エッセンスを付加したアイテムがありません。", "You have nothing to remove essence.");
 
-       o_ptr = choose_object(p_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), 0);
+       o_ptr = choose_object(creature_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), 0);
        if (!o_ptr) return;
 
-       object_desc(o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
+       object_desc(creature_ptr, o_name, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
        if (!get_check(format(_("よろしいですか? [%s]", "Are you sure? [%s]"), o_name))) return;
 
-       take_turn(p_ptr, 100);
+       take_turn(creature_ptr, 100);
 
        if (o_ptr->xtra3 == 1 + ESSENCE_SLAY_GLOVE)
        {
@@ -1355,8 +1356,8 @@ static void erase_essence(void)
        object_flags(o_ptr, flgs);
        if (!(have_pval_flags(flgs))) o_ptr->pval = 0;
        msg_print(_("エッセンスを取り去った。", "You removed all essence you have added."));
-       p_ptr->update |= (PU_COMBINE | PU_REORDER);
-       p_ptr->window |= (PW_INVEN);
+       creature_ptr->update |= (PU_COMBINE | PU_REORDER);
+       creature_ptr->window |= (PW_INVEN);
 }
 
 /*!
@@ -1364,7 +1365,7 @@ static void erase_essence(void)
  * @param only_browse TRUEならばエッセンス一覧の表示のみを行う
  * @return なし
  */
-void do_cmd_kaji(bool only_browse)
+void do_cmd_kaji(player_type *creature_ptr, bool only_browse)
 {
        COMMAND_CODE mode = 0;
        char choice;
@@ -1373,9 +1374,9 @@ void do_cmd_kaji(bool only_browse)
 
        if (!only_browse)
        {
-               if (cmd_limit_confused(p_ptr)) return;
-               if (cmd_limit_blind(p_ptr)) return;
-               if (cmd_limit_image(p_ptr)) return;
+               if (cmd_limit_confused(creature_ptr)) return;
+               if (cmd_limit_blind(creature_ptr)) return;
+               if (cmd_limit_image(creature_ptr)) return;
        }
 
        if (!(repeat_pull(&mode) && 1 <= mode && mode <= 5))
@@ -1502,15 +1503,15 @@ void do_cmd_kaji(bool only_browse)
        }
        switch (mode)
        {
-       case 1: display_essence(); break;
-       case 2: drain_essence(); break;
-       case 3: erase_essence(); break;
+       case 1: display_essence(creature_ptr); break;
+       case 2: drain_essence(creature_ptr); break;
+       case 3: erase_essence(creature_ptr); break;
        case 4:
                mode = choose_essence();
                if (mode == 0)
                        break;
-               add_essence(p_ptr, mode);
+               add_essence(creature_ptr, mode);
                break;
-       case 5: add_essence(p_ptr, 10); break;
+       case 5: add_essence(creature_ptr, 10); break;
        }
 }