OSDN Git Service

Merge branch 'Release-3.0.0Alpha' into release/3.0.0Alpha
[hengband/hengband.git] / src / knowledge / knowledge-self.c
index 06d53af..4545f4d 100644 (file)
@@ -4,34 +4,40 @@
  * @author Hourier
  */
 
-#include "system/angband.h"
 #include "knowledge-self.h"
-#include "io-dump/dump-util.h"
-#include "player/avatar.h"
+#include "birth/birth-explanations-table.h"
 #include "core/show-file.h"
+#include "flavor/flavor-describer.h"
+#include "floor/floor-town.h"
 #include "info-reader/fixed-map-parser.h"
-#include "world/world.h"
+#include "io-dump/dump-util.h"
+#include "player-info/avatar.h"
+#include "player/player-class.h"
+#include "player/race-info-table.h"
+#include "player/player-status-table.h"
 #include "store/store-util.h"
-#include "floor/floor-town.h"
-#include "object/object-flavor.h"
-#include "birth/birth-explanations-table.h"
+#include "system/object-type-definition.h"
+#include "util/angband-files.h"
+#include "util/buffer-shaper.h"
+#include "util/int-char-converter.h"
+#include "world/world.h"
 
 /*
  * List virtues & status
  */
 void do_cmd_knowledge_virtues(player_type *creature_ptr)
 {
-       FILE *fff = NULL;
-       GAME_TEXT file_name[FILE_NAME_SIZE];
-       if (!open_temporary_file(&fff, file_name)) return;
-
-       fprintf(fff, _("現在の属性 : %s\n\n", "Your alignment : %s\n\n"), your_alignment(creature_ptr));
-       dump_virtues(creature_ptr, fff);
-       angband_fclose(fff);
-       (void)show_file(creature_ptr, TRUE, file_name, _("八つの徳", "Virtues"), 0, 0);
-       fd_kill(file_name);
-}
+    FILE *fff = NULL;
+    GAME_TEXT file_name[FILE_NAME_SIZE];
+    if (!open_temporary_file(&fff, file_name))
+        return;
 
