#include "realm-hex.h"
#include "object-hook.h"
#include "wild.h"
+#include "monster-status.h"
static bool load = TRUE; /*!<ロード処理中の分岐フラグ*/
* and create a first saved floor
*/
prepare_change_floor_mode(CFM_FIRST_FLOOR);
-
- /* Leaving */
p_ptr->leaving = TRUE;
}
/* Skip dead monsters */
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
/* Allow regeneration (if needed) */
if (m_ptr->hp < m_ptr->maxhp)
monster_race *r_ptr = &r_info[m_ptr->r_idx];
/* Paranoia -- Skip dead monsters */
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
if (r_ptr->level >= p_ptr->lev)
{
* and create a first saved floor
*/
prepare_change_floor_mode(CFM_FIRST_FLOOR);
-
- /* Leaving */
p_ptr->leaving = TRUE;
if (p_ptr->dungeon_idx == DUNGEON_ANGBAND)
* and create a first saved floor
*/
prepare_change_floor_mode(CFM_FIRST_FLOOR);
-
- /* Leaving */
p_ptr->leaving = TRUE;
}
else
int delta = 0;
/* Skip dead monsters */
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
/* Ignore pet */
if (is_pet(m_ptr)) continue;
/* Stop playing */
p_ptr->playing = FALSE;
-
- /* Leaving */
p_ptr->leaving = TRUE;
}
}
/* Check every feature */
for (i = 1; i < max_f_idx; i++)
{
- /* Access the index */
feature_type *f_ptr = &f_info[i];
/* Skip empty index */
/* Every 15 minutes after 11:00 pm */
if ((hour == 23) && !(min % 15))
{
- /* Disturbing */
disturb(FALSE, TRUE);
switch (min / 15)
/* Access the slot to be dropped */
o_ptr = &inventory[INVEN_PACK];
- /* Disturbing */
disturb(FALSE, TRUE);
/* Warning */
*/
static void process_player(void)
{
- IDX i;
+ MONSTER_IDX m_idx;
/*** Apply energy ***/
if (p_ptr->inside_battle)
{
- for(i = 1; i < m_max; i++)
+ for(m_idx = 1; m_idx < m_max; m_idx++)
{
- monster_type *m_ptr = ¤t_floor_ptr->m_list[i];
+ monster_type *m_ptr = ¤t_floor_ptr->m_list[m_idx];
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
m_ptr->mflag2 |= (MFLAG2_MARK | MFLAG2_SHOW);
- update_monster(i, FALSE);
+ update_monster(m_idx, FALSE);
}
prt_time();
}
}
}
- /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
handle_stuff();
}
process_command();
}
-
/* Hack -- Pack Overflow */
pack_overflow();
-
/*** Clean up ***/
/* Significant */
shimmer_monsters = FALSE;
/* Shimmer multi-hued monsters */
- for (i = 1; i < m_max; i++)
+ for (m_idx = 1; m_idx < m_max; m_idx++)
{
monster_type *m_ptr;
monster_race *r_ptr;
- /* Access monster */
- m_ptr = ¤t_floor_ptr->m_list[i];
+ m_ptr = ¤t_floor_ptr->m_list[m_idx];
/* Skip dead monsters */
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
/* Skip unseen monsters */
if (!m_ptr->ml) continue;
repair_monsters = FALSE;
/* Rotate detection flags */
- for (i = 1; i < m_max; i++)
+ for (m_idx = 1; m_idx < m_max; m_idx++)
{
monster_type *m_ptr;
-
- /* Access monster */
- m_ptr = ¤t_floor_ptr->m_list[i];
+ m_ptr = ¤t_floor_ptr->m_list[m_idx];
/* Skip dead monsters */
- if (!m_ptr->r_idx) continue;
+ if (!monster_is_valid(m_ptr)) continue;
/* Nice monsters get mean */
if (m_ptr->mflag & MFLAG_NICE)
/* Assume invisible */
m_ptr->ml = FALSE;
- update_monster(i, FALSE);
+ update_monster(m_idx, FALSE);
- if (p_ptr->health_who == i) p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == i) p_ptr->redraw |= (PR_UHEALTH);
+ if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
+ if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
/* Redraw regardless */
lite_spot(m_ptr->fy, m_ptr->fx);
}
if (p_ptr->pclass == CLASS_IMITATOR)
{
+ int j;
if (p_ptr->mane_num > (p_ptr->lev > 44 ? 3 : p_ptr->lev > 29 ? 2 : 1))
{
p_ptr->mane_num--;
- for (i = 0; i < p_ptr->mane_num; i++)
+ for (j = 0; j < p_ptr->mane_num; j++)
{
- p_ptr->mane_spell[i] = p_ptr->mane_spell[i+1];
- p_ptr->mane_dam[i] = p_ptr->mane_dam[i+1];
+ p_ptr->mane_spell[j] = p_ptr->mane_spell[j + 1];
+ p_ptr->mane_dam[j] = p_ptr->mane_dam[j + 1];
}
}
new_mane = FALSE;
p_ptr->redraw |= (PR_MAP);
p_ptr->update |= (PU_MONSTERS);
-
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
msg_print(_("「時は動きだす…」", "You feel time flowing around you once more."));
p_ptr->timewalk = FALSE;
p_ptr->energy_need = ENERGY_NEED();
- /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
handle_stuff();
}
}
character_xtra = TRUE;
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_MONSTER | PW_OVERHEAD | PW_DUNGEON);
+ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_EQUIPPY | PR_MAP);
+ p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS | PU_VIEW | PU_LITE | PU_MON_LITE | PU_TORCH | PU_MONSTERS | PU_DISTANCE | PU_FLOW);
- /* Redraw dungeon */
- p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_EQUIPPY);
-
- p_ptr->redraw |= (PR_MAP);
-
- p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS);
-
- /* Update lite/view */
- p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE | PU_TORCH);
- p_ptr->update |= (PU_MONSTERS | PU_DISTANCE | PU_FLOW);
-
- /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
handle_stuff();
/* Leave "xtra" mode */
process_player();
process_upkeep_with_speed();
- /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
handle_stuff();
/* Hack -- Hilite the player */