1 #include "io-dump/player-status-dump.h"
2 #include "view/display-player.h"
5 * @brief 画面番号を指定してダンプする
6 * @param player_ptr プレイヤーへの参照ポインタ
8 * @param display_player 画面表示へのコールバック
10 * @param start_y ダンプの開始行数
11 * @param tmp_end_y ダンプの終了行数 (補正前)
12 * @param change_color バッファへ詰める文字の変更有無
13 * @details モンスター名の長さによっては固定長だとはみ出す可能性があるので、適切に終了行数を調整する.
15 static void dump_player_status_with_screen_num(PlayerType *player_ptr, FILE *fff,
16 const int mode, const TERM_LEN start_y, const TERM_LEN tmp_end_y, const bool change_color)
19 auto num_lines = display_player(player_ptr, mode);
20 auto end_y = tmp_end_y + num_lines.value_or(0);
21 for (auto y = start_y; y < end_y; y++) {
23 for (x = 0; x < 79; x++) {
26 (void)(term_what(x, y, &a, &c));
32 buf[x] = a < 128 ? c : ' ';
36 while ((x > 0) && (buf[x - 1] == ' ')) {
40 fprintf(fff, "%s\n", buf);
45 * @brief プレイヤーのステータス表示をファイルにダンプする
46 * @param player_ptr プレイヤーへの参照ポインタ
49 void dump_aux_player_status(PlayerType *player_ptr, FILE *fff)
51 dump_player_status_with_screen_num(player_ptr, fff, 0, 1, 22, false);
52 dump_player_status_with_screen_num(player_ptr, fff, 1, 10, 17, false);
54 dump_player_status_with_screen_num(player_ptr, fff, 2, 2, 22, true);
56 dump_player_status_with_screen_num(player_ptr, fff, 3, 1, 18, true);
58 dump_player_status_with_screen_num(player_ptr, fff, 4, 1, 19, true);