+    fprintf(fff, _("現在の属性 : %s\n\n", "Your alignment : %s\n\n"), your_alignment(creature_ptr));
+    dump_virtues(creature_ptr, fff);
+    angband_fclose(fff);
+    (void)show_file(creature_ptr, TRUE, file_name, _("八つの徳", "Virtues"), 0, 0);
+    fd_kill(file_name);
+}
 
 /*!
  * @brief 自分に関する情報を画面に表示する
@@ -45,7 +51,7 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
         return;
 
     char temp[80 * 10];
-    roff_to_buf(race_explanations[creature_ptr->prace], 78, temp, sizeof(temp));
+    shape_buffer(race_explanations[creature_ptr->prace], 78, temp, sizeof(temp));
     fprintf(fff, "\n\n");
     fprintf(fff, _("種族: %s\n", "Race: %s\n"), race_info[creature_ptr->prace].title);
     concptr t = temp;
@@ -57,7 +63,7 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
         t += strlen(t) + 1;
     }
 
-    roff_to_buf(class_explanations[creature_ptr->pclass], 78, temp, sizeof(temp));
+    shape_buffer(class_explanations[creature_ptr->pclass], 78, temp, sizeof(temp));
     fprintf(fff, "\n");
     fprintf(fff, _("職業: %s\n", "Class: %s\n"), class_info[creature_ptr->pclass].title);
 
@@ -69,9 +75,9 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
         t += strlen(t) + 1;
     }
 
-    roff_to_buf(personality_explanations[creature_ptr->pseikaku], 78, temp, sizeof(temp));
+    shape_buffer(personality_explanations[creature_ptr->pseikaku], 78, temp, sizeof(temp));
     fprintf(fff, "\n");
-    fprintf(fff, _("性格: %s\n", "Pesonality: %s\n"), seikaku_info[creature_ptr->pseikaku].title);
+    fprintf(fff, _("性格: %s\n", "Pesonality: %s\n"), personality_info[creature_ptr->pseikaku].title);
 
     t = temp;
     for (int i = 0; i < A_MAX; i++) {
@@ -83,7 +89,7 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
 
     fprintf(fff, "\n");
     if (creature_ptr->realm1) {
-        roff_to_buf(realm_explanations[technic2magic(creature_ptr->realm1) - 1], 78, temp, sizeof(temp));
+        shape_buffer(realm_explanations[technic2magic(creature_ptr->realm1) - 1], 78, temp, sizeof(temp));
         fprintf(fff, _("魔法: %s\n", "Realm: %s\n"), realm_names[creature_ptr->realm1]);
 
         t = temp;
@@ -98,7 +104,7 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
 
     fprintf(fff, "\n");
     if (creature_ptr->realm2) {
-        roff_to_buf(realm_explanations[technic2magic(creature_ptr->realm2) - 1], 78, temp, sizeof(temp));
+        shape_buffer(realm_explanations[technic2magic(creature_ptr->realm2) - 1], 78, temp, sizeof(temp));
         fprintf(fff, _("魔法: %s\n", "Realm: %s\n"), realm_names[creature_ptr->realm2]);
 
         t = temp;
@@ -113,38 +119,37 @@ static void dump_yourself(player_type *creature_ptr, FILE *fff)
 }
 
 /*
-* List virtues & status
-*
-*/
+ * List virtues & status
+ *
+ */
 void do_cmd_knowledge_stat(player_type *creature_ptr)
 {
-       FILE *fff = NULL;
-       GAME_TEXT file_name[FILE_NAME_SIZE];
-       if (!open_temporary_file(&fff, file_name)) return;
-
-       int percent = (int)(((long)creature_ptr->player_hp[PY_MAX_LEVEL - 1] * 200L) /
-               (2 * creature_ptr->hitdie +
-               ((PY_MAX_LEVEL - 1 + 3) * (creature_ptr->hitdie + 1))));
-
-       if (creature_ptr->knowledge & KNOW_HPRATE)
-               fprintf(fff, _("現在の体力ランク : %d/100\n\n", "Your current Life Rating is %d/100.\n\n"), percent);
-       else fprintf(fff, _("現在の体力ランク : ???\n\n", "Your current Life Rating is ???.\n\n"));
-
-       fprintf(fff, _("能力の最大値\n\n", "Limits of maximum stats\n\n"));
-       for (int v_nr = 0; v_nr < A_MAX; v_nr++)
-       {
-               if ((creature_ptr->knowledge & KNOW_STAT) || creature_ptr->stat_max[v_nr] == creature_ptr->stat_max_max[v_nr])
-                       fprintf(fff, "%s 18/%d\n", stat_names[v_nr], creature_ptr->stat_max_max[v_nr] - 18);
-               else
-                       fprintf(fff, "%s ???\n", stat_names[v_nr]);
-       }
-
-       dump_yourself(creature_ptr, fff);
-       angband_fclose(fff);
-       (void)show_file(creature_ptr, TRUE, file_name, _("自分に関する情報", "HP-rate & Max stat"), 0, 0);
-       fd_kill(file_name);
-}
+    FILE *fff = NULL;
+    GAME_TEXT file_name[FILE_NAME_SIZE];
+    if (!open_temporary_file(&fff, file_name))
+        return;
 
