OSDN Git Service

[Refactor] #37353 ang_sort_*() in cmd-item.c to sort.c.
authordeskull <deskull@users.sourceforge.jp>
Tue, 19 Mar 2019 14:27:55 +0000 (23:27 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Tue, 19 Mar 2019 14:28:37 +0000 (23:28 +0900)
src/cmd-item.c
src/externs.h
src/sort.c
src/sort.h

index 2a9179d..82aa664 100644 (file)
@@ -1234,112 +1234,6 @@ void do_cmd_locate(void)
 
 
 /*!
- * @brief モンスター種族情報を特定の基準によりソートするための比較処理
- * Sorting hook -- Comp function -- see below
- * @param u モンスター種族情報の入れるポインタ
- * @param v 条件基準ID
- * @param a 比較するモンスター種族のID1
- * @param b 比較するモンスター種族のID2
- * @return 2の方が大きければTRUEを返す
- * We use "u" to point to array of monster indexes,
- * and "v" to select the type of sorting to perform on "u".
- */
-bool ang_sort_comp_hook(vptr u, vptr v, int a, int b)
-{
-       u16b *who = (u16b*)(u);
-       u16b *why = (u16b*)(v);
-
-       int w1 = who[a];
-       int w2 = who[b];
-
-       int z1, z2;
-
-       /* Sort by player kills */
-       if (*why >= 4)
-       {
-               /* Extract player kills */
-               z1 = r_info[w1].r_pkills;
-               z2 = r_info[w2].r_pkills;
-
-               /* Compare player kills */
-               if (z1 < z2) return (TRUE);
-               if (z1 > z2) return (FALSE);
-       }
-
-
-       /* Sort by total kills */
-       if (*why >= 3)
-       {
-               /* Extract total kills */
-               z1 = r_info[w1].r_tkills;
-               z2 = r_info[w2].r_tkills;
-
-               /* Compare total kills */
-               if (z1 < z2) return (TRUE);
-               if (z1 > z2) return (FALSE);
-       }
-
-
-       /* Sort by monster level */
-       if (*why >= 2)
-       {
-               /* Extract levels */
-               z1 = r_info[w1].level;
-               z2 = r_info[w2].level;
-
-               /* Compare levels */
-               if (z1 < z2) return (TRUE);
-               if (z1 > z2) return (FALSE);
-       }
-
-
-       /* Sort by monster experience */
-       if (*why >= 1)
-       {
-               /* Extract experience */
-               z1 = r_info[w1].mexp;
-               z2 = r_info[w2].mexp;
-
-               /* Compare experience */
-               if (z1 < z2) return (TRUE);
-               if (z1 > z2) return (FALSE);
-       }
-
-
-       /* Compare indexes */
-       return (w1 <= w2);
-}
-
-
-/*!
- * @brief モンスター種族情報を特定の基準によりソートするためのスワップ処理
- * Sorting hook -- Swap function -- see below
- * @param u モンスター種族情報の入れるポインタ
- * @param v 未使用
- * @param a スワップするモンスター種族のID1
- * @param b スワップするモンスター種族のID2
- * @return なし
- * @details
- * We use "u" to point to array of monster indexes,
- * and "v" to select the type of sorting to perform.
- */
-void ang_sort_swap_hook(vptr u, vptr v, int a, int b)
-{
-       u16b *who = (u16b*)(u);
-       u16b holder;
-
-       /* Unused */
-       (void)v;
-
-       /* Swap */
-       holder = who[a];
-       who[a] = who[b];
-       who[b] = holder;
-}
-
-
-
-/*!
  * @brief モンスターの思い出を見るコマンドのメインルーチン
  * Identify a character, allow recall of monsters
  * @return なし
index b9230b1..885bda2 100644 (file)
@@ -1359,6 +1359,3 @@ extern void do_cmd_snipe_browse(void);
 extern int boost_concentration_damage(int tdam);
 
 extern void kamaenaoshi(INVENTORY_IDX item);
-
-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);
index 28516a7..bdeda17 100644 (file)
@@ -339,3 +339,110 @@ bool ang_sort_comp_pet(vptr u, vptr v, int a, int b)
 
        return w1 <= w2;
 }
+
+
+
+/*!
+ * @brief モンスター種族情報を特定の基準によりソートするための比較処理
+ * Sorting hook -- Comp function -- see below
+ * @param u モンスター種族情報の入れるポインタ
+ * @param v 条件基準ID
+ * @param a 比較するモンスター種族のID1
+ * @param b 比較するモンスター種族のID2
+ * @return 2の方が大きければTRUEを返す
+ * We use "u" to point to array of monster indexes,
+ * and "v" to select the type of sorting to perform on "u".
+ */
+bool ang_sort_comp_hook(vptr u, vptr v, int a, int b)
+{
+       u16b *who = (u16b*)(u);
+       u16b *why = (u16b*)(v);
+
+       int w1 = who[a];
+       int w2 = who[b];
+
+       int z1, z2;
+
+       /* Sort by player kills */
+       if (*why >= 4)
+       {
+               /* Extract player kills */
+               z1 = r_info[w1].r_pkills;
+               z2 = r_info[w2].r_pkills;
+
+               /* Compare player kills */
+               if (z1 < z2) return (TRUE);
+               if (z1 > z2) return (FALSE);
+       }
+
+
+       /* Sort by total kills */
+       if (*why >= 3)
+       {
+               /* Extract total kills */
+               z1 = r_info[w1].r_tkills;
+               z2 = r_info[w2].r_tkills;
+
+               /* Compare total kills */
+               if (z1 < z2) return (TRUE);
+               if (z1 > z2) return (FALSE);
+       }
+
+
+       /* Sort by monster level */
+       if (*why >= 2)
+       {
+               /* Extract levels */
+               z1 = r_info[w1].level;
+               z2 = r_info[w2].level;
+
+               /* Compare levels */
+               if (z1 < z2) return (TRUE);
+               if (z1 > z2) return (FALSE);
+       }
+
+
+       /* Sort by monster experience */
+       if (*why >= 1)
+       {
+               /* Extract experience */
+               z1 = r_info[w1].mexp;
+               z2 = r_info[w2].mexp;
+
+               /* Compare experience */
+               if (z1 < z2) return (TRUE);
+               if (z1 > z2) return (FALSE);
+       }
+
+
+       /* Compare indexes */
+       return (w1 <= w2);
+}
+
+
+/*!
+ * @brief モンスター種族情報を特定の基準によりソートするためのスワップ処理
+ * Sorting hook -- Swap function -- see below
+ * @param u モンスター種族情報の入れるポインタ
+ * @param v 未使用
+ * @param a スワップするモンスター種族のID1
+ * @param b スワップするモンスター種族のID2
+ * @return なし
+ * @details
+ * We use "u" to point to array of monster indexes,
+ * and "v" to select the type of sorting to perform.
+ */
+void ang_sort_swap_hook(vptr u, vptr v, int a, int b)
+{
+       u16b *who = (u16b*)(u);
+       u16b holder;
+
+       /* Unused */
+       (void)v;
+
+       /* Swap */
+       holder = who[a];
+       who[a] = who[b];
+       who[b] = holder;
+}
+
index a50bf19..bac08a6 100644 (file)
@@ -12,3 +12,6 @@ extern bool ang_sort_comp_quest_num(vptr u, vptr v, int a, int b);
 extern void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b);
 
 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);