From: deskull Date: Sat, 4 Jul 2020 06:47:56 +0000 (+0900) Subject: [Refactor] #40514 装備の速度計算処理を calc_speed()へ移動. / Moved speed calculation by equipment... X-Git-Tag: vmacos3.0.0-alpha52~841 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=15e99efe90380f8312fa56a32c2a0d6dba9b98a8;p=hengbandforosx%2Fhengbandosx.git [Refactor] #40514 装備の速度計算処理を calc_speed()へ移動. / Moved speed calculation by equipment to calc_speed(). --- diff --git a/src/object/object-kind.c b/src/object/object-kind.c index 2c4331c51..797b9937a 100644 --- a/src/object/object-kind.c +++ b/src/object/object-kind.c @@ -50,8 +50,6 @@ void calc_equipment_status(player_type* creature_ptr) { creature_ptr->see_infra += o_ptr->pval; if (have_flag(flgs, TR_TUNNEL)) creature_ptr->skill_dig += (o_ptr->pval * 20); - if (have_flag(flgs, TR_SPEED)) - creature_ptr->pspeed += o_ptr->pval; if (have_flag(flgs, TR_BLOWS)) { if ((i == INVEN_RARM || i == INVEN_RIGHT) && !creature_ptr->ryoute) creature_ptr->extra_blows[0] += o_ptr->pval; diff --git a/src/player/player-status.c b/src/player/player-status.c index 6fa715cb2..c11fc7b29 100644 --- a/src/player/player-status.c +++ b/src/player/player-status.c @@ -4070,8 +4070,20 @@ static void calc_speed(player_type *creature_ptr) else tmp_rp_ptr = &race_info[creature_ptr->prace]; - if (is_specific_player_race(creature_ptr, RACE_KLACKON) || is_specific_player_race(creature_ptr, RACE_SPRITE)) - creature_ptr->pspeed += (creature_ptr->lev) / 10; + if (is_specific_player_race(creature_ptr, RACE_KLACKON) || is_specific_player_race(creature_ptr, RACE_SPRITE)) + creature_ptr->pspeed += (creature_ptr->lev) / 10; + + for (int i = INVEN_RARM; i < INVEN_TOTAL; i++) { + object_type *o_ptr = &creature_ptr->inventory_list[i]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; + object_flags(o_ptr, flgs); + + if (!o_ptr->k_idx) + continue; + if (have_flag(flgs, TR_SPEED)) + creature_ptr->pspeed += o_ptr->pval; + } + if (creature_ptr->mimic_form) { switch (creature_ptr->mimic_form) {