OSDN Git Service

モンスターの反撃対象を設定する関数set_targetと解除しる関数reset_targetを新設し、ソース内の当該コードをすべて関数で置き変えた。
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 8 Feb 2002 20:35:15 +0000 (20:35 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 8 Feb 2002 20:35:15 +0000 (20:35 +0000)
src/cmd2.c
src/externs.h
src/load.c
src/melee2.c
src/monster2.c
src/mspells1.c
src/mspells2.c
src/spells1.c

index 334bf90..a31ea63 100644 (file)
@@ -3938,8 +3938,7 @@ note_dies = "
                                        }
                                        if (!projectable(m_ptr->fy, m_ptr->fx, py, px))
                                        {
-                                               m_ptr->target_y = py;
-                                               m_ptr->target_x = px;
+                                               set_target(m_ptr, py, px);
                                        }
                                }
                        }
index 6bc2eb3..2d8f010 100644 (file)
@@ -768,6 +768,8 @@ extern void create_name(int type, char *name);
 extern cptr horror_desc[MAX_SAN_HORROR];
 extern cptr funny_desc[MAX_SAN_FUNNY];
 extern cptr funny_comments[MAX_SAN_COMMENT];
+extern void set_target(monster_type *m_ptr, int y, int x);
+extern void reset_target(monster_type *m_ptr);
 extern void sanity_blast(monster_type *m_ptr, bool necro);
 extern void delete_monster_idx(int i);
 extern void delete_monster(int y, int x);
index 0afdacb..cec4bcd 100644 (file)
@@ -620,15 +620,13 @@ static void rd_monster(monster_type *m_ptr)
 
        if (z_older_than(10,0,10))
        {
-               m_ptr->target_y = 0;
-               m_ptr->target_x = 0;
+               reset_target(m_ptr);
        }
        else if (z_older_than(10,0,11))
        {
                s16b tmp16s;
                rd_s16b(&tmp16s);
-               m_ptr->target_y = 0;
-               m_ptr->target_x = 0;
+               reset_target(m_ptr);
        }
        else
        {
index 61124c9..de49829 100644 (file)
@@ -391,8 +391,7 @@ msg_format("%^s
        {
                if (is_pet(&m_list[who]) && (m_ptr->target_y != py) && (m_ptr->target_x != px))
                {
-                       m_ptr->target_y = m_list[who].fy;
-                       m_ptr->target_x = m_list[who].fx;
+                       set_target(m_ptr, m_list[who].fy, m_list[who].fx);
                }
        }
 
@@ -3899,8 +3898,7 @@ void process_monsters(void)
                /* Process the monster */
                process_monster(i);
 
-               m_ptr->target_y = 0;
-               m_ptr->target_x = 0;
+               reset_target(m_ptr);
 
                /* Give up flow_by_smell when it might useless */
                if (p_ptr->no_flowed && one_in_(3))
@@ -3977,26 +3975,25 @@ bool process_the_world(int num, int who, bool vs_player)
 
        while(num--)
        {
-         if(!m_list[hack_m_idx].r_idx) return (TRUE);
-         process_monster(hack_m_idx);
+               if(!m_list[hack_m_idx].r_idx) return (TRUE);
+               process_monster(hack_m_idx);
 
-         m_list[hack_m_idx].target_y = 0;
-         m_list[hack_m_idx].target_x = 0;
+               reset_target(&m_list[hack_m_idx]);
 
-         /* Notice stuff */
-         if (p_ptr->notice) notice_stuff();
+               /* Notice stuff */
+               if (p_ptr->notice) notice_stuff();
 
-         /* Update stuff */
-         if (p_ptr->update) update_stuff();
+               /* Update stuff */
+               if (p_ptr->update) update_stuff();
 
-         /* Redraw stuff */
-         if (p_ptr->redraw) redraw_stuff();
+               /* Redraw stuff */
+               if (p_ptr->redraw) redraw_stuff();
 
-         /* Redraw stuff */
-         if (p_ptr->window) window_stuff();
+               /* Redraw stuff */
+               if (p_ptr->window) window_stuff();
 
-         /* Delay */
-         if (vs_player) Term_xtra(TERM_XTRA_DELAY, 500);
+               /* Delay */
+               if (vs_player) Term_xtra(TERM_XTRA_DELAY, 500);
        }
 
        /* Redraw map */
index 37d2178..d1b41c0 100644 (file)
@@ -153,6 +153,23 @@ cptr funny_comments[MAX_SAN_COMMENT] =
 
 
 /*
+ * Set the target of counter attack
+ */
+void set_target(monster_type *m_ptr, int y, int x)
+{
+       m_ptr->target_y = y;
+       m_ptr->target_x = x;
+}
+
+/*
+ * Reset the target of counter attack
+ */
+void reset_target(monster_type *m_ptr)
+{
+       set_target(m_ptr, 0, 0);
+}
+
+/*
  * Delete a monster by index.
  *
  * When a monster is deleted, all of its objects are deleted.
@@ -2801,8 +2818,7 @@ msg_print("
        /* Unknown distance */
        m_ptr->cdis = 0;
 
-       m_ptr->target_y = 0;
-       m_ptr->target_x = 0;
+       reset_target(m_ptr);
 
        m_ptr->nickname = 0;
 
index 2fb5df8..49753e9 100644 (file)
@@ -1216,8 +1216,7 @@ bool make_attack_spell(int m_idx)
        /* Cannot cast spells when confused */
        if (m_ptr->confused)
        {
-               m_ptr->target_y = 0;
-               m_ptr->target_x = 0;
+               reset_target(m_ptr);
                return (FALSE);
        }
 
@@ -1343,8 +1342,7 @@ bool make_attack_spell(int m_idx)
                }
        }
 
-       m_ptr->target_y = 0;
-       m_ptr->target_x = 0;
+       reset_target(m_ptr);
 
        /* Extract the monster level */
        rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
index 9d571a8..71df382 100644 (file)
@@ -255,8 +255,7 @@ bool monst_spell_monst(int m_idx)
                        if (!success) continue;
                }
 
-               m_ptr->target_y = 0;
-               m_ptr->target_x = 0;
+               reset_target(m_ptr);
 
                /* OK -- we've got a target */
                y = t_ptr->fy;
index 8cb40e2..4f95dc7 100644 (file)
@@ -6168,14 +6168,12 @@ msg_print("
                {
                        if (!projectable(m_ptr->fy, m_ptr->fx, py, px) && !(flg & PROJECT_NO_HANGEKI))
                        {
-                               m_ptr->target_y = monster_target_y;
-                               m_ptr->target_x = monster_target_x;
+                               set_target(m_ptr, monster_target_y, monster_target_x);
                        }
                }
                else if (is_pet(&m_list[who]) && (m_ptr->target_y != py) && (m_ptr->target_x != px))
                {
-                       m_ptr->target_y = m_list[who].fy;
-                       m_ptr->target_x = m_list[who].fx;
+                       set_target(m_ptr, m_list[who].fy, m_list[who].fx);
                }
        }