#include "angband.h"
+#include "projection.h"
+#include "spells-summon.h"
+#include "artifact.h"
+#include "player-status.h"
/*!
* @brief モンスターIDを取り、モンスター名をm_nameに代入する /
* @param msg_flag_aux メッセージを分岐するためのフラグ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-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)
+static void monspell_message_base(MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, concptr 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)
{
* @param msg3 プレイヤーが盲目でなく、モンスター対象とする場合のメッセージ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-void monspell_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, cptr msg3, int TARGET_TYPE)
+void monspell_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr 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(MONSTER_IDX m_idx, MONSTER_IDX t_idx, cptr msg1, cptr msg2, int TARGET_TYPE)
+void simple_monspell_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, int TARGET_TYPE)
{
monspell_message_base(m_idx, t_idx, msg1, msg2, msg1, msg2, p_ptr->blind > 0, 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);
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
msg_print(_("やりやがったな!", ""));
+ else if ((p_ptr->pseikaku == SEIKAKU_CHARGEMAN))
+ {
+ if (randint0(2) == 0) msg_print(_("ジュラル星人め!", ""));
+ else msg_print(_("弱い者いじめは止めるんだ!", ""));
+ }
learn_spell(MS_DISPEL);
}
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 = 0;
- cptr type_s;
+ concptr type_s;
bool smart_learn_aux = TRUE;
monster_type *m_ptr = &m_list[m_idx];
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 (m_ptr->r_idx == MON_JAIAN && GF_TYPE == GF_SOUND)
{
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);
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))
{
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
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
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
* @return ダメージ量を返す。
*/
-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)
+void spell_RF5_CAUSE(int GF_TYPE, HIT_POINT dam, POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr 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
*/
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;
+ concptr msg1, msg2, msg3;
HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_1), m_idx, DAM_ROLL);
*/
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;
+ concptr msg1, msg2, msg3;
HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_2), m_idx, DAM_ROLL);
*/
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;
+ concptr msg1, msg2, msg3;
HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_3), m_idx, DAM_ROLL);
*/
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;
+ concptr msg1, msg2, msg3;
HIT_POINT dam;
dam = monspell_damage((MS_CAUSE_4), m_idx, DAM_ROLL);
* @param saving_throw 抵抗に成功したか判別するフラグ
* @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
*/
-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)
+void spell_badstatus_message(MONSTER_IDX m_idx, MONSTER_IDX t_idx, concptr msg1, concptr msg2, concptr msg3, concptr 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
}
else if (TARGET_TYPE == MONSTER_TO_MONSTER)
{
- cptr msg1;
- char t_name[80];
+ concptr msg1;
+ GAME_TEXT t_name[MAX_NLEN];
monster_name(t_idx, t_name);
if (streq(t_name, "it"))
}
else if (TARGET_TYPE == MONSTER_TO_MONSTER)
{
- cptr msg1;
- char t_name[80];
+ concptr msg1;
+ GAME_TEXT t_name[MAX_NLEN];
monster_name(t_idx, t_name);
if (streq(t_name, "it"))
{
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,
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."),
/* 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);
}
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."),
*/
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))
{
*/
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))
{
monster_type *m_ptr = &m_list[m_idx];
MONSTER_IDX who = 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_DIO) who = 1;
else if (m_ptr->r_idx == MON_WONG) who = 3;
if (!process_the_world(randint1(2) + 2, who, TRUE)) return (FALSE);
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,
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."),
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);
}
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;
}
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:
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)
{
if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
msg_print(_("くっそ~", ""));
-
+ else if ((p_ptr->pseikaku == SEIKAKU_CHARGEMAN))
+ {
+ if (randint0(2) == 0) msg_print(_("ジュラル星人め!", ""));
+ else msg_print(_("弱い者いじめは止めるんだ!", ""));
+ }
+
learn_spell(MS_TELE_AWAY);
teleport_player_away(m_idx, 100);
}
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)
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) &&
*/
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が何かをつぶやいて邪悪に微笑んだ。",
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);
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;
}
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;
}
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;
}
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;
}
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,
else
{
if (mon_to_player || (mon_to_mon && known && see_either))
- disturb(1, 1);
+ disturb(TRUE, TRUE);
if (p_ptr->blind)
{
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
{
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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) &&
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)
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)
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)
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;
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)
int shoot_dd = 1, shoot_ds = 1, shoot_base = 0;
object_type *o_ptr = NULL;
- if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
- else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
+ if (has_melee_weapon(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
+ else if (has_melee_weapon(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
if (o_ptr)
{