From 8c905fe81fab3b66034923679430a9299467682a Mon Sep 17 00:00:00 2001 From: deskull Date: Thu, 20 Jun 2019 23:20:00 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#38997=20do=5Fdec=5Fstat()=20?= =?utf8?q?=E3=81=AB=20player=5Ftype=20*=20=E5=BC=95=E6=95=B0=E3=82=92?= =?utf8?q?=E8=BF=BD=E5=8A=A0=EF=BC=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/chest.c | 16 ++++++++-------- src/cmd-eat.c | 12 ++++++------ src/cmd-quaff.c | 12 ++++++------ src/melee1.c | 24 ++++++++++++------------ src/patron.c | 4 ++-- src/player-damage.c | 8 ++++---- src/player-effects.c | 24 ++++++++++++------------ src/player-effects.h | 2 +- src/player-status.c | 4 ++-- src/spells1.c | 6 +++--- src/spells2.c | 8 ++++---- src/spells3.c | 4 ++-- src/trap.c | 2 +- 13 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/chest.c b/src/chest.c index 70340c8ba..9e797e600 100644 --- a/src/chest.c +++ b/src/chest.c @@ -155,7 +155,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx) { msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!")); take_hit(DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"), -1); - (void)do_dec_stat(A_STR); + (void)do_dec_stat(p_ptr, A_STR); } /* Lose constitution */ @@ -163,7 +163,7 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx) { msg_print(_("仕掛けられていた小さな針に刺されてしまった!", "A small needle has pricked you!")); take_hit(DAMAGE_NOESCAPE, damroll(1, 4), _("毒針", "a poison needle"), -1); - (void)do_dec_stat(A_CON); + (void)do_dec_stat(p_ptr, A_CON); } /* Poison */ @@ -296,12 +296,12 @@ void chest_trap(POSITION y, POSITION x, OBJECT_IDX o_idx) else if (one_in_(3)) apply_disenchant(0); else if (one_in_(2)) { - (void)do_dec_stat(A_STR); - (void)do_dec_stat(A_DEX); - (void)do_dec_stat(A_CON); - (void)do_dec_stat(A_INT); - (void)do_dec_stat(A_WIS); - (void)do_dec_stat(A_CHR); + (void)do_dec_stat(p_ptr, A_STR); + (void)do_dec_stat(p_ptr, A_DEX); + (void)do_dec_stat(p_ptr, A_CON); + (void)do_dec_stat(p_ptr, A_INT); + (void)do_dec_stat(p_ptr, A_WIS); + (void)do_dec_stat(p_ptr, A_CHR); } else (void)fire_meteor(-1, GF_NETHER, y, x, 150, 1); } diff --git a/src/cmd-eat.c b/src/cmd-eat.c index 6f25c957e..f65a1afb1 100644 --- a/src/cmd-eat.c +++ b/src/cmd-eat.c @@ -141,7 +141,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_WEAKNESS: { take_hit(DAMAGE_NOESCAPE, damroll(6, 6), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_STR); + (void)do_dec_stat(p_ptr, A_STR); ident = TRUE; break; } @@ -149,7 +149,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_SICKNESS: { take_hit(DAMAGE_NOESCAPE, damroll(6, 6), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_CON); + (void)do_dec_stat(p_ptr, A_CON); ident = TRUE; break; } @@ -157,7 +157,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_STUPIDITY: { take_hit(DAMAGE_NOESCAPE, damroll(8, 8), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_INT); + (void)do_dec_stat(p_ptr, A_INT); ident = TRUE; break; } @@ -165,7 +165,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_NAIVETY: { take_hit(DAMAGE_NOESCAPE, damroll(8, 8), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_WIS); + (void)do_dec_stat(p_ptr, A_WIS); ident = TRUE; break; } @@ -173,7 +173,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_UNHEALTH: { take_hit(DAMAGE_NOESCAPE, damroll(10, 10), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_CON); + (void)do_dec_stat(p_ptr, A_CON); ident = TRUE; break; } @@ -181,7 +181,7 @@ void exe_eat_food(INVENTORY_IDX item) case SV_FOOD_DISEASE: { take_hit(DAMAGE_NOESCAPE, damroll(10, 10), _("毒入り食料", "poisonous food"), -1); - (void)do_dec_stat(A_STR); + (void)do_dec_stat(p_ptr, A_STR); ident = TRUE; break; } diff --git a/src/cmd-quaff.c b/src/cmd-quaff.c index 31fba5d91..0d8540cda 100644 --- a/src/cmd-quaff.c +++ b/src/cmd-quaff.c @@ -218,27 +218,27 @@ void exe_quaff_potion(INVENTORY_IDX item) break; case SV_POTION_DEC_STR: - if (do_dec_stat(A_STR)) ident = TRUE; + if (do_dec_stat(p_ptr, A_STR)) ident = TRUE; break; case SV_POTION_DEC_INT: - if (do_dec_stat(A_INT)) ident = TRUE; + if (do_dec_stat(p_ptr, A_INT)) ident = TRUE; break; case SV_POTION_DEC_WIS: - if (do_dec_stat(A_WIS)) ident = TRUE; + if (do_dec_stat(p_ptr, A_WIS)) ident = TRUE; break; case SV_POTION_DEC_DEX: - if (do_dec_stat(A_DEX)) ident = TRUE; + if (do_dec_stat(p_ptr, A_DEX)) ident = TRUE; break; case SV_POTION_DEC_CON: - if (do_dec_stat(A_CON)) ident = TRUE; + if (do_dec_stat(p_ptr, A_CON)) ident = TRUE; break; case SV_POTION_DEC_CHR: - if (do_dec_stat(A_CHR)) ident = TRUE; + if (do_dec_stat(p_ptr, A_CHR)) ident = TRUE; break; case SV_POTION_DETONATIONS: diff --git a/src/melee1.c b/src/melee1.c index 1f0dcf58d..16ea27755 100644 --- a/src/melee1.c +++ b/src/melee1.c @@ -3296,7 +3296,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_STR)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_STR)) obvious = TRUE; break; } @@ -3306,7 +3306,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_INT)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_INT)) obvious = TRUE; break; } @@ -3316,7 +3316,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_WIS)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_WIS)) obvious = TRUE; break; } @@ -3326,7 +3326,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_DEX)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_DEX)) obvious = TRUE; break; } @@ -3336,7 +3336,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_CON)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_CON)) obvious = TRUE; break; } @@ -3346,7 +3346,7 @@ bool make_attack_normal(MONSTER_IDX m_idx) get_damage += take_hit(DAMAGE_ATTACK, damage, ddesc, -1); if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; - if (do_dec_stat(A_CHR)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_CHR)) obvious = TRUE; break; } @@ -3358,12 +3358,12 @@ bool make_attack_normal(MONSTER_IDX m_idx) if (p_ptr->is_dead || CHECK_MULTISHADOW()) break; /* Damage (stats) */ - if (do_dec_stat(A_STR)) obvious = TRUE; - if (do_dec_stat(A_DEX)) obvious = TRUE; - if (do_dec_stat(A_CON)) obvious = TRUE; - if (do_dec_stat(A_INT)) obvious = TRUE; - if (do_dec_stat(A_WIS)) obvious = TRUE; - if (do_dec_stat(A_CHR)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_STR)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_DEX)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_CON)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_INT)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_WIS)) obvious = TRUE; + if (do_dec_stat(p_ptr, A_CHR)) obvious = TRUE; break; } diff --git a/src/patron.c b/src/patron.c index c109a81a0..2639376b1 100644 --- a/src/patron.c +++ b/src/patron.c @@ -429,9 +429,9 @@ void gain_level_reward(int chosen_reward) msg_print(_("「下僕よ、余は汝に飽みたり。」", "'I grow tired of thee, mortal.'")); if (one_in_(3) && !(chaos_stats[p_ptr->chaos_patron] < 0)) - do_dec_stat(chaos_stats[p_ptr->chaos_patron]); + do_dec_stat(p_ptr, chaos_stats[p_ptr->chaos_patron]); else - (void)do_dec_stat(randint0(6)); + (void)do_dec_stat(p_ptr, randint0(6)); reward = _("能力値が下がった。", "decreasing a stat"); break; diff --git a/src/player-damage.c b/src/player-damage.c index 93b5351df..5d1d09724 100644 --- a/src/player-damage.c +++ b/src/player-damage.c @@ -449,7 +449,7 @@ HIT_POINT acid_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura) { if ((!(double_resist || p_ptr->resist_acid)) && one_in_(HURT_CHANCE)) - (void)do_dec_stat(A_CHR); + (void)do_dec_stat(p_ptr, A_CHR); /* If any armor gets hit, defend the player */ if (acid_minus_ac()) dam = (dam + 1) / 2; @@ -499,7 +499,7 @@ HIT_POINT elec_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura) { if ((!(double_resist || p_ptr->resist_elec)) && one_in_(HURT_CHANCE)) - (void)do_dec_stat(A_DEX); + (void)do_dec_stat(p_ptr, A_DEX); } get_damage = take_hit(aura ? DAMAGE_NOESCAPE : DAMAGE_ATTACK, dam, kb_str, monspell); @@ -547,7 +547,7 @@ HIT_POINT fire_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura) { if ((!(double_resist || p_ptr->resist_fire)) && one_in_(HURT_CHANCE)) - (void)do_dec_stat(A_STR); + (void)do_dec_stat(p_ptr, A_STR); } get_damage = take_hit(aura ? DAMAGE_NOESCAPE : DAMAGE_ATTACK, dam, kb_str, monspell); @@ -594,7 +594,7 @@ HIT_POINT cold_dam(HIT_POINT dam, concptr kb_str, int monspell, bool aura) { if ((!(double_resist || p_ptr->resist_cold)) && one_in_(HURT_CHANCE)) - (void)do_dec_stat(A_STR); + (void)do_dec_stat(p_ptr, A_STR); } get_damage = take_hit(aura ? DAMAGE_NOESCAPE : DAMAGE_ATTACK, dam, kb_str, monspell); diff --git a/src/player-effects.c b/src/player-effects.c index 83957047f..37243ee43 100644 --- a/src/player-effects.c +++ b/src/player-effects.c @@ -2758,16 +2758,16 @@ bool set_stun(TIME_EFFECT v) if (one_in_(3)) { - if (!p_ptr->sustain_int) (void)do_dec_stat(A_INT); - if (!p_ptr->sustain_wis) (void)do_dec_stat(A_WIS); + if (!p_ptr->sustain_int) (void)do_dec_stat(p_ptr, A_INT); + if (!p_ptr->sustain_wis) (void)do_dec_stat(p_ptr, A_WIS); } else if (one_in_(2)) { - if (!p_ptr->sustain_int) (void)do_dec_stat(A_INT); + if (!p_ptr->sustain_int) (void)do_dec_stat(p_ptr, A_INT); } else { - if (!p_ptr->sustain_wis) (void)do_dec_stat(A_WIS); + if (!p_ptr->sustain_wis) (void)do_dec_stat(p_ptr, A_WIS); } } if (p_ptr->special_defense & KATA_MASK) @@ -2976,7 +2976,7 @@ bool set_cut(TIME_EFFECT v) if (!p_ptr->sustain_chr) { msg_print(_("ひどい傷跡が残ってしまった。", "You have been horribly scarred.")); - do_dec_stat(A_CHR); + do_dec_stat(p_ptr, A_CHR); } } } @@ -3513,19 +3513,19 @@ static concptr desc_stat_neg[] = /* * Lose a "point" */ -bool do_dec_stat(int stat) +bool do_dec_stat(player_type *creature_ptr, int stat) { bool sust = FALSE; /* Access the "sustain" */ switch (stat) { - case A_STR: if (p_ptr->sustain_str) sust = TRUE; break; - case A_INT: if (p_ptr->sustain_int) sust = TRUE; break; - case A_WIS: if (p_ptr->sustain_wis) sust = TRUE; break; - case A_DEX: if (p_ptr->sustain_dex) sust = TRUE; break; - case A_CON: if (p_ptr->sustain_con) sust = TRUE; break; - case A_CHR: if (p_ptr->sustain_chr) sust = TRUE; break; + case A_STR: if (creature_ptr->sustain_str) sust = TRUE; break; + case A_INT: if (creature_ptr->sustain_int) sust = TRUE; break; + case A_WIS: if (creature_ptr->sustain_wis) sust = TRUE; break; + case A_DEX: if (creature_ptr->sustain_dex) sust = TRUE; break; + case A_CON: if (creature_ptr->sustain_con) sust = TRUE; break; + case A_CHR: if (creature_ptr->sustain_chr) sust = TRUE; break; } /* Sustain */ diff --git a/src/player-effects.h b/src/player-effects.h index 870f18b44..e8ccb0899 100644 --- a/src/player-effects.h +++ b/src/player-effects.h @@ -61,7 +61,7 @@ extern bool inc_stat(int stat); extern bool dec_stat(int stat, int amount, int permanent); extern bool res_stat(int stat); extern bool hp_player(int num); -extern bool do_dec_stat(int stat); +extern bool do_dec_stat(player_type *creature_ptr, int stat); extern bool do_res_stat(int stat); extern bool do_inc_stat(int stat); extern bool restore_level(void); diff --git a/src/player-status.c b/src/player-status.c index 522b0bca9..e5c37fbf4 100644 --- a/src/player-status.c +++ b/src/player-status.c @@ -5374,11 +5374,11 @@ void sanity_blast(monster_type *m_ptr, bool necro) } do { - (void)do_dec_stat(A_INT); + (void)do_dec_stat(p_ptr, A_INT); } while (randint0(100) > p_ptr->skill_sav && one_in_(2)); do { - (void)do_dec_stat(A_WIS); + (void)do_dec_stat(p_ptr, A_WIS); } while (randint0(100) > p_ptr->skill_sav && one_in_(2)); switch (randint1(21)) diff --git a/src/spells1.c b/src/spells1.c index fbe853a88..04495a16a 100644 --- a/src/spells1.c +++ b/src/spells1.c @@ -4160,7 +4160,7 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI if ((!(double_resist || p_ptr->resist_pois)) && one_in_(HURT_CHANCE) && !CHECK_MULTISHADOW()) { - do_dec_stat(A_CON); + do_dec_stat(p_ptr, A_CON); } get_damage = take_hit(DAMAGE_ATTACK, dam, killer, monspell); @@ -4939,9 +4939,9 @@ static bool project_p(MONSTER_IDX who, concptr who_name, int r, POSITION y, POSI (void)set_slow(p_ptr->slow + randint0(4) + 4, FALSE); while (randint0(100 + rlev / 2) > (MAX(5, p_ptr->skill_sav))) - (void)do_dec_stat(A_INT); + (void)do_dec_stat(p_ptr, A_INT); while (randint0(100 + rlev / 2) > (MAX(5, p_ptr->skill_sav))) - (void)do_dec_stat(A_WIS); + (void)do_dec_stat(p_ptr, A_WIS); if (!p_ptr->resist_chaos) { diff --git a/src/spells2.c b/src/spells2.c index 52465c707..e282931ce 100644 --- a/src/spells2.c +++ b/src/spells2.c @@ -2615,7 +2615,7 @@ bool activate_ty_curse(bool stop_ty, int *count) } if (!one_in_(6)) break; case 21: case 22: case 23: - (void)do_dec_stat(randint0(6)); + (void)do_dec_stat(p_ptr, randint0(6)); if (!one_in_(6)) break; case 24: msg_print(_("ほえ?私は誰?ここで何してる?", "Huh? Who am I? What am I doing here?")); @@ -2637,7 +2637,7 @@ bool activate_ty_curse(bool stop_ty, int *count) { do { - (void)do_dec_stat(i); + (void)do_dec_stat(p_ptr, i); } while (one_in_(2)); @@ -3725,8 +3725,8 @@ void cast_shuffle(void) else if (die < 26) { msg_print(_("《愚者》だ。", "It's the Fool.")); - do_dec_stat(A_INT); - do_dec_stat(A_WIS); + do_dec_stat(p_ptr, A_INT); + do_dec_stat(p_ptr, A_WIS); } else if (die < 30) { diff --git a/src/spells3.c b/src/spells3.c index 40aef9fe2..66936a199 100644 --- a/src/spells3.c +++ b/src/spells3.c @@ -3544,7 +3544,7 @@ void blood_curse_to_enemy(MONSTER_IDX m_idx) { do { - (void)do_dec_stat(i); + (void)do_dec_stat(p_ptr, i); } while (one_in_(2)); i++; @@ -3552,7 +3552,7 @@ void blood_curse_to_enemy(MONSTER_IDX m_idx) } else { - (void)do_dec_stat(randint0(6)); + (void)do_dec_stat(p_ptr, randint0(6)); } break; } diff --git a/src/trap.c b/src/trap.c index 2ffd9476a..efd9bb059 100644 --- a/src/trap.c +++ b/src/trap.c @@ -354,7 +354,7 @@ static void hit_trap_lose_stat(int stat) { if (hit_trap_dart()) { - do_dec_stat(stat); + do_dec_stat(p_ptr, stat); } } -- 2.11.0