+    int percent
+        = (int)(((long)creature_ptr->player_hp[PY_MAX_LEVEL - 1] * 200L) / (2 * creature_ptr->hitdie + ((PY_MAX_LEVEL - 1 + 3) * (creature_ptr->hitdie + 1))));
+
+    if (creature_ptr->knowledge & KNOW_HPRATE)
+        fprintf(fff, _("現在の体力ランク : %d/100\n\n", "Your current Life Rating is %d/100.\n\n"), percent);
+    else
+        fprintf(fff, _("現在の体力ランク : ???\n\n", "Your current Life Rating is ???.\n\n"));
+
+    fprintf(fff, _("能力の最大値\n\n", "Limits of maximum stats\n\n"));
+    for (int v_nr = 0; v_nr < A_MAX; v_nr++) {
+        if ((creature_ptr->knowledge & KNOW_STAT) || creature_ptr->stat_max[v_nr] == creature_ptr->stat_max_max[v_nr])
+            fprintf(fff, "%s 18/%d\n", stat_names[v_nr], creature_ptr->stat_max_max[v_nr] - 18);
+        else
+            fprintf(fff, "%s ???\n", stat_names[v_nr]);
+    }
+
+    dump_yourself(creature_ptr, fff);
+    angband_fclose(fff);
+    (void)show_file(creature_ptr, TRUE, file_name, _("自分に関する情報", "HP-rate & Max stat"), 0, 0);
+    fd_kill(file_name);
+}
 
 /*
  * List my home
@@ -153,53 +158,54 @@ void do_cmd_knowledge_stat(player_type *creature_ptr)
  */
 void do_cmd_knowledge_home(player_type *player_ptr)
 {
-       parse_fixed_map(player_ptr, "w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
+    parse_fixed_map(player_ptr, "w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
 
-       FILE *fff = NULL;
-       GAME_TEXT file_name[FILE_NAME_SIZE];
-       if (!open_temporary_file(&fff, file_name)) return;
+    FILE *fff = NULL;
+    GAME_TEXT file_name[FILE_NAME_SIZE];
+    if (!open_temporary_file(&fff, file_name))
+        return;
 
-       store_type *store_ptr;
-       store_ptr = &town_info[1].store[STORE_HOME];
+    store_type *store_ptr;
+    store_ptr = &town_info[1].store[STORE_HOME];
 
-       if (store_ptr->stock_num)
-       {
+    if (store_ptr->stock_num) {
 #ifdef JP
-               TERM_LEN x = 1;
+        TERM_LEN x = 1;
 #endif
-               fprintf(fff, _("  [ 我が家のアイテム ]\n", "  [Home Inventory]\n"));
-               concptr paren = ")";
-               GAME_TEXT o_name[MAX_NLEN];
-               for (int i = 0; i < store_ptr->stock_num; i++)
-               {
+        fprintf(fff, _("  [ 我が家のアイテム ]\n", "  [Home Inventory]\n"));
+        concptr paren = ")";
+        GAME_TEXT o_name[MAX_NLEN];
+        for (int i = 0; i < store_ptr->stock_num; i++) {
 #ifdef JP
-                       if ((i % 12) == 0) fprintf(fff, "\n ( %d ページ )\n", x++);
-                       object_desc(player_ptr, o_name, &store_ptr->stock[i], 0);
-                       if (strlen(o_name) <= 80 - 3)
-                       {
-                               fprintf(fff, "%c%s %s\n", I2A(i % 12), paren, o_name);
-                       }
-                       else
-                       {
-                               int n;
-                               char *t;
-                               for (n = 0, t = o_name; n < 80 - 3; n++, t++)
-                                       if (iskanji(*t)) { t++; n++; }
-                               if (n == 81 - 3) n = 79 - 3; /* 最後が漢字半分 */
-
-                               fprintf(fff, "%c%s %.*s\n", I2A(i % 12), paren, n, o_name);
-                               fprintf(fff, "   %.77s\n", o_name + n);
-                       }
+            if ((i % 12) == 0)
+                fprintf(fff, "\n ( %d ページ )\n", x++);
+            describe_flavor(player_ptr, o_name, &store_ptr->stock[i], 0);
+            if (strlen(o_name) <= 80 - 3) {
+                fprintf(fff, "%c%s %s\n", I2A(i % 12), paren, o_name);
+            } else {
+                int n;
+                char *t;
+                for (n = 0, t = o_name; n < 80 - 3; n++, t++)
+                    if (iskanji(*t)) {
+                        t++;
+                        n++;
+                    }
+                if (n == 81 - 3)
+                    n = 79 - 3; /* 最後が漢字半分 */
+
+                fprintf(fff, "%c%s %.*s\n", I2A(i % 12), paren, n, o_name);
+                fprintf(fff, "   %.77s\n", o_name + n);
+            }
 #else
-                       object_desc(player_ptr, o_name, &store_ptr->stock[i], 0);
-                       fprintf(fff, "%c%s %s\n", I2A(i % 12), paren, o_name);
+            describe_flavor(player_ptr, o_name, &store_ptr->stock[i], 0);
+            fprintf(fff, "%c%s %s\n", I2A(i % 12), paren, o_name);
 #endif
-               }
+        }
 
-               fprintf(fff, "\n\n");
-       }
+        fprintf(fff, "\n\n");
+    }
 
-       angband_fclose(fff);
-       (void)show_file(player_ptr, TRUE, file_name, _("我が家のアイテム", "Home Inventory"), 0, 0);
-       fd_kill(file_name);
+    angband_fclose(fff);
+    (void)show_file(player_ptr, TRUE, file_name, _("我が家のアイテム", "Home Inventory"), 0, 0);
+    fd_kill(file_name);
 }