OSDN Git Service

[Refactor] #37353 monster_is_valid() 関数を定義し単純な !r_idx の条件から置換。 / Define monster_is_va...
[hengbandforosx/hengbandosx.git] / src / dungeon.c
index 956cf4a..8dc901a 100644 (file)
@@ -42,6 +42,7 @@
 #include "realm-hex.h"
 #include "object-hook.h"
 #include "wild.h"
+#include "monster-status.h"
 
 
 static bool load = TRUE; /*!<ロード処理中の分岐フラグ*/
@@ -871,7 +872,7 @@ static void regen_monsters(void)
 
 
                /* 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)
@@ -2420,7 +2421,7 @@ static void process_world_aux_mutation(void)
                        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)
                        {
@@ -3083,7 +3084,7 @@ static byte get_dungeon_feeling(void)
                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;
@@ -4628,7 +4629,7 @@ static void process_player(void)
                {
                        monster_type *m_ptr = &current_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(m_idx, FALSE);
@@ -4784,7 +4785,6 @@ static void process_player(void)
                        }
                }
 
-               /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
                handle_stuff();
        }
        
@@ -4956,11 +4956,9 @@ static void process_player(void)
                        process_command();
                }
 
-
                /* Hack -- Pack Overflow */
                pack_overflow();
 
-
                /*** Clean up ***/
 
                /* Significant */
@@ -4994,11 +4992,10 @@ static void process_player(void)
                                        monster_type *m_ptr;
                                        monster_race *r_ptr;
 
-                                       /* Access monster */
                                        m_ptr = &current_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;
@@ -5029,12 +5026,10 @@ static void process_player(void)
                                for (m_idx = 1; m_idx < m_max; m_idx++)
                                {
                                        monster_type *m_ptr;
-
-                                       /* Access monster */
                                        m_ptr = &current_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)
@@ -5101,7 +5096,6 @@ static void process_player(void)
 
                                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."));
@@ -5109,7 +5103,6 @@ static void process_player(void)
                                p_ptr->timewalk = FALSE;
                                p_ptr->energy_need = ENERGY_NEED();
 
-                               /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
                                handle_stuff();
                        }
                }
@@ -5227,19 +5220,9 @@ static void dungeon(bool load_game)
        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 */
@@ -5336,7 +5319,6 @@ static void dungeon(bool load_game)
                process_player();
                process_upkeep_with_speed();
 
-               /* Handle "p_ptr->update" and "p_ptr->redraw" and "p_ptr->window" */
                handle_stuff();
 
                /* Hack -- Hilite the player */