OSDN Git Service

[Refactor] #37353 型の置換。 / Type replacement.
[hengband/hengband.git] / src / cmd-usestaff.c
index 7b7c51b..8d1e8d8 100644 (file)
@@ -15,8 +15,8 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
 {\r
        int k;\r
        int ident = FALSE;\r
-       int lev = powerful ? p_ptr->lev * 2 : p_ptr->lev;\r
-       int detect_rad = powerful ? DETECT_RAD_DEFAULT * 3 / 2 : DETECT_RAD_DEFAULT;\r
+       PLAYER_LEVEL lev = powerful ? p_ptr->lev * 2 : p_ptr->lev;\r
+       POSITION detect_rad = powerful ? DETECT_RAD_DEFAULT * 3 / 2 : DETECT_RAD_DEFAULT;\r
 \r
        /* Analyze the staff */\r
        switch (sval)\r
@@ -80,15 +80,6 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
                bool result = powerful ? remove_all_curse() : remove_curse();\r
                if (result)\r
                {\r
-                       if (magic)\r
-                       {\r
-                               msg_print(_("誰かに見守られているような気がする。", "You feel as if someone is watching over you."));\r
-                       }\r
-                       else if (!p_ptr->blind)\r
-                       {\r
-                               msg_print(_("杖は一瞬ブルーに輝いた...", "The staff glows blue for a moment..."));\r
-\r
-                       }\r
                        ident = TRUE;\r
                }\r
                break;\r
@@ -175,51 +166,27 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
 \r
        case SV_STAFF_CURE_LIGHT:\r
        {\r
-               if (hp_player(damroll((powerful ? 4 : 2), 8))) ident = TRUE;\r
-               if (powerful) {\r
-                       if (set_blind(0)) ident = TRUE;\r
-                       if (set_poisoned(0)) ident = TRUE;\r
-                       if (set_cut(p_ptr->cut - 10)) ident = TRUE;\r
-               }\r
-               if (set_shero(0, TRUE)) ident = TRUE;\r
+               ident = cure_light_wounds((powerful ? 4 : 2), 8);\r
                break;\r
        }\r
 \r
        case SV_STAFF_CURING:\r
        {\r
-               if (set_blind(0)) ident = TRUE;\r
-               if (set_poisoned(0)) ident = TRUE;\r
-               if (set_confused(0)) ident = TRUE;\r
-               if (set_stun(0)) ident = TRUE;\r
-               if (set_cut(0)) ident = TRUE;\r
-               if (set_image(0)) ident = TRUE;\r
+               ident = true_healing(0);\r
                if (set_shero(0, TRUE)) ident = TRUE;\r
                break;\r
        }\r
 \r
        case SV_STAFF_HEALING:\r
        {\r
-               if (hp_player(powerful ? 500 : 300)) ident = TRUE;\r
-               if (set_stun(0)) ident = TRUE;\r
-               if (set_cut(0)) ident = TRUE;\r
-               if (set_shero(0, TRUE)) ident = TRUE;\r
+               if (cure_critical_wounds(powerful ? 500 : 300)) ident = TRUE;\r
                break;\r
        }\r
 \r
        case SV_STAFF_THE_MAGI:\r
        {\r
                if (do_res_stat(A_INT)) ident = TRUE;\r
-               if (p_ptr->csp < p_ptr->msp)\r
-               {\r
-                       p_ptr->csp = p_ptr->msp;\r
-                       p_ptr->csp_frac = 0;\r
-                       ident = TRUE;\r
-                       msg_print(_("頭がハッキリとした。", "You feel your head clear."));\r
-\r
-                       p_ptr->redraw |= (PR_MANA);\r
-                       p_ptr->window |= (PW_PLAYER);\r
-                       p_ptr->window |= (PW_SPELL);\r
-               }\r
+               ident |= restore_mana(FALSE);\r
                if (set_shero(0, TRUE)) ident = TRUE;\r
                break;\r
        }\r
@@ -342,7 +309,7 @@ int staff_effect(OBJECT_SUBTYPE_VALUE sval, bool *use_charge, bool powerful, boo
  * One charge of one staff disappears.\r
  * Hack -- staffs of identify can be "cancelled".\r
  */\r
-void do_cmd_use_staff_aux(int item)\r
+void do_cmd_use_staff_aux(INVENTORY_IDX item)\r
 {\r
        int         ident, chance, lev;\r
        object_type *o_ptr;\r
@@ -373,7 +340,6 @@ void do_cmd_use_staff_aux(int item)
        }\r
 \r
 \r
-       /* Take a turn */\r
        p_ptr->energy_use = 100;\r
 \r
        /* Extract the item level */\r
@@ -427,7 +393,6 @@ void do_cmd_use_staff_aux(int item)
        }\r
 \r
 \r
-       /* Sound */\r
        sound(SOUND_ZAP);\r
 \r
        ident = staff_effect(o_ptr->sval, &use_charge, FALSE, FALSE, object_is_aware(o_ptr));\r
@@ -452,7 +417,6 @@ void do_cmd_use_staff_aux(int item)
                gain_exp((lev + (p_ptr->lev >> 1)) / p_ptr->lev);\r
        }\r
 \r
-       /* Window stuff */\r
        p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER);\r
 \r
 \r
@@ -486,7 +450,6 @@ void do_cmd_use_staff_aux(int item)
                p_ptr->total_weight -= q_ptr->weight;\r
                item = inven_carry(q_ptr);\r
 \r
-               /* Message */\r
                msg_print(_("杖をまとめなおした。", "You unstack your staff."));\r
        }\r
 \r
@@ -520,7 +483,6 @@ void do_cmd_use_staff(void)
        /* Restrict choices to wands */\r
        item_tester_tval = TV_STAFF;\r
 \r
-       /* Get an item */\r
        q = _("どの杖を使いますか? ", "Use which staff? ");\r
        s = _("使える杖がない。", "You have no staff to use.");\r
 \r