* @param m_idx モンスターID
* @param m_name モンスター名を入力する配列
*/
-void monster_name(int m_idx, char* m_name)
+void monster_name(MONSTER_IDX m_idx, char* m_name)
{
monster_type *m_ptr = &m_list[m_idx];
monster_desc(m_name, m_ptr, 0x00);
* @param t_idx モンスターID二体目
* @return モンスター2体のどちらかがプレイヤーの近くに居ればTRUE、どちらも遠ければFALSEを返す。
*/
-bool monster_near_player(int m_idx, int t_idx)
+bool monster_near_player(MONSTER_IDX m_idx, MONSTER_IDX t_idx)
{
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
* @param m_idx モンスターID
* @return プレイヤーがモンスターを見ることができるならTRUE、そうでなければFALSEを返す。
*/
-bool see_monster(int m_idx)
+bool see_monster(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = &m_list[m_idx];
return is_seen(m_ptr);
}
* @param m_idx モンスターID
* @return プレイヤーが青魔法で学習できるならTRUE、そうでなければFALSEを返す。
*/
-bool spell_learnable(int m_idx)
+bool spell_learnable(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = &m_list[m_idx];
/* Extract the "see-able-ness" */
bool seen = (!p_ptr->blind && m_ptr->ml);
* @param m_idx モンスターID
* @return モンスターのレベル
*/
-int monster_level_idx(int m_idx)
+int monster_level_idx(MONSTER_IDX m_idx)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
* @param m_idx モンスターID
* @return POWERFULフラグがあればTRUE、なければFALSEを返す。
*/
-bool monster_is_powerful(int m_idx)
+bool monster_is_powerful(MONSTER_IDX m_idx)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
* @param m_idx モンスターID
* @return 召喚可能であればPM_ALLOW_UNIQUEを返す。
*/
-u32b monster_u_mode(int m_idx)
+u32b monster_u_mode(MONSTER_IDX m_idx)
{
u32b u_mode = 0L;
monster_type *m_ptr = &m_list[m_idx];
* @brief モンスターを起こす /
* @param t_idx モンスターID
*/
-void monster_wakeup(int t_idx)
+void monster_wakeup(MONSTER_IDX t_idx)
{
(void)set_monster_csleep(t_idx, 0);
}
* @param msg_flag_aux メッセージを分岐するためのフラグ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-static void monspell_message_base(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool msg_flag_aux, int TARGET_TYPE)
+static void monspell_message_base(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool msg_flag_aux, int TARGET_TYPE)
{
bool known = monster_near_player(m_idx, t_idx);
bool see_either = see_monster(m_idx) || see_monster(t_idx);
monster_name(t_idx, t_name);
if (mon_to_player || (mon_to_mon && known && see_either))
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (msg_flag_aux)
{
* @param msg3 プレイヤーが盲目でなく、モンスター対象とする場合のメッセージ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE)
+void monspell_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE)
{
monspell_message_base(m_idx, t_idx, msg1, msg1, msg2, msg3, p_ptr->blind > 0, TARGET_TYPE);
}
* @param msg2 モンスター対象とする場合のメッセージ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void simple_monspell_message(int m_idx, int t_idx, cptr msg1, cptr msg2, int TARGET_TYPE)
+void simple_monspell_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, int TARGET_TYPE)
{
monspell_message_base(m_idx, t_idx, msg1, msg2, msg1, msg2, p_ptr->blind > 0, TARGET_TYPE);
}
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF4_SHRIEK(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF4_SHRIEK(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
simple_monspell_message(m_idx, t_idx,
_("%^sがかん高い金切り声をあげた。", "%^s makes a high pitched shriek."),
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF4_DISPEL(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF4_DISPEL(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
char m_name[80], t_name[80];
monster_name(m_idx, m_name);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF4_ROCKET(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF4_ROCKET(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かを射った。", "%^s shoots something."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF4_SHOOT(int y, int x, int m_idx, int t_idx,int TARGET_TYPE)
+HIT_POINT spell_RF4_SHOOT(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx,int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが奇妙な音を発した。", "%^s makes a strange noise."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF4_BREATH(int GF_TYPE, int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF4_BREATH(int GF_TYPE, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam, ms_type, drs_type;
+ HIT_POINT dam, ms_type, drs_type = 0;
cptr type_s;
bool smart_learn_aux = TRUE;
monster_type *m_ptr = &m_list[m_idx];
smart_learn_aux = FALSE;
break;
default:
+ /* Do not reach here */
+ dam = 0;
+ type_s = _("不明", "Unknown");
+ ms_type = MS_BR_ACID;
+ smart_learn_aux = FALSE;
break;
}
if (mon_to_player || (mon_to_mon && known && see_either))
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
{
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF4_BA_NUKE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF4_BA_NUKE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF4_BA_CHAO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF4_BA_CHAO(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが恐ろしげにつぶやいた。", "%^s mumbles frighteningly."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_ACID(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam, rad;
+ HIT_POINT dam, rad;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_ELEC(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam, rad;
+ HIT_POINT dam, rad;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_FIRE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam, rad;
+ HIT_POINT dam, rad;
monster_type *m_ptr = &m_list[m_idx];
if (m_ptr->r_idx == MON_ROLENTO)
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_COLD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam, rad;
+ HIT_POINT dam, rad;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_POIS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_POIS(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_NETH(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_WATE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
bool known = monster_near_player(m_idx, t_idx);
bool see_either = see_monster(m_idx) || see_monster(t_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_MANA(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_DARK(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_DARK(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_DRAIN_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_DRAIN_MANA(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
char m_name[80], t_name[80];
monster_name(m_idx, m_name);
monster_name(t_idx, t_name);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- disturb(1, 1);
+ disturb(TRUE, TRUE);
}
else if (TARGET_TYPE == MONSTER_TO_MONSTER && see_monster(m_idx))
{
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_MIND_BLAST(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_MIND_BLAST(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
- int dam;
+ HIT_POINT dam;
char m_name[80], t_name[80];
monster_name(m_idx, m_name);
monster_name(t_idx, t_name);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (!seen)
msg_print(_("何かがあなたの精神に念を放っているようだ。", "You feel something focusing on your mind."));
else
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BRAIN_SMASH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BRAIN_SMASH(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = &m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
- int dam;
+ HIT_POINT dam;
char m_name[80], t_name[80];
monster_name(m_idx, m_name);
monster_name(t_idx, t_name);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (!seen)
msg_print(_("何かがあなたの精神に念を放っているようだ。", "You feel something focusing on your mind."));
else
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-void spell_RF5_CAUSE(int GF_TYPE, int dam, int y, int x, int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, int MS_TYPE, int TARGET_TYPE)
+void spell_RF5_CAUSE(int GF_TYPE, HIT_POINT dam, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, cptr msg3, int MS_TYPE, int TARGET_TYPE)
{
char m_name[80], t_name[80];
monster_name(m_idx, m_name);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (p_ptr->blind)
msg_format(msg1, m_name);
else
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_CAUSE_1(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_CAUSE_1(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
cptr msg1, msg2, msg3;
- int dam;
+ HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_1), m_idx, DAM_ROLL);
msg1 = _("%^sが何かをつぶやいた。", "%^s mumbles.");
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_CAUSE_2(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_CAUSE_2(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
cptr msg1, msg2, msg3;
- int dam;
+ HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_2), m_idx, DAM_ROLL);
msg1 = _("%^sが何かをつぶやいた。", "%^s mumbles.");
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_CAUSE_3(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_CAUSE_3(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
cptr msg1, msg2, msg3;
- int dam;
+ HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_3), m_idx, DAM_ROLL);
msg1 = _("%^sが何かを大声で叫んだ。", "%^s mumbles loudly.");
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_CAUSE_4(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_CAUSE_4(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
cptr msg1, msg2, msg3;
- int dam;
+ HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_4), m_idx, DAM_ROLL);
msg1 = _("%^sが「お前は既に死んでいる」と叫んだ。", "%^s screams the word 'DIE!'");
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_ACID(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_ACID(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_ELEC(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_ELEC(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_FIRE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_FIRE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_COLD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_COLD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BA_LITE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BA_LITE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_NETH(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_NETH(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_WATE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_WATE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_MANA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_MANA(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_PLAS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_PLAS(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_BO_ICEE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_BO_ICEE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF5_MISSILE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF5_MISSILE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param saving_throw 抵抗に成功したか判別するフラグ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_badstatus_message(int m_idx, int t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool resist, bool saving_throw, int TARGET_TYPE)
+void spell_badstatus_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, cptr msg3, cptr msg4, bool resist, bool saving_throw, int TARGET_TYPE)
{
bool see_either = see_monster(m_idx) || see_monster(t_idx);
bool see_t = see_monster(t_idx);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (p_ptr->blind)
msg_format(msg1, m_name);
else
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF5_SCARE(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF5_SCARE(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF5_BLIND(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF5_BLIND(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF5_CONF(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF5_CONF(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF5_SLOW(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF5_SLOW(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF5_HOLD(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF5_HOLD(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_HASTE(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_HASTE(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
bool see_m = see_monster(m_idx);
monster_type *m_ptr = &m_list[m_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_HAND_DOOM(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF6_HAND_DOOM(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam = 0;
+ HIT_POINT dam = 0;
simple_monspell_message(m_idx, t_idx,
_("%^sが<破滅の手>を放った!", "%^s invokes the Hand of Doom!"),
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_HEAL(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_HEAL(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
int rlev = monster_level_idx(m_idx);
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
- /* Message */
monspell_message_base(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sは自分の傷に念を集中した。", "%^s concentrates on %s wounds."),
/* Fully healed */
m_ptr->hp = m_ptr->maxhp;
- /* Message */
monspell_message_base(m_idx, t_idx,
_("%^sは完全に治ったようだ!", "%^s sounds completely healed!"),
_("%^sは完全に治ったようだ!", "%^s sounds completely healed!"),
/* Partially healed */
else
{
- /* Message */
monspell_message_base(m_idx, t_idx,
_("%^sは体力を回復したようだ。", "%^s sounds healthier."),
_("%^sは体力を回復したようだ。", "%^s sounds healthier."),
/* Cancel fear */
(void)set_monster_monfear(m_idx, 0);
- /* Message */
if (see_monster(m_idx))
msg_format(_("%^sは勇気を取り戻した。", "%^s recovers %s courage."), m_name);
}
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_INVULNER(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_INVULNER(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
- /* Message */
monspell_message_base(m_idx, t_idx,
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
* @param m_idx 呪文を唱えるモンスターID
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_BLINK(int m_idx, int TARGET_TYPE)
+void spell_RF6_BLINK(MONSTER_IDX m_idx, int TARGET_TYPE)
{
char m_name[80];
monster_name(m_idx, m_name);
if (TARGET_TYPE==MONSTER_TO_PLAYER)
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (teleport_barrier(m_idx))
{
* @param m_idx 呪文を唱えるモンスターID
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_TPORT(int m_idx, int TARGET_TYPE)
+void spell_RF6_TPORT(MONSTER_IDX m_idx, int TARGET_TYPE)
{
char m_name[80];
monster_name(m_idx, m_name);
if (TARGET_TYPE==MONSTER_TO_PLAYER)
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (teleport_barrier(m_idx))
{
if(see_monster(m_idx))
* @brief RF6_WORLDの処理。時を止める。 /
* @param m_idx 呪文を唱えるモンスターID
*/
-int spell_RF6_WORLD(int m_idx)
+HIT_POINT spell_RF6_WORLD(MONSTER_IDX m_idx)
{
monster_type *m_ptr = &m_list[m_idx];
- int who = 0;
+ MONSTER_IDX who = 0;
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (m_ptr->r_idx == MON_DIO) who = 1;
else if (m_ptr->r_idx == MON_WONG) who = 3;
if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
* @brief バーノール・ルパートのRF6_SPECIALの処理。分裂・合体。 /
* @param m_idx 呪文を唱えるモンスターID
*/
-int spell_RF6_SPECIAL_BANORLUPART(int m_idx)
+HIT_POINT spell_RF6_SPECIAL_BANORLUPART(MONSTER_IDX m_idx)
{
monster_type *m_ptr = &m_list[m_idx];
HIT_POINT dummy_hp, dummy_maxhp;
- int k;
- int dummy_y = m_ptr->fy;
- int dummy_x = m_ptr->fx;
- u32b mode = 0L;
+ MONSTER_IDX k;
+ POSITION dummy_y = m_ptr->fy;
+ POSITION dummy_x = m_ptr->fx;
+ BIT_FLAGS mode = 0L;
switch(m_ptr->r_idx)
{
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_SPECIAL_ROLENTO(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF6_SPECIAL_ROLENTO(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int num = 1 + randint1(3);
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
monspell_message(m_idx, t_idx,
_("%^sが何か大量に投げた。", "%^s spreads something."),
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_SPECIAL_B(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam = -1;
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (one_in_(3) || !direct)
{
simple_monspell_message(m_idx, t_idx,
}
if(monster_to_player && p_ptr->riding)
- mon_take_hit_mon(p_ptr->riding, dam, &fear, extract_note_dies(real_r_ptr(&m_list[p_ptr->riding])), m_idx);
+ mon_take_hit_mon(p_ptr->riding, dam, &fear, extract_note_dies(real_r_idx(&m_list[p_ptr->riding])), m_idx);
if(monster_to_monster)
- mon_take_hit_mon(t_idx, dam, &fear, extract_note_dies(real_r_ptr(t_ptr)), m_idx);
+ mon_take_hit_mon(t_idx, dam, &fear, extract_note_dies(real_r_idx(t_ptr)), m_idx);
}
return dam;
}
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_SPECIAL(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF6_SPECIAL(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- disturb(1, 1);
+ disturb(TRUE, TRUE);
switch (m_ptr->r_idx)
{
case MON_OHMU:
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-void spell_RF6_TELE_TO(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_TELE_TO(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-void spell_RF6_TELE_AWAY(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_TELE_AWAY(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-void spell_RF6_TELE_LEVEL(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_TELE_LEVEL(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *t_ptr = &m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-int spell_RF6_PSY_SPEAR(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+HIT_POINT spell_RF6_PSY_SPEAR(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- int dam;
+ HIT_POINT dam;
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_DARKNESS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_DARKNESS(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_type *t_ptr = &m_list[t_idx];
* @param x 対象の地点のx座標
* @param m_idx 呪文を唱えるモンスターID
*/
-void spell_RF6_TRAPS(int y, int x, int m_idx)
+void spell_RF6_TRAPS(POSITION y, POSITION x, MONSTER_IDX m_idx)
{
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (p_ptr->blind)
msg_format(_("%^sが何かをつぶやいて邪悪に微笑んだ。",
* @brief RF6_FORGETの処理。記憶消去。 /
* @param m_idx 呪文を唱えるモンスターID
*/
-void spell_RF6_FORGET(int m_idx)
+void spell_RF6_FORGET(MONSTER_IDX m_idx)
{
int rlev = monster_level_idx(m_idx);
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
msg_format(_("%^sがあなたの記憶を消去しようとしている。",
"%^s tries to blank your mind."), m_name);
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void spell_RF6_RAISE_DEAD(int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_RAISE_DEAD(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = &m_list[m_idx];
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_EAGLE(int y, int x, int rlev, int m_idx)
+MONSTER_NUMBER summon_EAGLE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
{
int k, count = 0;
int num = 4 + randint1(3);
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_IE(int y, int x, int rlev, int m_idx)
+MONSTER_NUMBER summon_IE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
{
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
int k, count = 0;
int num = 2 + randint1(1 + rlev / 20);
for (k = 0; k < num; k++)
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-int summon_Guardian(int y, int x, int rlev, int m_idx, int t_idx, int TARGET_TYPE)
+MONSTER_NUMBER summon_Guardian(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int k, count = 0;
int num = 2 + randint1(3);
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_LOCK_CLONE(int y, int x, int rlev, int m_idx)
+MONSTER_NUMBER summon_LOCK_CLONE(POSITION y, POSITION x, DEPTH rlev, MONSTER_IDX m_idx)
{
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
int k, count = 0;
int num = randint1(3);
- rlev;
+ rlev = rlev;
for (k = 0; k < num; k++)
{
count += summon_named_creature(m_idx, y, x, MON_LOCKE_CLONE, mode);
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_LOUSE(int y, int x, int rlev, int m_idx)
+MONSTER_NUMBER summon_LOUSE(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
{
int k, count = 0;
int num = 2 + randint1(3);
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_Kin(int y, int x, int rlev, int m_idx)
+MONSTER_NUMBER summon_Kin(POSITION y, POSITION x, int rlev, MONSTER_IDX m_idx)
{
int k, count = 0;
monster_type *m_ptr = &m_list[m_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_KIN(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_KIN(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
bool known = monster_near_player(m_idx, t_idx);
bool see_either = see_monster(m_idx) || see_monster(t_idx);
monster_name(t_idx, t_name);
monster_desc(m_poss, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (m_ptr->r_idx == MON_SERPENT || m_ptr->r_idx == MON_ZOMBI_SERPENT)
{
monspell_message(m_idx, t_idx,
else
{
if (mon_to_player || (mon_to_mon && known && see_either))
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (p_ptr->blind)
{
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_CYBER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_CYBER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0;
monster_type *m_ptr = &m_list[m_idx];
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_MONSTER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_MONSTER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_MONSTERS(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_MONSTERS(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_ANT(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_ANT(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_SPIDER(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_SPIDER(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_HOUND(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_HOUND(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_HYDRA(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_HYDRA(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_ANGEL(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_ANGEL(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int num = 1;
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_DEMON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_DEMON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_UNDEAD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_DRAGON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_DRAGON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param m_idx 呪文を唱えるモンスターID
* @return 召喚したモンスターの数を返す。
*/
-int summon_NAZGUL(int y, int x, int m_idx)
+MONSTER_NUMBER summon_NAZGUL(POSITION y, POSITION x, MONSTER_IDX m_idx)
{
- u32b mode = 0L;
+ BIT_FLAGS mode = 0L;
int count = 0, k;
- int cy = y;
- int cx = x;
+ POSITION cy = y;
+ POSITION cx = x;
char m_name[80];
monster_name(m_idx, m_name);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_HI_UNDEAD(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
char m_name[80];
monster_name(m_idx, m_name);
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (((m_ptr->r_idx == MON_MORGOTH) || (m_ptr->r_idx == MON_SAURON) || (m_ptr->r_idx == MON_ANGMAR)) &&
((r_info[MON_NAZGUL].cur_num + 2) < r_info[MON_NAZGUL].max_num) &&
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_HI_DRAGON(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_HI_DRAGON(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_AMBERITES(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_AMBERITES(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
int rlev = monster_level_idx(m_idx);
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return 召喚したモンスターの数を返す。
*/
-void spell_RF6_S_UNIQUE(int y, int x, int m_idx, int t_idx, int TARGET_TYPE)
+void spell_RF6_S_UNIQUE(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
int count = 0, k;
monster_type *m_ptr = &m_list[m_idx];
* @param m_idx 呪文を唱えるモンスターID
* @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。
*/
-int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx)
+HIT_POINT monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx)
{
switch (SPELL_NUM)
{
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
* @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。
*/
-int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx)
+HIT_POINT monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx)
{
switch (SPELL_NUM)
{
case RF6_SPELL_START + 8: spell_RF6_TELE_TO(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_TO */
case RF6_SPELL_START + 9: spell_RF6_TELE_AWAY(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_AWAY */
case RF6_SPELL_START + 10: spell_RF6_TELE_LEVEL(m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_TELE_LEVEL */
- case RF6_SPELL_START + 11: spell_RF6_PSY_SPEAR(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_PSY_SPEAR */
+ case RF6_SPELL_START + 11: return spell_RF6_PSY_SPEAR(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_PSY_SPEAR */
case RF6_SPELL_START + 12: spell_RF6_DARKNESS(y, x, m_idx, t_idx, MONSTER_TO_MONSTER); break; /* RF6_DARKNESS */
case RF6_SPELL_START + 13: return -1; /* RF6_TRAPS */
case RF6_SPELL_START + 14: return -1; /* RF6_FORGET */
* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
*/
-int monspell_damage_roll(int dam, int dice_num, int dice_side, int mult, int div, int TYPE)
+HIT_POINT monspell_damage_roll(HIT_POINT dam, int dice_num, int dice_side, int mult, int div, int TYPE)
{
switch (TYPE)
{
* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
*/
-int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, int shoot_dd, int shoot_ds, int shoot_base, int TYPE)
+HIT_POINT monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, int shoot_dd, int shoot_ds, int shoot_base, int TYPE)
{
- int dam = 0, dice_num = 0, dice_side = 0, mult = 1, div = 1;
+ HIT_POINT dam = 0, dice_num = 0, dice_side = 0, mult = 1, div = 1;
switch (SPELL_NUM)
{
* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
*/
-int monspell_damage(int SPELL_NUM, int m_idx, int TYPE)
+HIT_POINT monspell_damage(int SPELL_NUM, MONSTER_IDX m_idx, int TYPE)
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
*/
-int monspell_race_damage(int SPELL_NUM, int r_idx, int TYPE)
+HIT_POINT monspell_race_damage(int SPELL_NUM, MONRACE_IDX r_idx, int TYPE)
{
monster_race *r_ptr = &r_info[r_idx];
int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
* @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。
* @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。
*/
-int monspell_bluemage_damage(int SPELL_NUM, int plev, int TYPE)
+HIT_POINT monspell_bluemage_damage(int SPELL_NUM, PLAYER_LEVEL plev, int TYPE)
{
int hp = p_ptr->chp;
int shoot_dd = 1, shoot_ds = 1, shoot_base = 0;