{
if (tmp[0] && (tmp[0] != ' '))
{
- file_character(tmp);
+ file_character(creature_ptr, tmp);
}
}
}
/*
* Print all finished quests
*/
-void do_cmd_knowledge_quests_completed(FILE *fff, QUEST_IDX quest_num[])
+void do_cmd_knowledge_quests_completed(player_type *creature_ptr, FILE *fff, QUEST_IDX quest_num[])
{
fprintf(fff, _("《達成したクエスト》\n", "< Completed Quest >\n"));
QUEST_IDX total = 0;
QUEST_IDX q_idx = quest_num[i];
quest_type* const q_ptr = &quest[q_idx];
- if (q_ptr->status == QUEST_STATUS_FINISHED && do_cmd_knowledge_quests_aux(fff, p_ptr->current_floor_ptr, q_idx))
+ if (q_ptr->status == QUEST_STATUS_FINISHED && do_cmd_knowledge_quests_aux(fff, creature_ptr->current_floor_ptr, q_idx))
{
++total;
}
/* Dump Quest Information */
do_cmd_knowledge_quests_current(creature_ptr, fff);
fputc('\n', fff);
- do_cmd_knowledge_quests_completed(fff, quest_num);
+ do_cmd_knowledge_quests_completed(creature_ptr, fff, quest_num);
fputc('\n', fff);
do_cmd_knowledge_quests_failed(fff, quest_num);
if (current_world_ptr->wizard)
extern void do_cmd_load_screen(void);
extern void do_cmd_save_screen_html_aux(char *filename, int message);
extern void do_cmd_save_screen(player_type *creature_ptr);
-extern void do_cmd_knowledge_quests_completed(FILE *fff, QUEST_IDX quest_num[]);
+extern void do_cmd_knowledge_quests_completed(player_type *creature_ptr, FILE *fff, QUEST_IDX quest_num[]);
extern void do_cmd_knowledge_quests_failed(FILE *fff, QUEST_IDX quest_num[]);
extern void do_cmd_knowledge(player_type *creature_ptr);
extern void do_cmd_checkquest(player_type *creature_ptr);
process_dungeon_file("w_info.txt", 0, 0, current_world_ptr->max_wild_y, current_world_ptr->max_wild_x);
/* Handle score, show Top scores */
- success = send_world_score(TRUE);
+ success = send_world_score(player_ptr, TRUE);
if (!success && !get_check_strict(_("スコア登録を諦めますか?", "Do you give up score registration? "), CHECK_NO_HISTORY))
{
}
/* Close stuff */
- close_game();
+ close_game(player_ptr);
/* Quit */
quit(NULL);
* This function is called only from "main.c" and "signals.c".
* </pre>
*/
-void close_game(void)
+void close_game(player_type *player_ptr)
{
char buf[1024];
bool do_send = TRUE;
safe_setuid_drop();
/* Handle death */
- if (p_ptr->is_dead)
+ if (player_ptr->is_dead)
{
/* Handle retirement */
- if (current_world_ptr->total_winner) kingly(p_ptr);
+ if (current_world_ptr->total_winner) kingly(player_ptr);
/* Save memories */
if (!cheat_save || get_check(_("死んだデータをセーブしますか? ", "Save death? ")))
flush();
/* Show more info */
- show_info();
+ show_info(player_ptr);
Term_clear();
if (check_score())
{
- if ((!send_world_score(do_send)))
+ if ((!send_world_score(player_ptr, do_send)))
{
if (get_check_strict(_("後でスコアを登録するために待機しますか?", "Stand by for later score registration? "),
(CHECK_NO_ESCAPE | CHECK_NO_HISTORY)))
{
- p_ptr->wait_report_score = TRUE;
- p_ptr->is_dead = FALSE;
+ player_ptr->wait_report_score = TRUE;
+ player_ptr->is_dead = FALSE;
if (!save_player()) msg_print(_("セーブ失敗!", "death save failed!"));
}
}
- if (!p_ptr->wait_report_score)
- (void)top_twenty(p_ptr);
+ if (!player_ptr->wait_report_score)
+ (void)top_twenty(player_ptr);
}
else if (highscore_fd >= 0)
{
play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_EXIT);
/* Predict score (or ESCAPE) */
- if (inkey() != ESCAPE) predict_score(p_ptr);
+ if (inkey() != ESCAPE) predict_score(player_ptr);
}
extern void update_playtime(void);
extern s32b turn_real(s32b hoge);
extern void prevent_turn_overflow(void);
-extern void close_game(void);
+extern void close_game(player_type *player_ptr);
extern void handle_stuff(void);
extern void update_output(void);
* @param fff ファイルポインタ
* @return なし
*/
-static void dump_aux_quest(FILE *fff)
+static void dump_aux_quest(player_type *creature_ptr, FILE *fff)
{
QUEST_IDX i;
QUEST_IDX *quest_num;
/* Dump Quest Information */
fputc('\n', fff);
- do_cmd_knowledge_quests_completed(fff, quest_num);
+ do_cmd_knowledge_quests_completed(creature_ptr, fff, quest_num);
fputc('\n', fff);
do_cmd_knowledge_quests_failed(fff, quest_num);
fputc('\n', fff);
* @param fff ファイルポインタ
* @return エラーコード
*/
-errr make_character_dump(FILE *fff)
+errr make_character_dump(player_type *creature_ptr, FILE *fff)
{
#ifdef JP
fprintf(fff, " [変愚蛮怒 %d.%d.%d キャラクタ情報]\n\n",
dump_aux_last_message(fff);
dump_aux_options(fff);
dump_aux_recall(fff);
- dump_aux_quest(fff);
+ dump_aux_quest(creature_ptr, fff);
dump_aux_arena(p_ptr, fff);
dump_aux_monsters(fff);
dump_aux_virtues(fff);
* Allow the "full" flag to dump additional info,
* and trigger its usage from various places in the code.
*/
-errr file_character(concptr name)
+errr file_character(player_type *creature_ptr, concptr name)
{
int fd = -1;
FILE *fff = NULL;
return (-1);
}
- (void)make_character_dump(fff);
+ (void)make_character_dump(creature_ptr, fff);
my_fclose(fff);
* Display some character info
* @return なし
*/
-void show_info(void)
+void show_info(player_type *creature_ptr)
{
int i, j, k, l;
object_type *o_ptr;
/* Hack -- Know everything in the inven/equip */
for (i = 0; i < INVEN_TOTAL; i++)
{
- o_ptr = &p_ptr->inventory_list[i];
+ o_ptr = &creature_ptr->inventory_list[i];
if (!o_ptr->k_idx) continue;
/* Aware and Known */
}
/* Hack -- Recalculate bonuses */
- p_ptr->update |= (PU_BONUS);
+ creature_ptr->update |= (PU_BONUS);
handle_stuff();
/* Flush all input keys */
screen_save();
/* Dump a character file */
- (void)file_character(out_val);
+ (void)file_character(creature_ptr, out_val);
screen_load();
}
update_playtime();
- display_player(p_ptr, 0);
+ display_player(creature_ptr, 0);
prt(_("何かキーを押すとさらに情報が続きます (ESCで中断): ", "Hit any key to see more information (ESC to abort): "), 23, 0);
if (inkey() == ESCAPE) return;
/* Equipment -- if any */
- if (p_ptr->equip_cnt)
+ if (creature_ptr->equip_cnt)
{
Term_clear();
(void)show_equip(0, USE_FULL, 0);
}
/* Inventory -- if any */
- if (p_ptr->inven_cnt)
+ if (creature_ptr->inven_cnt)
{
Term_clear();
(void)show_inven(0, USE_FULL, 0);
clear_mon_lite(p_ptr->current_floor_ptr);
/* Close stuff */
- close_game();
+ close_game(p_ptr);
/* Quit */
quit(_("強制終了", "interrupt"));
p_ptr->leaving = TRUE;
/* Close stuff */
- close_game();
+ close_game(p_ptr);
/* Quit */
quit(_("強制終了", "interrupt"));
extern void safe_setuid_grab(void);
extern s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode);
extern void display_player(player_type *creature_ptr, int mode);
-extern errr make_character_dump(FILE *fff);
-extern errr file_character(concptr name);
+extern errr make_character_dump(player_type *creature_ptr, FILE *fff);
+extern errr file_character(player_type *creature_ptr, concptr name);
extern errr process_pref_file_command(char *buf);
extern concptr process_pref_file_expr(char **sp, char *fp);
extern errr process_pref_file(concptr name);
extern void signals_init(void);
extern errr get_rnd_line(concptr file_name, int entry, char *output);
extern void print_tomb(void);
-extern void show_info(void);
+extern void show_info(player_type *creature_ptr);
#ifdef JP
extern errr get_rnd_line_jonly(concptr file_name, int entry, char *output, int count);
#ifdef WORLD_SCORE
if (m_ptr->r_idx == MON_SERPENT)
{
- screen_dump = make_screen_dump();
+ screen_dump = make_screen_dump(p_ptr);
}
#endif
}
#ifdef WORLD_SCORE
/* Make screen dump */
- screen_dump = make_screen_dump();
+ screen_dump = make_screen_dump(creature_ptr);
#endif
/* Note cause of death */
flush();
#ifdef WORLD_SCORE
/* Make screen dump */
- screen_dump = make_screen_dump();
+ screen_dump = make_screen_dump(creature_ptr);
#endif
/* Wait a key press */
* @param dumpbuf 伝送内容バッファ
* @return エラーコード
*/
-static errr make_dump(BUF* dumpbuf)
+static errr make_dump(player_type *creature_ptr, BUF* dumpbuf)
{
char buf[1024];
FILE *fff;
}
/* 一旦一時ファイルを作る。通常のダンプ出力と共通化するため。 */
- (void)make_character_dump(fff);
+ (void)make_character_dump(creature_ptr, fff);
my_fclose(fff);
/* Open for read */
* @brief スコア転送処理のメインルーチン
* @return エラーコード
*/
-errr report_score(void)
+errr report_score(player_type *creature_ptr)
{
#ifdef MACINTOSH
OSStatus err;
buf_sprintf(score, "killer: %s\n", p_ptr->died_from);
buf_sprintf(score, "-----charcter dump-----\n");
- make_dump(score);
+ make_dump(creature_ptr, score);
if (screen_dump)
{
#ifdef WORLD_SCORE
/* report.c */
-extern errr report_score(void);
-extern concptr make_screen_dump(void);
+extern errr report_score(player_type *creature_ptr);
+extern concptr make_screen_dump(player_type *creature_ptr);
#endif
* @param do_send 実際に転送ア処置を行うか否か
* @return 転送が成功したらTRUEを返す
*/
-bool send_world_score(bool do_send)
+bool send_world_score(player_type *current_player_ptr, bool do_send)
{
#ifdef WORLD_SCORE
if(send_score && do_send)
prt(_("送信中..", "Sending..."),0,0);
Term_fresh();
screen_save();
- err = report_score();
+ err = report_score(current_player_ptr);
screen_load();
if (err)
{
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(bool do_send);
+extern bool send_world_score(player_type *current_player_ptr, bool do_send);
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);