OSDN Git Service

[Refactor] #38997 compact_monsters() にplayer_type * 引数追加 / Added player_type * argume...
authorHourier <hourier@users.sourceforge.jp>
Sat, 18 Jan 2020 01:48:31 +0000 (10:48 +0900)
committerHourier <hourier@users.sourceforge.jp>
Sat, 18 Jan 2020 14:01:52 +0000 (23:01 +0900)
src/core.c
src/main-win.c
src/monster.h
src/monster2.c
src/save.c

index c11df92..81f63d9 100644 (file)
@@ -5056,10 +5056,10 @@ static void dungeon(player_type *player_ptr, bool load_game)
        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 */
index ddb2a9f..eb900f9 100644 (file)
@@ -1,4 +1,5 @@
 /*!
+* todo main関数を含むファイルの割に長過ぎる。main-win-utils.cなどといった形で分割したい
 * @file main-win.c
 * @brief Windows版固有実装(メインエントリポイント含む)
 * @date 2018/03/16
index 04566d2..ee592c0 100644 (file)
@@ -469,7 +469,7 @@ extern void reset_target(monster_type *m_ptr);
 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);
index 1919284..d56e369 100644 (file)
@@ -260,6 +260,7 @@ static void compact_monsters_aux(player_type *player_ptr, MONSTER_IDX i1, MONSTE
 
 /*!
  * @brief モンスター情報配列を圧縮する / Compact and Reorder the monster list
+ * @param player_ptr プレーヤーへの参照ポインタ
  * @param size 圧縮後のモンスター件数目標
  * @return なし
  * @details
@@ -272,7 +273,7 @@ static void compact_monsters_aux(player_type *player_ptr, MONSTER_IDX i1, MONSTE
  * 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;
@@ -282,7 +283,7 @@ void compact_monsters(int size)
        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 */
@@ -304,7 +305,7 @@ void compact_monsters(int size)
                        /* 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;
@@ -325,7 +326,7 @@ void compact_monsters(int size)
                        {
                                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);
@@ -346,7 +347,7 @@ void compact_monsters(int size)
                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--;
index e980e7d..e983cce 100644 (file)
@@ -1147,7 +1147,7 @@ static bool wr_savefile_new(player_type *player_ptr)
        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);
@@ -1888,7 +1888,7 @@ static bool save_floor_aux(player_type *player_ptr, saved_floor_type *sf_ptr)
        /* 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 */