#define music_singing(X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == (X)))
#define music_singing_any() ((p_ptr->pclass == CLASS_BARD) && p_ptr->magic_num1[0])
-#define HISSATSU_NONE 0
-#define HISSATSU_2 1
-#define HISSATSU_3WAY 2
-#define HISSATSU_SUTEMI 3
-#define HISSATSU_FIRE 4
-#define HISSATSU_COLD 5
-#define HISSATSU_POISON 6
-#define HISSATSU_ELEC 7
-#define HISSATSU_NYUSIN 8
-#define HISSATSU_FUKI 9
-#define HISSATSU_MAJIN 10
-#define HISSATSU_BOOMER 11
-#define HISSATSU_DRAIN 12
-#define HISSATSU_SEKIRYUKA 13
-#define HISSATSU_OTAKEBI 14
-#define HISSATSU_SHOUGE 15
-#define HISSATSU_CONF 16
-#define HISSATSU_ISSEN 17
-#define HISSATSU_KYUSHO 18
-#define HISSATSU_KONSIN 19
-#define HISSATSU_HYAKU 20
-#define HISSATSU_MINEUCHI 21
-#define HISSATSU_MEKIKI 22
-#define HISSATSU_ZANMA 23
-#define HISSATSU_UNDEAD 24
-#define HISSATSU_HAGAN 25
-#define HISSATSU_QUAKE 26
-#define HISSATSU_COUNTER 27
-#define HISSATSU_HARAI 28
-#define HISSATSU_3DAN 29
-#define HISSATSU_100NIN 30
-
-#define HISSATSU_IAI 100
-
/*
* Special essence id for Weapon smith
*/
#include "angband.h"
#include "monsterrace-hook.h"
#include "player-status.h"
+#include "melee.h"
#define TECHNIC_HISSATSU (REALM_HISSATSU - MIN_TECHNIC)
-extern bool test_hit_norm(HIT_RELIABILITY chance, ARMOUR_CLASS ac, bool visible);
+
+typedef int COMBAT_OPTION_IDX; // py_attack()用コンバットオプション型定義
+#define HISSATSU_NONE 0
+#define HISSATSU_2 1
+#define HISSATSU_3WAY 2
+#define HISSATSU_SUTEMI 3
+#define HISSATSU_FIRE 4
+#define HISSATSU_COLD 5
+#define HISSATSU_POISON 6
+#define HISSATSU_ELEC 7
+#define HISSATSU_NYUSIN 8
+#define HISSATSU_FUKI 9
+#define HISSATSU_MAJIN 10
+#define HISSATSU_BOOMER 11
+#define HISSATSU_DRAIN 12
+#define HISSATSU_SEKIRYUKA 13
+#define HISSATSU_OTAKEBI 14
+#define HISSATSU_SHOUGE 15
+#define HISSATSU_CONF 16
+#define HISSATSU_ISSEN 17
+#define HISSATSU_KYUSHO 18
+#define HISSATSU_KONSIN 19
+#define HISSATSU_HYAKU 20
+#define HISSATSU_MINEUCHI 21
+#define HISSATSU_MEKIKI 22
+#define HISSATSU_ZANMA 23
+#define HISSATSU_UNDEAD 24
+#define HISSATSU_HAGAN 25
+#define HISSATSU_QUAKE 26
+#define HISSATSU_COUNTER 27
+#define HISSATSU_HARAI 28
+#define HISSATSU_3DAN 29
+#define HISSATSU_100NIN 30
+#define HISSATSU_IAI 100
+
+extern bool test_hit_norm(HIT_RELIABILITY chance, ARMOUR_CLASS ac, bool visible);
extern PERCENTAGE hit_chance(HIT_RELIABILITY chance, ARMOUR_CLASS ac);
extern HIT_POINT tot_dam_aux(object_type *o_ptr, HIT_POINT tdam, monster_type *m_ptr, BIT_FLAGS mode, bool thrown);
extern HIT_POINT critical_norm(WEIGHT weight, int plus, HIT_POINT dam, s16b meichuu, BIT_FLAGS mode);
-extern bool py_attack(POSITION y, POSITION x, BIT_FLAGS mode);
+extern bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode);
extern bool make_attack_normal(MONSTER_IDX m_idx);
* @details
* If no "weapon" is available, then "punch" the monster one time.
*/
-static void py_attack_aux(POSITION y, POSITION x, bool *fear, bool *mdeath, s16b hand, BIT_FLAGS mode)
+static void py_attack_aux(POSITION y, POSITION x, bool *fear, bool *mdeath, s16b hand, COMBAT_OPTION_IDX mode)
{
int num = 0, bonus, chance, vir;
HIT_POINT k;
* @details
* If no "weapon" is available, then "punch" the monster one time.
*/
-bool py_attack(POSITION y, POSITION x, BIT_FLAGS mode)
+bool py_attack(POSITION y, POSITION x, COMBAT_OPTION_IDX mode)
{
bool fear = FALSE;
bool mdeath = FALSE;