OSDN Git Service

[Refactor] #37353 ang_sort_*() in cmd-pet.c and cmd4.c to sort.c.
authordeskull <deskull@users.sourceforge.jp>
Wed, 20 Mar 2019 03:36:10 +0000 (12:36 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Wed, 20 Mar 2019 03:36:10 +0000 (12:36 +0900)
src/cmd-pet.c
src/cmd4.c
src/sort.c
src/sort.h

index d369c15..f1458fb 100644 (file)
@@ -52,51 +52,6 @@ bool player_can_ride_aux(grid_type *g_ptr, bool now_riding)
 
 
 /*!
-* @brief ペットになっているモンスターをソートするための比較処理
-* @param u モンスターの構造体配列
-* @param v 未使用
-* @param a 比較対象のモンスターID1
-* @param b 比較対象のモンスターID2
-* @return 2番目が大ならばTRUEを返す
-*/
-static bool ang_sort_comp_pet_dismiss(vptr u, vptr v, int a, int b)
-{
-       u16b *who = (u16b*)(u);
-
-       int w1 = who[a];
-       int w2 = who[b];
-
-       monster_type *m_ptr1 = &current_floor_ptr->m_list[w1];
-       monster_type *m_ptr2 = &current_floor_ptr->m_list[w2];
-       monster_race *r_ptr1 = &r_info[m_ptr1->r_idx];
-       monster_race *r_ptr2 = &r_info[m_ptr2->r_idx];
-
-       /* Unused */
-       (void)v;
-
-       if (w1 == p_ptr->riding) return TRUE;
-       if (w2 == p_ptr->riding) return FALSE;
-
-       if (m_ptr1->nickname && !m_ptr2->nickname) return TRUE;
-       if (m_ptr2->nickname && !m_ptr1->nickname) return FALSE;
-
-       if (!m_ptr1->parent_m_idx && m_ptr2->parent_m_idx) return TRUE;
-       if (!m_ptr2->parent_m_idx && m_ptr1->parent_m_idx) return FALSE;
-
-       if ((r_ptr1->flags1 & RF1_UNIQUE) && !(r_ptr2->flags1 & RF1_UNIQUE)) return TRUE;
-       if ((r_ptr2->flags1 & RF1_UNIQUE) && !(r_ptr1->flags1 & RF1_UNIQUE)) return FALSE;
-
-       if (r_ptr1->level > r_ptr2->level) return TRUE;
-       if (r_ptr2->level > r_ptr1->level) return FALSE;
-
-       if (m_ptr1->hp > m_ptr2->hp) return TRUE;
-       if (m_ptr2->hp > m_ptr1->hp) return FALSE;
-
-       return w1 <= w2;
-}
-
-
-/*!
 * @brief ペットの維持コスト計算
 * @return 維持コスト(%)
 */
index d88ef23..5bf3024 100644 (file)
@@ -4100,30 +4100,6 @@ static concptr monster_group_char[] =
 
 
 /*
- * hook function to sort monsters by level
- */
-static bool ang_sort_comp_monster_level(vptr u, vptr v, int a, int b)
-{
-       u16b *who = (u16b*)(u);
-
-       int w1 = who[a];
-       int w2 = who[b];
-
-       monster_race *r_ptr1 = &r_info[w1];
-       monster_race *r_ptr2 = &r_info[w2];
-
-       /* Unused */
-       (void)v;
-
-       if (r_ptr2->level > r_ptr1->level) return TRUE;
-       if (r_ptr1->level > r_ptr2->level) return FALSE;
-
-       if ((r_ptr2->flags1 & RF1_UNIQUE) && !(r_ptr1->flags1 & RF1_UNIQUE)) return TRUE;
-       if ((r_ptr1->flags1 & RF1_UNIQUE) && !(r_ptr2->flags1 & RF1_UNIQUE)) return FALSE;
-       return w1 <= w2;
-}
-
-/*
  * Build a list of monster indexes in the given group. Return the number
  * of monsters in the group.
  *
index bdeda17..53b7d4d 100644 (file)
@@ -446,3 +446,72 @@ void ang_sort_swap_hook(vptr u, vptr v, int a, int b)
        who[b] = holder;
 }
 
+/*
+ * hook function to sort monsters by level
+ */
+bool ang_sort_comp_monster_level(vptr u, vptr v, int a, int b)
+{
+       u16b *who = (u16b*)(u);
+
+       int w1 = who[a];
+       int w2 = who[b];
+
+       monster_race *r_ptr1 = &r_info[w1];
+       monster_race *r_ptr2 = &r_info[w2];
+
+       /* Unused */
+       (void)v;
+
+       if (r_ptr2->level > r_ptr1->level) return TRUE;
+       if (r_ptr1->level > r_ptr2->level) return FALSE;
+
+       if ((r_ptr2->flags1 & RF1_UNIQUE) && !(r_ptr1->flags1 & RF1_UNIQUE)) return TRUE;
+       if ((r_ptr1->flags1 & RF1_UNIQUE) && !(r_ptr2->flags1 & RF1_UNIQUE)) return FALSE;
+       return w1 <= w2;
+}
+
+
+/*!
+* @brief ペットになっているモンスターをソートするための比較処理
+* @param u モンスターの構造体配列
+* @param v 未使用
+* @param a 比較対象のモンスターID1
+* @param b 比較対象のモンスターID2
+* @return 2番目が大ならばTRUEを返す
+*/
+bool ang_sort_comp_pet_dismiss(vptr u, vptr v, int a, int b)
+{
+       u16b *who = (u16b*)(u);
+
+       int w1 = who[a];
+       int w2 = who[b];
+
+       monster_type *m_ptr1 = &current_floor_ptr->m_list[w1];
+       monster_type *m_ptr2 = &current_floor_ptr->m_list[w2];
+       monster_race *r_ptr1 = &r_info[m_ptr1->r_idx];
+       monster_race *r_ptr2 = &r_info[m_ptr2->r_idx];
+
+       /* Unused */
+       (void)v;
+
+       if (w1 == p_ptr->riding) return TRUE;
+       if (w2 == p_ptr->riding) return FALSE;
+
+       if (m_ptr1->nickname && !m_ptr2->nickname) return TRUE;
+       if (m_ptr2->nickname && !m_ptr1->nickname) return FALSE;
+
+       if (!m_ptr1->parent_m_idx && m_ptr2->parent_m_idx) return TRUE;
+       if (!m_ptr2->parent_m_idx && m_ptr1->parent_m_idx) return FALSE;
+
+       if ((r_ptr1->flags1 & RF1_UNIQUE) && !(r_ptr2->flags1 & RF1_UNIQUE)) return TRUE;
+       if ((r_ptr2->flags1 & RF1_UNIQUE) && !(r_ptr1->flags1 & RF1_UNIQUE)) return FALSE;
+
+       if (r_ptr1->level > r_ptr2->level) return TRUE;
+       if (r_ptr2->level > r_ptr1->level) return FALSE;
+
+       if (m_ptr1->hp > m_ptr2->hp) return TRUE;
+       if (m_ptr2->hp > m_ptr1->hp) return FALSE;
+
+       return w1 <= w2;
+}
+
index bac08a6..4c04d19 100644 (file)
@@ -15,3 +15,6 @@ extern bool ang_sort_comp_pet(vptr u, vptr v, int a, int b);
 
 extern bool ang_sort_comp_hook(vptr u, vptr v, int a, int b);
 extern void ang_sort_swap_hook(vptr u, vptr v, int a, int b);
+
+extern bool ang_sort_comp_monster_level(vptr u, vptr v, int a, int b);
+extern bool ang_sort_comp_pet_dismiss(vptr u, vptr v, int a, int b);