OSDN Git Service

[Refactor] #38997 mod_need_mana() にplayer_type * 引数を追加 / Added player_type * argument...
authorHourier <hourier@users.sourceforge.jp>
Wed, 8 Jan 2020 13:07:09 +0000 (22:07 +0900)
committerHourier <hourier@users.sourceforge.jp>
Wed, 8 Jan 2020 13:07:09 +0000 (22:07 +0900)
src/cmd/cmd-spell.c
src/core.c
src/mspells3.c
src/realm-hex.c
src/spells.h
src/spells3.c

index 5bae1f9..e5df98e 100644 (file)
@@ -527,7 +527,7 @@ static int get_spell(player_type *caster_ptr, SPELL_IDX *sn, concptr prompt, OBJ
                        }
                        else
                        {
-                               need_mana = mod_need_mana(s_ptr->smana, spell, use_realm);
+                               need_mana = mod_need_mana(caster_ptr, s_ptr->smana, spell, use_realm);
                        }
 
                        /* Prompt */
@@ -1158,7 +1158,7 @@ void do_cmd_cast(player_type *caster_ptr)
        }
 
        /* Extract mana consumption rate */
-       need_mana = mod_need_mana(s_ptr->smana, spell, realm);
+       need_mana = mod_need_mana(caster_ptr, s_ptr->smana, spell, realm);
 
        /* Verify "dangerous" spells */
        if (need_mana > caster_ptr->csp)
index 802f73a..b611262 100644 (file)
@@ -1149,7 +1149,7 @@ static void check_music(player_type *caster_ptr)
        spell = SINGING_SONG_ID(caster_ptr);
        s_ptr = &technic_info[REALM_MUSIC - MIN_TECHNIC][spell];
 
-       need_mana = mod_need_mana(s_ptr->smana, spell, REALM_MUSIC);
+       need_mana = mod_need_mana(caster_ptr, s_ptr->smana, spell, REALM_MUSIC);
        need_mana_frac = 0;
 
        /* Divide by 2 */
index 9b09f83..a2bde22 100644 (file)
@@ -438,6 +438,7 @@ static void learned_info(char *p, int power)
 /*!
  * @brief 使用可能な青魔法を選択する /
  * Allow user to choose a imitation.
+ * @param caster_ptr プレーヤーへの参照ポインタ
  * @param sn 選択したモンスター攻撃ID、キャンセルの場合-1、不正な選択の場合-2を返す
  * @return 発動可能な魔法を選択した場合TRUE、キャンセル処理か不正な選択が行われた場合FALSEを返す。
  * @details
@@ -452,7 +453,7 @@ static void learned_info(char *p, int power)
  * when you run it. It's probably easy to fix but I haven't tried,\n
  * sorry.\n
  */
-static bool get_learned_power(SPELL_IDX *sn)
+static bool get_learned_power(player_type *caster_ptr, SPELL_IDX *sn)
 {
        int             i = 0;
        int             num = 0;
@@ -706,7 +707,7 @@ static bool get_learned_power(SPELL_IDX *sn)
 
                                        chance = mod_spell_chance_1(p_ptr, chance);
 
-                                       need_mana = mod_need_mana(monster_powers[spellnum[i]].smana, 0, REALM_NONE);
+                                       need_mana = mod_need_mana(caster_ptr, monster_powers[spellnum[i]].smana, 0, REALM_NONE);
 
                                        /* Not enough mana to cast */
                                        if (need_mana > p_ptr->csp)
@@ -1658,11 +1659,11 @@ bool do_cmd_cast_learned(player_type *caster_ptr)
 
        if (cmd_limit_confused(caster_ptr)) return FALSE;
 
-       if (!get_learned_power(&n)) return FALSE;
+       if (!get_learned_power(caster_ptr, &n)) return FALSE;
 
        spell = monster_powers[n];
 
-       need_mana = mod_need_mana(spell.smana, 0, REALM_NONE);
+       need_mana = mod_need_mana(caster_ptr, spell.smana, 0, REALM_NONE);
 
        /* Verify "dangerous" spells */
        if (need_mana > caster_ptr->csp)
index 929310f..fa41070 100644 (file)
@@ -179,7 +179,7 @@ void check_hex(player_type *caster_ptr)
                {
                        const magic_type *s_ptr;
                        s_ptr = &technic_info[REALM_HEX - MIN_TECHNIC][spell];
-                       need_mana += mod_need_mana(s_ptr->smana, spell, REALM_HEX);
+                       need_mana += mod_need_mana(caster_ptr, s_ptr->smana, spell, REALM_HEX);
                }
        }
 
