OSDN Git Service

[Refactor] #39962 display-player.c からview-mainwindow.h への参照を除去 / Removed reference...
authorHourier <hourier@users.sourceforge.jp>
Wed, 26 Feb 2020 13:40:24 +0000 (22:40 +0900)
committerHourier <hourier@users.sourceforge.jp>
Wed, 26 Feb 2020 13:56:16 +0000 (22:56 +0900)
16 files changed:
src/birth.c
src/character-dump.c
src/character-dump.h
src/cmd/cmd-dump.c
src/core.c
src/files.c
src/files.h
src/player/process-death.c
src/player/process-death.h
src/report.c
src/report.h
src/scores.c
src/scores.h
src/view-mainwindow.c
src/view/display-player.c
src/view/display-player.h

index 0dbe7e2..a361b76 100644 (file)
@@ -51,7 +51,7 @@
 #include "save.h"
 #include "realm.h"
 #include "japanese.h"
-#include "view-mainwindow.h"
+#include "view-mainwindow.h" // 暫定。後で消す.
 
  /*
   * The last character rolled,
@@ -3670,7 +3670,7 @@ static void edit_history(player_type *creature_ptr)
                creature_ptr->history[i][59] = '\0';
        }
 
-       display_player(creature_ptr, 1);
+       display_player(creature_ptr, 1, map_name);
 #ifdef JP
        c_put_str(TERM_L_GREEN, "(キャラクターの生い立ち - 編集モード)", 11, 20);
        put_str("[ カーソルキーで移動、Enterで終了、Ctrl-Aでファイル読み込み ]", 17, 10);
@@ -4355,7 +4355,7 @@ static bool player_birth_aux(player_type *creature_ptr)
                        creature_ptr->chp = creature_ptr->mhp;
                        creature_ptr->csp = creature_ptr->msp;
 
-                       display_player(creature_ptr, mode);
+                       display_player(creature_ptr, mode, map_name);
 
                        /* Prepare a prompt (must squeeze everything in) */
                        Term_gotoxy(2, 23);
index 531ce20..d09ef40 100644 (file)
  * @param fff ファイルポインタ
  * @return なし
  */
