#include "save.h"
#include "realm.h"
#include "japanese.h"
-#include "view-mainwindow.h"
+#include "view-mainwindow.h" // 暫定。後で消す.
/*
* The last character rolled,
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);
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);
* @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++)
{
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;
}
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;
}
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;
* @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",
#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);
#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);
#include "spells.h"
#include "objectkind.h"
#include "floor-town.h"
-#include "view-mainwindow.h"
+#include "view-mainwindow.h" // 暫定。後で消す
#include "english.h"
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 */
{
if (tmp[0] && (tmp[0] != ' '))
{
- file_character(creature_ptr, tmp, display_player);
+ file_character(creature_ptr, tmp, display_player, map_name);
}
}
}
/* 町名消失バグ対策(#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))
{
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)))
* 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);
* 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);
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);
#include "player-inventory.h"
#include "object-flavor.h"
#include "store.h"
-#include "files.h"
#include "term.h"
#define GRAVE_LINE_WIDTH 31
* @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);
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();
}
}
* @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);
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;
#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);
#include "player-personality.h"
#include "character-dump.h"
-#include "files.h"
#include "world.h"
#include "term.h"
* @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;
}
/* 一旦一時ファイルを作る。通常のダンプ出力と共通化するため。 */
- 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 */
* @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;
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)
{
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
* @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)
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;
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);
Term_activate(angband_term[j]);
update_playtime();
- display_player(player_ptr, 0);
+ display_player(player_ptr, 0, map_name);
Term_fresh();
Term_activate(old);
}
/*!
- * @brief プレーヤー表示に関するあれこれ (整理中)
+ * @brief プレーヤーのステータス表示メインルーチン群
* @date 2020/02/25
* @author Hourier
* @details
#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"
* 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);
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
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
#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);