lore_do_probe(r_idx);
/* Save this monster ID */
- monster_race_track(r_idx);
+ monster_race_track(player_ptr, r_idx);
handle_stuff(player_ptr);
/* know every thing mode */
if (m_ptr->ml)
{
- if (!creature_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!creature_ptr->image) monster_race_track(creature_ptr, m_ptr->ap_r_idx);
health_track(creature_ptr, g_ptr->m_idx);
}
}
tdam, m_ptr->hp - tdam, m_ptr->maxhp, m_ptr->max_maxhp);
/* Hit the monster, check for death */
- if (mon_take_hit(g_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_idx(m_ptr))))
+ if (mon_take_hit(creature_ptr, g_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_idx(m_ptr))))
{
/* Dead monster */
}
if (!visual_only)
{
/* Mega Hack -- track this monster race */
- if (mon_cnt) monster_race_track(mon_idx[mon_cur]);
+ if (mon_cnt) monster_race_track(creature_ptr, mon_idx[mon_cur]);
handle_stuff(creature_ptr);
}
if (!visual_only)
{
/* Mega Hack -- track this object */
- if (object_cnt) object_kind_track(object_idx[object_cur]);
+ if (object_cnt) object_kind_track(creature_ptr, object_idx[object_cur]);
/* The "current" object changed */
if (object_old != object_idx[object_cur])
r_idx = who[i];
/* Hack -- Auto-recall */
- monster_race_track(r_idx);
+ monster_race_track(creature_ptr, r_idx);
handle_stuff(creature_ptr);
/* Interact */
use_realm = tval2realm(o_ptr->tval);
/* Track the object kind */
- object_kind_track(o_ptr->k_idx);
+ object_kind_track(caster_ptr, o_ptr->k_idx);
handle_stuff(caster_ptr);
/* Extract spells */
}
/* Track the object kind */
- object_kind_track(o_ptr->k_idx);
+ object_kind_track(caster_ptr, o_ptr->k_idx);
handle_stuff(caster_ptr);
/* Mage -- Learn a selected spell */
if ((caster_ptr->pclass != CLASS_SORCERER) && (caster_ptr->pclass != CLASS_RED_MAGE) && (o_ptr->tval == REALM2_BOOK)) increment = 32;
/* Track the object kind */
- object_kind_track(o_ptr->k_idx);
+ object_kind_track(caster_ptr, o_ptr->k_idx);
handle_stuff(caster_ptr);
if ((caster_ptr->pclass == CLASS_SORCERER) || (caster_ptr->pclass == CLASS_RED_MAGE))
/*!
* @brief プレイヤーの変異要素による打撃処理
+* @param attacker_ptr プレーヤーへの参照ポインタ
* @param m_idx 攻撃目標となったモンスターの参照ID
* @param attack 変異要素による攻撃要素の種類
* @param fear 攻撃を受けたモンスターが恐慌状態に陥ったかを返す参照ポインタ
* @param mdeath 攻撃を受けたモンスターが死亡したかを返す参照ポインタ
* @return なし
*/
-static void natural_attack(MONSTER_IDX m_idx, int attack, bool *fear, bool *mdeath)
+static void natural_attack(player_type *attacker_ptr, MONSTER_IDX m_idx, int attack, bool *fear, bool *mdeath)
{
HIT_POINT k;
int bonus, chance;
*mdeath = (m_ptr->r_idx == 0);
break;
case MUT2_HORNS:
- *mdeath = mon_take_hit(m_idx, k, fear, NULL);
+ *mdeath = mon_take_hit(attacker_ptr, m_idx, k, fear, NULL);
break;
case MUT2_BEAK:
- *mdeath = mon_take_hit(m_idx, k, fear, NULL);
+ *mdeath = mon_take_hit(attacker_ptr, m_idx, k, fear, NULL);
break;
case MUT2_TRUNK:
- *mdeath = mon_take_hit(m_idx, k, fear, NULL);
+ *mdeath = mon_take_hit(attacker_ptr, m_idx, k, fear, NULL);
break;
case MUT2_TENTACLES:
- *mdeath = mon_take_hit(m_idx, k, fear, NULL);
+ *mdeath = mon_take_hit(attacker_ptr, m_idx, k, fear, NULL);
break;
default:
- *mdeath = mon_take_hit(m_idx, k, fear, NULL);
+ *mdeath = mon_take_hit(attacker_ptr, m_idx, k, fear, NULL);
}
touch_zap_player(m_ptr, p_ptr);
drain_result = m_ptr->hp;
/* Damage, check for fear and death */
- if (mon_take_hit(g_ptr->m_idx, k, fear, NULL))
+ if (mon_take_hit(attacker_ptr, g_ptr->m_idx, k, fear, NULL))
{
*mdeath = TRUE;
if ((attacker_ptr->pclass == CLASS_BERSERKER) && attacker_ptr->energy_use)
if (m_ptr->ml)
{
/* Auto-Recall if possible and visible */
- if (!attacker_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!attacker_ptr->image) monster_race_track(attacker_ptr, m_ptr->ap_r_idx);
health_track(attacker_ptr, g_ptr->m_idx);
}
if (!mdeath)
{
if ((attacker_ptr->muta2 & MUT2_HORNS) && !mdeath)
- natural_attack(g_ptr->m_idx, MUT2_HORNS, &fear, &mdeath);
+ natural_attack(attacker_ptr, g_ptr->m_idx, MUT2_HORNS, &fear, &mdeath);
if ((attacker_ptr->muta2 & MUT2_BEAK) && !mdeath)
- natural_attack(g_ptr->m_idx, MUT2_BEAK, &fear, &mdeath);
+ natural_attack(attacker_ptr, g_ptr->m_idx, MUT2_BEAK, &fear, &mdeath);
if ((attacker_ptr->muta2 & MUT2_SCOR_TAIL) && !mdeath)
- natural_attack(g_ptr->m_idx, MUT2_SCOR_TAIL, &fear, &mdeath);
+ natural_attack(attacker_ptr, g_ptr->m_idx, MUT2_SCOR_TAIL, &fear, &mdeath);
if ((attacker_ptr->muta2 & MUT2_TRUNK) && !mdeath)
- natural_attack(g_ptr->m_idx, MUT2_TRUNK, &fear, &mdeath);
+ natural_attack(attacker_ptr, g_ptr->m_idx, MUT2_TRUNK, &fear, &mdeath);
if ((attacker_ptr->muta2 & MUT2_TENTACLES) && !mdeath)
- natural_attack(g_ptr->m_idx, MUT2_TENTACLES, &fear, &mdeath);
+ natural_attack(attacker_ptr, g_ptr->m_idx, MUT2_TENTACLES, &fear, &mdeath);
}
/* Hack -- delay fear messages */
{
sound(SOUND_EXPLODE);
- if (mon_take_hit(m_idx, m_ptr->hp + 1, &fear, NULL))
+ if (mon_take_hit(target_ptr, m_idx, m_ptr->hp + 1, &fear, NULL))
{
blinked = FALSE;
alive = FALSE;
msg_format(_("%^sは突然熱くなった!", "%^s is suddenly very hot!"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は灰の山になった。", " turns into a pile of ash.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は灰の山になった。", " turns into a pile of ash.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("%^sは電撃をくらった!", "%^s gets zapped!"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は燃え殻の山になった。", " turns into a pile of cinder.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は燃え殻の山になった。", " turns into a pile of cinder.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("%^sは冷気をくらった!", "%^s is very cold!"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は凍りついた。", " was frozen.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は凍りついた。", " was frozen.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("%^sは鏡の破片をくらった!", "%^s gets zapped!"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("はズタズタになった。", " had torn to pieces.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("はズタズタになった。", " had torn to pieces.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("%^sは聖なるオーラで傷ついた!", "%^s is injured by holy power!"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("%^sが鋭い闘気のオーラで傷ついた!", "%^s is injured by the Force"), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
{
blinked = FALSE;
alive = FALSE;
dam = mon_damage_mod(m_ptr, dam, FALSE);
msg_format(_("影のオーラが%^sに反撃した!", "Enveloping shadows attack %^s."), m_name);
- if (mon_take_hit(m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
+ if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed.")))
{
blinked = FALSE;
alive = FALSE;
if (m_ptr->ml)
{
- if (!shooter_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!shooter_ptr->image) monster_race_track(shooter_ptr, m_ptr->ap_r_idx);
health_track(shooter_ptr, c_mon_ptr->m_idx);
}
}
}
/* Hit the monster, check for death */
- if (mon_take_hit(c_mon_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_idx(m_ptr))))
+ if (mon_take_hit(shooter_ptr, c_mon_ptr->m_idx, tdam, &fear, extract_note_dies(real_r_idx(m_ptr))))
{
/* Dead monster */
}
if (m_ptr->ml)
{
/* Auto-Recall if possible and visible */
- if (!caster_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
health_track(caster_ptr, m_idx);
}
* to induce changes in the monster recall code.
* </pre>
*/
-bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, concptr note)
+bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, concptr note)
{
- monster_type *m_ptr = &p_ptr->current_floor_ptr->m_list[m_idx];
+ monster_type *m_ptr = &target_ptr->current_floor_ptr->m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
monster_type exp_mon;
if (!monster_is_valid(m_ptr)) m_idx = 0;
/* Redraw (later) if needed */
- if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
+ if (target_ptr->health_who == m_idx) target_ptr->redraw |= (PR_HEALTH);
+ if (target_ptr->riding == m_idx) target_ptr->redraw |= (PR_UHEALTH);
(void)set_monster_csleep(m_idx, 0);
/* Hack - Cancel any special player stealth magics. -LM- */
- if (p_ptr->special_defense & NINJA_S_STEALTH)
+ if (target_ptr->special_defense & NINJA_S_STEALTH)
{
- set_superstealth(p_ptr, FALSE);
+ set_superstealth(target_ptr, FALSE);
}
/* Genocided by chaos patron */
if (r_ptr->r_akills < MAX_SHORT) r_ptr->r_akills++;
/* Recall even invisible uniques or winners */
- if ((m_ptr->ml && !p_ptr->image) || (r_ptr->flags1 & RF1_UNIQUE))
+ if ((m_ptr->ml && !target_ptr->image) || (r_ptr->flags1 & RF1_UNIQUE))
{
/* Count kills this life */
if ((m_ptr->mflag2 & MFLAG2_KAGE) && (r_info[MON_KAGE].r_pkills < MAX_SHORT)) r_info[MON_KAGE].r_pkills++;
else if (r_ptr->r_tkills < MAX_SHORT) r_ptr->r_tkills++;
/* Hack -- Auto-recall */
- monster_race_track(m_ptr->ap_r_idx);
+ monster_race_track(target_ptr, m_ptr->ap_r_idx);
}
monster_desc(m_name, m_ptr, MD_TRUE_NAME);
do
{
- stop_ty = activate_ty_curse(p_ptr, stop_ty, &count);
+ stop_ty = activate_ty_curse(target_ptr, stop_ty, &count);
} while (--curses);
}
#ifdef WORLD_SCORE
if (m_ptr->r_idx == MON_SERPENT)
{
- screen_dump = make_screen_dump(p_ptr);
+ screen_dump = make_screen_dump(target_ptr);
}
#endif
}
- if (!(d_info[p_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
+ if (!(d_info[target_ptr->dungeon_idx].flags1 & DF1_BEGINNER))
{
- if (!p_ptr->current_floor_ptr->dun_level && !p_ptr->ambush_flag && !p_ptr->current_floor_ptr->inside_arena)
+ if (!target_ptr->current_floor_ptr->dun_level && !target_ptr->ambush_flag && !target_ptr->current_floor_ptr->inside_arena)
{
- chg_virtue(p_ptr, V_VALOUR, -1);
+ chg_virtue(target_ptr, V_VALOUR, -1);
}
- else if (r_ptr->level > p_ptr->current_floor_ptr->dun_level)
+ else if (r_ptr->level > target_ptr->current_floor_ptr->dun_level)
{
- if (randint1(10) <= (r_ptr->level - p_ptr->current_floor_ptr->dun_level))
- chg_virtue(p_ptr, V_VALOUR, 1);
+ if (randint1(10) <= (r_ptr->level - target_ptr->current_floor_ptr->dun_level))
+ chg_virtue(target_ptr, V_VALOUR, 1);
}
if (r_ptr->level > 60)
{
- chg_virtue(p_ptr, V_VALOUR, 1);
+ chg_virtue(target_ptr, V_VALOUR, 1);
}
- if (r_ptr->level >= 2 * (p_ptr->lev + 1))
- chg_virtue(p_ptr, V_VALOUR, 2);
+ if (r_ptr->level >= 2 * (target_ptr->lev + 1))
+ chg_virtue(target_ptr, V_VALOUR, 2);
}
if (r_ptr->flags1 & RF1_UNIQUE)
{
- if (r_ptr->flags3 & (RF3_EVIL | RF3_GOOD)) chg_virtue(p_ptr, V_HARMONY, 2);
+ if (r_ptr->flags3 & (RF3_EVIL | RF3_GOOD)) chg_virtue(target_ptr, V_HARMONY, 2);
if (r_ptr->flags3 & RF3_GOOD)
{
- chg_virtue(p_ptr, V_UNLIFE, 2);
- chg_virtue(p_ptr, V_VITALITY, -2);
+ chg_virtue(target_ptr, V_UNLIFE, 2);
+ chg_virtue(target_ptr, V_VITALITY, -2);
}
- if (one_in_(3)) chg_virtue(p_ptr, V_INDIVIDUALISM, -1);
+ if (one_in_(3)) chg_virtue(target_ptr, V_INDIVIDUALISM, -1);
}
if (m_ptr->r_idx == MON_BEGGAR || m_ptr->r_idx == MON_LEPER)
{
- chg_virtue(p_ptr, V_COMPASSION, -1);
+ chg_virtue(target_ptr, V_COMPASSION, -1);
}
- if ((r_ptr->flags3 & RF3_GOOD) && ((r_ptr->level) / 10 + (3 * p_ptr->current_floor_ptr->dun_level) >= randint1(100)))
- chg_virtue(p_ptr, V_UNLIFE, 1);
+ if ((r_ptr->flags3 & RF3_GOOD) && ((r_ptr->level) / 10 + (3 * target_ptr->current_floor_ptr->dun_level) >= randint1(100)))
+ chg_virtue(target_ptr, V_UNLIFE, 1);
if (r_ptr->d_char == 'A')
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(p_ptr, V_FAITH, -2);
- else if ((r_ptr->level) / 10 + (3 * p_ptr->current_floor_ptr->dun_level) >= randint1(100))
+ chg_virtue(target_ptr, V_FAITH, -2);
+ else if ((r_ptr->level) / 10 + (3 * target_ptr->current_floor_ptr->dun_level) >= randint1(100))
{
- if (r_ptr->flags3 & RF3_GOOD) chg_virtue(p_ptr, V_FAITH, -1);
- else chg_virtue(p_ptr, V_FAITH, 1);
+ if (r_ptr->flags3 & RF3_GOOD) chg_virtue(target_ptr, V_FAITH, -1);
+ else chg_virtue(target_ptr, V_FAITH, 1);
}
}
else if (r_ptr->flags3 & RF3_DEMON)
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(p_ptr, V_FAITH, 2);
- else if ((r_ptr->level) / 10 + (3 * p_ptr->current_floor_ptr->dun_level) >= randint1(100))
- chg_virtue(p_ptr, V_FAITH, 1);
+ chg_virtue(target_ptr, V_FAITH, 2);
+ else if ((r_ptr->level) / 10 + (3 * target_ptr->current_floor_ptr->dun_level) >= randint1(100))
+ chg_virtue(target_ptr, V_FAITH, 1);
}
if ((r_ptr->flags3 & RF3_UNDEAD) && (r_ptr->flags1 & RF1_UNIQUE))
- chg_virtue(p_ptr, V_VITALITY, 2);
+ chg_virtue(target_ptr, V_VITALITY, 2);
if (r_ptr->r_deaths)
{
if (r_ptr->flags1 & RF1_UNIQUE)
{
- chg_virtue(p_ptr, V_HONOUR, 10);
+ chg_virtue(target_ptr, V_HONOUR, 10);
}
- else if ((r_ptr->level) / 10 + (2 * p_ptr->current_floor_ptr->dun_level) >= randint1(100))
+ else if ((r_ptr->level) / 10 + (2 * target_ptr->current_floor_ptr->dun_level) >= randint1(100))
{
- chg_virtue(p_ptr, V_HONOUR, 1);
+ chg_virtue(target_ptr, V_HONOUR, 1);
}
}
if ((r_ptr->flags2 & RF2_MULTIPLY) && (r_ptr->r_akills > 1000) && one_in_(10))
{
- chg_virtue(p_ptr, V_VALOUR, -1);
+ chg_virtue(target_ptr, V_VALOUR, -1);
}
for (i = 0; i < 4; i++)
if (thief)
{
if (r_ptr->flags1 & RF1_UNIQUE)
- chg_virtue(p_ptr, V_JUSTICE, 3);
- else if (1 + ((r_ptr->level) / 10 + (2 * p_ptr->current_floor_ptr->dun_level)) >= randint1(100))
- chg_virtue(p_ptr, V_JUSTICE, 1);
+ chg_virtue(target_ptr, V_JUSTICE, 3);
+ else if (1 + ((r_ptr->level) / 10 + (2 * target_ptr->current_floor_ptr->dun_level)) >= randint1(100))
+ chg_virtue(target_ptr, V_JUSTICE, 1);
}
else if (innocent)
{
- chg_virtue(p_ptr, V_JUSTICE, -1);
+ chg_virtue(target_ptr, V_JUSTICE, -1);
}
if ((r_ptr->flags3 & RF3_ANIMAL) && !(r_ptr->flags3 & RF3_EVIL) && !(r_ptr->flags4 & ~(RF4_NOMAGIC_MASK)) && !(r_ptr->a_ability_flags1 & ~(RF5_NOMAGIC_MASK)) && !(r_ptr->a_ability_flags2 & ~(RF6_NOMAGIC_MASK)))
{
- if (one_in_(4)) chg_virtue(p_ptr, V_NATURE, -1);
+ if (one_in_(4)) chg_virtue(target_ptr, V_NATURE, -1);
}
if ((r_ptr->flags1 & RF1_UNIQUE) && record_destroy_uniq)
{
char note_buf[160];
sprintf(note_buf, "%s%s", r_name + r_ptr->name, (m_ptr->smart & SM_CLONED) ? _("(クローン)", "(Clone)") : "");
- exe_write_diary(p_ptr, NIKKI_UNIQUE, 0, note_buf);
+ exe_write_diary(target_ptr, NIKKI_UNIQUE, 0, note_buf);
}
/* Make a sound */
else if (!m_ptr->ml)
{
#ifdef JP
- if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (p_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+ if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
msg_format("せっかくだから%sを殺した。", m_name);
else
msg_format("%sを殺した。", m_name);
else
{
#ifdef JP
- if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (p_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+ if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
msg_format("せっかくだから%sを倒した。", m_name);
else
msg_format("%sを倒した。", m_name);
else
{
#ifdef JP
- if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (p_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
+ if ((target_ptr->pseikaku == SEIKAKU_COMBAT) || (target_ptr->inventory_list[INVEN_BOW].name1 == ART_CRIMSON))
msg_format("せっかくだから%sを葬り去った。", m_name);
else
msg_format("%sを葬り去った。", m_name);
monster_death(m_idx, TRUE);
/* Mega hack : replace IKETA to BIKETAL */
- if ((m_ptr->r_idx == MON_IKETA) && !(p_ptr->current_floor_ptr->inside_arena || p_ptr->phase_out))
+ if ((m_ptr->r_idx == MON_IKETA) && !(target_ptr->current_floor_ptr->inside_arena || target_ptr->phase_out))
{
POSITION dummy_y = m_ptr->fy;
POSITION dummy_x = m_ptr->fx;
extern DEPTH monster_level_idx(MONSTER_IDX m_idx);
extern HIT_POINT mon_damage_mod(monster_type *m_ptr, HIT_POINT dam, bool is_psy_spear);
-extern bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, concptr note);
+extern bool mon_take_hit(player_type *target_ptr, MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, concptr note);
extern int get_mproc_idx(MONSTER_IDX m_idx, int mproc_type);
extern bool monster_is_valid(monster_type *m_ptr);
if (m_ptr->ml)
{
/* Auto-Recall if possible and visible */
- if (!creature_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!creature_ptr->image) monster_race_track(creature_ptr, m_ptr->ap_r_idx);
health_track(creature_ptr, g_ptr->m_idx);
}
bool fear = FALSE;
/* Hurt the monster, check for fear and death */
- if (mon_take_hit(g_ptr->m_idx, dam, &fear, note_dies))
+ if (mon_take_hit(caster_ptr, g_ptr->m_idx, dam, &fear, note_dies))
{
/* Dead monster */
}
if (m_ptr->ml)
{
- if (!caster_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
health_track(caster_ptr, caster_ptr->current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
}
}
if (m_ptr->ml)
{
- if (!caster_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
health_track(caster_ptr, caster_ptr->current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
}
}
if (m_ptr->ml)
{
- if (!caster_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
health_track(caster_ptr, caster_ptr->current_floor_ptr->grid_array[project_m_y][project_m_x].m_idx);
}
}
if (m_ptr->ml)
{
- if (!caster_ptr->image) monster_race_track(m_ptr->ap_r_idx);
+ if (!caster_ptr->image) monster_race_track(caster_ptr, m_ptr->ap_r_idx);
health_track(caster_ptr, caster_ptr->current_floor_ptr->grid_array[y][x].m_idx);
}
}
boring = FALSE;
monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
- monster_race_track(m_ptr->ap_r_idx);
+ monster_race_track(subject_ptr, m_ptr->ap_r_idx);
health_track(subject_ptr, g_ptr->m_idx);
handle_stuff(subject_ptr);
/*
* Hack -- track the given monster race
*/
-void monster_race_track(MONRACE_IDX r_idx)
+void monster_race_track(player_type *player_ptr, MONRACE_IDX r_idx)
{
- /* Save this monster ID */
p_ptr->monster_race_idx = r_idx;
-
p_ptr->window |= (PW_MONSTER);
}
+
/*
* Hack -- track the given object kind
*/
-void object_kind_track(KIND_OBJECT_IDX k_idx)
+void object_kind_track(player_type *player_ptr, KIND_OBJECT_IDX k_idx)
{
- /* Save this monster ID */
p_ptr->object_kind_idx = k_idx;
-
p_ptr->window |= (PW_OBJECT);
}
extern void print_monster_list(floor_type *floor_ptr, TERM_LEN x, TERM_LEN y, TERM_LEN max_lines);
extern void move_cursor_relative(int row, int col);
extern void print_path(player_type *player_ptr, POSITION y, POSITION x);
-extern void monster_race_track(MONRACE_IDX r_idx);
-extern void object_kind_track(KIND_OBJECT_IDX k_idx);
+extern void monster_race_track(player_type *player_ptr, MONRACE_IDX r_idx);
+extern void object_kind_track(player_type *player_ptr, KIND_OBJECT_IDX k_idx);
extern void resize_map(void);
extern void redraw_window(void);
extern bool change_panel(player_type *player_ptr, POSITION dy, POSITION dx);