-static void dump_aux_display_player(player_type *creature_ptr, FILE *fff, void(*display_player)(player_type*, int))
+static void dump_aux_display_player(player_type *creature_ptr, FILE *fff, display_player_pf display_player, map_name_pf map_name)
 {
        TERM_COLOR a;
        char c;
        char buf[1024];
-       display_player(creature_ptr, 0);
+       display_player(creature_ptr, 0, map_name);
 
        for (TERM_LEN y = 1; y < 22; y++)
        {
@@ -46,7 +46,7 @@ static void dump_aux_display_player(player_type *creature_ptr, FILE *fff, void(*
                fprintf(fff, _("%s\n", "%s\n"), buf);
        }
 
-       display_player(creature_ptr, 1);
+       display_player(creature_ptr, 1, map_name);
        for (TERM_LEN y = 10; y < 19; y++)
        {
                TERM_LEN x;
@@ -64,7 +64,7 @@ static void dump_aux_display_player(player_type *creature_ptr, FILE *fff, void(*
        }
 
        fprintf(fff, "\n");
-       display_player(creature_ptr, 2);
+       display_player(creature_ptr, 2, map_name);
        for (TERM_LEN y = 2; y < 22; y++)
        {
                TERM_LEN x;
@@ -85,7 +85,7 @@ static void dump_aux_display_player(player_type *creature_ptr, FILE *fff, void(*
        }
 
        fprintf(fff, "\n");
-       display_player(creature_ptr, 3);
+       display_player(creature_ptr, 3, map_name);
        for (TERM_LEN y = 1; y < 22; y++)
        {
                TERM_LEN x;
@@ -852,7 +852,7 @@ static void dump_aux_home_museum(player_type *creature_ptr, FILE *fff)
  * @param fff ファイルポインタ
  * @return エラーコード
  */
-void make_character_dump(player_type *creature_ptr, FILE *fff, void(*update_playtime)(void), void(*display_player)(player_type*, int))
+void make_character_dump(player_type *creature_ptr, FILE *fff, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name)
 {
 #ifdef JP
        fprintf(fff, "  [変愚蛮怒 %d.%d.%d キャラクタ情報]\n\n",
@@ -863,7 +863,7 @@ void make_character_dump(player_type *creature_ptr, FILE *fff, void(*update_play
 #endif
        (*update_playtime)();
 
-       dump_aux_display_player(creature_ptr, fff, display_player);
+       dump_aux_display_player(creature_ptr, fff, display_player, map_name);
        dump_aux_last_message(creature_ptr, fff);
        dump_aux_options(fff);
        dump_aux_recall(fff);
index 47eed92..5b64dd6 100644 (file)
@@ -1,5 +1,6 @@
 #pragma once
 
 #include "angband.h"
+#include "files.h"
 
- void make_character_dump(player_type *creature_ptr, FILE *fff, void(*update_playtime)(void), void(*display_player)(player_type*, int));
+ void make_character_dump(player_type *creature_ptr, FILE *fff, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name);
index 6c3facc..248260f 100644 (file)
@@ -72,7 +72,7 @@
 #include "spells.h"
 #include "objectkind.h"
 #include "floor-town.h"
-#include "view-mainwindow.h"
+#include "view-mainwindow.h" // 暫定。後で消す
 
 #include "english.h"
 
@@ -1044,12 +1044,12 @@ void do_cmd_player_status(player_type *creature_ptr)
        while (TRUE)
        {
                update_playtime();
-               display_player(creature_ptr, mode);
+               display_player(creature_ptr, mode, map_name);
 
                if (mode == 4)
                {
                        mode = 0;
-                       display_player(creature_ptr, mode);
+                       display_player(creature_ptr, mode, map_name);
                }
 
                /* Prompt */
@@ -1077,7 +1077,7 @@ void do_cmd_player_status(player_type *creature_ptr)
                        {
                                if (tmp[0] && (tmp[0] != ' '))
                                {
-                                       file_character(creature_ptr, tmp, display_player);
+                                       file_character(creature_ptr, tmp, display_player, map_name);
                                }
                        }
                }
index be4e661..1d11a65 100644 (file)
@@ -4327,7 +4327,7 @@ void play_game(player_type *player_ptr, bool new_game)
 
                /* 町名消失バグ対策(#38205)のためここで世界マップ情報を読み出す */
                process_dungeon_file(player_ptr, "w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
-               success = send_world_score(player_ptr, TRUE, update_playtime, display_player);
+               success = send_world_score(player_ptr, TRUE, update_playtime, display_player, map_name);
 
                if (!success && !get_check_strict(_("スコア登録を諦めますか?", "Do you give up score registration? "), CHECK_NO_HISTORY))
                {
@@ -4699,12 +4699,12 @@ void close_game(player_type *player_ptr)
                print_tomb(player_ptr);
                flush();
 
-               show_info(player_ptr, handle_stuff, update_playtime, display_player);
+               show_info(player_ptr, handle_stuff, update_playtime, display_player, map_name);
                Term_clear();
 
                if (check_score(player_ptr))
                {
-                       if ((!send_world_score(player_ptr, do_send, update_playtime, display_player)))
+                       if ((!send_world_score(player_ptr, do_send, update_playtime, display_player, map_name)))
                        {
                                if (get_check_strict(_("後でスコアを登録するために待機しますか?", "Stand by for later score registration? "),
                                        (CHECK_NO_ESCAPE | CHECK_NO_HISTORY)))
index 6f87ffe..a08e164 100644 (file)
@@ -995,7 +995,7 @@ errr process_pref_file(player_type *creature_ptr, concptr name)
  * Allow the "full" flag to dump additional info,
  * and trigger its usage from various places in the code.
  */
-errr file_character(player_type *creature_ptr, concptr name, display_player_pf display_player)
+errr file_character(player_type *creature_ptr, concptr name, display_player_pf display_player, map_name_pf map_name)
 {
        char buf[1024];
        path_build(buf, sizeof(buf), ANGBAND_DIR_USER, name);
@@ -1025,7 +1025,7 @@ errr file_character(player_type *creature_ptr, concptr name, display_player_pf d
        * todo view-mainwindow への依存があるが、file_character() 自体関数ポインタなのでよそから呼び出されるので何とかするのは辛い
        * ついでに他の関数でもview(略) は参照されているので、簡単に除去することはできない…
        */
-       make_character_dump(creature_ptr, fff, update_playtime, display_player);
+       make_character_dump(creature_ptr, fff, update_playtime, display_player, map_name);
        my_fclose(fff);
        msg_print(_("キャラクタ情報のファイルへの書き出しに成功しました。", "Character dump successful."));
        msg_print(NULL);
index 4027b09..ae49ecd 100644 (file)
@@ -19,10 +19,11 @@ extern concptr ANGBAND_DIR_SAVE;
 extern concptr ANGBAND_DIR_USER;
 extern concptr ANGBAND_DIR_XTRA;
 
-typedef void(*display_player_pf)(player_type*, int);
+typedef concptr(*map_name_pf)(player_type*);
+typedef void(*display_player_pf)(player_type*, int, map_name_pf);
 
 extern s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode);
-extern errr file_character(player_type *creature_ptr, concptr name, display_player_pf display_player);
+extern errr file_character(player_type *creature_ptr, concptr name, display_player_pf display_player, map_name_pf map_name);
 extern errr process_pref_file_command(player_type *creature_ptr, char *buf);
 extern concptr process_pref_file_expr(player_type *creature_ptr, char **sp, char *fp);
 extern errr process_pref_file(player_type *creature_ptr, concptr name);
index 62b61e1..e8b59b0 100644 (file)
@@ -12,7 +12,6 @@
 #include "player-inventory.h"
 #include "object-flavor.h"
 #include "store.h"
-#include "files.h"
 #include "term.h"
 
 #define GRAVE_LINE_WIDTH 31
@@ -370,7 +369,7 @@ static void show_dead_home_items(player_type *creature_ptr)
  * @param file_character ステータスダンプへのコールバック
  * @return なし
  */
-static void export_player_info(player_type *creature_ptr, void(*display_player)(player_type*, int))
+static void export_player_info(player_type *creature_ptr, display_player_pf display_player, map_name_pf map_name)
 {
        prt(_("キャラクターの記録をファイルに書き出すことができます。", "You may now dump a character record to one or more files."), 21, 0);
        prt(_("リターンキーでキャラクターを見ます。ESCで中断します。", "Then, hit RETURN to see the character, or ESC to abort."), 22, 0);
@@ -383,7 +382,7 @@ static void export_player_info(player_type *creature_ptr, void(*display_player)(
                if (!out_val[0]) break;
 
                screen_save();
-               (void)file_character(creature_ptr, out_val, display_player);
+               (void)file_character(creature_ptr, out_val, display_player, map_name);
                screen_load();
        }
 }
@@ -399,7 +398,7 @@ static void export_player_info(player_type *creature_ptr, void(*display_player)(
  * @param display_player ステータス表示へのコールバック
  * @return なし
  */
-void show_info(player_type *creature_ptr, void(*handle_stuff)(player_type*), void(*update_playtime)(void), void(*display_player)(player_type*, int))
+void show_info(player_type *creature_ptr, void(*handle_stuff)(player_type*), void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name)
 {
        inventory_aware(creature_ptr);
        home_aware(creature_ptr);
@@ -409,9 +408,9 @@ void show_info(player_type *creature_ptr, void(*handle_stuff)(player_type*), voi
        flush();
        msg_erase();
        
-       export_player_info(creature_ptr, display_player);
+       export_player_info(creature_ptr, display_player, map_name);
        (*update_playtime)();
-       (*display_player)(creature_ptr, 0);
+       (*display_player)(creature_ptr, 0, map_name);
        prt(_("何かキーを押すとさらに情報が続きます (ESCで中断): ", "Hit any key to see more information (ESC to abort): "), 23, 0);
        if (inkey() == ESCAPE) return;
        if (show_dead_player_items(creature_ptr)) return;
index eac86e3..aabcda6 100644 (file)
@@ -1,6 +1,7 @@
 #pragma once
 
 #include "angband.h"
+#include "files.h"
 
 void print_tomb(player_type *dead_ptr);
-void show_info(player_type *creature_ptr, void(*handle_stuff)(player_type*), void(*update_playtime)(void), void(*displayer_player)(player_type*, int));
+void show_info(player_type *creature_ptr, void(*handle_stuff)(player_type*), void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name);
index 0ca619c..3c6d70d 100644 (file)
@@ -12,7 +12,6 @@
 
 #include "player-personality.h"
 #include "character-dump.h"
-#include "files.h"
 #include "world.h"
 #include "term.h"
 
@@ -221,7 +220,7 @@ static bool http_post(int sd, concptr url, BUF *buf)
  * @param dumpbuf 伝送内容バッファ
  * @return エラーコード
  */
-static errr make_dump(player_type *creature_ptr, BUF* dumpbuf, void(*update_playtime)(void), void(*display_player)(player_type*, int))
+static errr make_dump(player_type *creature_ptr, BUF* dumpbuf, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name)
 {
        char            buf[1024];
        FILE *fff;
@@ -241,7 +240,7 @@ static errr make_dump(player_type *creature_ptr, BUF* dumpbuf, void(*update_play
        }
 
        /* 一旦一時ファイルを作る。通常のダンプ出力と共通化するため。 */
-       make_character_dump(creature_ptr, fff, update_playtime, display_player);
+       make_character_dump(creature_ptr, fff, update_playtime, display_player, map_name);
        my_fclose(fff);
 
        /* Open for read */
@@ -386,7 +385,7 @@ concptr make_screen_dump(player_type *creature_ptr)
  * @param creature_ptr プレーヤーへの参照ポインタ
  * @return 正常終了の時0、異常があったら1
  */
-errr report_score(player_type *creature_ptr, void(*update_playtime)(void), void(*display_player)(player_type*, int))
+errr report_score(player_type *creature_ptr, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name)
 {
 #ifdef WINDOWS
        WSADATA wsaData;
@@ -427,7 +426,7 @@ errr report_score(player_type *creature_ptr, void(*update_playtime)(void), void(
        buf_sprintf(score, "killer: %s\n", creature_ptr->died_from);
        buf_sprintf(score, "-----charcter dump-----\n");
 
-       make_dump(creature_ptr, score, update_playtime, display_player);
+       make_dump(creature_ptr, score, update_playtime, display_player, map_name);
 
        if (screen_dump)
        {
index 798eff6..4ab7e15 100644 (file)
@@ -3,6 +3,8 @@
 extern concptr screen_dump;
 
 #ifdef WORLD_SCORE
-extern errr report_score(player_type *creature_ptr, void(*update_playtime)(void), void(*display_player)(player_type*, int));
+#include "files.h"
+
+extern errr report_score(player_type *creature_ptr, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name);
 extern concptr make_screen_dump(player_type *creature_ptr);
 #endif
index 7ed8fdb..9192727 100644 (file)
@@ -429,7 +429,7 @@ void display_scores(int from, int to)
  * @param do_send 実際に転送ア処置を行うか否か
  * @return 転送が成功したらTRUEを返す
  */
-bool send_world_score(player_type *current_player_ptr, bool do_send, void(*update_playtime)(void), void(*display_player)(player_type*, int))
+bool send_world_score(player_type *current_player_ptr, bool do_send, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name)
 {
 #ifdef WORLD_SCORE
        if (send_score && do_send)
@@ -449,7 +449,7 @@ bool send_world_score(player_type *current_player_ptr, bool do_send, void(*updat
                prt(_("送信中..", "Sending..."), 0, 0);
                Term_fresh();
                screen_save();
-               err = report_score(current_player_ptr, update_playtime, display_player);
+               err = report_score(current_player_ptr, update_playtime, display_player, map_name);
                screen_load();
                if (err) return FALSE;
 
index 4780b7e..5ac7b6f 100644 (file)
@@ -40,7 +40,7 @@ extern int highscore_fd;
 extern void display_scores_aux(int from, int to, int note, high_score *score);
 extern void display_scores(int from, int to);
 extern void kingly(player_type *winner_ptr);
-extern bool send_world_score(player_type *current_player_ptr, bool do_send, void(*update_playtime)(void), void(*display_player)(player_type*, int));
+extern bool send_world_score(player_type *current_player_ptr, bool do_send, void(*update_playtime)(void), display_player_pf display_player, map_name_pf map_name);
 extern errr top_twenty(player_type *current_player_ptr);
 extern errr predict_score(player_type *current_player_ptr);
 extern void race_legends(player_type *current_player_ptr);
index 8a05c4c..4073112 100644 (file)
@@ -1832,7 +1832,7 @@ static void fix_player(player_type *player_ptr)
                Term_activate(angband_term[j]);
 
                update_playtime();
-               display_player(player_ptr, 0);
+               display_player(player_ptr, 0, map_name);
                Term_fresh();
                Term_activate(old);
        }
index 9f4ff5c..e7e0be0 100644 (file)
@@ -1,5 +1,5 @@
 /*!
- * @brief プレーヤー表示に関するあれこれ (整理中)
+ * @brief プレーヤーのステータス表示メインルーチン群
  * @date 2020/02/25
  * @author Hourier
  * @details
@@ -16,9 +16,7 @@
 #include "quest.h"
 #include "core.h" // 暫定。後で消す
 #include "player/permanent-resistances.h" // 暫定。後で消す
-#include "files.h"
 #include "mutation.h"
-#include "view-mainwindow.h" // 暫定。後で消す
 #include "player-skill.h"
 #include "player-effects.h"
 #include "realm-song.h"
@@ -529,7 +527,7 @@ static void display_player_middle(player_type *creature_ptr)
  * Mode 4 = mutations
  * </pre>
  */
-void display_player(player_type *creature_ptr, int mode)
+void display_player(player_type *creature_ptr, int mode, map_name_pf map_name)
 {
        if ((creature_ptr->muta1 || creature_ptr->muta2 || creature_ptr->muta3) && display_mutations)
                mode = (mode % 5);
@@ -657,7 +655,7 @@ void display_player(player_type *creature_ptr, int mode)
                else if (!floor_ptr->dun_level)
                {
 #ifdef JP
-                       sprintf(statmsg, "…あなたは%sで%sに殺された。", map_name(creature_ptr), creature_ptr->died_from);
+                       sprintf(statmsg, "…あなたは%sで%sに殺された。", (*map_name)(creature_ptr), creature_ptr->died_from);
 #else
                        sprintf(statmsg, "...You were killed by %s in %s.", creature_ptr->died_from, map_name(creature_ptr));
 #endif
@@ -679,7 +677,7 @@ void display_player(player_type *creature_ptr, int mode)
                else
                {
 #ifdef JP
-                       sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", map_name(creature_ptr), (int)floor_ptr->dun_level, creature_ptr->died_from);
+                       sprintf(statmsg, "…あなたは、%sの%d階で%sに殺された。", (*map_name)(creature_ptr), (int)floor_ptr->dun_level, creature_ptr->died_from);
 #else
                        sprintf(statmsg, "...You were killed by %s on level %d of %s.", creature_ptr->died_from, floor_ptr->dun_level, map_name(creature_ptr));
 #endif
index 1b81806..be52909 100644 (file)
@@ -1,6 +1,7 @@
 #pragma once
 
 #include "angband.h"
+#include "files.h"
 
-void display_player(player_type *creature_ptr, int mode);
+void display_player(player_type *creature_ptr, int mode, map_name_pf map_name);
 void display_player_equippy(player_type *player_ptr, TERM_LEN y, TERM_LEN x, BIT_FLAGS16 mode);