X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcmd4.c;h=7fc9c33fce758c40388fedf90773f22ad3c21089;hb=b138823cd6c5891a1c8ea857c34503f59131c163;hp=7db4847109b680478e905995d8e4381d6175d002;hpb=bf3562737ea5c7bb69f6b1393d903d3aea8272cd;p=hengband%2Fhengband.git diff --git a/src/cmd4.c b/src/cmd4.c index 7db484710..f8b48e5aa 100644 --- a/src/cmd4.c +++ b/src/cmd4.c @@ -40,7 +40,16 @@ */ #include "angband.h" - +#include "cmd-pet.h" +#include "world.h" +#include "player-status.h" +#include "sort.h" +#include "mutation.h" +#include "quest.h" +#include "store.h" +#include "artifact.h" +#include "avatar.h" +#include "object-hook.h" /* @@ -56,7 +65,7 @@ static char auto_dump_footer[] = "# ^^^^^^^== %s ==^^^^^^^"; * Variables for auto dump */ static FILE *auto_dump_stream; -static cptr auto_dump_mark; +static concptr auto_dump_mark; static int auto_dump_line_num; @@ -65,7 +74,7 @@ static int auto_dump_line_num; * Remove old lines automatically generated before. * @param orig_file 消去を行うファイル名 */ -static void remove_auto_dump(cptr orig_file) +static void remove_auto_dump(concptr orig_file) { FILE *tmp_fff, *orig_fff; @@ -227,9 +236,9 @@ static void remove_auto_dump(cptr orig_file) * Dump a formatted line, using "vstrnfmt()". * @param fmt 出力内容 */ -static void auto_dump_printf(cptr fmt, ...) +static void auto_dump_printf(concptr fmt, ...) { - cptr p; + concptr p; va_list vp; char buf[1024]; @@ -261,7 +270,7 @@ static void auto_dump_printf(cptr fmt, ...) * @param mark 出力するヘッダマーク * @return ファイルポインタを取得できたらTRUEを返す */ -static bool open_auto_dump(cptr buf, cptr mark) +static bool open_auto_dump(concptr buf, concptr mark) { char header_mark_str[80]; @@ -334,7 +343,7 @@ static void close_auto_dump(void) * @param num number * @return pointer of suffix string. */ -cptr get_ordinal_number_suffix(int num) +concptr get_ordinal_number_suffix(int num) { num = ABS(num) % 100; switch (num % 10) @@ -360,16 +369,16 @@ cptr get_ordinal_number_suffix(int num) * @param note 日記内容のIDに応じた文字列参照ポインタ * @return エラーID */ -errr do_cmd_write_nikki(int type, int num, cptr note) +errr do_cmd_write_nikki(int type, int num, concptr note) { int day, hour, min; FILE *fff = NULL; - char file_name[80]; + GAME_TEXT file_name[MAX_NLEN]; char buf[1024]; - cptr note_level = ""; + concptr note_level = ""; bool do_level = TRUE; char note_level_buf[40]; - int q_idx; + QUEST_IDX q_idx; static bool disable_nikki = FALSE; @@ -383,7 +392,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note) type == NIKKI_RAND_QUEST_F || type == NIKKI_TO_QUEST) { - int old_quest; + QUEST_IDX old_quest; old_quest = p_ptr->inside_quest; p_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num; @@ -417,23 +426,23 @@ errr do_cmd_write_nikki(int type, int num, cptr note) return (-1); } - q_idx = quest_number(dun_level); + q_idx = quest_number(current_floor_ptr->dun_level); if (write_level) { if (p_ptr->inside_arena) note_level = _("アリーナ:", "Arane:"); - else if (!dun_level) + else if (!current_floor_ptr->dun_level) note_level = _("地上:", "Surface:"); else if (q_idx && (is_fixed_quest_idx(q_idx) - && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) + && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) note_level = _("クエスト:", "Quest:"); else { #ifdef JP - sprintf(note_level_buf, "%d階(%s):", dun_level, d_name+d_info[dungeon_type].name); + sprintf(note_level_buf, "%d階(%s):", (int)current_floor_ptr->dun_level, d_name+d_info[p_ptr->dungeon_idx].name); #else - sprintf(note_level_buf, "%s L%d:", d_name+d_info[dungeon_type].name, dun_level); + sprintf(note_level_buf, "%s L%d:", d_name+d_info[p_ptr->dungeon_idx].name, (int)current_floor_ptr->dun_level); #endif note_level = note_level_buf; } @@ -464,6 +473,11 @@ errr do_cmd_write_nikki(int type, int num, cptr note) fprintf(fff, _(" %2d:%02d %20s %sを発見した。\n", " %2d:%02d %20s discovered %s.\n"), hour, min, note_level, note); break; } + case NIKKI_ART_SCROLL: + { + fprintf(fff, _(" %2d:%02d %20s 巻物によって%sを生成した。\n", " %2d:%02d %20s created %s by scroll.\n"), hour, min, note_level, note); + break; + } case NIKKI_UNIQUE: { fprintf(fff, _(" %2d:%02d %20s %sを倒した。\n", " %2d:%02d %20s defeated %s.\n"), hour, min, note_level, note); @@ -485,7 +499,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note) } case NIKKI_RAND_QUEST_C: { - char name[80]; + GAME_TEXT name[MAX_NLEN]; strcpy(name, r_name+r_info[quest[num].r_idx].name); fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n", " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name); @@ -493,7 +507,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note) } case NIKKI_RAND_QUEST_F: { - char name[80]; + GAME_TEXT name[MAX_NLEN]; strcpy(name, r_name+r_info[quest[num].r_idx].name); fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n", " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name); @@ -503,21 +517,21 @@ errr do_cmd_write_nikki(int type, int num, cptr note) { fprintf(fff, _(" %2d:%02d %20s %sの最深階%d階に到達した。\n", " %2d:%02d %20s reached level %d of %s for the first time.\n"), hour, min, note_level, - _(d_name+d_info[dungeon_type].name, num), - _(num, d_name+d_info[dungeon_type].name)); + _(d_name+d_info[p_ptr->dungeon_idx].name, num), + _(num, d_name+d_info[p_ptr->dungeon_idx].name)); break; } case NIKKI_TRUMP: { fprintf(fff, _(" %2d:%02d %20s %s%sの最深階を%d階にセットした。\n", " %2d:%02d %20s reset recall level of %s to %d %s.\n"), hour, min, note_level, note, - _(d_name + d_info[num].name, max_dlv[num]), - _(max_dlv[num], d_name + d_info[num].name)); + _(d_name + d_info[num].name, (int)max_dlv[num]), + _((int)max_dlv[num], d_name + d_info[num].name)); break; } case NIKKI_STAIR: { - cptr to; + concptr to; if (q_idx && (is_fixed_quest_idx(q_idx) && !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) { @@ -525,8 +539,8 @@ errr do_cmd_write_nikki(int type, int num, cptr note) } else { - if (!(dun_level+num)) to = _("地上", "the surface"); - else to = format(_("%d階", "level %d"), dun_level+num); + if (!(current_floor_ptr->dun_level+num)) to = _("地上", "the surface"); + else to = format(_("%d階", "level %d"), current_floor_ptr->dun_level+num); } fprintf(fff, _(" %2d:%02d %20s %sへ%s。\n", " %2d:%02d %20s %s %s.\n"), hour, min, note_level, _(to, note), _(note, to)); break; @@ -535,8 +549,8 @@ errr do_cmd_write_nikki(int type, int num, cptr note) { if (!num) fprintf(fff, _(" %2d:%02d %20s 帰還を使って%sの%d階へ下りた。\n", " %2d:%02d %20s recalled to dungeon level %d of %s.\n"), - hour, min, note_level, _(d_name+d_info[dungeon_type].name, max_dlv[dungeon_type]), - _(max_dlv[dungeon_type], d_name+d_info[dungeon_type].name)); + hour, min, note_level, _(d_name+d_info[p_ptr->dungeon_idx].name, (int)max_dlv[p_ptr->dungeon_idx]), + _((int)max_dlv[p_ptr->dungeon_idx], d_name+d_info[p_ptr->dungeon_idx].name)); else fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level); break; @@ -591,11 +605,11 @@ errr do_cmd_write_nikki(int type, int num, cptr note) } case NIKKI_WIZ_TELE: { - cptr to; - if (!dun_level) + concptr to; + if (!current_floor_ptr->dun_level) to = _("地上", "the surface"); else - to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_type].name); + to = format(_("%d階(%s)", "level %d of %s"), current_floor_ptr->dun_level, d_name+d_info[p_ptr->dungeon_idx].name); fprintf(fff, _(" %2d:%02d %20s %sへとウィザード・テレポートで移動した。\n", " %2d:%02d %20s wizard-teleport to %s.\n"), hour, min, note_level, to); @@ -603,11 +617,11 @@ errr do_cmd_write_nikki(int type, int num, cptr note) } case NIKKI_PAT_TELE: { - cptr to; - if (!dun_level) + concptr to; + if (!current_floor_ptr->dun_level) to = _("地上", "the surface"); else - to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_type].name); + to = format(_("%d階(%s)", "level %d of %s"), current_floor_ptr->dun_level, d_name+d_info[p_ptr->dungeon_idx].name); fprintf(fff, _(" %2d:%02d %20s %sへとパターンの力で移動した。\n", " %2d:%02d %20s used Pattern to teleport to %s.\n"), hour, min, note_level, to); @@ -680,12 +694,19 @@ errr do_cmd_write_nikki(int type, int num, cptr note) case RECORD_NAMED_PET_LOSE_PARENT: fprintf(fff, _("%sの召喚者が既にいないため消え去った。\n", "%s disappeared because there does not exist summoner.\n"), note); break; + + default: fprintf(fff, "\n"); break; } break; } + + case NIKKI_WIZARD_LOG: + fprintf(fff, "%s\n", note); + break; + default: break; } @@ -709,7 +730,7 @@ errr do_cmd_write_nikki(int type, int num, cptr note) static void do_cmd_disp_nikki(void) { char nikki_title[256]; - char file_name[80]; + GAME_TEXT file_name[MAX_NLEN]; char buf[1024]; char tmp[80]; #ifdef JP @@ -786,16 +807,14 @@ static void do_cmd_disp_nikki(void) if (p_ptr->pclass == CLASS_WARRIOR || p_ptr->pclass == CLASS_MONK || p_ptr->pclass == CLASS_SAMURAI || p_ptr->pclass == CLASS_BERSERKER) strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-1)]); - else if (p_ptr->pclass == CLASS_MAGE || p_ptr->pclass == CLASS_HIGH_MAGE || p_ptr->pclass == CLASS_SORCERER) + else if (IS_WIZARD_CLASS()) strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-1)+1]); else strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-2)+1]); #ifdef JP - sprintf(nikki_title, "「%s%s%sの伝説 -%s-」", - ap_ptr->title, ap_ptr->no ? "の" : "", p_ptr->name, tmp); + sprintf(nikki_title, "「%s%s%sの伝説 -%s-」", ap_ptr->title, ap_ptr->no ? "の" : "", p_ptr->name, tmp); #else - sprintf(nikki_title, "Legend of %s %s '%s'", - ap_ptr->title, p_ptr->name, tmp); + sprintf(nikki_title, "Legend of %s %s '%s'", ap_ptr->title, p_ptr->name, tmp); #endif /* Display the file contents */ @@ -846,7 +865,7 @@ static void do_cmd_last_get(void) */ static void do_cmd_erase_nikki(void) { - char file_name[80]; + GAME_TEXT file_name[MAX_NLEN]; char buf[256]; FILE *fff = NULL; @@ -879,14 +898,11 @@ void do_cmd_nikki(void) /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save the screen */ screen_save(); /* Interact until done */ while (1) { - /* Clear screen */ Term_clear(); /* Ask for a choice */ @@ -906,7 +922,6 @@ void do_cmd_nikki(void) /* Prompt */ i = inkey(); - /* Done */ if (i == ESCAPE) break; switch (i) @@ -931,11 +946,8 @@ void do_cmd_nikki(void) bell(); } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); } @@ -957,45 +969,27 @@ void do_cmd_nikki(void) void do_cmd_redraw(void) { int j; - term *old = Term; /* Hack -- react to changes */ Term_xtra(TERM_XTRA_REACT, 0); - /* Combine and Reorder the pack (later) */ - p_ptr->notice |= (PN_COMBINE | PN_REORDER); - - - /* Update torch */ + p_ptr->update |= (PU_COMBINE | PU_REORDER); p_ptr->update |= (PU_TORCH); - - /* Update stuff */ p_ptr->update |= (PU_BONUS | PU_HP | PU_MANA | PU_SPELLS); - - /* Forget lite/view */ p_ptr->update |= (PU_UN_VIEW | PU_UN_LITE); - - /* Update lite/view */ p_ptr->update |= (PU_VIEW | PU_LITE | PU_MON_LITE); - - /* Update monsters */ p_ptr->update |= (PU_MONSTERS); - /* Redraw everything */ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY); - /* Window stuff */ p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER); - - /* Window stuff */ p_ptr->window |= (PW_MESSAGE | PW_OVERHEAD | PW_DUNGEON | PW_MONSTER | PW_OBJECT); update_playtime(); - /* Hack -- update */ handle_stuff(); if (p_ptr->prace == RACE_ANDROID) calc_android_exp(); @@ -1009,14 +1003,8 @@ void do_cmd_redraw(void) /* Activate */ Term_activate(angband_term[j]); - - /* Redraw */ Term_redraw(); - - /* Refresh */ Term_fresh(); - - /* Restore */ Term_activate(old); } } @@ -1035,8 +1023,6 @@ void do_cmd_change_name(void) char tmp[160]; - - /* Save the screen */ screen_save(); /* Forever */ @@ -1096,21 +1082,14 @@ void do_cmd_change_name(void) { mode++; } - - /* Oops */ else { bell(); } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); - - /* Redraw everything */ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY); handle_stuff(); @@ -1124,7 +1103,7 @@ void do_cmd_change_name(void) */ void do_cmd_message_one(void) { - /* Recall one message XXX XXX XXX */ + /* Recall one message */ prt(format("> %s", message_str(0)), 0, 0); } @@ -1157,11 +1136,10 @@ void do_cmd_messages(int num_now) char shower_str[81]; char finder_str[81]; char back_str[81]; - cptr shower = NULL; + concptr shower = NULL; int wid, hgt; int num_lines; - /* Get size */ Term_get_size(&wid, &hgt); /* Number of message lines in a screen */ @@ -1178,11 +1156,7 @@ void do_cmd_messages(int num_now) /* Start on first message */ i = 0; - - /* Save the screen */ screen_save(); - - /* Clear screen */ Term_clear(); /* Process requests until done */ @@ -1194,7 +1168,7 @@ void do_cmd_messages(int num_now) /* Dump up to 20 lines of messages */ for (j = 0; (j < num_lines) && (i + j < n); j++) { - cptr msg = message_str(i+j); + concptr msg = message_str(i+j); /* Dump the messages, bottom to top */ c_prt((i + j < num_now ? TERM_WHITE : TERM_SLATE), msg, num_lines + 1 - j, 0); @@ -1202,7 +1176,7 @@ void do_cmd_messages(int num_now) /* Hilite "shower" */ if (shower && shower[0]) { - cptr str = msg; + concptr str = msg; /* Display matches */ while ((str = my_strstr(str, shower)) != NULL) @@ -1224,21 +1198,15 @@ void do_cmd_messages(int num_now) Term_erase(0, num_lines + 1 - j, 255); } - /* Display header XXX XXX XXX */ -#ifdef JP + /* Display header */ /* translation */ - prt(format("以前のメッセージ %d-%d 全部で(%d)", - i, i + j - 1, n), 0, 0); -#else - prt(format("Message Recall (%d-%d of %d)", + prt(format(_("以前のメッセージ %d-%d 全部で(%d)", "Message Recall (%d-%d of %d)"), i, i + j - 1, n), 0, 0); -#endif /* Display prompt (not very informative) */ prt(_("[ 'p' で更に古いもの, 'n' で更に新しいもの, '/' で検索, ESC で中断 ]", "[Press 'p' for older, 'n' for newer, ..., or ESCAPE]"), hgt - 1, 0); - /* Get a command */ skey = inkey_special(TRUE); /* Exit on Escape */ @@ -1263,7 +1231,6 @@ void do_cmd_messages(int num_now) } else strcpy(shower_str, back_str); - /* Okay */ continue; /* Hack -- handle find */ @@ -1294,7 +1261,7 @@ void do_cmd_messages(int num_now) /* Scan messages */ for (z = i + 1; z < n; z++) { - cptr msg = message_str(z); + concptr msg = message_str(z); /* Search for it */ if (my_strstr(msg, finder_str)) @@ -1302,7 +1269,6 @@ void do_cmd_messages(int num_now) /* New location */ i = z; - /* Done */ break; } } @@ -1370,76 +1336,29 @@ void do_cmd_messages(int num_now) /* Hack -- Error of some kind */ if (i == j) bell(); } - - /* Restore the screen */ screen_load(); } - -/*! - * チートオプションの最大数 / Number of cheating options - */ -#define CHEAT_MAX 7 - -/*! - * チーとオプションの定義テーブル / Cheating options - */ -static option_type cheat_info[CHEAT_MAX] = -{ - { &cheat_peek, FALSE, 255, 0x01, 0x00, - "cheat_peek", _("アイテムの生成をのぞき見る", "Peek into object creation") - }, - - { &cheat_hear, FALSE, 255, 0x02, 0x00, - "cheat_hear", _("モンスターの生成をのぞき見る", "Peek into monster creation") - }, - - { &cheat_room, FALSE, 255, 0x04, 0x00, - "cheat_room", _("ダンジョンの生成をのぞき見る", "Peek into dungeon creation") - }, - - { &cheat_xtra, FALSE, 255, 0x08, 0x00, - "cheat_xtra", _("その他の事をのぞき見る", "Peek into something else") - }, - - { &cheat_know, FALSE, 255, 0x10, 0x00, - "cheat_know", _("完全なモンスターの思い出を知る", "Know complete monster info") - }, - - { &cheat_live, FALSE, 255, 0x20, 0x00, - "cheat_live", _("死を回避することを可能にする", "Allow player to avoid death") - }, - - { &cheat_save, FALSE, 255, 0x40, 0x00, - "cheat_save", _("死んだ時セーブするか確認する", "Ask for saving death") - } -}; - /*! * @brief チートオプションを変更するコマンドのメインルーチン * Interact with some options for cheating * @param info 表示メッセージ * @return なし */ -static void do_cmd_options_cheat(cptr info) +static void do_cmd_options_cheat(concptr info) { char ch; - int i, k = 0, n = CHEAT_MAX; - char buf[80]; - - - /* Clear screen */ Term_clear(); /* Interact with the player */ while (TRUE) { - int dir; + DIRECTION dir; - /* Prompt XXX XXX XXX */ + /* Prompt */ sprintf(buf, _("%s ( リターンで次へ, y/n でセット, ESC で決定 )", "%s (RET to advance, y/n to set, ESC to accept) "), info); prt(buf, 0, 0); @@ -1548,18 +1467,6 @@ static void do_cmd_options_cheat(cptr info) /*! - * 自動セーブオプションテーブル - */ -static option_type autosave_info[2] = -{ - { &autosave_l, FALSE, 255, 0x01, 0x00, - "autosave_l", _("新しい階に入る度に自動セーブする", "Autosave when entering new levels") }, - - { &autosave_t, FALSE, 255, 0x02, 0x00, - "autosave_t", _("一定ターン毎に自動セーブする", "Timed autosave") }, -}; - -/*! * @brief セーブ頻度ターンの次の値を返す * @param current 現在のセーブ頻度ターン値 * @return 次のセーブ頻度ターン値 @@ -1587,22 +1494,18 @@ static s16b toggle_frequency(s16b current) * @param info 表示メッセージ * @return なし */ -static void do_cmd_options_autosave(cptr info) +static void do_cmd_options_autosave(concptr info) { - char ch; - - int i, k = 0, n = 2; - - char buf[80]; - + char ch; + int i, k = 0, n = 2; + char buf[80]; - /* Clear screen */ Term_clear(); /* Interact with the player */ while (TRUE) { - /* Prompt XXX XXX XXX */ + /* Prompt */ sprintf(buf, _("%s ( リターンで次へ, y/n でセット, F で頻度を入力, ESC で決定 ) ", "%s (RET to advance, y/n to set, 'F' for frequency, ESC to accept) "), info); @@ -1618,9 +1521,9 @@ static void do_cmd_options_autosave(cptr info) /* Display the option text */ sprintf(buf, "%-48s: %s (%s)", - autosave_info[i].o_desc, - (*autosave_info[i].o_var ? _("はい ", "yes") : _("いいえ", "no ")), - autosave_info[i].o_text); + autosave_info[i].o_desc, + (*autosave_info[i].o_var ? _("はい ", "yes") : _("いいえ", "no ")), + autosave_info[i].o_text); c_prt(a, buf, i + 2, 0); } prt(format(_("自動セーブの頻度: %d ターン毎", "Timed autosave frequency: every %d turns"), autosave_freq), 5, 0); @@ -1706,7 +1609,7 @@ static void do_cmd_options_autosave(cptr info) * @param info 表示メッセージ * @return なし */ -void do_cmd_options_aux(int page, cptr info) +void do_cmd_options_aux(int page, concptr info) { char ch; int i, k = 0, n = 0, l; @@ -1725,17 +1628,14 @@ void do_cmd_options_aux(int page, cptr info) /* Notice options on this "page" */ if (option_info[i].o_page == page) opt[n++] = i; } - - - /* Clear screen */ Term_clear(); /* Interact with the player */ while (TRUE) { - int dir; + DIRECTION dir; - /* Prompt XXX XXX XXX */ + /* Prompt */ sprintf(buf, _("%s (リターン:次, %sESC:終了, ?:ヘルプ) ", "%s (RET:next, %s, ?:help) "), info, browse_only ? _("", "ESC:exit") : _("y/n:変更, ", "y/n:change, ESC:accept")); prt(buf, 0, 0); @@ -1858,14 +1758,10 @@ void do_cmd_options_aux(int page, cptr info) static void do_cmd_options_win(void) { int i, j, d; - - int y = 0; - int x = 0; - + TERM_LEN y = 0; + TERM_LEN x = 0; char ch; - bool go = TRUE; - u32b old_flag[8]; @@ -1876,14 +1772,12 @@ static void do_cmd_options_win(void) old_flag[j] = window_flag[j]; } - - /* Clear screen */ Term_clear(); /* Interact */ while (go) { - /* Prompt XXX XXX XXX */ + /* Prompt */ prt(_("ウィンドウ・フラグ (<方向>で移動, tでチェンジ, y/n でセット, ESC)", "Window Flags (, t, y, n, ESC) "), 0, 0); /* Display the windows */ @@ -1891,7 +1785,7 @@ static void do_cmd_options_win(void) { byte a = TERM_WHITE; - cptr s = angband_term_name[j]; + concptr s = angband_term_name[j]; /* Use color */ if (j == x) a = TERM_L_BLUE; @@ -1905,7 +1799,7 @@ static void do_cmd_options_win(void) { byte a = TERM_WHITE; - cptr str = window_flag_desc[i]; + concptr str = window_flag_desc[i]; /* Use color */ if (i == y) a = TERM_L_BLUE; @@ -1919,9 +1813,8 @@ static void do_cmd_options_win(void) /* Display the windows */ for (j = 0; j < 8; j++) { - byte a = TERM_WHITE; - char c = '.'; + a = TERM_WHITE; /* Use color */ if ((i == y) && (j == x)) a = TERM_L_BLUE; @@ -2019,14 +1912,8 @@ static void do_cmd_options_win(void) /* Activate */ Term_activate(angband_term[j]); - - /* Erase */ Term_clear(); - - /* Refresh */ Term_fresh(); - - /* Restore */ Term_activate(old); } } @@ -2038,7 +1925,7 @@ static void do_cmd_options_win(void) static struct opts { char key; - cptr name; + concptr name; int row; } option_fields[OPT_NUM] = @@ -2096,10 +1983,8 @@ option_fields[OPT_NUM] = void do_cmd_options(void) { char k; - int i, d, skey; - int y = 0; - - /* Save the screen */ + int d, skey; + TERM_LEN i, y = 0; screen_save(); /* Interact */ @@ -2109,8 +1994,6 @@ void do_cmd_options(void) /* Does not list cheat option when cheat option is off */ if (!p_ptr->noscore && !allow_debug_opts) n--; - - /* Clear screen */ Term_clear(); /* Why are we here */ @@ -2364,18 +2247,14 @@ void do_cmd_options(void) /* Unknown option */ default: { - /* Oops */ bell(); break; } } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); /* Hack - Redraw equippy chars */ @@ -2389,7 +2268,7 @@ void do_cmd_options(void) * Ask for a "user pref line" and process it * @return なし * @details - * XXX XXX XXX Allow absolute file names? + * Allow absolute file names? */ void do_cmd_pref(void) { @@ -2423,9 +2302,9 @@ void do_cmd_reload_autopick(void) * @param fname ファイル名 * @return なし */ -static errr macro_dump(cptr fname) +static errr macro_dump(concptr fname) { - static cptr mark = "Macro Dump"; + static concptr mark = "Macro Dump"; int i; @@ -2484,12 +2363,10 @@ static errr macro_dump(cptr fname) */ static void do_cmd_macro_aux(char *buf) { - int i, n = 0; - + char i; + int n = 0; char tmp[1024]; - - /* Flush */ flush(); /* Do not process macros */ @@ -2517,10 +2394,8 @@ static void do_cmd_macro_aux(char *buf) /* Terminate */ buf[n] = '\0'; - /* Flush */ flush(); - /* Convert the trigger */ ascii_to_text(tmp, buf); @@ -2538,31 +2413,25 @@ static void do_cmd_macro_aux(char *buf) * @details *
  * Note that both "flush()" calls are extremely important.  This may
