X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fmspells4.c;h=5baf6ad34382c0f9e91db05e45d1d589263852cd;hb=eff985f8a95fa47850c25c5e26d58e9844bed883;hp=f1af190ed97fe69253fdc5fb75e6a1daa8ef172b;hpb=9d4b877c27a36774ae5256db6237264298837607;p=hengband%2Fhengband.git diff --git a/src/mspells4.c b/src/mspells4.c index f1af190ed..5baf6ad34 100644 --- a/src/mspells4.c +++ b/src/mspells4.c @@ -25,7 +25,7 @@ void monster_name(MONSTER_IDX m_idx, char* m_name) * @param t_idx モンスターID二体目 * @return モンスター2体のどちらかがプレイヤーの近くに居ればTRUE、どちらも遠ければFALSEを返す。 */ -bool monster_near_player(MONSTER_IDX m_idx, IDX 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]; @@ -39,7 +39,7 @@ bool monster_near_player(MONSTER_IDX m_idx, IDX t_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); } @@ -50,7 +50,7 @@ bool see_monster(MONSTER_IDX 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); @@ -102,7 +102,7 @@ u32b monster_u_mode(MONSTER_IDX m_idx) * @brief モンスターを起こす / * @param t_idx モンスターID */ -void monster_wakeup(IDX t_idx) +void monster_wakeup(MONSTER_IDX t_idx) { (void)set_monster_csleep(t_idx, 0); } @@ -118,18 +118,18 @@ void monster_wakeup(IDX t_idx) * @param msg_flag_aux メッセージを分岐するためのフラグ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -static void monspell_message_base(MONSTER_IDX m_idx, IDX 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); bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER); bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; monster_name(m_idx, m_name); 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) { @@ -163,7 +163,7 @@ static void monspell_message_base(MONSTER_IDX m_idx, IDX t_idx, cptr msg1, cptr * @param msg3 プレイヤーが盲目でなく、モンスター対象とする場合のメッセージ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void monspell_message(MONSTER_IDX m_idx, IDX 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); } @@ -176,7 +176,7 @@ void monspell_message(MONSTER_IDX m_idx, IDX t_idx, cptr msg1, cptr msg2, cptr m * @param msg2 モンスター対象とする場合のメッセージ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void simple_monspell_message(MONSTER_IDX m_idx, IDX 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); } @@ -187,7 +187,7 @@ void simple_monspell_message(MONSTER_IDX m_idx, IDX t_idx, cptr msg1, cptr msg2, * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF4_SHRIEK(MONSTER_IDX m_idx, IDX 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."), @@ -210,9 +210,9 @@ void spell_RF4_SHRIEK(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF4_DISPEL(MONSTER_IDX m_idx, IDX 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]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; monster_name(m_idx, m_name); monster_name(t_idx, t_name); @@ -248,7 +248,7 @@ void spell_RF4_DISPEL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF4_ROCKET(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -274,7 +274,7 @@ int spell_RF4_ROCKET(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF4_SHOOT(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -301,9 +301,9 @@ int spell_RF4_SHOOT(int y, int x, MONSTER_IDX m_idx, IDX t_idx,int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF4_BREATH(int GF_TYPE, int y, int x, MONSTER_IDX m_idx, IDX 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) { - HIT_POINT 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]; @@ -311,7 +311,7 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, MONSTER_IDX m_idx, IDX t_idx, in bool see_either = see_monster(m_idx) || see_monster(t_idx); bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER); bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; monster_name(m_idx, m_name); monster_name(t_idx, t_name); @@ -450,11 +450,16 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, MONSTER_IDX m_idx, IDX t_idx, in 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) { @@ -502,7 +507,7 @@ int spell_RF4_BREATH(int GF_TYPE, int y, int x, MONSTER_IDX m_idx, IDX t_idx, in * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF4_BA_NUKE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -529,7 +534,7 @@ int spell_RF4_BA_NUKE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF4_BA_CHAO(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -556,7 +561,7 @@ int spell_RF4_BA_CHAO(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_ACID(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam, rad; @@ -585,7 +590,7 @@ int spell_RF5_BA_ACID(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_ELEC(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam, rad; @@ -614,7 +619,7 @@ int spell_RF5_BA_ELEC(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_FIRE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam, rad; monster_type *m_ptr = &m_list[m_idx]; @@ -654,7 +659,7 @@ int spell_RF5_BA_FIRE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_COLD(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam, rad; @@ -683,7 +688,7 @@ int spell_RF5_BA_COLD(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_POIS(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -710,7 +715,7 @@ int spell_RF5_BA_POIS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_NETH(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -737,14 +742,14 @@ int spell_RF5_BA_NETH(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_WATE(int y, int x, MONSTER_IDX m_idx, IDX 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) { 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); bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); @@ -777,7 +782,7 @@ int spell_RF5_BA_WATE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_MANA(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -801,7 +806,7 @@ int spell_RF5_BA_MANA(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_DARK(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -828,17 +833,17 @@ int spell_RF5_BA_DARK(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_DRAIN_MANA(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; 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)) { @@ -863,19 +868,19 @@ int spell_RF5_DRAIN_MANA(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_MIND_BLAST(int y, int x, MONSTER_IDX m_idx, IDX 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); HIT_POINT dam; - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; 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 @@ -900,19 +905,19 @@ int spell_RF5_MIND_BLAST(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BRAIN_SMASH(int y, int x, MONSTER_IDX m_idx, IDX 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); HIT_POINT dam; - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; 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 @@ -943,15 +948,15 @@ int spell_RF5_BRAIN_SMASH(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -void spell_RF5_CAUSE(int GF_TYPE, HIT_POINT dam, int y, int x, MONSTER_IDX m_idx, IDX 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]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; 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 (p_ptr->blind) msg_format(msg1, m_name); else @@ -980,7 +985,7 @@ void spell_RF5_CAUSE(int GF_TYPE, HIT_POINT dam, int y, int x, MONSTER_IDX m_idx * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_CAUSE_1(int y, int x, MONSTER_IDX m_idx, IDX 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; HIT_POINT dam; @@ -1003,7 +1008,7 @@ int spell_RF5_CAUSE_1(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_CAUSE_2(int y, int x, MONSTER_IDX m_idx, IDX 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; HIT_POINT dam; @@ -1026,7 +1031,7 @@ int spell_RF5_CAUSE_2(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_CAUSE_3(int y, int x, MONSTER_IDX m_idx, IDX 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; HIT_POINT dam; @@ -1049,7 +1054,7 @@ int spell_RF5_CAUSE_3(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_CAUSE_4(int y, int x, MONSTER_IDX m_idx, IDX 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; HIT_POINT dam; @@ -1072,7 +1077,7 @@ int spell_RF5_CAUSE_4(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_ACID(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1101,7 +1106,7 @@ int spell_RF5_BO_ACID(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_ELEC(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1130,7 +1135,7 @@ int spell_RF5_BO_ELEC(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_FIRE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1159,7 +1164,7 @@ int spell_RF5_BO_FIRE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_COLD(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1188,7 +1193,7 @@ int spell_RF5_BO_COLD(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BA_LITE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1215,7 +1220,7 @@ int spell_RF5_BA_LITE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_NETH(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1244,7 +1249,7 @@ int spell_RF5_BO_NETH(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_WATE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1272,7 +1277,7 @@ int spell_RF5_BO_WATE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_MANA(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1300,7 +1305,7 @@ int spell_RF5_BO_MANA(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_PLAS(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1328,7 +1333,7 @@ int spell_RF5_BO_PLAS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_BO_ICEE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1357,7 +1362,7 @@ int spell_RF5_BO_ICEE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF5_MISSILE(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -1388,18 +1393,18 @@ int spell_RF5_MISSILE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYP * @param saving_throw 抵抗に成功したか判別するフラグ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_badstatus_message(MONSTER_IDX m_idx, IDX 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); bool known = monster_near_player(m_idx, t_idx); - char m_name[80], t_name[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN]; 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 (p_ptr->blind) msg_format(msg1, m_name); else @@ -1450,7 +1455,7 @@ void spell_badstatus_message(MONSTER_IDX m_idx, IDX t_idx, cptr msg1, cptr msg2, * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF5_SCARE(MONSTER_IDX m_idx, IDX 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]; @@ -1500,7 +1505,7 @@ void spell_RF5_SCARE(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF5_BLIND(MONSTER_IDX m_idx, IDX 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]; @@ -1528,7 +1533,7 @@ void spell_RF5_BLIND(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) else if (TARGET_TYPE == MONSTER_TO_MONSTER) { cptr msg1; - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); if (streq(t_name, "it")) @@ -1563,7 +1568,7 @@ void spell_RF5_BLIND(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF5_CONF(MONSTER_IDX m_idx, IDX 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]; @@ -1613,7 +1618,7 @@ void spell_RF5_CONF(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF5_SLOW(MONSTER_IDX m_idx, IDX 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]; @@ -1641,7 +1646,7 @@ void spell_RF5_SLOW(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) else if (TARGET_TYPE == MONSTER_TO_MONSTER) { cptr msg1; - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); if (streq(t_name, "it")) @@ -1676,7 +1681,7 @@ void spell_RF5_SLOW(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF5_HOLD(MONSTER_IDX m_idx, IDX 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]; @@ -1726,11 +1731,11 @@ void spell_RF5_HOLD(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF6_HASTE(MONSTER_IDX m_idx, IDX 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]; - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); monspell_message_base(m_idx, t_idx, @@ -1758,7 +1763,7 @@ void spell_RF6_HASTE(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF6_HAND_DOOM(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam = 0; @@ -1786,17 +1791,16 @@ int spell_RF6_HAND_DOOM(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF6_HEAL(MONSTER_IDX m_idx, IDX 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); bool seen = (!p_ptr->blind && m_ptr->ml); - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; 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."), @@ -1813,7 +1817,6 @@ void spell_RF6_HEAL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) /* 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!"), @@ -1825,7 +1828,6 @@ void spell_RF6_HEAL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) /* Partially healed */ else { - /* Message */ monspell_message_base(m_idx, t_idx, _("%^sは体力を回復したようだ。", "%^s sounds healthier."), _("%^sは体力を回復したようだ。", "%^s sounds healthier."), @@ -1844,7 +1846,6 @@ void spell_RF6_HEAL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) /* Cancel fear */ (void)set_monster_monfear(m_idx, 0); - /* Message */ if (see_monster(m_idx)) msg_format(_("%^sは勇気を取り戻した。", "%^s recovers %s courage."), m_name); } @@ -1856,12 +1857,11 @@ void spell_RF6_HEAL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF6_INVULNER(MONSTER_IDX m_idx, IDX 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."), @@ -1879,11 +1879,11 @@ void spell_RF6_INVULNER(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) */ void spell_RF6_BLINK(MONSTER_IDX m_idx, int TARGET_TYPE) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); if (TARGET_TYPE==MONSTER_TO_PLAYER) - disturb(1, 1); + disturb(TRUE, TRUE); if (teleport_barrier(m_idx)) { @@ -1910,11 +1910,11 @@ void spell_RF6_BLINK(MONSTER_IDX m_idx, int TARGET_TYPE) */ void spell_RF6_TPORT(MONSTER_IDX m_idx, int TARGET_TYPE) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; 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)) @@ -1934,14 +1934,14 @@ void spell_RF6_TPORT(MONSTER_IDX m_idx, int TARGET_TYPE) * @brief RF6_WORLDの処理。時を止める。 / * @param m_idx 呪文を唱えるモンスターID */ -int spell_RF6_WORLD(MONSTER_IDX m_idx) +HIT_POINT spell_RF6_WORLD(MONSTER_IDX m_idx) { monster_type *m_ptr = &m_list[m_idx]; - int who = 0; - char m_name[80]; + MONSTER_IDX who = 0; + GAME_TEXT m_name[MAX_NLEN]; 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); @@ -1952,7 +1952,7 @@ int spell_RF6_WORLD(MONSTER_IDX m_idx) * @brief バーノール・ルパートのRF6_SPECIALの処理。分裂・合体。 / * @param m_idx 呪文を唱えるモンスターID */ -int spell_RF6_SPECIAL_BANORLUPART(MONSTER_IDX 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; @@ -2022,11 +2022,11 @@ int spell_RF6_SPECIAL_BANORLUPART(MONSTER_IDX m_idx) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF6_SPECIAL_ROLENTO(int y, int x, MONSTER_IDX m_idx, IDX 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."), @@ -2054,19 +2054,19 @@ int spell_RF6_SPECIAL_ROLENTO(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TA * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX 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) { - HIT_POINT 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]; bool monster_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER); bool monster_to_monster = (TARGET_TYPE == MONSTER_TO_MONSTER); bool direct = player_bold(y, x); - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); - disturb(1, 1); + disturb(TRUE, TRUE); if (one_in_(3) || !direct) { simple_monspell_message(m_idx, t_idx, @@ -2080,7 +2080,7 @@ int spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, in else { int get_damage = 0; - bool fear; /* dummy */ + bool fear, dead; /* dummy */ simple_monspell_message(m_idx, t_idx, _("%^sがあなたを掴んで空中から投げ落とした。", "%^s holds you, and drops from the sky."), @@ -2122,7 +2122,7 @@ int spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, in get_damage = take_hit(DAMAGE_NOESCAPE, dam, m_name, -1); if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead) { - char m_name_self[80]; + GAME_TEXT m_name_self[80]; /* hisself */ monster_desc(m_name_self, m_ptr, MD_PRON_VISIBLE | MD_POSSESSIVE | MD_OBJECTIVE); @@ -2134,10 +2134,10 @@ int spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, in } 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, &dead, &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, &dead, &fear, extract_note_dies(real_r_idx(t_ptr)), m_idx); } return dam; } @@ -2151,12 +2151,12 @@ int spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, in * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF6_SPECIAL(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX 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: @@ -2191,7 +2191,7 @@ int spell_RF6_SPECIAL(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, int * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -void spell_RF6_TELE_TO(MONSTER_IDX m_idx, IDX 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]; @@ -2210,7 +2210,7 @@ void spell_RF6_TELE_TO(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) else if (TARGET_TYPE == MONSTER_TO_MONSTER) { bool resists_tele = FALSE; - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); if (tr_ptr->flagsr & RFR_RES_TELE) @@ -2253,7 +2253,7 @@ void spell_RF6_TELE_TO(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -void spell_RF6_TELE_AWAY(MONSTER_IDX m_idx, IDX 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]; @@ -2274,7 +2274,7 @@ void spell_RF6_TELE_AWAY(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) else if (TARGET_TYPE == MONSTER_TO_MONSTER) { bool resists_tele = FALSE; - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); if (tr_ptr->flagsr & RFR_RES_TELE) @@ -2317,7 +2317,7 @@ void spell_RF6_TELE_AWAY(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -void spell_RF6_TELE_LEVEL(MONSTER_IDX m_idx, IDX 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]; @@ -2371,7 +2371,7 @@ void spell_RF6_TELE_LEVEL(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return ダメージ量を返す。 */ -int spell_RF6_PSY_SPEAR(int y, int x, MONSTER_IDX m_idx, IDX 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) { HIT_POINT dam; @@ -2394,7 +2394,7 @@ int spell_RF6_PSY_SPEAR(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF6_DARKNESS(int y, int x, MONSTER_IDX m_idx, IDX 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]; @@ -2402,7 +2402,7 @@ void spell_RF6_DARKNESS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T bool can_use_lite_area = FALSE; bool monster_to_monster = TARGET_TYPE == MONSTER_TO_MONSTER; bool monster_to_player = TARGET_TYPE == MONSTER_TO_PLAYER; - char t_name[80]; + GAME_TEXT t_name[MAX_NLEN]; monster_name(t_idx, t_name); if ((p_ptr->pclass == CLASS_NINJA) && @@ -2474,11 +2474,11 @@ void spell_RF6_DARKNESS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param x 対象の地点のx座標 * @param m_idx 呪文を唱えるモンスターID */ -void spell_RF6_TRAPS(int y, int x, MONSTER_IDX m_idx) +void spell_RF6_TRAPS(POSITION y, POSITION x, MONSTER_IDX m_idx) { - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); - disturb(1, 1); + disturb(TRUE, TRUE); if (p_ptr->blind) msg_format(_("%^sが何かをつぶやいて邪悪に微笑んだ。", @@ -2498,10 +2498,10 @@ void spell_RF6_TRAPS(int y, int x, MONSTER_IDX m_idx) void spell_RF6_FORGET(MONSTER_IDX m_idx) { int rlev = monster_level_idx(m_idx); - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); - disturb(1, 1); + disturb(TRUE, TRUE); msg_format(_("%^sがあなたの記憶を消去しようとしている。", "%^s tries to blank your mind."), m_name); @@ -2524,9 +2524,9 @@ void spell_RF6_FORGET(MONSTER_IDX m_idx) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER */ -void spell_RF6_RAISE_DEAD(MONSTER_IDX m_idx, IDX 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."), @@ -2546,13 +2546,13 @@ void spell_RF6_RAISE_DEAD(MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE) * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_EAGLE(int y, int x, int rlev, MONSTER_IDX 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); for (k = 0; k < num; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_EAGLES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); } return count; } @@ -2565,9 +2565,9 @@ int summon_EAGLE(int y, int x, int rlev, MONSTER_IDX m_idx) * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_IE(int y, int x, int rlev, MONSTER_IDX 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++) @@ -2587,7 +2587,7 @@ int summon_IE(int y, int x, int rlev, MONSTER_IDX m_idx) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -int summon_Guardian(int y, int x, int rlev, MONSTER_IDX m_idx, IDX 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); @@ -2609,7 +2609,7 @@ int summon_Guardian(int y, int x, int rlev, MONSTER_IDX m_idx, IDX t_idx, int TA for (k = 0; k < num; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_GUARDIANS, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); } return count; } @@ -2622,12 +2622,12 @@ int summon_Guardian(int y, int x, int rlev, MONSTER_IDX m_idx, IDX t_idx, int TA * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_LOCK_CLONE(int y, int x, int rlev, MONSTER_IDX 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); @@ -2643,13 +2643,13 @@ int summon_LOCK_CLONE(int y, int x, int rlev, MONSTER_IDX m_idx) * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_LOUSE(int y, int x, int rlev, MONSTER_IDX 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); for (k = 0; k < num; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_LOUSE, PM_ALLOW_GROUP, '\0'); } return count; } @@ -2662,16 +2662,15 @@ int summon_LOUSE(int y, int x, int rlev, MONSTER_IDX m_idx) * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_Kin(int y, int x, int rlev, MONSTER_IDX 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]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - summon_kin_type = r_ptr->d_char; /* Big hack */ + monster_type *m_ptr = &m_list[m_idx]; + monster_race *r_ptr = &r_info[m_ptr->r_idx]; for (k = 0; k < 4; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_KIN, PM_ALLOW_GROUP, r_ptr->d_char); } return count; } @@ -2685,7 +2684,7 @@ int summon_Kin(int y, int x, int rlev, MONSTER_IDX m_idx) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_KIN(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2695,12 +2694,12 @@ void spell_RF6_S_KIN(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE monster_race *r_ptr = &r_info[m_ptr->r_idx]; int rlev = monster_level_idx(m_idx); int count = 0; - char m_name[80], t_name[80], m_poss[80]; + GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN], m_poss[80]; monster_name(m_idx, m_name); 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, @@ -2712,7 +2711,7 @@ void spell_RF6_S_KIN(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE else { if (mon_to_player || (mon_to_mon && known && see_either)) - disturb(1, 1); + disturb(TRUE, TRUE); if (p_ptr->blind) { @@ -2778,7 +2777,7 @@ void spell_RF6_S_KIN(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_CYBER(int y, int x, MONSTER_IDX m_idx, IDX 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]; @@ -2794,7 +2793,7 @@ void spell_RF6_S_CYBER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY if (is_friendly(m_ptr) && mon_to_mon) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_CYBER, (PM_ALLOW_GROUP), '\0'); } else { @@ -2817,7 +2816,7 @@ void spell_RF6_S_CYBER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_MONSTER(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2833,10 +2832,10 @@ void spell_RF6_S_MONSTER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_ for (k = 0; k < 1; k++) { if(mon_to_player) - count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); if(mon_to_mon) - count += summon_specific(m_idx, y, x, rlev, 0, (monster_u_mode(m_idx))); + count += summon_specific(m_idx, y, x, rlev, 0, (monster_u_mode(m_idx)), '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -2855,7 +2854,7 @@ void spell_RF6_S_MONSTER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_ * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_MONSTERS(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2871,10 +2870,10 @@ void spell_RF6_S_MONSTERS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET for (k = 0; k < S_NUM_6; k++) { if(mon_to_player) - count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); if(mon_to_mon) - count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | monster_u_mode(m_idx))); + count += summon_specific(m_idx, y, x, rlev, 0, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -2893,7 +2892,7 @@ void spell_RF6_S_MONSTERS(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_ANT(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2908,7 +2907,7 @@ void spell_RF6_S_ANT(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE for (k = 0; k < S_NUM_6; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_ANT, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -2927,7 +2926,7 @@ void spell_RF6_S_ANT(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_SPIDER(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2942,7 +2941,7 @@ void spell_RF6_S_SPIDER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T for (k = 0; k < S_NUM_6; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_SPIDER, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -2961,7 +2960,7 @@ void spell_RF6_S_SPIDER(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_HOUND(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -2976,7 +2975,7 @@ void spell_RF6_S_HOUND(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY for (k = 0; k < S_NUM_4; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HOUND, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -2995,7 +2994,7 @@ void spell_RF6_S_HOUND(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_HYDRA(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3010,7 +3009,7 @@ void spell_RF6_S_HYDRA(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY for (k = 0; k < S_NUM_4; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HYDRA, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -3029,7 +3028,7 @@ void spell_RF6_S_HYDRA(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_ANGEL(int y, int x, MONSTER_IDX m_idx, IDX 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; @@ -3051,7 +3050,7 @@ void spell_RF6_S_ANGEL(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY for (k = 0; k < num; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_ANGEL, PM_ALLOW_GROUP, '\0'); } if (count < 2) @@ -3078,7 +3077,7 @@ void spell_RF6_S_ANGEL(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_DEMON(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3092,7 +3091,7 @@ void spell_RF6_S_DEMON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY for (k = 0; k < 1; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_DEMON, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count) @@ -3111,7 +3110,7 @@ void spell_RF6_S_DEMON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TY * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_UNDEAD(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3125,7 +3124,7 @@ void spell_RF6_S_UNDEAD(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T for (k = 0; k < 1; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_UNDEAD, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count) @@ -3144,7 +3143,7 @@ void spell_RF6_S_UNDEAD(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3158,7 +3157,7 @@ void spell_RF6_S_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T for (k = 0; k < 1; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP); + count += summon_specific(m_idx, y, x, rlev, SUMMON_DRAGON, PM_ALLOW_GROUP, '\0'); } if (p_ptr->blind && count) @@ -3175,13 +3174,13 @@ void spell_RF6_S_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param m_idx 呪文を唱えるモンスターID * @return 召喚したモンスターの数を返す。 */ -int summon_NAZGUL(POSITION y, POSITION x, MONSTER_IDX 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; POSITION cy = y; POSITION cx = x; - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; monster_name(m_idx, m_name); if (p_ptr->blind) @@ -3235,17 +3234,17 @@ int summon_NAZGUL(POSITION y, POSITION x, MONSTER_IDX m_idx) * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX 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); monster_type *m_ptr = &m_list[m_idx]; int rlev = monster_level_idx(m_idx); int k, count = 0; - char m_name[80]; + GAME_TEXT m_name[MAX_NLEN]; 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) && @@ -3264,10 +3263,10 @@ void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, for (k = 0; k < S_NUM_6; k++) { if(mon_to_player) - count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); if(mon_to_mon) - count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | monster_u_mode(m_idx))); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_UNDEAD, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0'); } } if (p_ptr->blind && count && mon_to_player) @@ -3288,7 +3287,7 @@ void spell_RF6_S_HI_UNDEAD(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_HI_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3304,10 +3303,10 @@ void spell_RF6_S_HI_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGE for (k = 0; k < S_NUM_4; k++) { if(mon_to_player) - count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); if(mon_to_mon) - count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | monster_u_mode(m_idx))); + count += summon_specific(m_idx, y, x, rlev, SUMMON_HI_DRAGON, (PM_ALLOW_GROUP | monster_u_mode(m_idx)), '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -3328,7 +3327,7 @@ void spell_RF6_S_HI_DRAGON(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGE * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_AMBERITES(int y, int x, MONSTER_IDX m_idx, IDX 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); @@ -3343,7 +3342,7 @@ void spell_RF6_S_AMBERITES(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGE for (k = 0; k < S_NUM_4; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_AMBERITES, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -3364,7 +3363,7 @@ void spell_RF6_S_AMBERITES(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGE * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER * @return 召喚したモンスターの数を返す。 */ -void spell_RF6_S_UNIQUE(int y, int x, MONSTER_IDX m_idx, IDX 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]; @@ -3382,7 +3381,7 @@ void spell_RF6_S_UNIQUE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T for (k = 0; k < S_NUM_4; k++) { - count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, SUMMON_UNIQUE, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); } if (count) uniques_are_summoned = TRUE; @@ -3394,7 +3393,7 @@ void spell_RF6_S_UNIQUE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T for (k = count; k < S_NUM_4; k++) { - count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE)); + count += summon_specific(m_idx, y, x, rlev, non_unique_type, (PM_ALLOW_GROUP | PM_ALLOW_UNIQUE), '\0'); } if (p_ptr->blind && count && mon_to_player) @@ -3417,7 +3416,7 @@ void spell_RF6_S_UNIQUE(int y, int x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_T * @param m_idx 呪文を唱えるモンスターID * @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。 */ -int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx) +HIT_POINT monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx) { switch (SPELL_NUM) { @@ -3530,7 +3529,7 @@ int monspell_to_player(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx) * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。 * @return 攻撃呪文のダメージ、または召喚したモンスターの数を返す。その他の場合0。以降の処理を中断するなら-1を返す。 */ -int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx, IDX 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) { @@ -3609,7 +3608,7 @@ int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx 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 */ @@ -3644,7 +3643,7 @@ int monspell_to_monster(int SPELL_NUM, POSITION y, POSITION x, MONSTER_IDX m_idx * @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。 * @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。 */ -int monspell_damage_roll(HIT_POINT 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) { @@ -3673,7 +3672,7 @@ int monspell_damage_roll(HIT_POINT dam, int dice_num, int dice_side, int mult, i * @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) { HIT_POINT dam = 0, dice_num = 0, dice_side = 0, mult = 1, div = 1; @@ -4090,7 +4089,7 @@ int monspell_damage_base(int SPELL_NUM, int hp, int rlev, bool powerful, int sho * @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。 * @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。 */ -int monspell_damage(int SPELL_NUM, MONSTER_IDX 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]; @@ -4117,7 +4116,7 @@ int monspell_damage(int SPELL_NUM, MONSTER_IDX m_idx, int TYPE) * @param TYPE DAM_MAXで最大値を返し、DAM_MINで最小値を返す。DAM_ROLLはダイスを振って値を決定する。 * @return 攻撃呪文のダメージを返す。攻撃呪文以外は-1を返す。 */ -int monspell_race_damage(int SPELL_NUM, MONRACE_IDX 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); @@ -4136,7 +4135,7 @@ int monspell_race_damage(int SPELL_NUM, MONRACE_IDX r_idx, int TYPE) * @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;