while (TRUE)
{
/* Hack -- Compact the monster list occasionally */
- if ((floor_ptr->m_cnt + 32 > current_world_ptr->max_m_idx) && !player_ptr->phase_out) compact_monsters(64);
+ if ((floor_ptr->m_cnt + 32 > current_world_ptr->max_m_idx) && !player_ptr->phase_out) compact_monsters(player_ptr, 64);
/* Hack -- Compress the monster list occasionally */
- if ((floor_ptr->m_cnt + 32 < floor_ptr->m_max) && !player_ptr->phase_out) compact_monsters(0);
+ if ((floor_ptr->m_cnt + 32 < floor_ptr->m_max) && !player_ptr->phase_out) compact_monsters(player_ptr, 0);
/* Hack -- Compact the object list occasionally */
extern monster_race *real_r_ptr(monster_type *m_ptr);
extern MONRACE_IDX real_r_idx(monster_type *m_ptr);
extern void delete_monster_idx(MONSTER_IDX i);
-extern void compact_monsters(int size);
+extern void compact_monsters(player_type *player_ptr, int size);
extern void wipe_m_list(void);
extern MONSTER_IDX m_pop(void);
extern errr get_mon_num_prep(monsterrace_hook_type monster_hook, monsterrace_hook_type monster_hook2);
/*!
* @brief モンスター情報配列を圧縮する / Compact and Reorder the monster list
+ * @param player_ptr プレーヤーへの参照ポインタ
* @param size 圧縮後のモンスター件数目標
* @return なし
* @details
* After "compacting" (if needed), we "reorder" the monsters into a more
* compact order, and we reset the allocation info, and the "live" array.
*/
-void compact_monsters(int size)
+void compact_monsters(player_type *player_ptr, int size)
{
MONSTER_IDX i;
int num, cnt;
if (size) msg_print(_("モンスター情報を圧縮しています...", "Compacting monsters..."));
/* Compact at least 'size' objects */
- floor_type *floor_ptr = p_ptr->current_floor_ptr;
+ floor_type *floor_ptr = player_ptr->current_floor_ptr;
for (num = 0, cnt = 1; num < size; cnt++)
{
/* Get more vicious each iteration */
/* Hack -- High level monsters start out "immune" */
if (r_ptr->level > cur_lev) continue;
- if (i == p_ptr->riding) continue;
+ if (i == player_ptr->riding) continue;
/* Ignore nearby monsters */
if ((cur_dis > 0) && (m_ptr->cdis < cur_dis)) continue;
{
GAME_TEXT m_name[MAX_NLEN];
monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
- exe_write_diary(p_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_COMPACT, m_name);
+ exe_write_diary(player_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_COMPACT, m_name);
}
delete_monster_idx(i);
if (m_ptr->r_idx) continue;
/* Move last monster into open hole */
- compact_monsters_aux(p_ptr, floor_ptr->m_max - 1, i);
+ compact_monsters_aux(player_ptr, floor_ptr->m_max - 1, i);
/* Compress "floor_ptr->m_max" */
floor_ptr->m_max--;
compact_objects(player_ptr, 0);
/* Compact the monsters */
- compact_monsters(0);
+ compact_monsters(player_ptr, 0);
/* Guess at the current time */
u32b now = (u32b)time((time_t *)0);
/* Compact the objects */
compact_objects(player_ptr, 0);
/* Compact the monsters */
- compact_monsters(0);
+ compact_monsters(player_ptr, 0);
/*** Actually write the file ***/
/* Initial value of xor_byte */