- * no longer be true, since "util.c" is much simpler now.  XXX XXX XXX
+ * no longer be true, since "util.c" is much simpler now.  
  * 
*/ static void do_cmd_macro_aux_keymap(char *buf) { char tmp[1024]; - - /* Flush */ flush(); - /* Get a key */ buf[0] = inkey(); buf[1] = '\0'; - /* Convert to ascii */ ascii_to_text(tmp, buf); /* Hack -- display the trigger */ Term_addstr(-1, TERM_WHITE, tmp); - - /* Flush */ flush(); } @@ -2574,15 +2443,15 @@ static void do_cmd_macro_aux_keymap(char *buf) * @return エラーコード * @details */ -static errr keymap_dump(cptr fname) +static errr keymap_dump(concptr fname) { - static cptr mark = "Keymap Dump"; + static concptr mark = "Keymap Dump"; int i; char key[1024]; char buf[1024]; - int mode; + BIT_FLAGS mode; /* Roguelike */ if (rogue_like_commands) @@ -2612,7 +2481,7 @@ static errr keymap_dump(cptr fname) /* Dump them */ for (i = 0; i < 256; i++) { - cptr act; + concptr act; /* Loop up the keymap */ act = keymap_act[mode][i]; @@ -2621,7 +2490,7 @@ static errr keymap_dump(cptr fname) if (!act) continue; /* Encode the key */ - buf[0] = i; + buf[0] = (char)i; buf[1] = '\0'; ascii_to_text(key, buf); @@ -2649,7 +2518,7 @@ static errr keymap_dump(cptr fname) *
  * Note that the macro "action" must be defined before the trigger.
  *
- * Could use some helpful instructions on this page.  XXX XXX XXX
+ * Could use some helpful instructions on this page.  
  * 
*/ void do_cmd_macros(void) @@ -2660,7 +2529,7 @@ void do_cmd_macros(void) char buf[1024]; - int mode; + BIT_FLAGS mode; /* Roguelike */ @@ -2678,18 +2547,13 @@ void do_cmd_macros(void) /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save screen */ screen_save(); /* Process requests until done */ while (1) { - /* Clear screen */ Term_clear(); - - /* Describe */ prt(_("[ マクロの設定 ]", "Interact with Macros"), 2, 0); /* Describe that action */ @@ -2719,7 +2583,6 @@ void do_cmd_macros(void) /* Prompt */ prt(_("コマンド: ", "Command: "), 16, 0); - /* Get a command */ i = inkey(); /* Leave */ @@ -2908,7 +2771,7 @@ void do_cmd_macros(void) /* Query a keymap */ else if (i == '7') { - cptr act; + concptr act; /* Prompt */ prt(_("コマンド: キー配置の確認", "Command: Query a keymap"), 16, 0); @@ -3038,25 +2901,20 @@ void do_cmd_macros(void) #endif /* ALLOW_MACROS */ - /* Oops */ else { - /* Oops */ bell(); } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Load screen */ screen_load(); } /*! * @brief キャラクタ色の明暗表現 */ -static cptr lighting_level_str[F_LIT_MAX] = +static concptr lighting_level_str[F_LIT_MAX] = { #ifdef JP "標準色", @@ -3077,19 +2935,19 @@ static cptr lighting_level_str[F_LIT_MAX] = * @param max ビジュアルIDの最大数 * @return 指定が実際に行われた場合TRUE、キャンセルされた場合FALSE */ -static bool cmd_visuals_aux(int i, int *num, int max) +static bool cmd_visuals_aux(int i, IDX *num, IDX max) { if (iscntrl(i)) { char str[10] = ""; - int tmp; + IDX tmp; sprintf(str, "%d", *num); if (!get_string(format("Input new number(0-%d): ", max-1), str, 4)) return FALSE; - tmp = strtol(str, NULL, 0); + tmp = (IDX)strtol(str, NULL, 0); if (tmp >= 0 && tmp < max) *num = tmp; } @@ -3106,7 +2964,7 @@ static bool cmd_visuals_aux(int i, int *num, int max) * @param choice_msg 選択メッセージ * @return なし */ -static void print_visuals_menu(cptr choice_msg) +static void print_visuals_menu(concptr choice_msg) { prt(_("[ 画面表示の設定 ]", "Interact with Visuals"), 1, 0); @@ -3131,9 +2989,9 @@ static void print_visuals_menu(cptr choice_msg) prt(format("コマンド: %s", choice_msg ? choice_msg : _("", "")), 15, 0); } -static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int direct_r_idx); -static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, int direct_k_idx); -static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int direct_f_idx, int *lighting_level); +static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, IDX direct_r_idx); +static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, IDX direct_k_idx); +static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX direct_f_idx, IDX *lighting_level); /* * Interact with "visuals" @@ -3144,20 +3002,17 @@ void do_cmd_visuals(void) char tmp[160]; char buf[1024]; bool need_redraw = FALSE; - const char *empty_symbol = "<< ? >>"; + concptr empty_symbol = "<< ? >>"; if (use_bigtile) empty_symbol = "<< ?? >>"; /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save the screen */ screen_save(); /* Interact until done */ while (1) { - /* Clear screen */ Term_clear(); /* Ask for a choice */ @@ -3166,7 +3021,6 @@ void do_cmd_visuals(void) /* Prompt */ i = inkey(); - /* Done */ if (i == ESCAPE) break; switch (i) @@ -3196,7 +3050,7 @@ void do_cmd_visuals(void) /* Dump monster attr/chars */ case '1': { - static cptr mark = "Monster attr/chars"; + static concptr mark = "Monster attr/chars"; /* Prompt */ prt(_("コマンド: モンスターの[色/文字]をファイルに書き出します", "Command: Dump monster attr/chars"), 15, 0); @@ -3238,7 +3092,6 @@ void do_cmd_visuals(void) /* Close */ close_auto_dump(); - /* Message */ msg_print(_("モンスターの[色/文字]をファイルに書き出しました。", "Dumped monster attr/chars.")); break; @@ -3247,7 +3100,8 @@ void do_cmd_visuals(void) /* Dump object attr/chars */ case '2': { - static cptr mark = "Object attr/chars"; + static concptr mark = "Object attr/chars"; + KIND_OBJECT_IDX k_idx; /* Prompt */ prt(_("コマンド: アイテムの[色/文字]をファイルに書き出します", "Command: Dump object attr/chars"), 15, 0); @@ -3271,10 +3125,10 @@ void do_cmd_visuals(void) auto_dump_printf(_("\n# アイテムの[色/文字]の設定\n\n", "\n# Object attr/char definitions\n\n")); /* Dump objects */ - for (i = 0; i < max_k_idx; i++) + for (k_idx = 0; k_idx < max_k_idx; k_idx++) { - char o_name[80]; - object_kind *k_ptr = &k_info[i]; + GAME_TEXT o_name[MAX_NLEN]; + object_kind *k_ptr = &k_info[k_idx]; /* Skip non-entries */ if (!k_ptr->name) continue; @@ -3282,14 +3136,14 @@ void do_cmd_visuals(void) if (!k_ptr->flavor) { /* Tidy name */ - strip_name(o_name, i); + strip_name(o_name, k_idx); } else { object_type forge; /* Prepare dummy object */ - object_prep(&forge, i); + object_prep(&forge, k_idx); /* Get un-shuffled flavor name */ object_desc(o_name, &forge, OD_FORCE_FLAVOR); @@ -3299,14 +3153,13 @@ void do_cmd_visuals(void) auto_dump_printf("# %s\n", o_name); /* Dump the object attr/char info */ - auto_dump_printf("K:%d:0x%02X/0x%02X\n\n", i, + auto_dump_printf("K:%d:0x%02X/0x%02X\n\n", (int)k_idx, (byte)(k_ptr->x_attr), (byte)(k_ptr->x_char)); } /* Close */ close_auto_dump(); - /* Message */ msg_print(_("アイテムの[色/文字]をファイルに書き出しました。", "Dumped object attr/chars.")); break; @@ -3315,7 +3168,7 @@ void do_cmd_visuals(void) /* Dump feature attr/chars */ case '3': { - static cptr mark = "Feature attr/chars"; + static concptr mark = "Feature attr/chars"; /* Prompt */ prt(_("コマンド: 地形の[色/文字]をファイルに書き出します", "Command: Dump feature attr/chars"), 15, 0); @@ -3362,7 +3215,6 @@ void do_cmd_visuals(void) /* Close */ close_auto_dump(); - /* Message */ msg_print(_("地形の[色/文字]をファイルに書き出しました。", "Dumped feature attr/chars.")); break; @@ -3371,8 +3223,8 @@ void do_cmd_visuals(void) /* Modify monster attr/chars (numeric operation) */ case '4': { - static cptr choice_msg = _("モンスターの[色/文字]を変更します", "Change monster attr/chars"); - static int r = 0; + static concptr choice_msg = _("モンスターの[色/文字]を変更します", "Change monster attr/chars"); + static MONRACE_IDX r = 0; prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0); @@ -3380,12 +3232,12 @@ void do_cmd_visuals(void) while (1) { monster_race *r_ptr = &r_info[r]; - char c; - int t; + int c; + IDX t; - byte da = r_ptr->d_attr; + TERM_COLOR da = r_ptr->d_attr; byte dc = r_ptr->d_char; - byte ca = r_ptr->x_attr; + TERM_COLOR ca = r_ptr->x_attr; byte cc = r_ptr->x_char; /* Label the object */ @@ -3410,7 +3262,6 @@ void do_cmd_visuals(void) Term_putstr(0, 22, -1, TERM_WHITE, _("コマンド (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ", "Command (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ")); - /* Get a command */ i = inkey(); /* All done */ @@ -3424,7 +3275,7 @@ void do_cmd_visuals(void) { case 'n': { - int prev_r = r; + IDX prev_r = r; do { if (!cmd_visuals_aux(i, &r, max_r_idx)) @@ -3450,8 +3301,6 @@ void do_cmd_visuals(void) break; case 'v': do_cmd_knowledge_monsters(&need_redraw, TRUE, r); - - /* Clear screen */ Term_clear(); print_visuals_menu(choice_msg); break; @@ -3464,21 +3313,21 @@ void do_cmd_visuals(void) /* Modify object attr/chars (numeric operation) */ case '5': { - static cptr choice_msg = _("アイテムの[色/文字]を変更します", "Change object attr/chars"); - static int k = 0; + static concptr choice_msg = _("アイテムの[色/文字]を変更します", "Change object attr/chars"); + static IDX k = 0; prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0); /* Hack -- query until done */ while (1) { object_kind *k_ptr = &k_info[k]; - char c; - int t; + int c; + IDX t; - byte da = k_ptr->d_attr; - byte dc = k_ptr->d_char; - byte ca = k_ptr->x_attr; - byte cc = k_ptr->x_char; + TERM_COLOR da = k_ptr->d_attr; + SYMBOL_CODE dc = k_ptr->d_char; + TERM_COLOR ca = k_ptr->x_attr; + SYMBOL_CODE cc = k_ptr->x_char; /* Label the object */ Term_putstr(5, 17, -1, TERM_WHITE, @@ -3503,7 +3352,6 @@ void do_cmd_visuals(void) Term_putstr(0, 22, -1, TERM_WHITE, _("コマンド (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ", "Command (n/N/^N/a/A/^A/c/C/^C/v/V/^V): ")); - /* Get a command */ i = inkey(); /* All done */ @@ -3517,7 +3365,7 @@ void do_cmd_visuals(void) { case 'n': { - int prev_k = k; + IDX prev_k = k; do { if (!cmd_visuals_aux(i, &k, max_k_idx)) @@ -3543,8 +3391,6 @@ void do_cmd_visuals(void) break; case 'v': do_cmd_knowledge_objects(&need_redraw, TRUE, k); - - /* Clear screen */ Term_clear(); print_visuals_menu(choice_msg); break; @@ -3557,21 +3403,21 @@ void do_cmd_visuals(void) /* Modify feature attr/chars (numeric operation) */ case '6': { - static cptr choice_msg = _("地形の[色/文字]を変更します", "Change feature attr/chars"); - static int f = 0; - static int lighting_level = F_LIT_STANDARD; + static concptr choice_msg = _("地形の[色/文字]を変更します", "Change feature attr/chars"); + static IDX f = 0; + static IDX lighting_level = F_LIT_STANDARD; prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0); /* Hack -- query until done */ while (1) { feature_type *f_ptr = &f_info[f]; - char c; - int t; + int c; + IDX t; - byte da = f_ptr->d_attr[lighting_level]; + TERM_COLOR da = f_ptr->d_attr[lighting_level]; byte dc = f_ptr->d_char[lighting_level]; - byte ca = f_ptr->x_attr[lighting_level]; + TERM_COLOR ca = f_ptr->x_attr[lighting_level]; byte cc = f_ptr->x_char[lighting_level]; /* Label the object */ @@ -3608,7 +3454,6 @@ void do_cmd_visuals(void) "Command (n/N/^N/a/A/^A/c/C/^C/l/L/^L/d/D/^D/v/V/^V): "); #endif - /* Get a command */ i = inkey(); /* All done */ @@ -3622,7 +3467,7 @@ void do_cmd_visuals(void) { case 'n': { - int prev_f = f; + IDX prev_f = f; do { if (!cmd_visuals_aux(i, &f, max_f_idx)) @@ -3655,8 +3500,6 @@ void do_cmd_visuals(void) break; case 'v': do_cmd_knowledge_features(&need_redraw, TRUE, f, &lighting_level); - - /* Clear screen */ Term_clear(); print_visuals_menu(choice_msg); break; @@ -3679,7 +3522,7 @@ void do_cmd_visuals(void) /* Modify feature attr/chars (visual mode) */ case '9': { - int lighting_level = F_LIT_STANDARD; + IDX lighting_level = F_LIT_STANDARD; do_cmd_knowledge_features(&need_redraw, TRUE, -1, &lighting_level); break; } @@ -3692,7 +3535,6 @@ void do_cmd_visuals(void) /* Reset */ reset_visuals(); - /* Message */ msg_print(_("画面上の[色/文字]を初期値にリセットしました。", "Visual attr/char tables reset.")); need_redraw = TRUE; break; @@ -3703,11 +3545,8 @@ void do_cmd_visuals(void) break; } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); if (need_redraw) do_cmd_redraw(); @@ -3729,15 +3568,12 @@ void do_cmd_colors(void) /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save the screen */ screen_save(); /* Interact until done */ while (1) { - /* Clear screen */ Term_clear(); /* Ask for a choice */ @@ -3756,7 +3592,6 @@ void do_cmd_colors(void) /* Prompt */ i = inkey(); - /* Done */ if (i == ESCAPE) break; /* Load a 'pref' file */ @@ -3789,7 +3624,7 @@ void do_cmd_colors(void) /* Dump colors */ else if (i == '2') { - static cptr mark = "Colors"; + static concptr mark = "Colors"; /* Prompt */ prt(_("コマンド: カラーの設定をファイルに書き出します", "Command: Dump colors"), 8, 0); @@ -3820,7 +3655,7 @@ void do_cmd_colors(void) int gv = angband_color_table[i][2]; int bv = angband_color_table[i][3]; - cptr name = _("未知", "unknown"); + concptr name = _("未知", "unknown"); /* Skip non-entries */ if (!kv && !rv && !gv && !bv) continue; @@ -3839,7 +3674,6 @@ void do_cmd_colors(void) /* Close */ close_auto_dump(); - /* Message */ msg_print(_("カラーの設定をファイルに書き出しました。", "Dumped color redefinitions.")); } @@ -3854,7 +3688,7 @@ void do_cmd_colors(void) /* Hack -- query until done */ while (1) { - cptr name; + concptr name; byte j; /* Clear */ @@ -3889,8 +3723,6 @@ void do_cmd_colors(void) Term_putstr(0, 14, -1, TERM_WHITE, _("コマンド (n/N/k/K/r/R/g/G/b/B): ", "Command (n/N/k/K/r/R/g/G/b/B): ")); - - /* Get a command */ i = inkey(); /* All done */ @@ -3924,12 +3756,9 @@ void do_cmd_colors(void) bell(); } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); } @@ -3960,9 +3789,13 @@ void do_cmd_note(void) */ void do_cmd_version(void) { - /* Silly message */ +#if FAKE_VER_EXTRA > 0 + msg_format(_("変愚蛮怒(Hengband) %d.%d.%d.%d", "You are playing Hengband %d.%d.%d.%d."), + FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH, FAKE_VER_EXTRA); +#else msg_format(_("変愚蛮怒(Hengband) %d.%d.%d", "You are playing Hengband %d.%d.%d."), - FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH); + FAKE_VER_MAJOR - 10, FAKE_VER_MINOR, FAKE_VER_PATCH); +#endif } @@ -3970,7 +3803,7 @@ void do_cmd_version(void) /* * Array of feeling strings */ -static cptr do_cmd_feeling_text[11] = +static concptr do_cmd_feeling_text[11] = { _("この階の雰囲気を感じとれなかった...", "Looks like any other level."), _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."), @@ -3985,7 +3818,7 @@ static cptr do_cmd_feeling_text[11] = _("なんて退屈なところだ...", "What a boring place...") }; -static cptr do_cmd_feeling_text_combat[11] = +static concptr do_cmd_feeling_text_combat[11] = { _("この階の雰囲気を感じとれなかった...", "Looks like any other level."), _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."), @@ -4000,7 +3833,7 @@ static cptr do_cmd_feeling_text_combat[11] = _("なんて退屈なところだ...", "What a boring place...") }; -static cptr do_cmd_feeling_text_lucky[11] = +static concptr do_cmd_feeling_text_lucky[11] = { _("この階の雰囲気を感じとれなかった...", "Looks like any other level."), _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."), @@ -4022,17 +3855,19 @@ static cptr do_cmd_feeling_text_lucky[11] = */ void do_cmd_feeling(void) { + if (p_ptr->wild_mode) return; + /* No useful feeling in quests */ - if (p_ptr->inside_quest && !random_quest_number(dun_level)) + if (p_ptr->inside_quest && !random_quest_number(current_floor_ptr->dun_level)) { msg_print(_("典型的なクエストのダンジョンのようだ。", "Looks like a typical quest level.")); return; } /* No useful feeling in town */ - else if (p_ptr->town_num && !dun_level) + else if (p_ptr->town_num && !current_floor_ptr->dun_level) { - if (!strcmp(town[p_ptr->town_num].name, _("荒野", "wilderness"))) + if (!strcmp(town_info[p_ptr->town_num].name, _("荒野", "wilderness"))) { msg_print(_("何かありそうな荒野のようだ。", "Looks like a strange wilderness.")); return; @@ -4045,7 +3880,7 @@ void do_cmd_feeling(void) } /* No useful feeling in the wilderness */ - else if (!dun_level) + else if (!current_floor_ptr->dun_level) { msg_print(_("典型的な荒野のようだ。", "Looks like a typical wilderness.")); return; @@ -4066,7 +3901,7 @@ void do_cmd_feeling(void) /* * Description of each monster group. */ -static cptr monster_group_text[] = +static concptr monster_group_text[] = { #ifdef JP "ユニーク", /* "Uniques" */ @@ -4199,7 +4034,7 @@ static cptr monster_group_text[] = * Symbols of monsters in each group. Note the "Uniques" group * is handled differently. */ -static cptr monster_group_char[] = +static concptr monster_group_char[] = { (char *) -1L, (char *) -2L, @@ -4296,13 +4131,14 @@ static bool ang_sort_comp_monster_level(vptr u, vptr v, int a, int b) * mode & 0x01 : check for non-empty group * mode & 0x02 : visual operation only */ -static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode) +static IDX collect_monsters(IDX grp_cur, IDX mon_idx[], BIT_FLAGS8 mode) { - int i, mon_cnt = 0; + IDX i; + IDX mon_cnt = 0; int dummy_why; /* Get a list of x_char in this group */ - cptr group_char = monster_group_char[grp_cur]; + concptr group_char = monster_group_char[grp_cur]; /* XXX Hack -- Check if this is the "Uniques" group */ bool grp_unique = (monster_group_char[grp_cur] == (char *) -1L); @@ -4391,7 +4227,7 @@ static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode) /* * Description of each monster group. */ -static cptr object_group_text[] = +static concptr object_group_text[] = { #ifdef JP "キノコ", /* "Mushrooms" */ @@ -4542,9 +4378,10 @@ static byte object_group_tval[] = * mode & 0x01 : check for non-empty group * mode & 0x02 : visual operation only */ -static int collect_objects(int grp_cur, int object_idx[], byte mode) +static KIND_OBJECT_IDX collect_objects(int grp_cur, KIND_OBJECT_IDX object_idx[], BIT_FLAGS8 mode) { - int i, j, k, object_cnt = 0; + KIND_OBJECT_IDX i, object_cnt = 0; + int j, k; /* Get a list of x_char in this group */ byte group_tval = object_group_tval[grp_cur]; @@ -4611,7 +4448,7 @@ static int collect_objects(int grp_cur, int object_idx[], byte mode) /* * Description of each feature group. */ -static cptr feature_group_text[] = +static concptr feature_group_text[] = { "terrains", NULL @@ -4624,9 +4461,10 @@ static cptr feature_group_text[] = * * mode & 0x01 : check for non-empty group */ -static int collect_features(int grp_cur, int *feat_idx, byte mode) +static FEAT_IDX collect_features(int grp_cur, FEAT_IDX *feat_idx, BIT_FLAGS8 mode) { - int i, feat_cnt = 0; + FEAT_IDX i; + FEAT_IDX feat_cnt = 0; /* Unused; There is a single group. */ (void)grp_cur; @@ -4710,18 +4548,14 @@ static char hack[17] = "dwsorgbuDWvyRGBU"; */ void do_cmd_load_screen(void) { - int i, y, x; - - byte a = 0; - char c = ' '; - + int i; + TERM_LEN y, x; + TERM_COLOR a = 0; + SYMBOL_CODE c = ' '; bool okay = TRUE; - FILE *fff; - char buf[1024]; - - int wid, hgt; + TERM_LEN wid, hgt; Term_get_size(&wid, &hgt); @@ -4731,21 +4565,15 @@ void do_cmd_load_screen(void) /* Append to the file */ fff = my_fopen(buf, "r"); - /* Oops */ if (!fff) { msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf); msg_print(NULL); return; } - - /* Save the screen */ screen_save(); - - /* Clear the screen */ Term_clear(); - /* Load the screen */ for (y = 0; okay; y++) { @@ -4794,7 +4622,7 @@ void do_cmd_load_screen(void) for (i = 0; i < 16; i++) { /* Use attr matches */ - if (hack[i] == buf[x]) a = i; + if (hack[i] == buf[x]) a = (byte_hack)i; } /* Put the attr/char */ @@ -4802,26 +4630,21 @@ void do_cmd_load_screen(void) } } - /* Close it */ my_fclose(fff); - - /* Message */ prt(_("ファイルに書き出された画面(記念撮影)をロードしました。", "Screen dump loaded."), 0, 0); flush(); inkey(); - - /* Restore the screen */ screen_load(); } -cptr inven_res_label = _(" 酸電火冷毒光闇破轟獄因沌劣 盲怖乱痺透命感消復浮", +concptr inven_res_label = _(" 酸電火冷毒光闇破轟獄因沌劣 盲怖乱痺透命感消復浮", " AcElFiCoPoLiDkShSoNtNxCaDi BlFeCfFaSeHlEpSdRgLv"); @@ -4842,10 +4665,10 @@ cptr inven_res_label = _(" 酸電火冷毒光闇 /* XTRA HACK RESLIST */ -static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, byte tval, char *where) +static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, OBJECT_TYPE_VALUE tval, char *where) { - char o_name[MAX_NLEN]; - u32b flgs[TR_FLAG_SIZE]; + GAME_TEXT o_name[MAX_NLEN]; + BIT_FLAGS flgs[TR_FLAG_SIZE]; if (!o_ptr->k_idx) return; if (o_ptr->tval != tval) return; @@ -4941,16 +4764,13 @@ static void do_cmd_knowledge_inven_aux(FILE *fff, object_type *o_ptr, int *j, by static void do_cmd_knowledge_inven(void) { FILE *fff; - - char file_name[1024]; - + GAME_TEXT file_name[1024]; store_type *st_ptr; - - byte tval; + OBJECT_TYPE_VALUE tval; int i = 0; int j = 0; - char where[32]; + char where[32]; /* Open a new file */ fff = my_fopen_temp(file_name, 1024); @@ -4981,15 +4801,13 @@ static void do_cmd_knowledge_inven(void) do_cmd_knowledge_inven_aux(fff, &inventory[i], &j, tval, where); } - st_ptr = &town[1].store[STORE_HOME]; + st_ptr = &town_info[1].store[STORE_HOME]; strcpy(where, _("家", "H ")); for (i = 0; i < st_ptr->stock_num; i++) { do_cmd_knowledge_inven_aux(fff, &st_ptr->stock[i], &j, tval, where); } } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5002,34 +4820,35 @@ static void do_cmd_knowledge_inven(void) void do_cmd_save_screen_html_aux(char *filename, int message) { - int y, x, i; + TERM_LEN y, x; + int i; - byte a = 0, old_a = 0; + TERM_COLOR a = 0, old_a = 0; char c = ' '; FILE *fff, *tmpfff; char buf[2048]; int yomikomu = 0; - cptr tags[4] = { + concptr tags[4] = { "HEADER_START:", "HEADER_END:", "FOOTER_START:", "FOOTER_END:", }; - cptr html_head[] = { + concptr html_head[] = { "\n\n", "
",
 		0,
 	};
-	cptr html_foot[] = {
+	concptr html_foot[] = {
 		"
\n", "\n\n", 0, }; - int wid, hgt; + TERM_LEN wid, hgt; Term_get_size(&wid, &hgt); @@ -5039,7 +4858,6 @@ void do_cmd_save_screen_html_aux(char *filename, int message) /* Append to the file */ fff = my_fopen(filename, "w"); - /* Oops */ if (!fff) { if (message) { msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), filename); @@ -5048,10 +4866,7 @@ void do_cmd_save_screen_html_aux(char *filename, int message) return; } - - /* Save the screen */ - if (message) - screen_save(); + if (message) screen_save(); /* Build the filename */ path_build(buf, sizeof(buf), ANGBAND_DIR_USER, "htmldump.prf"); @@ -5086,7 +4901,7 @@ void do_cmd_save_screen_html_aux(char *filename, int message) for (x = 0; x < wid - 1; x++) { int rv, gv, bv; - cptr cc = NULL; + concptr cc = NULL; /* Get the attr/char */ (void)(Term_what(x, y, &a, &c)); @@ -5145,13 +4960,10 @@ void do_cmd_save_screen_html_aux(char *filename, int message) /* Close it */ my_fclose(fff); - /* Message */ if (message) { msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved.")); msg_print(NULL); } - - /* Restore the screen */ if (message) screen_load(); } @@ -5215,11 +5027,7 @@ void do_cmd_save_screen(void) { use_graphics = FALSE; reset_visuals(); - - /* Redraw everything */ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY); - - /* Hack -- update */ handle_stuff(); } @@ -5237,13 +5045,10 @@ void do_cmd_save_screen(void) } else /* Dump the screen as text */ { - int y, x; - - byte a = 0; - char c = ' '; - + TERM_LEN y, x; + TERM_COLOR a = 0; + SYMBOL_CODE c = ' '; FILE *fff; - char buf[1024]; /* Build the filename */ @@ -5255,7 +5060,6 @@ void do_cmd_save_screen(void) /* Append to the file */ fff = my_fopen(buf, "w"); - /* Oops */ if (!fff) { msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), buf); @@ -5263,8 +5067,6 @@ void do_cmd_save_screen(void) return; } - - /* Save the screen */ screen_save(); @@ -5315,15 +5117,11 @@ void do_cmd_save_screen(void) /* Skip a line */ fprintf(fff, "\n"); - /* Close it */ my_fclose(fff); - /* Message */ msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved.")); msg_print(NULL); - - /* Restore the screen */ screen_load(); } @@ -5331,11 +5129,7 @@ void do_cmd_save_screen(void) { use_graphics = TRUE; reset_visuals(); - - /* Redraw everything */ p_ptr->redraw |= (PR_WIPE | PR_BASIC | PR_EXTRA | PR_MAP | PR_EQUIPPY); - - /* Hack -- update */ handle_stuff(); } } @@ -5429,15 +5223,16 @@ static void ang_sort_art_swap(vptr u, vptr v, int a, int b) */ static void do_cmd_knowledge_artifacts(void) { - int i, k, z, x, y, n = 0; + ARTIFACT_IDX i; + ARTIFACT_IDX k; + POSITION x, y; + int n = 0; + ARTIFACT_IDX z; u16b why = 3; - s16b *who; - + ARTIFACT_IDX *who; FILE *fff; - - char file_name[1024]; - - char base_name[MAX_NLEN]; + GAME_TEXT file_name[1024]; + GAME_TEXT base_name[MAX_NLEN]; bool *okay; @@ -5451,7 +5246,7 @@ static void do_cmd_knowledge_artifacts(void) } /* Allocate the "who" array */ - C_MAKE(who, max_a_idx, s16b); + C_MAKE(who, max_a_idx, ARTIFACT_IDX); /* Allocate the "okay" array */ C_MAKE(okay, max_a_idx, bool); @@ -5475,21 +5270,19 @@ static void do_cmd_knowledge_artifacts(void) } /* Check the dungeon */ - for (y = 0; y < cur_hgt; y++) + for (y = 0; y < current_floor_ptr->height; y++) { - for (x = 0; x < cur_wid; x++) + for (x = 0; x < current_floor_ptr->width; x++) { - cave_type *c_ptr = &cave[y][x]; + grid_type *g_ptr = ¤t_floor_ptr->grid_array[y][x]; - s16b this_o_idx, next_o_idx = 0; + OBJECT_IDX this_o_idx, next_o_idx = 0; /* Scan all objects in the grid */ - for (this_o_idx = c_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) + for (this_o_idx = g_ptr->o_idx; this_o_idx; this_o_idx = next_o_idx) { object_type *o_ptr; - - /* Acquire object */ - o_ptr = &o_list[this_o_idx]; + o_ptr = ¤t_floor_ptr->o_list[this_o_idx]; /* Acquire next object */ next_o_idx = o_ptr->next_o_idx; @@ -5552,8 +5345,6 @@ static void do_cmd_knowledge_artifacts(void) { object_type forge; object_type *q_ptr; - - /* Get local object */ q_ptr = &forge; /* Create fake object */ @@ -5574,12 +5365,10 @@ static void do_cmd_knowledge_artifacts(void) } /* Free the "who" array */ - C_KILL(who, max_a_idx, s16b); + C_KILL(who, max_a_idx, ARTIFACT_IDX); /* Free the "okay" array */ C_KILL(okay, max_a_idx, bool); - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5596,13 +5385,14 @@ static void do_cmd_knowledge_artifacts(void) */ static void do_cmd_knowledge_uniques(void) { - int i, k, n = 0; + IDX i; + int k, n = 0; u16b why = 2; - s16b *who; + IDX *who; FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; int n_alive[10]; int n_alive_surface = 0; @@ -5617,13 +5407,13 @@ static void do_cmd_knowledge_uniques(void) if (!fff) { - msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name); - msg_print(NULL); - return; + msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name); + msg_print(NULL); + return; } /* Allocate the "who" array */ - C_MAKE(who, max_r_idx, s16b); + C_MAKE(who, max_r_idx, MONRACE_IDX); /* Scan the monsters */ for (i = 1; i < max_r_idx; i++) @@ -5699,14 +5489,11 @@ static void do_cmd_knowledge_uniques(void) { monster_race *r_ptr = &r_info[who[k]]; - /* Print a message */ - fprintf(fff, _(" %s (レベル%d)\n", " %s (level %d)\n"), r_name + r_ptr->name, r_ptr->level); + fprintf(fff, _(" %s (レベル%d)\n", " %s (level %d)\n"), r_name + r_ptr->name, (int)r_ptr->level); } /* Free the "who" array */ C_KILL(who, max_r_idx, s16b); - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5722,11 +5509,13 @@ static void do_cmd_knowledge_uniques(void) */ static void do_cmd_knowledge_weapon_exp(void) { - int i, j, num, weapon_exp; + int i, num; + SUB_EXP weapon_exp; + KIND_OBJECT_IDX j; FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; char tmp[30]; /* Open a new file */ @@ -5762,8 +5551,6 @@ static void do_cmd_knowledge_weapon_exp(void) } } } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5781,12 +5568,14 @@ static void do_cmd_knowledge_weapon_exp(void) */ static void do_cmd_knowledge_spell_exp(void) { - int i = 0, spell_exp, exp_level; + SPELL_IDX i = 0; + SUB_EXP spell_exp; + int exp_level; FILE *fff; const magic_type *s_ptr; - char file_name[1024]; + GAME_TEXT file_name[1024]; /* Open a new file */ fff = my_fopen_temp(file_name, 1024); @@ -5851,8 +5640,6 @@ static void do_cmd_knowledge_spell_exp(void) fprintf(fff, "\n"); } } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5875,9 +5662,13 @@ static void do_cmd_knowledge_skill_exp(void) FILE *fff; char file_name[1024]; - char skill_name[3][20]={_("マーシャルアーツ", "Martial Arts "), - _("二刀流 ", "Dual Wielding "), - _("乗馬 ", "Riding ")}; + char skill_name[GINOU_TEMPMAX][20] = + { + _("マーシャルアーツ", "Martial Arts "), + _("二刀流 ", "Dual Wielding "), + _("乗馬 ", "Riding "), + _("盾 ", "Shield ") + }; /* Open a new file */ fff = my_fopen_temp(file_name, 1024); @@ -5887,7 +5678,7 @@ static void do_cmd_knowledge_skill_exp(void) return; } - for (i = 0; i < 3; i++) + for (i = 0; i < GINOU_TEMPMAX; i++) { skill_exp = p_ptr->skill_exp[i]; fprintf(fff, "%-20s ", skill_name[i]); @@ -5897,8 +5688,6 @@ static void do_cmd_knowledge_skill_exp(void) if (cheat_xtra) fprintf(fff, " %d", skill_exp); fprintf(fff, "\n"); } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -5936,10 +5725,10 @@ void plural_aux(char *Name) } else if (my_strstr(Name, " of ")) { - cptr aider = my_strstr(Name, " of "); + concptr aider = my_strstr(Name, " of "); char dummy[80]; int i = 0; - cptr ctr = Name; + concptr ctr = Name; while (ctr < aider) { @@ -6044,10 +5833,10 @@ static void do_cmd_knowledge_pets(void) int i; FILE *fff; monster_type *m_ptr; - char pet_name[80]; + GAME_TEXT pet_name[MAX_NLEN]; int t_friends = 0; int show_upkeep = 0; - char file_name[1024]; + GAME_TEXT file_name[1024]; /* Open a new file */ @@ -6081,16 +5870,12 @@ static void do_cmd_knowledge_pets(void) fprintf(fff, "----------------------------------------------\n"); #ifdef JP fprintf(fff, " 合計: %d 体のペット\n", t_friends); - fprintf(fff, " 維持コスト: %d%% MP\n", show_upkeep); #else - fprintf(fff, " Total: %d pet%s.\n", - t_friends, (t_friends == 1 ? "" : "s")); - fprintf(fff, " Upkeep: %d%% mana.\n", show_upkeep); + fprintf(fff, " Total: %d pet%s.\n", t_friends, (t_friends == 1 ? "" : "s")); #endif + fprintf(fff, _(" 維持コスト: %d%% MP\n", " Upkeep: %d%% mana.\n"), show_upkeep); - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -6105,17 +5890,16 @@ static void do_cmd_knowledge_pets(void) * @brief 現在のペットを表示するコマンドのメインルーチン / * Total kill count * @return なし - * @note the player ghosts are ignored. XXX XXX XXX + * @note the player ghosts are ignored. */ static void do_cmd_knowledge_kill_count(void) { - int i, k, n = 0; + MONRACE_IDX i; + int k, n = 0; u16b why = 2; - s16b *who; - + MONRACE_IDX *who; FILE *fff; - - char file_name[1024]; + GAME_TEXT file_name[1024]; s32b Total = 0; @@ -6124,13 +5908,13 @@ static void do_cmd_knowledge_kill_count(void) fff = my_fopen_temp(file_name, 1024); if (!fff) { - msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name); - msg_print(NULL); - return; + msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name); + msg_print(NULL); + return; } /* Allocate the "who" array */ - C_MAKE(who, max_r_idx, s16b); + C_MAKE(who, max_r_idx, MONRACE_IDX); { /* Monsters slain */ @@ -6151,7 +5935,7 @@ static void do_cmd_knowledge_kill_count(void) } else { - s16b This = r_ptr->r_pkills; + MONSTER_NUMBER This = r_ptr->r_pkills; if (This > 0) { @@ -6199,24 +5983,22 @@ static void do_cmd_knowledge_kill_count(void) if (dead) { - /* Print a message */ - fprintf(fff, " %s\n", - (r_name + r_ptr->name)); + fprintf(fff, " %s\n", (r_name + r_ptr->name)); Total++; } } else { - s16b This = r_ptr->r_pkills; + MONSTER_NUMBER This = r_ptr->r_pkills; if (This > 0) { #ifdef JP /* p,tは人と数える by ita */ if (my_strchr("pt", r_ptr->d_char)) - fprintf(fff, " %3d 人の %s\n", This, r_name + r_ptr->name); + fprintf(fff, " %3d 人の %s\n", (int)This, r_name + r_ptr->name); else - fprintf(fff, " %3d 体の %s\n", This, r_name + r_ptr->name); + fprintf(fff, " %3d 体の %s\n", (int)This, r_name + r_ptr->name); #else if (This < 2) { @@ -6248,15 +6030,12 @@ static void do_cmd_knowledge_kill_count(void) #ifdef JP fprintf(fff," 合計: %lu 体を倒した。\n", (unsigned long int)Total); #else - fprintf(fff," Total: %lu creature%s killed.\n", - (unsigned long int)Total, (Total == 1 ? "" : "s")); + fprintf(fff," Total: %lu creature%s killed.\n", (unsigned long int)Total, (Total == 1 ? "" : "s")); #endif /* Free the "who" array */ C_KILL(who, max_r_idx, s16b); - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -6280,8 +6059,7 @@ static void do_cmd_knowledge_kill_count(void) * @param grp_top 現在の選択リスト最上部ID * @return なし */ -static void display_group_list(int col, int row, int wid, int per_page, - int grp_idx[], cptr group_text[], int grp_cur, int grp_top) +static void display_group_list(int col, int row, int wid, int per_page, IDX grp_idx[], concptr group_text[], int grp_cur, int grp_top) { int i; @@ -6292,7 +6070,7 @@ static void display_group_list(int col, int row, int wid, int per_page, int grp = grp_idx[grp_top + i]; /* Choose a color */ - byte attr = (grp_top + i == grp_cur) ? TERM_L_BLUE : TERM_WHITE; + TERM_COLOR attr = (grp_top + i == grp_cur) ? TERM_L_BLUE : TERM_WHITE; /* Erase the entire line */ Term_erase(col, row + i, wid); @@ -6306,13 +6084,13 @@ static void display_group_list(int col, int row, int wid, int per_page, /* * Move the cursor in a browser window */ -static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt, - int *list_cur, int list_cnt) +static void browser_cursor(char ch, int *column, IDX *grp_cur, int grp_cnt, + IDX *list_cur, int list_cnt) { int d; int col = *column; - int grp = *grp_cur; - int list = *list_cur; + IDX grp = *grp_cur; + IDX list = *list_cur; /* Extract direction */ if (ch == ' ') @@ -6338,7 +6116,6 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt, int browser_rows; int wid, hgt; - /* Get size */ Term_get_size(&wid, &hgt); browser_rows = hgt - 8; @@ -6391,7 +6168,7 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt, int old_grp = grp; /* Move up or down */ - grp += ddy[d]; + grp += (IDX)ddy[d]; /* Verify */ if (grp >= grp_cnt) grp = grp_cnt - 1; @@ -6403,7 +6180,7 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt, else { /* Move up or down */ - list += ddy[d]; + list += (IDX)ddy[d]; /* Verify */ if (list >= list_cnt) list = list_cnt - 1; @@ -6418,7 +6195,7 @@ static void browser_cursor(char ch, int *column, int *grp_cur, int grp_cnt, /* * Display visuals. */ -static void display_visual_list(int col, int row, int height, int width, byte attr_top, byte char_left) +static void display_visual_list(int col, int row, int height, int width, TERM_COLOR attr_top, byte char_left) { int i, j; @@ -6437,11 +6214,10 @@ static void display_visual_list(int col, int row, int height, int width, byte at /* Display columns until done */ for (j = 0; j < width; j++) { - byte a; - char c; - int x = col + j; - int y = row + i; - int ia, ic; + TERM_COLOR a, ia; + SYMBOL_CODE c, ic; + TERM_LEN x = col + j; + TERM_LEN y = row + i; /* Bigtile mode uses double width */ if (use_bigtile) x += j; @@ -6454,8 +6230,8 @@ static void display_visual_list(int col, int row, int height, int width, byte at (!use_graphics && ic > 0x7f)) continue; - a = (byte)ia; - c = (char)ic; + a = ia; + c = ic; /* Force correct code for both ASCII character and tile */ if (c & 0x80) a |= 0x80; @@ -6470,13 +6246,13 @@ static void display_visual_list(int col, int row, int height, int width, byte at /* * Place the cursor at the collect position for visual mode */ -static void place_visual_list_cursor(int col, int row, byte a, byte c, byte attr_top, byte char_left) +static void place_visual_list_cursor(TERM_LEN col, TERM_LEN row, TERM_COLOR a, byte c, TERM_COLOR attr_top, byte char_left) { int i = (a & 0x7f) - attr_top; int j = c - char_left; - int x = col + j; - int y = row + i; + TERM_LEN x = col + j; + TERM_LEN y = row + i; /* Bigtile mode uses double width */ if (use_bigtile) x += j; @@ -6489,22 +6265,23 @@ static void place_visual_list_cursor(int col, int row, byte a, byte c, byte attr /* * Clipboard variables for copy&paste in visual mode */ -static byte attr_idx = 0; -static byte char_idx = 0; +static TERM_COLOR attr_idx = 0; +static SYMBOL_CODE char_idx = 0; /* Hack -- for feature lighting */ -static byte attr_idx_feat[F_LIT_MAX]; -static byte char_idx_feat[F_LIT_MAX]; +static TERM_COLOR attr_idx_feat[F_LIT_MAX]; +static SYMBOL_CODE char_idx_feat[F_LIT_MAX]; /* * Do visual mode command -- Change symbols */ static bool visual_mode_command(char ch, bool *visual_list_ptr, int height, int width, - byte *attr_top_ptr, byte *char_left_ptr, - byte *cur_attr_ptr, byte *cur_char_ptr, bool *need_redraw) + TERM_COLOR *attr_top_ptr, byte *char_left_ptr, + TERM_COLOR *cur_attr_ptr, SYMBOL_CODE *cur_char_ptr, bool *need_redraw) { - static byte attr_old = 0, char_old = 0; + static TERM_COLOR attr_old = 0; + static SYMBOL_CODE char_old = 0; switch (ch) { @@ -6591,8 +6368,8 @@ static bool visual_mode_command(char ch, bool *visual_list_ptr, { int eff_width; int d = get_keymap_dir(ch); - byte a = (*cur_attr_ptr & 0x7f); - byte c = *cur_char_ptr; + TERM_COLOR a = (*cur_attr_ptr & 0x7f); + SYMBOL_CODE c = *cur_char_ptr; if (use_bigtile) eff_width = width / 2; else eff_width = width; @@ -6603,8 +6380,8 @@ static bool visual_mode_command(char ch, bool *visual_list_ptr, if ((a == 0x7f) && (ddy[d] > 0)) d = 0; if ((c == 0xff) && (ddx[d] > 0)) d = 0; - a += ddy[d]; - c += ddx[d]; + a += (TERM_COLOR)ddy[d]; + c += (SYMBOL_CODE)ddx[d]; /* Force correct code for both ASCII character and tile */ if (c & 0x80) a |= 0x80; @@ -6640,10 +6417,10 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[], /* Display lines until done */ for (i = 0; i < per_page && (mon_idx[mon_top + i] >= 0); i++) { - byte attr; + TERM_COLOR attr; /* Get the race index */ - int r_idx = mon_idx[mon_top + i] ; + MONRACE_IDX r_idx = mon_idx[mon_top + i] ; /* Access the race */ monster_race *r_ptr = &r_info[r_idx]; @@ -6692,34 +6469,35 @@ static void display_monster_list(int col, int row, int per_page, s16b mon_idx[], /* * Display known monsters. */ -static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int direct_r_idx) +static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, IDX direct_r_idx) { - int i, len, max; - int grp_cur, grp_top, old_grp_cur; - int mon_cur, mon_top; - int grp_cnt, grp_idx[100]; - int mon_cnt; - s16b *mon_idx; + IDX i; + int len, max; + IDX grp_cur, grp_top, old_grp_cur; + IDX mon_cur, mon_top; + IDX grp_cnt, grp_idx[100]; + IDX mon_cnt; + IDX *mon_idx; int column = 0; bool flag; bool redraw; bool visual_list = FALSE; - byte attr_top = 0, char_left = 0; + TERM_COLOR attr_top = 0; + byte char_left = 0; int browser_rows; - int wid, hgt; + TERM_LEN wid, hgt; - byte mode; + BIT_FLAGS8 mode; - /* Get size */ Term_get_size(&wid, &hgt); browser_rows = hgt - 8; /* Allocate the "mon_idx" array */ - C_MAKE(mon_idx, max_r_idx, s16b); + C_MAKE(mon_idx, max_r_idx, MONRACE_IDX); max = 0; grp_cnt = 0; @@ -6779,22 +6557,12 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int d if (redraw) { clear_from(0); - -#ifdef JP - prt(format("%s - モンスター", !visual_only ? "知識" : "表示"), 2, 0); - if (direct_r_idx < 0) prt("グループ", 4, 0); - prt("名前", 4, max + 3); + prt(format(_("%s - モンスター", "%s - monsters"), !visual_only ? _("知識", "Knowledge") : _("表示", "Visuals")), 2, 0); + if (direct_r_idx < 0) prt(_("グループ", "Group"), 4, 0); + prt(_("名前", "Name"), 4, max + 3); if (p_ptr->wizard || visual_only) prt("Idx", 4, 62); - prt("文字", 4, 67); - if (!visual_only) prt("殺害数", 4, 72); -#else - prt(format("%s - monsters", !visual_only ? "Knowledge" : "Visuals"), 2, 0); - if (direct_r_idx < 0) prt("Group", 4, 0); - prt("Name", 4, max + 3); - if (p_ptr->wizard || visual_only) prt("Idx", 4, 62); - prt("Sym", 4, 68); - if (!visual_only) prt("Kills", 4, 73); -#endif + prt(_("文字", "Sym"), 4, 67); + if (!visual_only) prt(_("殺害数", "Kills"), 4, 72); for (i = 0; i < 78; i++) { @@ -6853,19 +6621,11 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int d } /* Prompt */ -#ifdef JP - prt(format("<方向>%s%s%s, ESC", - (!visual_list && !visual_only) ? ", 'r'で思い出を見る" : "", - visual_list ? ", ENTERで決定" : ", 'v'でシンボル変更", - (attr_idx || char_idx) ? ", 'c', 'p'でペースト" : ", 'c'でコピー"), - hgt - 1, 0); -#else - prt(format("%s%s%s, ESC", - (!visual_list && !visual_only) ? ", 'r' to recall" : "", - visual_list ? ", ENTER to accept" : ", 'v' for visuals", - (attr_idx || char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), + prt(format(_("<方向>%s%s%s, ESC", "%s%s%s, ESC"), + (!visual_list && !visual_only) ? _(", 'r'で思い出を見る", ", 'r' to recall") : "", + visual_list ? _(", ENTERで決定", ", ENTER to accept") : _(", 'v'でシンボル変更", ", 'v' for visuals"), + (attr_idx || char_idx) ? _(", 'c', 'p'でペースト", ", 'c', 'p' to paste") : _(", 'c'でコピー", ", 'c' to copy")), hgt - 1, 0); -#endif /* Get the current monster */ r_ptr = &r_info[mon_idx[mon_cur]]; @@ -6874,8 +6634,6 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int d { /* Mega Hack -- track this monster race */ if (mon_cnt) monster_race_track(mon_idx[mon_cur]); - - /* Hack -- handle stuff */ handle_stuff(); } @@ -6945,14 +6703,14 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int d } /* Free the "mon_idx" array */ - C_KILL(mon_idx, max_r_idx, s16b); + C_KILL(mon_idx, max_r_idx, MONRACE_IDX); } /* * Display the objects in a group. */ -static void display_object_list(int col, int row, int per_page, int object_idx[], +static void display_object_list(int col, int row, int per_page, IDX object_idx[], int object_cur, int object_top, bool visual_only) { int i; @@ -6960,18 +6718,19 @@ static void display_object_list(int col, int row, int per_page, int object_idx[] /* Display lines until done */ for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++) { - char o_name[80]; - byte a, c; + GAME_TEXT o_name[MAX_NLEN]; + TERM_COLOR a; + SYMBOL_CODE c; object_kind *flavor_k_ptr; /* Get the object index */ - int k_idx = object_idx[object_top + i]; + KIND_OBJECT_IDX k_idx = object_idx[object_top + i]; /* Access the object */ object_kind *k_ptr = &k_info[k_idx]; /* Choose a color */ - byte attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE); + TERM_COLOR attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE); byte cursor = ((k_ptr->aware || visual_only) ? TERM_L_BLUE : TERM_BLUE); @@ -7031,15 +6790,11 @@ static void display_object_list(int col, int row, int per_page, int object_idx[] /* * Describe fake object */ -static void desc_obj_fake(int k_idx) +static void desc_obj_fake(KIND_OBJECT_IDX k_idx) { object_type *o_ptr; object_type object_type_body; - - /* Get local object */ o_ptr = &object_type_body; - - /* Wipe the object */ object_wipe(o_ptr); /* Create the artifact */ @@ -7053,8 +6808,6 @@ static void desc_obj_fake(int k_idx) /* Hack - mark as fake */ /* term_obj_real = FALSE; */ - - /* Hack -- Handle stuff */ handle_stuff(); if (!screen_object(o_ptr, SCROBJ_FAKE_OBJECT | SCROBJ_FORCE_DETAIL)) @@ -7069,34 +6822,36 @@ static void desc_obj_fake(int k_idx) /* * Display known objects */ -static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, int direct_k_idx) +static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, IDX direct_k_idx) { - int i, len, max; - int grp_cur, grp_top, old_grp_cur; - int object_old, object_cur, object_top; - int grp_cnt, grp_idx[100]; + IDX i; + int len, max; + IDX grp_cur, grp_top, old_grp_cur; + IDX object_old, object_cur, object_top; + int grp_cnt; + IDX grp_idx[100]; int object_cnt; - int *object_idx; + OBJECT_IDX *object_idx; int column = 0; bool flag; bool redraw; bool visual_list = FALSE; - byte attr_top = 0, char_left = 0; + TERM_COLOR attr_top = 0; + byte char_left = 0; int browser_rows; - int wid, hgt; + TERM_LEN wid, hgt; byte mode; - /* Get size */ Term_get_size(&wid, &hgt); browser_rows = hgt - 8; /* Allocate the "object_idx" array */ - C_MAKE(object_idx, max_k_idx, int); + C_MAKE(object_idx, max_k_idx, KIND_OBJECT_IDX); max = 0; grp_cnt = 0; @@ -7280,7 +7035,6 @@ static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, int di /* The "current" object changed */ if (object_old != object_idx[object_cur]) { - /* Hack -- handle stuff */ handle_stuff(); /* Remember the "current" object */ @@ -7350,15 +7104,15 @@ static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, int di } /* Free the "object_idx" array */ - C_KILL(object_idx, max_k_idx, int); + C_KILL(object_idx, max_k_idx, KIND_OBJECT_IDX); } /* * Display the features in a group. */ -static void display_feature_list(int col, int row, int per_page, int *feat_idx, - int feat_cur, int feat_top, bool visual_only, int lighting_level) +static void display_feature_list(int col, int row, int per_page, FEAT_IDX *feat_idx, + FEAT_IDX feat_cur, FEAT_IDX feat_top, bool visual_only, int lighting_level) { int lit_col[F_LIT_MAX], i, j; int f_idx_col = use_bigtile ? 62 : 64; @@ -7371,10 +7125,10 @@ static void display_feature_list(int col, int row, int per_page, int *feat_idx, /* Display lines until done */ for (i = 0; i < per_page && (feat_idx[feat_top + i] >= 0); i++) { - byte attr; + TERM_COLOR attr; /* Get the index */ - int f_idx = feat_idx[feat_top + i]; + FEAT_IDX f_idx = feat_idx[feat_top + i]; /* Access the index */ feature_type *f_ptr = &f_info[f_idx]; @@ -7428,39 +7182,42 @@ static void display_feature_list(int col, int row, int per_page, int *feat_idx, /* * Interact with feature visuals. */ -static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int direct_f_idx, int *lighting_level) +static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX direct_f_idx, IDX *lighting_level) { - int i, len, max; - int grp_cur, grp_top, old_grp_cur; - int feat_cur, feat_top; - int grp_cnt, grp_idx[100]; + FEAT_IDX i; + int len, max; + FEAT_IDX grp_cur, grp_top, old_grp_cur; + FEAT_IDX feat_cur, feat_top; + int grp_cnt; + FEAT_IDX grp_idx[100]; int feat_cnt; - int *feat_idx; + FEAT_IDX *feat_idx; - int column = 0; + TERM_LEN column = 0; bool flag; bool redraw; bool visual_list = FALSE; - byte attr_top = 0, char_left = 0; + TERM_COLOR attr_top = 0; + byte char_left = 0; - int browser_rows; - int wid, hgt; + TERM_LEN browser_rows; + TERM_LEN wid, hgt; - byte attr_old[F_LIT_MAX]; - byte char_old[F_LIT_MAX]; - byte *cur_attr_ptr, *cur_char_ptr; + TERM_COLOR attr_old[F_LIT_MAX]; + SYMBOL_CODE char_old[F_LIT_MAX]; + TERM_COLOR *cur_attr_ptr; + SYMBOL_CODE *cur_char_ptr; - (void)C_WIPE(attr_old, F_LIT_MAX, byte); - (void)C_WIPE(char_old, F_LIT_MAX, byte); + (void)C_WIPE(attr_old, F_LIT_MAX, TERM_COLOR); + (void)C_WIPE(char_old, F_LIT_MAX, SYMBOL_CODE); - /* Get size */ Term_get_size(&wid, &hgt); browser_rows = hgt - 8; /* Allocate the "feat_idx" array */ - C_MAKE(feat_idx, max_f_idx, int); + C_MAKE(feat_idx, max_f_idx, FEAT_IDX); max = 0; grp_cnt = 0; @@ -7525,35 +7282,19 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int d { clear_from(0); -#ifdef JP - prt("表示 - 地形", 2, 0); - if (direct_f_idx < 0) prt("グループ", 4, 0); - prt("名前", 4, max + 3); + prt(_("表示 - 地形", "Visuals - features"), 2, 0); + if (direct_f_idx < 0) prt(_("グループ", "Group"), 4, 0); + prt(_("名前", "Name"), 4, max + 3); if (use_bigtile) { if (p_ptr->wizard || visual_only) prt("Idx", 4, 62); - prt("文字 ( l/ d)", 4, 66); + prt(_("文字 ( l/ d)", "Sym ( l/ d)"), 4, 66); } else { if (p_ptr->wizard || visual_only) prt("Idx", 4, 64); - prt("文字 (l/d)", 4, 68); - } -#else - prt("Visuals - features", 2, 0); - if (direct_f_idx < 0) prt("Group", 4, 0); - prt("Name", 4, max + 3); - if (use_bigtile) - { - if (p_ptr->wizard || visual_only) prt("Idx", 4, 62); - prt("Sym ( l/ d)", 4, 67); + prt(_("文字 (l/d)", "Sym (l/d)"), 4, 68); } - else - { - if (p_ptr->wizard || visual_only) prt("Idx", 4, 64); - prt("Sym (l/d)", 4, 69); - } -#endif for (i = 0; i < 78; i++) { @@ -7612,17 +7353,10 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int d } /* Prompt */ -#ifdef JP - prt(format("<方向>%s, 'd'で標準光源効果%s, ESC", - visual_list ? ", ENTERで決定, 'a'で対象明度変更" : ", 'v'でシンボル変更", - (attr_idx || char_idx) ? ", 'c', 'p'でペースト" : ", 'c'でコピー"), + prt(format(_("<方向>%s, 'd'で標準光源効果%s, ESC", "%s, 'd' for default lighting%s, ESC"), + visual_list ? _(", ENTERで決定, 'a'で対象明度変更", ", ENTER to accept, 'a' for lighting level") : _(", 'v'でシンボル変更", ", 'v' for visuals"), + (attr_idx || char_idx) ? _(", 'c', 'p'でペースト", ", 'c', 'p' to paste") : _(", 'c'でコピー", ", 'c' to copy")), hgt - 1, 0); -#else - prt(format("%s, 'd' for default lighting%s, ESC", - visual_list ? ", ENTER to accept, 'a' for lighting level" : ", 'v' for visuals", - (attr_idx || char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), - hgt - 1, 0); -#endif /* Get the current feature */ f_ptr = &f_info[feat_idx[feat_cur]]; @@ -7670,7 +7404,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int d else if ((ch == 'D') || (ch == 'd')) { - byte prev_x_attr = f_ptr->x_attr[*lighting_level]; + TERM_COLOR prev_x_attr = f_ptr->x_attr[*lighting_level]; byte prev_x_char = f_ptr->x_char[*lighting_level]; apply_default_feat_lighting(f_ptr->x_attr, f_ptr->x_char); @@ -7766,7 +7500,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int d } /* Free the "feat_idx" array */ - C_KILL(feat_idx, max_f_idx, int); + C_KILL(feat_idx, max_f_idx, FEAT_IDX); } @@ -7778,7 +7512,7 @@ static void do_cmd_knowledge_kubi(void) int i; FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; /* Open a new file */ @@ -7793,15 +7527,10 @@ static void do_cmd_knowledge_kubi(void) { bool listed = FALSE; -#ifdef JP - fprintf(fff, "今日のターゲット : %s\n", (p_ptr->today_mon ? r_name + r_info[p_ptr->today_mon].name : "不明")); + fprintf(fff, _("今日のターゲット : %s\n", "Today target : %s\n"), + (p_ptr->today_mon ? r_name + r_info[p_ptr->today_mon].name : _("不明", "unknown"))); fprintf(fff, "\n"); - fprintf(fff, "賞金首リスト\n"); -#else - fprintf(fff, "Today target : %s\n", (p_ptr->today_mon ? r_name + r_info[p_ptr->today_mon].name : "unknown")); - fprintf(fff, "\n"); - fprintf(fff, "List of wanted monsters\n"); -#endif + fprintf(fff, _("賞金首リスト\n", "List of wanted monsters\n")); fprintf(fff, "----------------------------------------------\n"); for (i = 0; i < MAX_KUBI; i++) @@ -7819,9 +7548,7 @@ static void do_cmd_knowledge_kubi(void) fprintf(fff,"\n%s\n", _("賞金首はもう残っていません。", "There is no more wanted monster.")); } } - - /* Close the file */ - my_fclose(fff); + my_fclose(fff); /* Display the file contents */ show_file(TRUE, file_name, _("賞金首の一覧", "Wanted monsters"), 0, 0); @@ -7835,11 +7562,9 @@ static void do_cmd_knowledge_kubi(void) */ static void do_cmd_knowledge_virtues(void) { - FILE *fff; - - char file_name[1024]; - - + FILE *fff; + GAME_TEXT file_name[1024]; + /* Open a new file */ fff = my_fopen_temp(file_name, 1024); if (!fff) { @@ -7853,9 +7578,7 @@ static void do_cmd_knowledge_virtues(void) fprintf(fff, _("現在の属性 : %s\n\n", "Your alighnment : %s\n\n"), your_alignment()); dump_virtues(fff); } - - /* Close the file */ - my_fclose(fff); + my_fclose(fff); /* Display the file contents */ show_file(TRUE, file_name, _("八つの徳", "Virtues"), 0, 0); @@ -7865,17 +7588,15 @@ static void do_cmd_knowledge_virtues(void) } /* -* Dungeon -* -*/ + * Dungeon + */ static void do_cmd_knowledge_dungeon(void) { FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; int i; - - + /* Open a new file */ fff = my_fopen_temp(file_name, 1024); if (!fff) { @@ -7898,12 +7619,10 @@ static void do_cmd_knowledge_dungeon(void) } else if (max_dlv[i] == d_info[i].maxdepth) seiha = TRUE; - fprintf(fff, _("%c%-12s : %3d 階\n", "%c%-16s : level %3d\n"), seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]); + fprintf(fff, _("%c%-12s : %3d 階\n", "%c%-16s : level %3d\n"), seiha ? '!' : ' ', d_name + d_info[i].name, (int)max_dlv[i]); } } - - /* Close the file */ - my_fclose(fff); + my_fclose(fff); /* Display the file contents */ show_file(TRUE, file_name, _("今までに入ったダンジョン", "Dungeon"), 0, 0); @@ -7920,7 +7639,7 @@ static void do_cmd_knowledge_stat(void) { FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; int percent, v_nr; /* Open a new file */ @@ -7937,16 +7656,12 @@ static void do_cmd_knowledge_stat(void) (2 * p_ptr->hitdie + ((PY_MAX_LEVEL - 1+3) * (p_ptr->hitdie + 1)))); -#ifdef JP - if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "現在の体力ランク : %d/100\n\n", percent); - else fprintf(fff, "現在の体力ランク : ???\n\n"); - fprintf(fff, "能力の最大値\n\n"); -#else - if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "Your current Life Rating is %d/100.\n\n", percent); - else fprintf(fff, "Your current Life Rating is ???.\n\n"); - fprintf(fff, "Limits of maximum stats\n\n"); -#endif - for (v_nr = 0; v_nr < 6; v_nr++) + if (p_ptr->knowledge & KNOW_HPRATE) + fprintf(fff, _("現在の体力ランク : %d/100\n\n", "Your current Life Rating is %d/100.\n\n"), percent); + else fprintf(fff, _("現在の体力ランク : ???\n\n", "Your current Life Rating is ???.\n\n")); + + fprintf(fff, _("能力の最大値\n\n", "Limits of maximum stats\n\n")); + for (v_nr = 0; v_nr < A_MAX; v_nr++) { if ((p_ptr->knowledge & KNOW_STAT) || p_ptr->stat_max[v_nr] == p_ptr->stat_max_max[v_nr]) fprintf(fff, "%s 18/%d\n", stat_names[v_nr], p_ptr->stat_max_max[v_nr]-18); else fprintf(fff, "%s ???\n", stat_names[v_nr]); @@ -7954,8 +7669,6 @@ static void do_cmd_knowledge_stat(void) } dump_yourself(fff); - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -7973,22 +7686,22 @@ static void do_cmd_knowledge_quests_current(FILE *fff) { char tmp_str[120]; char rand_tmp_str[120] = "\0"; - char name[80]; + GAME_TEXT name[MAX_NLEN]; monster_race *r_ptr; - int i; + QUEST_IDX i; int rand_level = 100; int total = 0; fprintf(fff, _("《遂行中のクエスト》\n", "< Current Quest >\n")); - for (i = 1; i < max_quests; i++) + for (i = 1; i < max_q_idx; i++) { if ((quest[i].status == QUEST_STATUS_TAKEN) || ((quest[i].status == QUEST_STATUS_STAGE_COMPLETED) && (quest[i].type == QUEST_TYPE_TOWER)) || (quest[i].status == QUEST_STATUS_COMPLETED)) { /* Set the quest number temporary */ - int old_quest = p_ptr->inside_quest; + QUEST_IDX old_quest = p_ptr->inside_quest; int j; /* Clear the text */ @@ -8026,11 +7739,11 @@ static void do_cmd_knowledge_quests_current(FILE *fff) { #ifdef JP sprintf(note," - %d 体の%sを倒す。(あと %d 体)", - quest[i].max_num, name, quest[i].max_num - quest[i].cur_num); + (int)quest[i].max_num, name, (int)(quest[i].max_num - quest[i].cur_num)); #else plural_aux(name); sprintf(note," - kill %d %s, have killed %d.", - quest[i].max_num, name, quest[i].cur_num); + (int)quest[i].max_num, name, (int)quest[i].cur_num); #endif } else @@ -8043,7 +7756,7 @@ static void do_cmd_knowledge_quests_current(FILE *fff) artifact_type *a_ptr = &a_info[quest[i].k_idx]; object_type forge; object_type *q_ptr = &forge; - int k_idx = lookup_kind(a_ptr->tval, a_ptr->sval); + KIND_OBJECT_IDX k_idx = lookup_kind(a_ptr->tval, a_ptr->sval); object_prep(q_ptr, k_idx); q_ptr->name1 = quest[i].k_idx; q_ptr->ident = IDENT_STORE; @@ -8058,10 +7771,10 @@ static void do_cmd_knowledge_quests_current(FILE *fff) case QUEST_TYPE_KILL_NUMBER: #ifdef JP sprintf(note," - %d 体のモンスターを倒す。(あと %d 体)", - quest[i].max_num, quest[i].max_num - quest[i].cur_num); + (int)quest[i].max_num, (int)(quest[i].max_num - quest[i].cur_num)); #else sprintf(note," - Kill %d monsters, have killed %d.", - quest[i].max_num, quest[i].cur_num); + (int)quest[i].max_num, (int)quest[i].cur_num); #endif break; @@ -8073,13 +7786,8 @@ static void do_cmd_knowledge_quests_current(FILE *fff) } /* Print the quest info */ -#ifdef JP - sprintf(tmp_str, " %s (危険度:%d階相当)%s\n", - quest[i].name, quest[i].level, note); -#else - sprintf(tmp_str, " %s (Danger level: %d)%s\n", - quest[i].name, quest[i].level, note); -#endif + sprintf(tmp_str, _(" %s (危険度:%d階相当)%s\n", " %s (Danger level: %d)%s\n"), + quest[i].name, (int)quest[i].level, note); fputs(tmp_str, fff); @@ -8114,25 +7822,20 @@ static void do_cmd_knowledge_quests_current(FILE *fff) { #ifdef JP sprintf(rand_tmp_str," %s (%d 階) - %d 体の%sを倒す。(あと %d 体)\n", - quest[i].name, quest[i].level, - quest[i].max_num, name, quest[i].max_num - quest[i].cur_num); + quest[i].name, (int)quest[i].level, + (int)quest[i].max_num, name, (int)(quest[i].max_num - quest[i].cur_num)); #else plural_aux(name); sprintf(rand_tmp_str," %s (Dungeon level: %d)\n Kill %d %s, have killed %d.\n", - quest[i].name, quest[i].level, - quest[i].max_num, name, quest[i].cur_num); + quest[i].name, (int)quest[i].level, + (int)quest[i].max_num, name, (int)quest[i].cur_num); #endif } else { -#ifdef JP - sprintf(rand_tmp_str," %s (%d 階) - %sを倒す。\n", - quest[i].name, quest[i].level, name); -#else - sprintf(rand_tmp_str," %s (Dungeon level: %d)\n Kill %s.\n", - quest[i].name, quest[i].level, name); -#endif + sprintf(rand_tmp_str,_(" %s (%d 階) - %sを倒す。\n", " %s (Dungeon level: %d)\n Kill %s.\n"), + quest[i].name, (int)quest[i].level, name); } } } @@ -8146,7 +7849,7 @@ static void do_cmd_knowledge_quests_current(FILE *fff) } -static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) +static bool do_cmd_knowledge_quests_aux(FILE *fff, IDX q_idx) { char tmp_str[120]; char playtime_str[16]; @@ -8155,7 +7858,7 @@ static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) if (is_fixed_quest_idx(q_idx)) { /* Set the quest number temporary */ - int old_quest = p_ptr->inside_quest; + IDX old_quest = p_ptr->inside_quest; p_ptr->inside_quest = q_idx; @@ -8183,7 +7886,7 @@ static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) _(" %-35s (%3d階) - 不戦勝 - %s\n", " %-35s (Dungeon level: %3d) - Unearned - %s\n") , r_name+r_info[q_ptr->r_idx].name, - q_ptr->level, playtime_str); + (int)q_ptr->level, playtime_str); } else { @@ -8191,7 +7894,7 @@ static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) _(" %-35s (%3d階) - レベル%2d - %s\n", " %-35s (Dungeon level: %3d) - level %2d - %s\n") , r_name+r_info[q_ptr->r_idx].name, - q_ptr->level, + (int)q_ptr->level, q_ptr->complev, playtime_str); } @@ -8202,7 +7905,7 @@ static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) sprintf(tmp_str, _(" %-35s (危険度:%3d階相当) - レベル%2d - %s\n", " %-35s (Danger level: %3d) - level %2d - %s\n") , - q_ptr->name, q_ptr->level, q_ptr->complev, playtime_str); + q_ptr->name, (int)q_ptr->level, q_ptr->complev, playtime_str); } fputs(tmp_str, fff); @@ -8213,21 +7916,20 @@ static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx) /* * Print all finished quests */ -void do_cmd_knowledge_quests_completed(FILE *fff, int quest_num[]) +void do_cmd_knowledge_quests_completed(FILE *fff, QUEST_IDX quest_num[]) { - int i; - int total = 0; + QUEST_IDX i; + QUEST_IDX total = 0; fprintf(fff, _("《達成したクエスト》\n", "< Completed Quest >\n")); - for (i = 1; i < max_quests; i++) + for (i = 1; i < max_q_idx; i++) { - int q_idx = quest_num[i]; + 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, q_idx)) + if (q_ptr->status == QUEST_STATUS_FINISHED && do_cmd_knowledge_quests_aux(fff, q_idx)) { - ++ total; + ++total; } } if (!total) fprintf(fff, _(" なし\n", " Nothing.\n")); @@ -8237,21 +7939,21 @@ void do_cmd_knowledge_quests_completed(FILE *fff, int quest_num[]) /* * Print all failed quests */ -void do_cmd_knowledge_quests_failed(FILE *fff, int quest_num[]) +void do_cmd_knowledge_quests_failed(FILE *fff, QUEST_IDX quest_num[]) { - int i; - int total = 0; + QUEST_IDX i; + QUEST_IDX total = 0; fprintf(fff, _("《失敗したクエスト》\n", "< Failed Quest >\n")); - for (i = 1; i < max_quests; i++) + for (i = 1; i < max_q_idx; i++) { - int q_idx = quest_num[i]; + QUEST_IDX q_idx = quest_num[i]; quest_type* const q_ptr = &quest[q_idx]; if (((q_ptr->status == QUEST_STATUS_FAILED_DONE) || (q_ptr->status == QUEST_STATUS_FAILED)) && do_cmd_knowledge_quests_aux(fff, q_idx)) { - ++ total; + ++total; } } if (!total) fprintf(fff, _(" なし\n", " Nothing.\n")); @@ -8263,12 +7965,12 @@ void do_cmd_knowledge_quests_failed(FILE *fff, int quest_num[]) */ static void do_cmd_knowledge_quests_wiz_random(FILE *fff) { - char tmp_str[120]; - int i; - int total = 0; + GAME_TEXT tmp_str[120]; + QUEST_IDX i; + QUEST_IDX total = 0; fprintf(fff, _("《残りのランダムクエスト》\n", "< Remaining Random Quest >\n")); - for (i = 1; i < max_quests; i++) + for (i = 1; i < max_q_idx; i++) { /* No info from "silent" quests */ if (quest[i].flags & QUEST_FLAG_SILENT) continue; @@ -8278,13 +7980,8 @@ static void do_cmd_knowledge_quests_wiz_random(FILE *fff) total++; /* Print the quest info */ -#ifdef JP - sprintf(tmp_str, " %s (%d階, %s)\n", - quest[i].name, quest[i].level, r_name+r_info[quest[i].r_idx].name); -#else - sprintf(tmp_str, " %s (%d, %s)\n", - quest[i].name, quest[i].level, r_name+r_info[quest[i].r_idx].name); -#endif + sprintf(tmp_str, _(" %s (%d階, %s)\n", " %s (%d, %s)\n"), + quest[i].name, (int)quest[i].level, r_name+r_info[quest[i].r_idx].name); fputs(tmp_str, fff); } } @@ -8294,20 +7991,22 @@ static void do_cmd_knowledge_quests_wiz_random(FILE *fff) bool ang_sort_comp_quest_num(vptr u, vptr v, int a, int b) { - int *q_num = (int *)u; + QUEST_IDX *q_num = (QUEST_IDX *)u; quest_type *qa = &quest[q_num[a]]; quest_type *qb = &quest[q_num[b]]; /* Unused */ (void)v; - return (qa->comptime <= qb->comptime); + return (qa->comptime != qb->comptime) ? + (qa->comptime < qb->comptime) : + (qa->level <= qb->level); } void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b) { - int *q_num = (int *)u; - int tmp; + QUEST_IDX *q_num = (QUEST_IDX *)u; + QUEST_IDX tmp; /* Unused */ (void)v; @@ -8324,8 +8023,10 @@ void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b) static void do_cmd_knowledge_quests(void) { FILE *fff; - char file_name[1024]; - int *quest_num, dummy, i; + GAME_TEXT file_name[1024]; + IDX *quest_num; + int dummy; + IDX i; /* Open a new file */ fff = my_fopen_temp(file_name, 1024); @@ -8337,13 +8038,13 @@ static void do_cmd_knowledge_quests(void) } /* Allocate Memory */ - C_MAKE(quest_num, max_quests, int); + C_MAKE(quest_num, max_q_idx, QUEST_IDX); /* Sort by compete level */ - for (i = 1; i < max_quests; i++) quest_num[i] = i; + for (i = 1; i < max_q_idx; i++) quest_num[i] = i; ang_sort_comp = ang_sort_comp_quest_num; ang_sort_swap = ang_sort_swap_quest_num; - ang_sort(quest_num, &dummy, max_quests); + ang_sort(quest_num, &dummy, max_q_idx); /* Dump Quest Information */ do_cmd_knowledge_quests_current(fff); @@ -8356,8 +8057,6 @@ static void do_cmd_knowledge_quests(void) fputc('\n', fff); do_cmd_knowledge_quests_wiz_random(fff); } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -8367,7 +8066,7 @@ static void do_cmd_knowledge_quests(void) fd_kill(file_name); /* Free Memory */ - C_KILL(quest_num, max_quests, int); + C_KILL(quest_num, max_q_idx, QUEST_IDX); } @@ -8379,10 +8078,10 @@ static void do_cmd_knowledge_home(void) FILE *fff; int i; - char file_name[1024]; + GAME_TEXT file_name[1024]; store_type *st_ptr; - char o_name[MAX_NLEN]; - cptr paren = ")"; + GAME_TEXT o_name[MAX_NLEN]; + concptr paren = ")"; process_dungeon_file("w_info.txt", 0, 0, max_wild_y, max_wild_x); @@ -8397,13 +8096,13 @@ static void do_cmd_knowledge_home(void) if (fff) { /* Print all homes in the different towns */ - st_ptr = &town[1].store[STORE_HOME]; + st_ptr = &town_info[1].store[STORE_HOME]; /* Home -- if anything there */ if (st_ptr->stock_num) { #ifdef JP - int x = 1; + TERM_LEN x = 1; #endif /* Header with name of the town */ fprintf(fff, _(" [ 我が家のアイテム ]\n", " [Home Inventory]\n")); @@ -8440,8 +8139,6 @@ static void do_cmd_knowledge_home(void) fprintf(fff, "\n\n"); } } - - /* Close the file */ my_fclose(fff); /* Display the file contents */ @@ -8459,7 +8156,7 @@ static void do_cmd_knowledge_autopick(void) { int k; FILE *fff; - char file_name[1024]; + GAME_TEXT file_name[1024]; /* Open a new file */ fff = my_fopen_temp(file_name, 1024); @@ -8483,7 +8180,7 @@ static void do_cmd_knowledge_autopick(void) for (k = 0; k < max_autopick; k++) { - cptr tmp; + concptr tmp; byte act = autopick_list[k].action; if (act & DONT_AUTOPICK) { @@ -8497,7 +8194,7 @@ static void do_cmd_knowledge_autopick(void) { tmp = _("拾う", "Pickup"); } - else /* if (act & DO_QUERY_AUTOPICK) */ /* Obvious */ + else { tmp = _("確認", "Query"); } @@ -8512,7 +8209,6 @@ static void do_cmd_knowledge_autopick(void) string_free(tmp); fprintf(fff, "\n"); } - /* Close the file */ my_fclose(fff); /* Display the file contents */ show_file(TRUE, file_name, _("自動拾い/破壊 設定リスト", "Auto-picker/Destroyer"), 0, 0); @@ -8532,24 +8228,16 @@ void do_cmd_knowledge(void) /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save the screen */ screen_save(); /* Interact until done */ while (1) { - /* Clear screen */ Term_clear(); /* Ask for a choice */ -#ifdef JP - prt(format("%d/2 ページ", (p+1)), 2, 65); - prt("現在の知識を確認する", 3, 0); -#else - prt(format("page %d/2", (p+1)), 2, 65); - prt("Display current knowledge", 3, 0); -#endif + prt(format(_("%d/2 ページ", "page %d/2"), (p+1)), 2, 65); + prt(_("現在の知識を確認する", "Display current knowledge"), 3, 0); /* Give some choices */ #ifdef JP @@ -8606,24 +8294,13 @@ void do_cmd_knowledge(void) } #endif /* Prompt */ -#ifdef JP - prt("-続く-", 17, 8); - prt("ESC) 抜ける", 21, 1); - prt("SPACE) 次ページ", 21, 30); + prt(_("-続く-", "-more-"), 17, 8); + prt(_("ESC) 抜ける", "ESC) Exit menu"), 21, 1); + prt(_("SPACE) 次ページ", "SPACE) Next page"), 21, 30); /*prt("-) 前ページ", 21, 60);*/ - prt("コマンド:", 20, 0); -#else - prt("-more-", 17, 8); - prt("ESC) Exit menu", 21, 1); - prt("SPACE) Next page", 21, 30); - /*prt("-) Previous page", 21, 60);*/ - prt("Command: ", 20, 0); -#endif - - /* Prompt */ + prt(_("コマンド:", "Command: "), 20, 0); i = inkey(); - /* Done */ if (i == ESCAPE) break; switch (i) { @@ -8660,7 +8337,7 @@ void do_cmd_knowledge(void) break; case '0': /* Feature list */ { - int lighting_level = F_LIT_STANDARD; + IDX lighting_level = F_LIT_STANDARD; do_cmd_knowledge_features(&need_redraw, FALSE, -1, &lighting_level); } break; @@ -8696,11 +8373,8 @@ void do_cmd_knowledge(void) bell(); } - /* Flush messages */ - msg_print(NULL); + msg_erase(); } - - /* Restore the screen */ screen_load(); if (need_redraw) do_cmd_redraw(); @@ -8714,14 +8388,10 @@ void do_cmd_checkquest(void) { /* File type is "TEXT" */ FILE_TYPE(FILE_TYPE_TEXT); - - /* Save the screen */ screen_save(); /* Quest info */ do_cmd_knowledge_quests(); - - /* Restore the screen */ screen_load(); } @@ -8753,17 +8423,8 @@ void do_cmd_time(void) if (day < MAX_DAYS) sprintf(day_buf, "%d", day); else strcpy(day_buf, "*****"); - /* Message */ -#ifdef JP - msg_format("%s日目, 時刻は%d:%02d %sです。", - day_buf, (hour % 12 == 0) ? 12 : (hour % 12), - min, (hour < 12) ? "AM" : "PM"); -#else - msg_format("This is day %s. The time is %d:%02d %s.", - day_buf, (hour % 12 == 0) ? 12 : (hour % 12), - min, (hour < 12) ? "AM" : "PM"); -#endif - + msg_format(_("%s日目, 時刻は%d:%02d %sです。", "This is day %s. The time is %d:%02d %s."), + day_buf, (hour % 12 == 0) ? 12 : (hour % 12), min, (hour < 12) ? "AM" : "PM"); /* Find the path */ if (!randint0(10) || p_ptr->image) @@ -8778,7 +8439,6 @@ void do_cmd_time(void) /* Open this file */ fff = my_fopen(buf, "rt"); - /* Oops */ if (!fff) return; /* Find this time */ @@ -8829,9 +8489,6 @@ void do_cmd_time(void) } } - /* Message */ msg_print(desc); - - /* Close the file */ my_fclose(fff); }