OSDN Git Service

[Refactor] #37353 cnv_stat() と modify_stat_value() を player-status.c/h へ移動。
authordeskull <deskull@users.sourceforge.jp>
Mon, 1 Apr 2019 14:40:54 +0000 (23:40 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Mon, 1 Apr 2019 14:40:54 +0000 (23:40 +0900)
src/externs.h
src/player-status.c
src/player-status.h
src/view-mainwindow.c

index d9f71f6..f8559e7 100644 (file)
@@ -1038,8 +1038,6 @@ extern int inkey_special(bool numpad_cursor);
 
 
 /* xtra1.c */
-extern void cnv_stat(int val, char *out_val);
-extern s16b modify_stat_value(int value, int amount);
 extern void prt_time(void);
 extern concptr map_name(void);
 extern int bow_tval_ammo(object_type *o_ptr);
index a1a23cf..9854635 100644 (file)
@@ -4513,3 +4513,90 @@ void check_experience(void)
        if (old_lev != p_ptr->lev) autopick_load_pref(FALSE);
 }
 
+/*!
+ * @brief 現在の修正後能力値を3~17及び18/xxx形式に変換する / Converts stat num into a six-char (right justified) string
+ * @param val 能力値
+ * @param out_val 出力先文字列ポインタ
+ * @return なし
+ */
+void cnv_stat(int val, char *out_val)
+{
+       /* Above 18 */
+       if (val > 18)
+       {
+               int bonus = (val - 18);
+
+               if (bonus >= 220)
+               {
+                       sprintf(out_val, "18/%3s", "***");
+               }
+               else if (bonus >= 100)
+               {
+                       sprintf(out_val, "18/%03d", bonus);
+               }
+               else
+               {
+                       sprintf(out_val, " 18/%02d", bonus);
+               }
+       }
+
+       /* From 3 to 18 */
+       else
+       {
+               sprintf(out_val, "    %2d", val);
+       }
+}
+
+/*!
+ * @brief 能力値現在値から3~17及び18/xxx様式に基づく加減算を行う。
+ * Modify a stat value by a "modifier", return new value
+ * @param value 現在値
+ * @param amount 加減算値
+ * @return 加減算後の値
+ * @details
+ * <pre>
+ * Stats go up: 3,4,...,17,18,18/10,18/20,...,18/220
+ * Or even: 18/13, 18/23, 18/33, ..., 18/220
+ * Stats go down: 18/220, 18/210,..., 18/10, 18, 17, ..., 3
+ * Or even: 18/13, 18/03, 18, 17, ..., 3
+ * </pre>
+ */
+s16b modify_stat_value(int value, int amount)
+{
+       int    i;
+
+       /* Reward */
+       if (amount > 0)
+       {
+               /* Apply each point */
+               for (i = 0; i < amount; i++)
+               {
+                       /* One point at a time */
+                       if (value < 18) value++;
+
+                       /* Ten "points" at a time */
+                       else value += 10;
+               }
+       }
+
+       /* Penalty */
+       else if (amount < 0)
+       {
+               /* Apply each point */
+               for (i = 0; i < (0 - amount); i++)
+               {
+                       /* Ten points at a time */
+                       if (value >= 18 + 10) value -= 10;
+
+                       /* Hack -- prevent weirdness */
+                       else if (value > 18) value = 18;
+
+                       /* One point at a time */
+                       else if (value > 3) value--;
+               }
+       }
+
+       /* Return new value */
+       return (s16b)(value);
+}
+
index 70027e8..d105e90 100644 (file)
@@ -20,9 +20,9 @@ extern bool player_place(POSITION y, POSITION x);
 extern void sanity_blast(monster_type *m_ptr, bool necro);
 
 extern void check_experience(void);
-
-
 extern void wreck_the_pattern(void);
+extern void cnv_stat(int val, char *out_val);
+extern s16b modify_stat_value(int value, int amount);
 
 /* Temporary flags macro */
 #define IS_FAST() (p_ptr->fast || music_singing(MUSIC_SPEED) || music_singing(MUSIC_SHERO))
index 770a5f4..dcf7b2e 100644 (file)
 #define ROW_STATBAR             (-1)
 #define COL_STATBAR              0
 #define MAX_COL_STATBAR         (-26)
-/*!
- * @brief 現在の修正後能力値を3~17及び18/xxx形式に変換する / Converts stat num into a six-char (right justified) string
- * @param val 能力値
- * @param out_val 出力先文字列ポインタ
- * @return なし
- */
-void cnv_stat(int val, char *out_val)
-{
-       /* Above 18 */
-       if (val > 18)
-       {
-               int bonus = (val - 18);
-
-               if (bonus >= 220)
-               {
-                       sprintf(out_val, "18/%3s", "***");
-               }
-               else if (bonus >= 100)
-               {
-                       sprintf(out_val, "18/%03d", bonus);
-               }
-               else
-               {
-                       sprintf(out_val, " 18/%02d", bonus);
-               }
-       }
-
-       /* From 3 to 18 */
-       else
-       {
-               sprintf(out_val, "    %2d", val);
-       }
-}
-
-/*!
- * @brief 能力値現在値から3~17及び18/xxx様式に基づく加減算を行う。
- * Modify a stat value by a "modifier", return new value
- * @param value 現在値
- * @param amount 加減算値
- * @return 加減算後の値
- * @details
- * <pre>
- * Stats go up: 3,4,...,17,18,18/10,18/20,...,18/220
- * Or even: 18/13, 18/23, 18/33, ..., 18/220
- * Stats go down: 18/220, 18/210,..., 18/10, 18, 17, ..., 3
- * Or even: 18/13, 18/03, 18, 17, ..., 3
- * </pre>
- */
-s16b modify_stat_value(int value, int amount)
-{
-       int    i;
-
-       /* Reward */
-       if (amount > 0)
-       {
-               /* Apply each point */
-               for (i = 0; i < amount; i++)
-               {
-                       /* One point at a time */
-                       if (value < 18) value++;
-
-                       /* Ten "points" at a time */
-                       else value += 10;
-               }
-       }
-
-       /* Penalty */
-       else if (amount < 0)
-       {
-               /* Apply each point */
-               for (i = 0; i < (0 - amount); i++)
-               {
-                       /* Ten points at a time */
-                       if (value >= 18+10) value -= 10;
-
-                       /* Hack -- prevent weirdness */
-                       else if (value > 18) value = 18;
-
-                       /* One point at a time */
-                       else if (value > 3) value--;
-               }
-       }
-
-       /* Return new value */
-       return (s16b)(value);
-}