OSDN Git Service

[Refactor] #38997 eat_magic() に player_type * 引数を追加. / Add player_type * argument...
authordeskull <deskull@users.sourceforge.jp>
Tue, 5 Nov 2019 15:52:12 +0000 (00:52 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Tue, 5 Nov 2019 15:52:12 +0000 (00:52 +0900)
src/mutation.c
src/racial.c
src/spells.h
src/spells3.c

index 33f325c..b3cae84 100644 (file)
@@ -2256,7 +2256,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        break;
 
                case MUT1_EAT_MAGIC:
-                       if (!eat_magic(creature_ptr->lev * 2)) return FALSE;
+                       if (!eat_magic(creature_ptr, creature_ptr->lev * 2)) return FALSE;
                        break;
 
                case MUT1_WEIGH_MAG:
index 969adb6..5a07564 100644 (file)
@@ -408,7 +408,7 @@ static bool exe_racial_power(player_type *creature_ptr, s32b command)
                /* case CLASS_HIGH_MAGE: */
                case CLASS_SORCERER:
                {
-                       if (!eat_magic(creature_ptr->lev * 2)) return FALSE;
+                       if (!eat_magic(creature_ptr, creature_ptr->lev * 2)) return FALSE;
                        break;
                }
                case CLASS_PRIEST:
index 1ebaf76..1904077 100644 (file)
@@ -243,7 +243,7 @@ extern bool mindblast_monsters(HIT_POINT dam);
 extern bool teleport_swap(DIRECTION dir);
 extern bool project_hook(EFFECT_ID typ, DIRECTION dir, HIT_POINT dam, BIT_FLAGS flg);
 extern bool project_all_los(EFFECT_ID typ, HIT_POINT dam);
-extern bool eat_magic(int power);
+extern bool eat_magic(player_type *caster_ptr, int power);
 extern void discharge_minion(void);
 extern bool kawarimi(bool success);
 extern bool rush_attack(bool *mdeath);
index 3db5aaa..61c81df 100644 (file)
@@ -3019,7 +3019,7 @@ bool mirror_tunnel(void)
  * @param power 基本効力
  * @return ターンを消費した場合TRUEを返す
  */
-bool eat_magic(int power)
+bool eat_magic(player_type *caster_ptr, int power)
 {
        object_type *o_ptr;
        object_kind *k_ptr;
@@ -3038,7 +3038,7 @@ bool eat_magic(int power)
        q = _("どのアイテムから魔力を吸収しますか?", "Drain which item? ");
        s = _("魔力を吸収できるアイテムがありません。", "You have nothing to drain.");
 
-       o_ptr = choose_object(p_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), 0);
+       o_ptr = choose_object(caster_ptr, &item, q, s, (USE_INVEN | USE_FLOOR), 0);
        if (!o_ptr) return FALSE;
 
        k_ptr = &k_info[o_ptr->k_idx];
@@ -3062,7 +3062,7 @@ bool eat_magic(int power)
                        }
                        else
                        {
-                               p_ptr->csp += lev;
+                               caster_ptr->csp += lev;
                                o_ptr->timeout += k_ptr->pval;
                        }
                }
@@ -3083,7 +3083,7 @@ bool eat_magic(int power)
                {
                        if (o_ptr->pval > 0)
                        {
-                               p_ptr->csp += lev / 2;
+                               caster_ptr->csp += lev / 2;
                                o_ptr->pval --;
 
                                /* XXX Hack -- unstack if necessary */
@@ -3102,7 +3102,7 @@ bool eat_magic(int power)
 
                                        /* Unstack the used item */
                                        o_ptr->number--;
-                                       p_ptr->total_weight -= q_ptr->weight;
+                                       caster_ptr->total_weight -= q_ptr->weight;
                                        item = inven_carry(q_ptr);
 
                                        msg_print(_("杖をまとめなおした。", "You unstack your staff."));
@@ -3141,7 +3141,7 @@ bool eat_magic(int power)
                        /*** Determine Seriousness of Failure ***/
 
                        /* Mages recharge objects more safely. */
-                       if (IS_WIZARD_CLASS(p_ptr))
+                       if (IS_WIZARD_CLASS(caster_ptr))
                        {
                                /* 10% chance to blow up one rod, otherwise draining. */
                                if (o_ptr->tval == TV_ROD)
@@ -3219,7 +3219,7 @@ bool eat_magic(int power)
                                        msg_format(_("乱暴な魔法のために%sが何本か壊れた!", "Wild magic consumes your %s!"), o_name);
                                }
                                
-                               /* Reduce and describe p_ptr->inventory_list */
+                               /* Reduce and describe caster_ptr->inventory_list */
                                if (item >= 0)
                                {
                                        inven_item_increase(item, -1);
@@ -3244,7 +3244,7 @@ bool eat_magic(int power)
                                else
                                        msg_format(_("乱暴な魔法のために%sが壊れた!", "Wild magic consumes your %s!"), o_name);
 
-                               /* Reduce and describe p_ptr->inventory_list */
+                               /* Reduce and describe caster_ptr->inventory_list */
                                if (item >= 0)
                                {
                                        inven_item_increase(item, -999);
@@ -3263,14 +3263,14 @@ bool eat_magic(int power)
                }
        }
 
-       if (p_ptr->csp > p_ptr->msp)
+       if (caster_ptr->csp > caster_ptr->msp)
        {
-               p_ptr->csp = p_ptr->msp;
+               caster_ptr->csp = caster_ptr->msp;
        }
 
-       p_ptr->redraw |= (PR_MANA);
-       p_ptr->update |= (PU_COMBINE | PU_REORDER);
-       p_ptr->window |= (PW_INVEN);
+       caster_ptr->redraw |= (PR_MANA);
+       caster_ptr->update |= (PU_COMBINE | PU_REORDER);
+       caster_ptr->window |= (PW_INVEN);
 
        return TRUE;
 }