-/*!
+/*!
* @file cmd4.c
* @brief プレイヤーのインターフェイスに関するコマンドの実装 / Interface commands
* @date 2014/01/02
type == NIKKI_RAND_QUEST_F ||
type == NIKKI_TO_QUEST)
{
- int old_quest;
+ IDX old_quest;
old_quest = p_ptr->inside_quest;
p_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num;
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)dun_level, d_name+d_info[dungeon_type].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[dungeon_type].name, (int)dun_level);
#endif
note_level = note_level_buf;
}
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);
case NIKKI_MAXDEAPTH:
{
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);
+ " %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));
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]);
+ " %2d:%02d %20s reset recall level of %s to %d %s.\n"), hour, min, note_level, note,
+ _(d_name + d_info[num].name, (int)max_dlv[num]),
+ _((int)max_dlv[num], d_name + d_info[num].name));
break;
}
case NIKKI_STAIR:
{
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[dungeon_type].name, (int)max_dlv[dungeon_type]),
+ _((int)max_dlv[dungeon_type], d_name+d_info[dungeon_type].name));
else
fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level);
break;
if (num < 0)
{
int n = -num;
- fprintf(fff, _(" %2d:%02d %20s 闘技場の%d回戦で、%sの前に敗れ去った。\n", " %2d:%02d %20s beaten by %s in the %d%s fight.\n"),
- hour, min, note_level, _(n, note), _(note, n), _("", get_ordinal_number_suffix(n)));
+ fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦で、%sの前に敗れ去った。\n", " %2d:%02d %20s beaten by %s in the %d%s fight.\n"),
+ hour, min, note_level, _(n, note), _("", n), _(note, get_ordinal_number_suffix(n)));
break;
}
- fprintf(fff, _(" %2d:%02d %20s 闘技場の%d回戦(%s)に勝利した。\n", " %2d:%02d %20s won the %d%s fight (%s).\n"),
- hour, min, note_level, num, _(note, get_ordinal_number_suffix(num)), note);
+ fprintf(fff, _(" %2d:%02d %20s 闘技場の%d%s回戦(%s)に勝利した。\n", " %2d:%02d %20s won the %d%s fight (%s).\n"),
+ hour, min, note_level, num, _("", get_ordinal_number_suffix(num)), note);
if (num == MAX_ARENA_MONS)
{
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;
}
/*!
* @brief 日記のタイトル表記と内容出力 /
* @return なし
+ * @details
+ * 日記のタイトルは本関数の subtitle ローカル変数で定義されている。
*/
static void do_cmd_disp_nikki(void)
{
char buf[1024];
char tmp[80];
#ifdef JP
+ /*! */
static const char subtitle[][30] = {"最強の肉体を求めて",
"人生それははかない",
"明日に向かって",
#ifdef JP
sprintf(nikki_title, "「%s%s%sの伝説 -%s-」",
- ap_ptr->title, ap_ptr->no ? "の" : "", player_name, tmp);
+ ap_ptr->title, ap_ptr->no ? "の" : "", p_ptr->name, tmp);
#else
sprintf(nikki_title, "Legend of %s %s '%s'",
- ap_ptr->title, player_name, tmp);
+ ap_ptr->title, p_ptr->name, tmp);
#endif
/* Display the file contents */
turn = turn_tmp;
}
+/*!
+ * @brief ファイル中の全日記記録を消去する /
+ * @return なし
+ */
static void do_cmd_erase_nikki(void)
{
char file_name[80];
}
/* Display header XXX XXX XXX */
-#ifdef JP
/* 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 で中断 ]",
/*!
* チートオプションの最大数 / Number of cheating options
*/
-#define CHEAT_MAX 7
+#define CHEAT_MAX 9
/*!
* チーとオプションの定義テーブル / Cheating options
{ &cheat_save, FALSE, 255, 0x40, 0x00,
"cheat_save", _("死んだ時セーブするか確認する", "Ask for saving death")
+ },
+
+ { &cheat_diary_output, FALSE, 255, 0x80, 0x00,
+ "cheat_diary_output", _("ウィザードログを日記に出力する", "Output wizard log to diary.")
+ },
+
+ { &cheat_turn, FALSE, 255, 0x81, 0x00,
+ "cheat_turn", _("ゲームメッセージにターン表示を行う", "Put turn to game message.")
}
+
+
};
/*!
static void do_cmd_options_win(void)
{
int i, j, d;
-
int y = 0;
int x = 0;
-
char ch;
-
bool go = TRUE;
-
u32b old_flag[8];
/* 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;
*/
static void do_cmd_macro_aux(char *buf)
{
- int i, n = 0;
-
+ char i;
+ int n = 0;
char tmp[1024];
-
/* Flush */
flush();
screen_load();
}
-
+/*!
+ * @brief キャラクタ色の明暗表現
+ */
static cptr lighting_level_str[F_LIT_MAX] =
{
#ifdef JP
};
+/*!
+ * @brief キャラクタのビジュアルIDを変更する際の対象指定関数
+ * @param i 指定対象となるキャラクタコード
+ * @param num 指定されたビジュアルIDを返す参照ポインタ
+ * @param max ビジュアルIDの最大数
+ * @return 指定が実際に行われた場合TRUE、キャンセルされた場合FALSE
+ */
static bool cmd_visuals_aux(int i, int *num, int max)
{
if (iscntrl(i))
return TRUE;
}
+/*!
+ * @brief キャラクタの変更メニュー表示
+ * @param choice_msg 選択メッセージ
+ * @return なし
+ */
static void print_visuals_menu(cptr choice_msg)
{
prt(_("[ 画面表示の設定 ]", "Interact with Visuals"), 1, 0);
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, int *lighting_level);
/*
* Interact with "visuals"
case '2':
{
static cptr mark = "Object attr/chars";
+ IDX k_idx;
/* Prompt */
prt(_("コマンド: アイテムの[色/文字]をファイルに書き出します", "Command: Dump object attr/chars"), 15, 0);
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];
+ object_kind *k_ptr = &k_info[k_idx];
/* Skip non-entries */
if (!k_ptr->name) continue;
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);
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));
}
case '4':
{
static cptr choice_msg = _("モンスターの[色/文字]を変更します", "Change monster attr/chars");
- static int r = 0;
+ static IDX r = 0;
prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
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
}
* 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 int collect_monsters(int grp_cur, s16b mon_idx[], BIT_FLAGS8 mode)
{
int i, mon_cnt = 0;
int dummy_why;
* 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 int collect_objects(int grp_cur, IDX object_idx[], BIT_FLAGS8 mode)
{
- int i, j, k, object_cnt = 0;
+ IDX i;
+ int j, k, object_cnt = 0;
/* Get a list of x_char in this group */
byte group_tval = object_group_tval[grp_cur];
*
* mode & 0x01 : check for non-empty group
*/
-static int collect_features(int grp_cur, int *feat_idx, byte mode)
+static int collect_features(int grp_cur, IDX *feat_idx, BIT_FLAGS8 mode)
{
- int i, feat_cnt = 0;
+ IDX i;
+ int feat_cnt = 0;
/* Unused; There is a single group. */
(void)grp_cur;
*/
static void do_cmd_knowledge_artifacts(void)
{
- int i, k, z, x, y, n = 0;
+ int i, k, x, y, n = 0;
+ IDX z;
u16b why = 3;
s16b *who;
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 */
if ((k_ptr->tval == TV_SWORD - i) && (k_ptr->sval == num))
{
- if ((k_ptr->tval == TV_BOW) && (k_ptr->sval == SV_CRIMSON)) continue;
+ if ((k_ptr->tval == TV_BOW) && (k_ptr->sval == SV_CRIMSON || k_ptr->sval == SV_HARP)) continue;
weapon_exp = p_ptr->weapon_exp[4 - i][num];
strip_name(tmp, j);
* @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)
+ IDX grp_idx[], cptr group_text[], int grp_cur, int grp_top)
{
int i;
/*
* 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 == ' ')
/*
* 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;
byte attr_top = 0, char_left = 0;
int browser_rows;
- int wid, hgt;
+ POSITION wid, hgt;
- byte mode;
+ BIT_FLAGS8 mode;
/* Get size */
Term_get_size(&wid, &hgt);
/*
* 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;
/*
* Describe fake object
*/
-static void desc_obj_fake(int k_idx)
+static void desc_obj_fake(IDX k_idx)
{
object_type *o_ptr;
object_type object_type_body;
/*
* 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;
+ IDX *object_idx;
int column = 0;
bool flag;
browser_rows = hgt - 8;
/* Allocate the "object_idx" array */
- C_MAKE(object_idx, max_k_idx, int);
+ C_MAKE(object_idx, max_k_idx, IDX);
max = 0;
grp_cnt = 0;
}
/* Free the "object_idx" array */
- C_KILL(object_idx, max_k_idx, int);
+ C_KILL(object_idx, max_k_idx, IDX);
}
*/
static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int direct_f_idx, int *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];
+ IDX i;
+ int len, max;
+ IDX grp_cur, grp_top, old_grp_cur;
+ IDX feat_cur, feat_top;
+ int grp_cnt;
+ IDX grp_idx[100];
int feat_cnt;
- int *feat_idx;
+ IDX *feat_idx;
int column = 0;
bool flag;
}
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]);
}
}
char rand_tmp_str[120] = "\0";
char name[80];
monster_race *r_ptr;
- int i;
+ IDX i;
int rand_level = 100;
int total = 0;
(quest[i].status == QUEST_STATUS_COMPLETED))
{
/* Set the quest number temporary */
- int old_quest = p_ptr->inside_quest;
+ IDX old_quest = p_ptr->inside_quest;
int j;
/* Clear the text */
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);
+ 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;
}
/* 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);
{
#ifdef JP
sprintf(rand_tmp_str," %s (%d 階) - %d 体の%sを倒す。(あと %d 体)\n",
- quest[i].name, quest[i].level,
+ quest[i].name, (int)quest[i].level,
quest[i].max_num, name, 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].name, (idx)quest[i].level,
quest[i].max_num, name, quest[i].cur_num);
#endif
}
}
-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];
_(" %-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
{
_(" %-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);
}
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);
/*
* Print all finished quests
*/
-void do_cmd_knowledge_quests_completed(FILE *fff, int quest_num[])
+void do_cmd_knowledge_quests_completed(FILE *fff, IDX quest_num[])
{
int i;
int total = 0;
fprintf(fff, _("《達成したクエスト》\n", "< Completed Quest >\n"));
for (i = 1; i < max_quests; i++)
{
- int q_idx = quest_num[i];
+ IDX q_idx = quest_num[i];
quest_type* const q_ptr = &quest[q_idx];
if (q_ptr->status == QUEST_STATUS_FINISHED &&
/*
* Print all failed quests
*/
-void do_cmd_knowledge_quests_failed(FILE *fff, int quest_num[])
+void do_cmd_knowledge_quests_failed(FILE *fff, IDX quest_num[])
{
int i;
int total = 0;
{
FILE *fff;
char file_name[1024];
- int *quest_num, dummy, i;
+ IDX *quest_num;
+ int dummy, i;
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);