#include "angband.h"
-#include "projection.h"
+#include "util.h"
+
+#include "floor.h"
+#include "grid.h"
#include "spells-summon.h"
#include "artifact.h"
#include "player-status.h"
#include "realm-hex.h"
+#include "player-move.h"
+#include "monster-spell.h"
+#include "monster-status.h"
+#include "spells.h"
+#include "melee.h"
+#include "player-effects.h"
+
-/*!
-* @brief モンスターIDを取り、モンスター名をm_nameに代入する /
-* @param m_idx モンスターID
-* @param 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);
-}
/*!
* @brief モンスター2体がプレイヤーの近くに居るかの判定 /
*/
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
return (m_ptr->cdis <= MAX_SIGHT) || (t_ptr->cdis <= MAX_SIGHT);
}
*/
bool see_monster(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
return is_seen(m_ptr);
}
*/
bool spell_learnable(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
/* Extract the "see-able-ness" */
bool seen = (!p_ptr->blind && m_ptr->ml);
bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
- return (seen && maneable && !world_monster);
-}
-
-/*!
-* @brief モンスターIDからモンスターのレベルを取得する /
-* @param m_idx モンスターID
-* @return モンスターのレベル
-*/
-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];
- int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
- return rlev;
+ return (seen && maneable && !current_world_ptr->timewalk_m_idx);
}
/*!
-* @brief モンスターIDからPOWERFULフラグの有無を取得する /
-* @param m_idx モンスターID
-* @return POWERFULフラグがあればTRUE、なければFALSEを返す。
-*/
-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];
- bool powerful = r_ptr->flags2 & RF2_POWERFUL ? TRUE : FALSE;
- return powerful;
-}
-
-/*!
-* @brief モンスターがユニーク召喚可能であるかを判定する /
+* @brief 特定条件のモンスター召喚のみPM_ALLOW_UNIQUEを許可する /
* @param m_idx モンスターID
* @return 召喚可能であればPM_ALLOW_UNIQUEを返す。
*/
-u32b monster_u_mode(MONSTER_IDX m_idx)
+BIT_FLAGS monster_u_mode(MONSTER_IDX m_idx)
{
- u32b u_mode = 0L;
- monster_type *m_ptr = &m_list[m_idx];
+ BIT_FLAGS u_mode = 0L;
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
bool pet = is_pet(m_ptr);
if (!pet) u_mode |= PM_ALLOW_UNIQUE;
return u_mode;
}
/*!
-* @brief モンスターを起こす /
-* @param t_idx モンスターID
-*/
-void monster_wakeup(MONSTER_IDX t_idx)
-{
- (void)set_monster_csleep(t_idx, 0);
-}
-
-/*!
* @brief モンスターが呪文行使する際のメッセージを処理する汎用関数 /
* @param m_idx 呪文を唱えるモンスターID
* @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
}
else if (TARGET_TYPE == MONSTER_TO_MONSTER)
{
- monster_wakeup(t_idx);
+ set_monster_csleep(t_idx, 0);
}
}
HIT_POINT dam, ms_type, drs_type = 0;
concptr type_s;
bool smart_learn_aux = TRUE;
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_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);
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
if (m_ptr->r_idx == MON_ROLENTO)
{
*/
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
HIT_POINT dam;
GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN];
*/
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 = ¤t_floor_ptr->m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
HIT_POINT dam;
GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN];
{
if (see_t) msg_format(msg4, t_name);
}
- monster_wakeup(t_idx);
+ set_monster_csleep(t_idx, 0);
}
}
*/
void spell_RF5_SCARE(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
*/
void spell_RF5_BLIND(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
*/
void spell_RF5_CONF(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
*/
void spell_RF5_SLOW(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
*/
void spell_RF5_HOLD(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
GAME_TEXT m_name[MAX_NLEN];
monster_name(m_idx, m_name);
*/
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);
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ DEPTH rlev = monster_level_idx(m_idx);
bool seen = (!p_ptr->blind && m_ptr->ml);
GAME_TEXT m_name[MAX_NLEN];
monster_name(m_idx, m_name);
*/
void spell_RF6_INVULNER(MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
bool seen = (!p_ptr->blind && m_ptr->ml);
monspell_message_base(m_idx, t_idx,
*/
HIT_POINT spell_RF6_WORLD(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
MONSTER_IDX who = 0;
GAME_TEXT m_name[MAX_NLEN];
monster_name(m_idx, m_name);
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);
+ if (!set_monster_timewalk(randint1(2) + 2, who, TRUE)) return (FALSE);
return who;
}
*/
HIT_POINT spell_RF6_SPECIAL_BANORLUPART(MONSTER_IDX m_idx)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
HIT_POINT dummy_hp, dummy_maxhp;
MONSTER_IDX k;
POSITION dummy_y = m_ptr->fy;
if (p_ptr->inside_arena || p_ptr->inside_battle || !summon_possible(m_ptr->fy, m_ptr->fx))
return -1;
- delete_monster_idx(grid_array[m_ptr->fy][m_ptr->fx].m_idx);
+ delete_monster_idx(current_floor_ptr->grid_array[m_ptr->fy][m_ptr->fx].m_idx);
summon_named_creature(0, dummy_y, dummy_x, MON_BANOR, mode);
- m_list[hack_m_idx_ii].hp = dummy_hp;
- m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
+ current_floor_ptr->m_list[hack_m_idx_ii].hp = dummy_hp;
+ current_floor_ptr->m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
summon_named_creature(0, dummy_y, dummy_x, MON_LUPART, mode);
- m_list[hack_m_idx_ii].hp = dummy_hp;
- m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
+ current_floor_ptr->m_list[hack_m_idx_ii].hp = dummy_hp;
+ current_floor_ptr->m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
msg_print(_("『バーノール・ルパート』が分裂した!","Banor=Rupart splits in two person!"));
break;
for (k = 1; k < m_max; k++)
{
- if (m_list[k].r_idx == MON_BANOR || m_list[k].r_idx == MON_LUPART)
+ if (current_floor_ptr->m_list[k].r_idx == MON_BANOR || current_floor_ptr->m_list[k].r_idx == MON_LUPART)
{
- dummy_hp += m_list[k].hp;
- dummy_maxhp += m_list[k].maxhp;
- if (m_list[k].r_idx != m_ptr->r_idx)
+ dummy_hp += current_floor_ptr->m_list[k].hp;
+ dummy_maxhp += current_floor_ptr->m_list[k].maxhp;
+ if (current_floor_ptr->m_list[k].r_idx != m_ptr->r_idx)
{
- dummy_y = m_list[k].fy;
- dummy_x = m_list[k].fx;
+ dummy_y = current_floor_ptr->m_list[k].fy;
+ dummy_x = current_floor_ptr->m_list[k].fx;
}
delete_monster_idx(k);
}
}
summon_named_creature(0, dummy_y, dummy_x, MON_BANORLUPART, mode);
- m_list[hack_m_idx_ii].hp = dummy_hp;
- m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
+ current_floor_ptr->m_list[hack_m_idx_ii].hp = dummy_hp;
+ current_floor_ptr->m_list[hack_m_idx_ii].maxhp = dummy_maxhp;
msg_print(_("『バーノール』と『ルパート』が合体した!", "Banor and Rupart combine into one!"));
break;
HIT_POINT spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, MONSTER_IDX t_idx, int TARGET_TYPE)
{
HIT_POINT dam = -1;
- monster_type *m_ptr = &m_list[m_idx];
- monster_type *t_ptr = &m_list[t_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ monster_type *t_ptr = ¤t_floor_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);
}
if(monster_to_player && p_ptr->riding)
- mon_take_hit_mon(p_ptr->riding, dam, &dead, &fear, extract_note_dies(real_r_idx(&m_list[p_ptr->riding])), m_idx);
+ mon_take_hit_mon(p_ptr->riding, dam, &dead, &fear, extract_note_dies(real_r_idx(¤t_floor_ptr->m_list[p_ptr->riding])), m_idx);
if(monster_to_monster)
mon_take_hit_mon(t_idx, dam, &dead, &fear, extract_note_dies(real_r_idx(t_ptr)), m_idx);
*/
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_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
disturb(TRUE, TRUE);
*/
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
simple_monspell_message(m_idx, t_idx,
else
teleport_monster_to(t_idx, m_ptr->fy, m_ptr->fx, 100, TELEPORT_PASSIVE);
}
- monster_wakeup(t_idx);
+
+ set_monster_csleep(t_idx, 0);
}
}
*/
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_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
simple_monspell_message(m_idx, t_idx,
else
teleport_away(t_idx, MAX_SIGHT * 2 + 5, TELEPORT_PASSIVE);
}
- monster_wakeup(t_idx);
+
+ set_monster_csleep(t_idx, 0);
}
}
*/
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_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *tr_ptr = &r_info[t_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER)
*/
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];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ monster_type *t_ptr = ¤t_floor_ptr->m_list[t_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
bool can_use_lite_area = FALSE;
bool monster_to_monster = TARGET_TYPE == MONSTER_TO_MONSTER;
*/
void spell_RF6_FORGET(MONSTER_IDX m_idx)
{
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
GAME_TEXT m_name[MAX_NLEN];
monster_name(m_idx, m_name);
*/
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 = ¤t_floor_ptr->m_list[m_idx];
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
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_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
for (k = 0; k < 4; k++)
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);
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
int count = 0;
GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN], m_poss[80];
monster_name(m_idx, m_name);
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];
- int rlev = monster_level_idx(m_idx);
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
int count = 0, k;
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
monspell_message(m_idx, t_idx,
_("%^sが何かをつぶやいた。", "%^s mumbles."),
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
{
int count = 0, k;
int num = 1;
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
monspell_message(m_idx, t_idx,
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
monspell_message(m_idx, t_idx,
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
monspell_message(m_idx, t_idx,
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
monspell_message(m_idx, t_idx,
{
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);
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ DEPTH rlev = monster_level_idx(m_idx);
int k, count = 0;
GAME_TEXT m_name[MAX_NLEN];
monster_name(m_idx, m_name);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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);
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
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];
- int rlev = monster_level_idx(m_idx);
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
+ DEPTH rlev = monster_level_idx(m_idx);
bool mon_to_mon = (TARGET_TYPE == MONSTER_TO_MONSTER);
bool mon_to_player = (TARGET_TYPE == MONSTER_TO_PLAYER);
bool uniques_are_summoned = FALSE;
*/
HIT_POINT monspell_damage(int SPELL_NUM, MONSTER_IDX m_idx, int TYPE)
{
- monster_type *m_ptr = &m_list[m_idx];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
int hp;
- int rlev = monster_level_idx(m_idx);
+ DEPTH rlev = monster_level_idx(m_idx);
int shoot_dd = r_ptr->blow[0].d_dice;
int shoot_ds = r_ptr->blow[0].d_side;