OSDN Git Service

[Refactor] #2204 HIT_POINTエイリアスをintに揃えた
[hengbandforosx/hengbandosx.git] / src / object-enchant / vorpal-weapon.cpp
index 76a496e..47c0810 100644 (file)
@@ -2,6 +2,8 @@
 #include "artifact/fixed-art-types.h"
 #include "inventory/inventory-slot-types.h"
 #include "io/files-util.h"
+#include "main/sound-definitions-table.h"
+#include "main/sound-of-music.h"
 #include "monster-race/monster-race.h"
 #include "monster-race/race-flags-resistance.h"
 #include "player-attack/player-attack-util.h"
@@ -21,24 +23,31 @@ static void print_vorpal_message(player_attack_type *pa_ptr, const int magnifica
     switch (magnification) {
     case 2:
         msg_format(_("%sを斬った!", "You gouge %s!"), pa_ptr->m_name);
+        sound(SOUND_GOUGE_HIT);
         break;
     case 3:
         msg_format(_("%sをぶった斬った!", "You maim %s!"), pa_ptr->m_name);
+        sound(SOUND_MAIM_HIT);
         break;
     case 4:
         msg_format(_("%sをメッタ斬りにした!", "You carve %s!"), pa_ptr->m_name);
+        sound(SOUND_CARVE_HIT);
         break;
     case 5:
         msg_format(_("%sをメッタメタに斬った!", "You cleave %s!"), pa_ptr->m_name);
+        sound(SOUND_CLEAVE_HIT);
         break;
     case 6:
         msg_format(_("%sを刺身にした!", "You smite %s!"), pa_ptr->m_name);
+        sound(SOUND_SMITE_HIT);
         break;
     case 7:
         msg_format(_("%sを斬って斬って斬りまくった!", "You eviscerate %s!"), pa_ptr->m_name);
+        sound(SOUND_EVISCERATE_HIT);
         break;
     default:
         msg_format(_("%sを細切れにした!", "You shred %s!"), pa_ptr->m_name);
+        sound(SOUND_SHRED_HIT);
         break;
     }
 }
@@ -47,7 +56,7 @@ static void print_vorpal_message(player_attack_type *pa_ptr, const int magnifica
  * @brief チェンソーのノイズ音を表示する
  * @param o_ptr チェンソーへの参照ポインタ
  */
-static void print_chainsword_noise(object_type *o_ptr)
+static void print_chainsword_noise(ObjectType *o_ptr)
 {
     if ((o_ptr->name1 != ART_CHAINSWORD) || one_in_(2))
         return;
@@ -59,17 +68,17 @@ static void print_chainsword_noise(object_type *o_ptr)
 
 /*!
  * @brief ヴォーパル武器利用時の処理メインルーチン
- * @param attacker_ptr プレーヤーへの参照ポインタ
+ * @param player_ptr プレイヤーへの参照ポインタ
  * @param pa_ptr 直接攻撃構造体への参照ポインタ
  * @param vorpal_cut メッタ斬りにできるかどうか
  * @param vorpal_chance ヴォーパル倍率上昇の機会値
  */
-void process_vorpal_attack(player_type *attacker_ptr, player_attack_type *pa_ptr, const bool vorpal_cut, const int vorpal_chance)
+void process_vorpal_attack(PlayerType *player_ptr, player_attack_type *pa_ptr, const bool vorpal_cut, const int vorpal_chance)
 {
     if (!vorpal_cut)
         return;
 
-    object_type *o_ptr = &attacker_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
+    auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + pa_ptr->hand];
     int vorpal_magnification = 2;
     print_chainsword_noise(o_ptr);
     if (o_ptr->name1 == ART_VORPAL_BLADE)
@@ -80,8 +89,8 @@ void process_vorpal_attack(player_type *attacker_ptr, player_attack_type *pa_ptr
     while (one_in_(vorpal_chance))
         vorpal_magnification++;
 
-    pa_ptr->attack_damage *= (HIT_POINT)vorpal_magnification;
-    monster_race *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
+    pa_ptr->attack_damage *= (int)vorpal_magnification;
+    auto *r_ptr = &r_info[pa_ptr->m_ptr->r_idx];
     if (((r_ptr->flagsr & RFR_RES_ALL) ? pa_ptr->attack_damage / 100 : pa_ptr->attack_damage) > pa_ptr->m_ptr->hp)
         msg_format(_("%sを真っ二つにした!", "You cut %s in half!"), pa_ptr->m_name);
     else