OSDN Git Service

[Refactor] #40236 Separated draw_white_characters() from do_cmd_load_screen()
authorHourier <hourier@users.sourceforge.jp>
Wed, 22 Apr 2020 11:47:29 +0000 (20:47 +0900)
committerHourier <hourier@users.sourceforge.jp>
Wed, 22 Apr 2020 11:47:29 +0000 (20:47 +0900)
src/cmd/cmd-process-screen.c

index c586ca6..c7dccc9 100644 (file)
@@ -288,6 +288,7 @@ static bool update_use_graphics(player_type *creature_ptr, void(*handle_stuff)(p
 /*
  * Save a screen dump to a file
  * @param creature_ptr プレーヤーへの参照ポインタ
+ * @param handle_stuff 画面更新用の関数ポインタ
  * @return なし
  */
 void do_cmd_save_screen(player_type *creature_ptr, void(*handle_stuff)(player_type*))
@@ -320,14 +321,33 @@ void do_cmd_save_screen(player_type *creature_ptr, void(*handle_stuff)(player_ty
 }
 
 
+static bool draw_white_characters(char buf[], FILE *fff, int wid, int hgt)
+{
+       bool okay = TRUE;
+       for (TERM_LEN y = 0; okay; y++)
+       {
+               if (!fgets(buf, 1024, fff)) okay = FALSE;
+
+               if (buf[0] == '\n' || buf[0] == '\0') break;
+               if (y >= hgt) continue;
+
+               for (TERM_LEN x = 0; x < wid - 1; x++)
+               {
+                       if (buf[x] == '\n' || buf[x] == '\0') break;
+
+                       Term_draw(x, y, TERM_WHITE, buf[x]);
+               }
+       }
+
+       return okay;
+}
+
+
 /*
  * @brief Load a screen dump from a file
  */
 void do_cmd_load_screen(void)
 {
-       TERM_COLOR a = 0;
-       SYMBOL_CODE c = ' ';
-       bool okay = TRUE;
        FILE *fff;
        char buf[1024];
        TERM_LEN wid, hgt;
@@ -343,21 +363,10 @@ void do_cmd_load_screen(void)
 
        screen_save();
        Term_clear();
-       for (TERM_LEN y = 0; okay; y++)
-       {
-               if (!fgets(buf, 1024, fff)) okay = FALSE;
-
-               if (buf[0] == '\n' || buf[0] == '\0') break;
-               if (y >= hgt) continue;
-
-               for (TERM_LEN x = 0; x < wid - 1; x++)
-               {
-                       if (buf[x] == '\n' || buf[x] == '\0') break;
-
-                       Term_draw(x, y, TERM_WHITE, buf[x]);
-               }
-       }
+       bool okay = draw_white_characters(buf, fff, wid, hgt);
 
+       TERM_COLOR a = TERM_DARK;
+       SYMBOL_CODE c = ' ';
        for (TERM_LEN y = 0; okay; y++)
        {
                if (!fgets(buf, 1024, fff)) okay = FALSE;