index 207ebc4..4ad06c6 100644 (file)
@@ -311,7 +311,7 @@ extern bool identify_fully(player_type *caster_ptr, bool only_equip);
 extern bool recharge(player_type *caster_ptr, int power);
 extern void display_spell_list(player_type *caster_ptr);
 extern EXP experience_of_spell(player_type *caster_ptr, SPELL_IDX spell, REALM_IDX use_realm);
-extern MANA_POINT mod_need_mana(MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm);
+extern MANA_POINT mod_need_mana(player_type *caster_ptr, MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm);
 extern PERCENTAGE mod_spell_chance_1(player_type *caster_ptr, PERCENTAGE chance);
 extern PERCENTAGE mod_spell_chance_2(player_type *caster_ptr, PERCENTAGE chance);
 extern PERCENTAGE spell_chance(player_type *caster_ptr, SPELL_IDX spell, REALM_IDX realm);
index 1f0232e..d9fff36 100644 (file)
@@ -2432,7 +2432,7 @@ EXP experience_of_spell(player_type *caster_ptr, SPELL_IDX spell, REALM_IDX use_
  * @param realm 魔法領域
  * @return 消費MP
  */
-MANA_POINT mod_need_mana(MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm)
+MANA_POINT mod_need_mana(player_type *caster_ptr, MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm)
 {
 #define MANA_CONST   2400
 #define MANA_DIV        4
@@ -2442,11 +2442,11 @@ MANA_POINT mod_need_mana(MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm)
        if ((realm > REALM_NONE) && (realm <= MAX_REALM))
        {
                /*
-                * need_mana defaults if spell exp equals SPELL_EXP_EXPERT and !p_ptr->dec_mana.
+                * need_mana defaults if spell exp equals SPELL_EXP_EXPERT and !caster_ptr->dec_mana.
                 * MANA_CONST is used to calculate need_mana effected from spell proficiency.
                 */
-               need_mana = need_mana * (MANA_CONST + SPELL_EXP_EXPERT - experience_of_spell(p_ptr, spell, realm)) + (MANA_CONST - 1);
-               need_mana *= p_ptr->dec_mana ? DEC_MANA_DIV : MANA_DIV;
+               need_mana = need_mana * (MANA_CONST + SPELL_EXP_EXPERT - experience_of_spell(caster_ptr, spell, realm)) + (MANA_CONST - 1);
+               need_mana *= caster_ptr->dec_mana ? DEC_MANA_DIV : MANA_DIV;
                need_mana /= MANA_CONST * MANA_DIV;
                if (need_mana < 1) need_mana = 1;
        }
@@ -2454,7 +2454,7 @@ MANA_POINT mod_need_mana(MANA_POINT need_mana, SPELL_IDX spell, REALM_IDX realm)
        /* Non-realm magic */
        else
        {
-               if (p_ptr->dec_mana) need_mana = (need_mana + 1) * DEC_MANA_DIV / MANA_DIV;
+               if (caster_ptr->dec_mana) need_mana = (need_mana + 1) * DEC_MANA_DIV / MANA_DIV;
        }
 
 #undef DEC_MANA_DIV
@@ -2552,7 +2552,7 @@ PERCENTAGE spell_chance(player_type *caster_ptr, SPELL_IDX spell, REALM_IDX use_
                chance += (MAX(r_info[caster_ptr->current_floor_ptr->m_list[caster_ptr->riding].r_idx].level - caster_ptr->skill_exp[GINOU_RIDING] / 100 - 10, 0));
 
        /* Extract mana consumption rate */
-       need_mana = mod_need_mana(s_ptr->smana, spell, use_realm);
+       need_mana = mod_need_mana(caster_ptr, s_ptr->smana, spell, use_realm);
 
        /* Not enough mana to cast */
        if (need_mana > caster_ptr->csp)
@@ -2682,7 +2682,7 @@ void print_spells(player_type* caster_ptr, SPELL_IDX target_spell, SPELL_IDX *sp
                        EXP exp = experience_of_spell(caster_ptr, spell, use_realm);
 
                        /* Extract mana consumption rate */
-                       need_mana = mod_need_mana(s_ptr->smana, spell, use_realm);
+                       need_mana = mod_need_mana(caster_ptr, s_ptr->smana, spell, use_realm);
 
                        if ((increment == 64) || (s_ptr->slevel >= 99)) exp_level = EXP_LEVEL_UNSKILLED;
                        else exp_level = spell_exp_level(exp);