-/* File: cmd4.c */
-
-/*
+/*!
+ * @file cmd4.c
+ * @brief プレイヤーのインターフェイスに関するコマンドの実装 / Interface commands
+ * @date 2014/01/02
+ * @author
+ * <pre>
* Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
- *
* This software may be copied and distributed for educational, research,
* and not for profit purposes provided that this copyright and statement
* are included in all such copies. Other copyrights may also apply.
- */
-
-/* Purpose: Interface commands */
-
-#include "angband.h"
-
-
-
-/*
+ * </pre>
+ * @details
+ * <pre>
* A set of functions to maintain automatic dumps of various kinds.
* -Mogami-
- *
* remove_auto_dump(orig_file, mark)
* Remove the old automatic dump of type "mark".
* auto_dump_printf(fmt, ...)
* Open a file, remove old dump, and add new header.
* close_auto_dump(void)
* Add a footer, and close the file.
- *
* The dump commands of original Angband simply add new lines to
* existing files; these files will become bigger and bigger unless
* an user deletes some or all of these files by hand at some
* point.
- *
* These three functions automatically delete old dumped lines
* before adding new ones. Since there are various kinds of automatic
* dumps in a single file, we add a header and a footer with a type
* name for every automatic dump, and kill old lines only when the
* lines have the correct type of header and footer.
- *
* We need to be quite paranoid about correctness; the user might
* (mistakenly) edit the file by hand, and see all their work come
* to nothing on the next auto dump otherwise. The current code only
* detects changes by noting inconsistencies between the actual number
* of lines and the number written in the footer. Note that this will
* not catch single-line edits.
+ * </pre>
+ */
+
+#include "angband.h"
+
+
+
+/*
*/
/*
static cptr auto_dump_mark;
static int auto_dump_line_num;
-/*
+
+/*!
+ * @brief prf出力内容を消去する /
* Remove old lines automatically generated before.
+ * @param orig_file 消去を行うファイル名
*/
static void remove_auto_dump(cptr orig_file)
{
if (!tmp_fff)
{
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", tmp_file);
-#else
- msg_format("Failed to create temporary file %s.", tmp_file);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), tmp_file);
msg_print(NULL);
return;
}
}
-/*
+/*!
+ * @brief prfファイルのフォーマットに従った内容を出力する /
* Dump a formatted line, using "vstrnfmt()".
+ * @param fmt 出力内容
*/
static void auto_dump_printf(cptr fmt, ...)
{
}
-/*
- * Open file to append auto dump.
+/*!
+ * @brief prfファイルをファイルオープンする /
+ * Open file to append auto dump.
+ * @param buf ファイル名
+ * @param mark 出力するヘッダマーク
+ * @return ファイルポインタを取得できたらTRUEを返す
*/
static bool open_auto_dump(cptr buf, cptr mark)
{
/* Failure */
if (!auto_dump_stream) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
+ msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf);
msg_print(NULL);
/* Failed */
/* Initialize counter */
auto_dump_line_num = 0;
-#ifdef JP
- auto_dump_printf("# *·Ù¹ð!!* °Ê¹ß¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
- auto_dump_printf("# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
-#else
- auto_dump_printf("# *Warning!* The lines below are an automatic dump.\n");
- auto_dump_printf("# Don't edit them; changes will be deleted and replaced automatically.\n");
-#endif
-
+ auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ "# *Warning!* The lines below are an automatic dump.\n"));
+ auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ "# Don't edit them; changes will be deleted and replaced automatically.\n"));
/* Success */
return TRUE;
}
-/*
- * Append foot part and close auto dump.
+/*!
+ * @brief prfファイルをファイルクローズする /
+ * Append foot part and close auto dump.
+ * @return なし
*/
static void close_auto_dump(void)
{
/* Prepare a footer mark string */
sprintf(footer_mark_str, auto_dump_footer, auto_dump_mark);
-#ifdef JP
- auto_dump_printf("# *·Ù¹ð!!* °Ê¾å¤Î¹Ô¤Ï¼«Æ°À¸À®¤µ¤ì¤¿¤â¤Î¤Ç¤¹¡£\n");
- auto_dump_printf("# *·Ù¹ð!!* ¸å¤Ç¼«Æ°Åª¤Ëºï½ü¤µ¤ì¤ë¤Î¤ÇÊÔ½¸¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£\n");
-#else
- auto_dump_printf("# *Warning!* The lines above are an automatic dump.\n");
- auto_dump_printf("# Don't edit them; changes will be deleted and replaced automatically.\n");
-#endif
-
+ auto_dump_printf(_("# *警告!!* 以降の行は自動生成されたものです。\n",
+ "# *Warning!* The lines below are an automatic dump.\n"));
+ auto_dump_printf(_("# *警告!!* 後で自動的に削除されるので編集しないでください。\n",
+ "# Don't edit them; changes will be deleted and replaced automatically.\n"));
/* End of dump */
fprintf(auto_dump_stream, "%s (%d)\n", footer_mark_str, auto_dump_line_num);
#ifndef JP
-/*
- * Return suffix of ordinal number
+
+/*!
+ * @brief Return suffix of ordinal number
+ * @param num number
+ * @return pointer of suffix string.
*/
cptr get_ordinal_number_suffix(int num)
{
#endif
-/*
- * Take note to the diary.
+/*!
+ * @brief 日記にメッセージを追加する /
+ * Take note to the diary.
+ * @param type 日記内容のID
+ * @param num 日記内容のIDに応じた数値
+ * @param note 日記内容のIDに応じた文字列参照ポインタ
+ * @return エラーID
*/
errr do_cmd_write_nikki(int type, int num, cptr note)
{
p_ptr->inside_quest = (quest[num].type == QUEST_TYPE_RANDOM) ? 0 : num;
/* Get the quest text */
- init_flags = INIT_ASSIGN;
+ init_flags = INIT_NAME_ONLY;
process_dungeon_file("q_info.txt", 0, 0, 0, 0);
p_ptr->inside_quest = old_quest;
}
-#ifdef JP
- sprintf(file_name,"playrecord-%s.txt",savefile_base);
-#else
/* different filne name to avoid mixing */
- sprintf(file_name,"playrec-%s.txt",savefile_base);
-#endif
+ sprintf(file_name,_("playrecord-%s.txt", "playrec-%s.txt"),savefile_base);
/* Build the filename */
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name);
/* Failure */
if (!fff)
{
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£¥×¥ì¥¤µÏ¿¤ò°ì»þÄä»ß¤·¤Þ¤¹¡£", buf);
-#else
- msg_format("Failed to open %s. Play-Record is disabled temporally.", buf);
-#endif
+ msg_format(_("%s を開くことができませんでした。プレイ記録を一時停止します。", "Failed to open %s. Play-Record is disabled temporally."), buf);
msg_format(NULL);
disable_nikki=TRUE;
return (-1);
if (write_level)
{
if (p_ptr->inside_arena)
-#ifdef JP
- note_level = "¥¢¥ê¡¼¥Ê:";
-#else
- note_level = "Arane:";
-#endif
+ note_level = _("アリーナ:", "Arane:");
else if (!dun_level)
-#ifdef JP
- note_level = "ÃϾå:";
-#else
- note_level = "Surface:";
-#endif
+ note_level = _("地上:", "Surface:");
else if (q_idx && (is_fixed_quest_idx(q_idx)
&& !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))))
-#ifdef JP
- note_level = "¥¯¥¨¥¹¥È:";
-#else
- note_level = "Quest:";
-#endif
+ 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):", 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);
#endif
{
case NIKKI_HIGAWARI:
{
-#ifdef JP
- fprintf(fff, "%dÆüÌÜ\n",day);
-#else
- fprintf(fff, "Day %d\n",day);
-#endif
+ if (day < MAX_DAYS) fprintf(fff, _("%d日目\n", "Day %d\n"), day);
+ else fputs(_("*****日目\n", "Day *****\n"), fff);
do_level = FALSE;
break;
}
}
case NIKKI_ART:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤òȯ¸«¤·¤¿¡£\n", hour, min, note_level, note);
-#else
- fprintf(fff, " %2d:%02d %20s discovered %s.\n", hour, min, note_level, note);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sを発見した。\n", " %2d:%02d %20s discovered %s.\n"), hour, min, note_level, note);
break;
}
case NIKKI_UNIQUE:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤òÅݤ·¤¿¡£\n", hour, min, note_level, note);
-#else
- fprintf(fff, " %2d:%02d %20s defeated %s.\n", hour, min, note_level, note);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sを倒した。\n", " %2d:%02d %20s defeated %s.\n"), hour, min, note_level, note);
break;
}
case NIKKI_FIX_QUEST_C:
{
if (quest[num].flags & QUEST_FLAG_SILENT) break;
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥¯¥¨¥¹¥È¡Ö%s¡×¤òãÀ®¤·¤¿¡£\n", hour, min, note_level, quest[num].name);
-#else
- fprintf(fff, " %2d:%02d %20s completed quest '%s'.\n", hour, min, note_level, quest[num].name);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s クエスト「%s」を達成した。\n",
+ " %2d:%02d %20s completed quest '%s'.\n"), hour, min, note_level, quest[num].name);
break;
}
case NIKKI_FIX_QUEST_F:
{
if (quest[num].flags & QUEST_FLAG_SILENT) break;
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥¯¥¨¥¹¥È¡Ö%s¡×¤«¤éÌ¿¤«¤é¤¬¤éƨ¤²µ¢¤Ã¤¿¡£\n", hour, min, note_level, quest[num].name);
-#else
- fprintf(fff, " %2d:%02d %20s run away from quest '%s'.\n", hour, min, note_level, quest[num].name);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s クエスト「%s」から命からがら逃げ帰った。\n",
+ " %2d:%02d %20s run away from quest '%s'.\n"), hour, min, note_level, quest[num].name);
break;
}
case NIKKI_RAND_QUEST_C:
{
char name[80];
strcpy(name, r_name+r_info[quest[num].r_idx].name);
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥é¥ó¥À¥à¥¯¥¨¥¹¥È(%s)¤òãÀ®¤·¤¿¡£\n", hour, min, note_level, name);
-#else
- fprintf(fff, " %2d:%02d %20s completed randome quest '%s'\n", hour, min, note_level, name);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)を達成した。\n",
+ " %2d:%02d %20s completed random quest '%s'\n"), hour, min, note_level, name);
break;
}
case NIKKI_RAND_QUEST_F:
{
char name[80];
strcpy(name, r_name+r_info[quest[num].r_idx].name);
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥é¥ó¥À¥à¥¯¥¨¥¹¥È(%s)¤«¤éƨ¤²½Ð¤·¤¿¡£\n", hour, min, note_level, name);
-#else
- fprintf(fff, " %2d:%02d %20s ran away from quest '%s'.\n", hour, min, note_level, name);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s ランダムクエスト(%s)から逃げ出した。\n",
+ " %2d:%02d %20s ran away from quest '%s'.\n"), hour, min, note_level, name);
break;
}
case NIKKI_MAXDEAPTH:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤ÎºÇ¿¼³¬%d³¬¤ËÅþ㤷¤¿¡£\n", hour, min, note_level, d_name+d_info[dungeon_type].name, num);
-#else
- fprintf(fff, " %2d:%02d %20s reached level %d of %s for the first time.\n", hour, min, note_level, num, d_name+d_info[dungeon_type].name);
-#endif
+ 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));
break;
}
case NIKKI_TRUMP:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s%s¤ÎºÇ¿¼³¬¤ò%d³¬¤Ë¥»¥Ã¥È¤·¤¿¡£\n", hour, min, note_level, note, d_name + d_info[num].name, max_dlv[num]);
-#else
- fprintf(fff, " %2d:%02d %20s reset recall level of %s to %d %s.\n", hour, min, note_level, d_name + d_info[num].name, max_dlv[num], note);
-#endif
+ 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));
break;
}
case NIKKI_STAIR:
if (q_idx && (is_fixed_quest_idx(q_idx)
&& !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT))))
{
-#ifdef JP
- to = "ÃϾå";
-#else
- to = "the surface";
-#endif
+ to = _("地上", "the surface");
}
else
{
-#ifdef JP
- if (!(dun_level+num)) to = "ÃϾå";
- else to = format("%d³¬", dun_level+num);
-#else
- if (!(dun_level+num)) to = "the surface";
- else to = format("level %d", dun_level+num);
-#endif
+ if (!(dun_level+num)) to = _("地上", "the surface");
+ else to = format(_("%d階", "level %d"), dun_level+num);
}
-
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤Ø%s¡£\n", hour, min, note_level, to, note);
-#else
- fprintf(fff, " %2d:%02d %20s %s %s.\n", hour, min, note_level, note, to);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sへ%s。\n", " %2d:%02d %20s %s %s.\n"), hour, min, note_level, _(to, note), _(note, to));
break;
}
case NIKKI_RECALL:
{
if (!num)
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s µ¢´Ô¤ò»È¤Ã¤Æ%s¤Î%d³¬¤Ø²¼¤ê¤¿¡£\n", hour, min, note_level, d_name+d_info[dungeon_type].name, max_dlv[dungeon_type]);
-#else
- fprintf(fff, " %2d:%02d %20s recalled to dungeon level %d of %s.\n", hour, min, note_level, max_dlv[dungeon_type], d_name+d_info[dungeon_type].name);
-#endif
+ 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));
else
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s µ¢´Ô¤ò»È¤Ã¤ÆÃϾå¤Ø¤ÈÌá¤Ã¤¿¡£\n", hour, min, note_level);
-#else
- fprintf(fff, " %2d:%02d %20s recalled from dungeon to surface.\n", hour, min, note_level);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s 帰還を使って地上へと戻った。\n", " %2d:%02d %20s recalled from dungeon to surface.\n"), hour, min, note_level);
break;
}
case NIKKI_TO_QUEST:
{
if (quest[num].flags & QUEST_FLAG_SILENT) break;
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥¯¥¨¥¹¥È¡Ö%s¡×¤Ø¤ÈÆÍÆþ¤·¤¿¡£\n", hour, min, note_level, quest[num].name);
-#else
- fprintf(fff, " %2d:%02d %20s entered the quest '%s'.\n", hour, min, note_level, quest[num].name);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s クエスト「%s」へと突入した。\n", " %2d:%02d %20s entered the quest '%s'.\n"),
+ hour, min, note_level, quest[num].name);
break;
}
case NIKKI_TELE_LEV:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥ì¥Ù¥ë¡¦¥Æ¥ì¥Ý¡¼¥È¤Çæ½Ð¤·¤¿¡£\n", hour, min, note_level);
-#else
- fprintf(fff, " %2d:%02d %20s Got out using teleport level.\n", hour, min, note_level);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s レベル・テレポートで脱出した。\n", " %2d:%02d %20s Got out using teleport level.\n"),
+ hour, min, note_level);
break;
}
case NIKKI_BUY:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤ò¹ØÆþ¤·¤¿¡£\n", hour, min, note_level, note);
-#else
- fprintf(fff, " %2d:%02d %20s bought %s.\n", hour, min, note_level, note);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sを購入した。\n", " %2d:%02d %20s bought %s.\n"), hour, min, note_level, note);
break;
}
case NIKKI_SELL:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤òÇäµÑ¤·¤¿¡£\n", hour, min, note_level, note);
-#else
- fprintf(fff, " %2d:%02d %20s sold %s.\n", hour, min, note_level, note);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sを売却した。\n", " %2d:%02d %20s sold %s.\n"), hour, min, note_level, note);
break;
}
case NIKKI_ARENA:
{
if (num < 0)
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s Æ®µ»¾ì¤Î%d²óÀï¤Ç¡¢%s¤ÎÁ°¤ËÇÔ¤ìµî¤Ã¤¿¡£\n", hour, min, note_level, -num, note);
-#else
int n = -num;
- fprintf(fff, " %2d:%02d %20s beaten by %s in the %d%s fight.\n", hour, min, note_level, note, n, get_ordinal_number_suffix(n));
-#endif
+ 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;
}
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s Æ®µ»¾ì¤Î%d²óÀï(%s)¤Ë¾¡Íø¤·¤¿¡£\n", hour, min, note_level, num, note);
-#else
- fprintf(fff, " %2d:%02d %20s won the %d%s fight (%s).\n", hour, min, note_level, num, get_ordinal_number_suffix(num), note);
-#endif
+ 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)
{
-#ifdef JP
- fprintf(fff, " Æ®µ»¾ì¤Î¤¹¤Ù¤Æ¤ÎŨ¤Ë¾¡Íø¤·¡¢¥Á¥ã¥ó¥Ô¥ª¥ó¤È¤Ê¤Ã¤¿¡£\n");
-#else
- fprintf(fff, " won all fight to become a Chanpion.\n");
-#endif
+ fprintf(fff, _(" 闘技場のすべての敵に勝利し、チャンピオンとなった。\n",
+ " won all fight to become a Chanpion.\n"));
do_level = FALSE;
}
break;
}
case NIKKI_HANMEI:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤ò¼±Ê̤·¤¿¡£\n", hour, min, note_level, note);
-#else
- fprintf(fff, " %2d:%02d %20s identified %s.\n", hour, min, note_level, note);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sを識別した。\n", " %2d:%02d %20s identified %s.\n"), hour, min, note_level, note);
break;
}
case NIKKI_WIZ_TELE:
{
cptr to;
if (!dun_level)
-#ifdef JP
- to = "ÃϾå";
-#else
- to = "the surface";
-#endif
+ to = _("地上", "the surface");
else
-#ifdef JP
- to = format("%d³¬(%s)", dun_level, d_name+d_info[dungeon_type].name);
-#else
- to = format("level %d of %s", dun_level, d_name+d_info[dungeon_type].name);
-#endif
+ to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_type].name);
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤Ø¤È¥¦¥£¥¶¡¼¥É¡¦¥Æ¥ì¥Ý¡¼¥È¤Ç°ÜÆ°¤·¤¿¡£\n", hour, min, note_level, to);
-#else
- fprintf(fff, " %2d:%02d %20s wizard-teleport to %s.\n", hour, min, note_level, to);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sへとウィザード・テレポートで移動した。\n",
+ " %2d:%02d %20s wizard-teleport to %s.\n"), hour, min, note_level, to);
break;
}
case NIKKI_PAT_TELE:
{
cptr to;
if (!dun_level)
-#ifdef JP
- to = "ÃϾå";
-#else
- to = "the surface";
-#endif
+ to = _("地上", "the surface");
else
-#ifdef JP
- to = format("%d³¬(%s)", dun_level, d_name+d_info[dungeon_type].name);
-#else
- to = format("level %d of %s", dun_level, d_name+d_info[dungeon_type].name);
-#endif
+ to = format(_("%d階(%s)", "level %d of %s"), dun_level, d_name+d_info[dungeon_type].name);
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s %s¤Ø¤È¥Ñ¥¿¡¼¥ó¤ÎÎϤǰÜÆ°¤·¤¿¡£\n", hour, min, note_level, to);
-#else
- fprintf(fff, " %2d:%02d %20s used Pattern to teleport to %s.\n", hour, min, note_level, to);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s %sへとパターンの力で移動した。\n",
+ " %2d:%02d %20s used Pattern to teleport to %s.\n"), hour, min, note_level, to);
break;
}
case NIKKI_LEVELUP:
{
-#ifdef JP
- fprintf(fff, " %2d:%02d %20s ¥ì¥Ù¥ë¤¬%d¤Ë¾å¤¬¤Ã¤¿¡£\n", hour, min, note_level, num);
-#else
- fprintf(fff, " %2d:%02d %20s reached player level %d.\n", hour, min, note_level, num);
-#endif
+ fprintf(fff, _(" %2d:%02d %20s レベルが%dに上がった。\n", " %2d:%02d %20s reached player level %d.\n"), hour, min, note_level, num);
break;
}
case NIKKI_GAMESTART:
fprintf(fff, " %2d:%02d %20s ", hour, min, note_level);
switch (num)
{
- case 0:
-#ifdef JP
- fprintf(fff, "%s¤òι¤Îͧ¤Ë¤¹¤ë¤³¤È¤Ë·è¤á¤¿¡£\n", note);
-#else
- fprintf(fff, "decided to travel together with %s.\n", note);
-#endif
+ case RECORD_NAMED_PET_NAME:
+ fprintf(fff, _("%sを旅の友にすることに決めた。\n", "decided to travel together with %s.\n"), note);
break;
- case 1:
-#ifdef JP
- fprintf(fff, "%s¤Î̾Á°¤ò¾Ã¤·¤¿¡£\n", note);
-#else
- fprintf(fff, "unnamed %s.\n", note);
-#endif
+ case RECORD_NAMED_PET_UNNAME:
+ fprintf(fff, _("%sの名前を消した。\n", "unnamed %s.\n"), note);
break;
- case 2:
-#ifdef JP
- fprintf(fff, "%s¤ò²òÊü¤·¤¿¡£\n", note);
-#else
- fprintf(fff, "dismissed %s.\n", note);
-#endif
+ case RECORD_NAMED_PET_DISMISS:
+ fprintf(fff, _("%sを解放した。\n", "dismissed %s.\n"), note);
break;
- case 3:
-#ifdef JP
- fprintf(fff, "%s¤¬»à¤ó¤Ç¤·¤Þ¤Ã¤¿¡£\n", note);
-#else
- fprintf(fff, "%s died.\n", note);
-#endif
+ case RECORD_NAMED_PET_DEATH:
+ fprintf(fff, _("%sが死んでしまった。\n", "%s died.\n"), note);
break;
- case 4:
-#ifdef JP
- fprintf(fff, "%s¤ò¤ª¤¤¤ÆÊ̤ΥޥåפذÜÆ°¤·¤¿¡£\n", note);
-#else
- fprintf(fff, "moved to another map leaving %s behind.\n", note);
-#endif
+ case RECORD_NAMED_PET_MOVED:
+ fprintf(fff, _("%sをおいて別のマップへ移動した。\n", "moved to another map leaving %s behind.\n"), note);
break;
- case 5:
-#ifdef JP
- fprintf(fff, "%s¤È¤Ï¤°¤ì¤Æ¤·¤Þ¤Ã¤¿¡£\n", note);
-#else
- fprintf(fff, "lost sight of %s.\n", note);
-#endif
+ case RECORD_NAMED_PET_LOST_SIGHT:
+ fprintf(fff, _("%sとはぐれてしまった。\n", "lost sight of %s.\n"), note);
break;
- case 6:
-#ifdef JP
- fprintf(fff, "%s¤¬*Ç˲õ*¤Ë¤è¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note);
-#else
- fprintf(fff, "%s was made disappeared by *destruction*.\n", note);
-#endif
+ case RECORD_NAMED_PET_DESTROY:
+ fprintf(fff, _("%sが*破壊*によって消え去った。\n", "%s was made disappeared by *destruction*.\n"), note);
break;
- case 7:
-#ifdef JP
- fprintf(fff, "%s¤¬´äÀФ˲¡¤·ÄÙ¤µ¤ì¤¿¡£\n", note);
-#else
- fprintf(fff, "%s was crushed by falling rocks.\n", note);
-#endif
+ case RECORD_NAMED_PET_EARTHQUAKE:
+ fprintf(fff, _("%sが岩石に押し潰された。\n", "%s was crushed by falling rocks.\n"), note);
+ break;
+ case RECORD_NAMED_PET_GENOCIDE:
+ fprintf(fff, _("%sが抹殺によって消え去った。\n", "%s was made disappeared by genocide.\n"), note);
+ break;
+ case RECORD_NAMED_PET_WIZ_ZAP:
+ fprintf(fff, _("%sがデバッグコマンドによって消え去った。\n", "%s was removed by debug command.\n"), note);
+ break;
+ case RECORD_NAMED_PET_TELE_LEVEL:
+ fprintf(fff, _("%sがテレポート・レベルによって消え去った。\n", "%s was made disappeared by teleport level.\n"), note);
+ break;
+ case RECORD_NAMED_PET_BLAST:
+ fprintf(fff, _("%sを爆破した。\n", "blasted %s.\n"), note);
+ break;
+ case RECORD_NAMED_PET_HEAL_LEPER:
+ fprintf(fff, _("%sの病気が治り旅から外れた。\n", "%s was healed and left.\n"), note);
+ break;
+ case RECORD_NAMED_PET_COMPACT:
+ fprintf(fff, _("%sがモンスター情報圧縮によって消え去った。\n", "%s was made disappeared by compacting monsters.\n"), note);
+ break;
+ 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");
#define MAX_SUBTITLE (sizeof(subtitle)/sizeof(subtitle[0]))
+/*!
+ * @brief 日記のタイトル表記と内容出力 /
+ * @return なし
+ * @details
+ * 日記のタイトルは本関数の subtitle ローカル変数で定義されている。
+ */
static void do_cmd_disp_nikki(void)
{
char nikki_title[256];
char buf[1024];
char tmp[80];
#ifdef JP
- static const char subtitle[][30] = {"ºÇ¶¯¤ÎÆùÂΤòµá¤á¤Æ",
- "¿ÍÀ¸¤½¤ì¤Ï¤Ï¤«¤Ê¤¤",
- "ÌÀÆü¤Ë¸þ¤«¤Ã¤Æ",
- "꤫¤é¤Ü¤¿¤â¤Á",
- "¤¢¤È¤Îº×¤ê",
- "¤½¤ì¤Ï¤¤¤¤¹Í¤¨¤À",
- "²¿¤È¤Ç¤â¸À¤¨",
- "ÅƤˤâ³Ñ¤Ë¤â",
- "¥¦¥½¤À¤±¤É",
- "¤â¤Ï¤ä¤³¤ì¤Þ¤Ç",
- "¤Ê¤ó¤Ç¤³¤¦¤Ê¤ë¤Î",
- "¤½¤ì¤Ï̵Íý¤À",
- "Åݤ¹¤Ù¤Å¨¤Ï¥²¡û¥Ä",
- "¤ó¡Á¡©Ê¹¤³¤¨¤ó¤Ê¤¡",
- "¥ª¥ì¤Î̾¤ò¸À¤Ã¤Æ¤ß¤í",
- "Ƭ¤¬ÊѤˤʤäÁ¤ã¤Ã¤¿",
- "¸ß´¹¤·¤Þ¤»¤ó",
- "¤»¤Ã¤«¤¯¤À¤«¤é",
- "¤Þ¤À¤Þ¤À´Å¤¤¤Í",
- "¤à¤´¤¤¤à¤´¤¹¤®¤ë",
- "¤³¤ó¤Ê¤â¤ó¤¸¤ã¤Ê¤¤",
- "¤À¤á¤À¤³¤ê¤ã",
- "¼¡¤¤¤Ã¤Æ¤ß¤è¤¦",
- "¤Á¤ç¤Ã¤È¤À¤±¤è",
- "°¥¤·¤ËÁ¸±¼Ô",
- "Ìî˾¤Î²Ì¤Æ",
- "̵¸ÂÃϹö",
- "¿À¤Ë·ö²Þ¤òÇä¤ë¼Ô",
- "̤ÃΤÎÀ¤³¦¤Ø",
- "ºÇ¹â¤ÎƬǾ¤òµá¤á¤Æ"};
+ /*! */
+ static const char subtitle[][30] = {"最強の肉体を求めて",
+ "人生それははかない",
+ "明日に向かって",
+ "棚からぼたもち",
+ "あとの祭り",
+ "それはいい考えだ",
+ "何とでも言え",
+ "兎にも角にも",
+ "ウソだけど",
+ "もはやこれまで",
+ "なんでこうなるの",
+ "それは無理だ",
+ "倒すべき敵はゲ○ツ",
+ "ん~?聞こえんなぁ",
+ "オレの名を言ってみろ",
+ "頭が変になっちゃった",
+ "互換しません",
+ "せっかくだから",
+ "まだまだ甘いね",
+ "むごいむごすぎる",
+ "こんなもんじゃない",
+ "だめだこりゃ",
+ "次いってみよう",
+ "ちょっとだけよ",
+ "哀しき冒険者",
+ "野望の果て",
+ "無限地獄",
+ "神に喧嘩を売る者",
+ "未知の世界へ",
+ "最高の頭脳を求めて"};
#else
static const char subtitle[][51] ={"Quest of The World's Toughest Body",
"Attack is the best form of defence.",
"Time is money.",
"Quest of The World's Greatest Brain"};
#endif
-#ifdef JP
- sprintf(file_name,"playrecord-%s.txt",savefile_base);
-#else
- sprintf(file_name,"playrec-%s.txt",savefile_base);
-#endif
+ sprintf(file_name,_("playrecord-%s.txt", "playrec-%s.txt"),savefile_base);
/* Build the filename */
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name);
else strcpy(tmp,subtitle[randint0(MAX_SUBTITLE-2)+1]);
#ifdef JP
- sprintf(nikki_title, "¡Ö%s%s%s¤ÎÅÁÀâ -%s-¡×",
- ap_ptr->title, ap_ptr->no ? "¤Î" : "", player_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, player_name, tmp);
+ ap_ptr->title, p_ptr->name, tmp);
#endif
/* Display the file contents */
show_file(FALSE, buf, nikki_title, -1, 0);
}
+/*!
+ * @brief 日記に任意の内容を表記するコマンドのメインルーチン /
+ * @return なし
+ */
static void do_cmd_bunshou(void)
{
char tmp[80] = "\0";
char bunshou[80] = "\0";
-#ifdef JP
- if (get_string("ÆâÍÆ: ", tmp, 79))
-#else
- if (get_string("diary note: ", tmp, 79))
-#endif
+ if (get_string(_("内容: ", "diary note: "), tmp, 79))
{
strcpy(bunshou, tmp);
}
}
+/*!
+ * @brief 最後に取得したアイテムの情報を日記に追加するメインルーチン /
+ * @return なし
+ */
static void do_cmd_last_get(void)
{
char buf[256];
if (record_o_name[0] == '\0') return;
-#ifdef JP
- sprintf(buf,"%s¤ÎÆþ¼ê¤òµÏ¿¤·¤Þ¤¹¡£",record_o_name);
-#else
- sprintf(buf,"Do you really want to record getting %s? ",record_o_name);
-#endif
+ sprintf(buf,_("%sの入手を記録します。", "Do you really want to record getting %s? "),record_o_name);
if (!get_check(buf)) return;
turn_tmp = turn;
turn = record_turn;
-#ifdef JP
- sprintf(buf,"%s¤ò¼ê¤ËÆþ¤ì¤¿¡£", record_o_name);
-#else
- sprintf(buf,"descover %s.", record_o_name);
-#endif
+ sprintf(buf,_("%sを手に入れた。", "descover %s."), record_o_name);
do_cmd_write_nikki(NIKKI_BUNSHOU, 0, buf);
turn = turn_tmp;
}
+/*!
+ * @brief ファイル中の全日記記録を消去する /
+ * @return なし
+ */
static void do_cmd_erase_nikki(void)
{
char file_name[80];
char buf[256];
FILE *fff = NULL;
-#ifdef JP
- if (!get_check("ËÜÅö¤ËµÏ¿¤ò¾Ãµî¤·¤Þ¤¹¤«¡©")) return;
-#else
- if (!get_check("Do you really want to delete all your record? ")) return;
-#endif
-
-#ifdef JP
- sprintf(file_name,"playrecord-%s.txt",savefile_base);
-#else
- sprintf(file_name,"playrec-%s.txt",savefile_base);
-#endif
+ if (!get_check(_("本当に記録を消去しますか?", "Do you really want to delete all your record? "))) return;
+ sprintf(file_name,_("playrecord-%s.txt", "playrec-%s.txt"),savefile_base);
/* Build the filename */
path_build(buf, sizeof(buf), ANGBAND_DIR_USER, file_name);
fff = my_fopen(buf, "w");
if(fff){
my_fclose(fff);
-#ifdef JP
- msg_format("µÏ¿¤ò¾Ãµî¤·¤Þ¤·¤¿¡£");
-#else
- msg_format("deleted record.");
-#endif
+ msg_format(_("記録を消去しました。", "deleted record."));
}else{
-#ifdef JP
- msg_format("%s ¤Î¾Ãµî¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£", buf);
-#else
- msg_format("failed to delete %s.", buf);
-#endif
+ msg_format(_("%s の消去に失敗しました。", "failed to delete %s."), buf);
}
msg_print(NULL);
}
-
+/*!
+ * @brief 日記コマンド
+ * @return なし
+ */
void do_cmd_nikki(void)
{
int i;
Term_clear();
/* Ask for a choice */
-#ifdef JP
- prt("[ µÏ¿¤ÎÀßÄê ]", 2, 0);
-#else
- prt("[ Play Record ]", 2, 0);
-#endif
-
+ prt(_("[ 記録の設定 ]", "[ Play Record ]"), 2, 0);
/* Give some choices */
-#ifdef JP
- prt("(1) µÏ¿¤ò¸«¤ë", 4, 5);
- prt("(2) ʸ¾Ï¤òµÏ¿¤¹¤ë", 5, 5);
- prt("(3) ľÁ°¤ËÆþ¼êËô¤Ï´ÕÄꤷ¤¿¤â¤Î¤òµÏ¿¤¹¤ë", 6, 5);
- prt("(4) µÏ¿¤ò¾Ãµî¤¹¤ë", 7, 5);
-#else
- prt("(1) Display your record", 4, 5);
- prt("(2) Add record", 5, 5);
- prt("(3) Record item you last get/identify", 6, 5);
- prt("(4) Delete your record", 7, 5);
-#endif
+ prt(_("(1) 記録を見る", "(1) Display your record"), 4, 5);
+ prt(_("(2) 文章を記録する", "(2) Add record"), 5, 5);
+ prt(_("(3) 直前に入手又は鑑定したものを記録する", "(3) Record item you last get/identify"), 6, 5);
+ prt(_("(4) 記録を消去する", "(4) Delete your record"), 7, 5);
+ prt(_("(R) プレイ動画を記録する/中止する", "(R) Record playing movie / or stop it"), 9, 5);
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É:", 18, 0);
-#else
- prt("Command: ", 18, 0);
-#endif
-
+ prt(_("コマンド:", "Command: "), 18, 0);
/* Prompt */
i = inkey();
case '4':
do_cmd_erase_nikki();
break;
+ case 'r': case 'R':
+ screen_load();
+ prepare_movie_hooks();
+ return;
default: /* Unknown option */
bell();
}
screen_load();
}
-/*
+/*!
+ * @brief 画面を再描画するコマンドのメインルーチン
* Hack -- redraw the screen
- *
+ * @return なし
+ * @details
+ * <pre>
* This command performs various low level updates, clears all the "extra"
* windows, does a total redraw of the main window, and requests all of the
* interesting updates and redraws that I can think of.
* This command is also used to "instantiate" the results of the user
* selecting various things, such as graphics mode, so it must call
* the "TERM_XTRA_REACT" hook before redrawing the windows.
+ * </pre>
*/
void do_cmd_redraw(void)
{
}
-/*
+/*!
+ * @brief 名前を変更するコマンドのメインルーチン
* Hack -- change name
+ * @return なし
*/
void do_cmd_change_name(void)
{
/* Prompt */
#ifdef JP
Term_putstr(2, 23, -1, TERM_WHITE,
- "['c'¤Ç̾Á°Êѹ¹, 'f'¤Ç¥Õ¥¡¥¤¥ë¤Ø½ñ½Ð, 'h'¤Ç¥â¡¼¥ÉÊѹ¹, ESC¤Ç½ªÎ»]");
+ "['c'で名前変更, 'f'でファイルへ書出, 'h'でモード変更, ESCで終了]");
#else
Term_putstr(2, 23, -1, TERM_WHITE,
"['c' to change name, 'f' to file, 'h' to change mode, or ESC]");
else if (c == 'f')
{
sprintf(tmp, "%s.txt", player_base);
-#ifdef JP
- if (get_string("¥Õ¥¡¥¤¥ë̾: ", tmp, 80))
-#else
- if (get_string("File name: ", tmp, 80))
-#endif
-
+ if (get_string(_("ファイル名: ", "File name: "), tmp, 80))
{
if (tmp[0] && (tmp[0] != ' '))
{
}
-/*
+/*!
+ * @brief 最近表示されたメッセージを再表示するコマンドのメインルーチン
* Recall the most recent message
+ * @return なし
*/
void do_cmd_message_one(void)
{
}
-/*
+/*!
+ * @brief メッセージのログを表示するコマンドのメインルーチン
+ * Recall the most recent message
+ * @return なし
+ * @details
+ * <pre>
* Show previous messages to the user -BEN-
*
* The screen format uses line 0 and 23 for headers and prompts,
* "slide" the virtual display to the left or right.
*
* Attempt to only hilite the matching portions of the string.
+ * </pre>
*/
void do_cmd_messages(int num_now)
{
int i, n;
- char shower[80];
- char finder[80];
+ char shower_str[81];
+ char finder_str[81];
+ char back_str[81];
+ cptr shower = NULL;
int wid, hgt;
int num_lines;
num_lines = hgt - 4;
/* Wipe finder */
- strcpy(finder, "");
+ strcpy(finder_str, "");
/* Wipe shower */
- strcpy(shower, "");
-
+ strcpy(shower_str, "");
/* Total messages */
n = message_num();
cptr 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);
+ c_prt((i + j < num_now ? TERM_WHITE : TERM_SLATE), msg, num_lines + 1 - j, 0);
/* Hilite "shower" */
- if (shower[0])
+ if (shower && shower[0])
{
cptr str = msg;
/* Display header XXX XXX XXX */
#ifdef JP
/* translation */
- prt(format("°ÊÁ°¤Î¥á¥Ã¥»¡¼¥¸ %d-%d Á´Éô¤Ç(%d)",
- i, i+j-1, n), 0, 0);
+ prt(format("以前のメッセージ %d-%d 全部で(%d)",
+ i, i + j - 1, n), 0, 0);
#else
prt(format("Message Recall (%d-%d of %d)",
- i, i+j-1, n), 0, 0);
+ i, i + j - 1, n), 0, 0);
#endif
-
/* Display prompt (not very informative) */
-#ifdef JP
- prt("[ 'p' ¤Ç¹¹¤Ë¸Å¤¤¤â¤Î, 'n' ¤Ç¹¹¤Ë¿·¤·¤¤¤â¤Î, '/' ¤Ç¸¡º÷, ESC ¤ÇÃæÃÇ ]", hgt - 1, 0);
-#else
- prt("[Press 'p' for older, 'n' for newer, ..., or ESCAPE]", hgt - 1, 0);
-#endif
-
+ prt(_("[ 'p' で更に古いもの, 'n' で更に新しいもの, '/' で検索, ESC で中断 ]",
+ "[Press 'p' for older, 'n' for newer, ..., or ESCAPE]"), hgt - 1, 0);
/* Get a command */
skey = inkey_special(TRUE);
/* Hack -- Save the old index */
j = i;
- /* Hack -- handle show */
- if (skey == '=')
+ switch (skey)
{
+ /* Hack -- handle show */
+ case '=':
/* Prompt */
-#ifdef JP
- prt("¶¯Ä´: ", hgt - 1, 0);
-#else
- prt("Show: ", hgt - 1, 0);
-#endif
-
+ prt(_("強調: ", "Show: "), hgt - 1, 0);
/* Get a "shower" string, or continue */
- if (!askfor(shower, 80)) continue;
+ strcpy(back_str, shower_str);
+ if (askfor(shower_str, 80))
+ {
+ /* Show it */
+ shower = shower_str[0] ? shower_str : NULL;
+ }
+ else strcpy(shower_str, back_str);
/* Okay */
continue;
- }
/* Hack -- handle find */
- if (skey == '/' || skey == KTRL('s'))
- {
- int z;
-
- /* Prompt */
-#ifdef JP
- prt("¸¡º÷: ", hgt - 1, 0);
-#else
- prt("Find: ", hgt - 1, 0);
-#endif
-
-
- /* Get a "finder" string, or continue */
- if (!askfor(finder, 80)) continue;
-
- /* Show it */
- strcpy(shower, finder);
-
- /* Scan messages */
- for (z = i + 1; z < n; z++)
+ case '/':
+ case KTRL('s'):
{
- cptr msg = message_str(z);
+ int z;
- /* Search for it */
- if (my_strstr(msg, finder))
+ /* Prompt */
+ prt(_("検索: ", "Find: "), hgt - 1, 0);
+
+ /* Get a "finder" string, or continue */
+ strcpy(back_str, finder_str);
+ if (!askfor(finder_str, 80))
+ {
+ strcpy(finder_str, back_str);
+ continue;
+ }
+ else if (!finder_str[0])
{
- /* New location */
- i = z;
+ shower = NULL; /* Stop showing */
+ continue;
+ }
- /* Done */
- break;
+ /* Show it */
+ shower = finder_str;
+
+ /* Scan messages */
+ for (z = i + 1; z < n; z++)
+ {
+ cptr msg = message_str(z);
+
+ /* Search for it */
+ if (my_strstr(msg, finder_str))
+ {
+ /* New location */
+ i = z;
+
+ /* Done */
+ break;
+ }
}
}
- }
+ break;
/* Recall 1 older message */
- if (skey == SKEY_TOP)
- {
+ case SKEY_TOP:
/* Go to the oldest line */
i = n - num_lines;
- }
+ break;
/* Recall 1 newer message */
- if (skey == SKEY_BOTTOM)
- {
+ case SKEY_BOTTOM:
/* Go to the newest line */
i = 0;
- }
+ break;
/* Recall 1 older message */
- if (skey == '8' || skey == SKEY_UP || skey == '\n' || skey == '\r')
- {
+ case '8':
+ case SKEY_UP:
+ case '\n':
+ case '\r':
/* Go older if legal */
i = MIN(i + 1, n - num_lines);
- }
+ break;
/* Recall 10 older messages */
- if (skey == '+')
- {
+ case '+':
/* Go older if legal */
i = MIN(i + 10, n - num_lines);
- }
+ break;
/* Recall 20 older messages */
- if (skey == 'p' || skey == KTRL('P') || skey == ' ' || skey == SKEY_PGUP)
- {
+ case 'p':
+ case KTRL('P'):
+ case ' ':
+ case SKEY_PGUP:
/* Go older if legal */
i = MIN(i + num_lines, n - num_lines);
- }
+ break;
/* Recall 20 newer messages */
- if (skey == 'n' || skey == KTRL('N') || skey == SKEY_PGDOWN)
- {
+ case 'n':
+ case KTRL('N'):
+ case SKEY_PGDOWN:
/* Go newer (if able) */
i = MAX(0, i - num_lines);
- }
+ break;
/* Recall 10 newer messages */
- if (skey == '-')
- {
+ case '-':
/* Go newer (if able) */
i = MAX(0, i - 10);
- }
+ break;
/* Recall 1 newer messages */
- if (skey == '2' || skey == SKEY_DOWN)
- {
+ case '2':
+ case SKEY_DOWN:
/* Go newer (if able) */
i = MAX(0, i - 1);
+ break;
}
/* Hack -- Error of some kind */
-/*
- * Number of cheating options
+/*!
+ * チートオプションの最大数 / Number of cheating options
*/
#define CHEAT_MAX 7
-/*
- * Cheating options
+/*!
+ * チーとオプションの定義テーブル / Cheating options
*/
static option_type cheat_info[CHEAT_MAX] =
{
{ &cheat_peek, FALSE, 255, 0x01, 0x00,
-#ifdef JP
- "cheat_peek", "¥¢¥¤¥Æ¥à¤ÎÀ¸À®¤ò¤Î¤¾¤¸«¤ë"
-#else
- "cheat_peek", "Peek into object creation"
-#endif
+ "cheat_peek", _("アイテムの生成をのぞき見る", "Peek into object creation")
},
{ &cheat_hear, FALSE, 255, 0x02, 0x00,
-#ifdef JP
- "cheat_hear", "¥â¥ó¥¹¥¿¡¼¤ÎÀ¸À®¤ò¤Î¤¾¤¸«¤ë"
-#else
- "cheat_hear", "Peek into monster creation"
-#endif
+ "cheat_hear", _("モンスターの生成をのぞき見る", "Peek into monster creation")
},
{ &cheat_room, FALSE, 255, 0x04, 0x00,
-#ifdef JP
- "cheat_room", "¥À¥ó¥¸¥ç¥ó¤ÎÀ¸À®¤ò¤Î¤¾¤¸«¤ë"
-#else
- "cheat_room", "Peek into dungeon creation"
-#endif
+ "cheat_room", _("ダンジョンの生成をのぞき見る", "Peek into dungeon creation")
},
{ &cheat_xtra, FALSE, 255, 0x08, 0x00,
-#ifdef JP
- "cheat_xtra", "¤½¤Î¾¤Î»ö¤ò¤Î¤¾¤¸«¤ë"
-#else
- "cheat_xtra", "Peek into something else"
-#endif
+ "cheat_xtra", _("その他の事をのぞき見る", "Peek into something else")
},
{ &cheat_know, FALSE, 255, 0x10, 0x00,
-#ifdef JP
- "cheat_know", "´°Á´¤Ê¥â¥ó¥¹¥¿¡¼¤Î»×¤¤½Ð¤òÃΤë"
-#else
- "cheat_know", "Know complete monster info"
-#endif
+ "cheat_know", _("完全なモンスターの思い出を知る", "Know complete monster info")
},
{ &cheat_live, FALSE, 255, 0x20, 0x00,
-#ifdef JP
- "cheat_live", "»à¤ò²óÈò¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤¹¤ë"
-#else
- "cheat_live", "Allow player to avoid death"
-#endif
+ "cheat_live", _("死を回避することを可能にする", "Allow player to avoid death")
},
{ &cheat_save, FALSE, 255, 0x40, 0x00,
-#ifdef JP
- "cheat_save", "»à¤ó¤À»þ¥»¡¼¥Ö¤¹¤ë¤«³Îǧ¤¹¤ë"
-#else
- "cheat_save", "Ask for saving death"
-#endif
+ "cheat_save", _("死んだ時セーブするか確認する", "Ask for saving death")
}
};
-/*
+/*!
+ * @brief チートオプションを変更するコマンドのメインルーチン
* Interact with some options for cheating
+ * @param info 表示メッセージ
+ * @return なし
*/
static void do_cmd_options_cheat(cptr info)
{
int dir;
/* Prompt XXX XXX XXX */
-#ifdef JP
- sprintf(buf, "%s ( ¥ê¥¿¡¼¥ó¤Ç¼¡¤Ø, y/n ¤Ç¥»¥Ã¥È, ESC ¤Ç·èÄê )", info);
-#else
- sprintf(buf, "%s (RET to advance, y/n to set, ESC to accept) ", info);
-#endif
+ sprintf(buf, _("%s ( リターンで次へ, y/n でセット, ESC で決定 )", "%s (RET to advance, y/n to set, ESC to accept) "), info);
prt(buf, 0, 0);
#ifdef JP
- /* º¾µ½¥ª¥×¥·¥ç¥ó¤ò¤¦¤Ã¤«¤ê¤¤¤¸¤Ã¤Æ¤·¤Þ¤¦¿Í¤¬¤¤¤ë¤è¤¦¤Ê¤Î¤ÇÃí°Õ */
- prt(" << Ãí°Õ >>", 11, 0);
- prt(" º¾µ½¥ª¥×¥·¥ç¥ó¤ò°ìÅ٤ǤâÀßÄꤹ¤ë¤È¡¢¥¹¥³¥¢µÏ¿¤¬»Ä¤é¤Ê¤¯¤Ê¤ê¤Þ¤¹¡ª", 12, 0);
- prt(" ¸å¤Ë²ò½ü¤·¤Æ¤â¥À¥á¤Ç¤¹¤Î¤Ç¡¢¾¡Íø¼Ô¤òÌܻؤ¹Êý¤Ï¤³¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¤¤", 13, 0);
- prt(" ¤¸¤é¤Ê¤¤¤è¤¦¤Ë¤·¤Æ²¼¤µ¤¤¡£", 14, 0);
+ /* 詐欺オプションをうっかりいじってしまう人がいるようなので注意 */
+ prt(" << 注意 >>", 11, 0);
+ prt(" 詐欺オプションを一度でも設定すると、スコア記録が残らなくなります!", 12, 0);
+ prt(" 後に解除してもダメですので、勝利者を目指す方はここのオプションはい", 13, 0);
+ prt(" じらないようにして下さい。", 14, 0);
#endif
/* Display the options */
for (i = 0; i < n; i++)
/* Display the option text */
sprintf(buf, "%-48s: %s (%s)",
cheat_info[i].o_desc,
-#ifdef JP
- (*cheat_info[i].o_var ? "¤Ï¤¤ " : "¤¤¤¤¤¨"),
-#else
- (*cheat_info[i].o_var ? "yes" : "no "),
-#endif
-
+ (*cheat_info[i].o_var ? _("はい ", "yes") : _("いいえ", "no ")),
cheat_info[i].o_text);
c_prt(a, buf, i + 2, 0);
}
case '6':
{
if(!p_ptr->noscore)
-#ifdef JP
- do_cmd_write_nikki(NIKKI_BUNSHOU, 0, "º¾µ½¥ª¥×¥·¥ç¥ó¤òON¤Ë¤·¤Æ¡¢¥¹¥³¥¢¤ò»Ä¤»¤Ê¤¯¤Ê¤Ã¤¿¡£");
-#else
- do_cmd_write_nikki(NIKKI_BUNSHOU, 0, "give up sending score to use cheating options.");
-#endif
+ do_cmd_write_nikki(NIKKI_BUNSHOU, 0,
+ _("詐欺オプションをONにして、スコアを残せなくなった。", "give up sending score to use cheating options."));
p_ptr->noscore |= (cheat_info[k].o_set * 256 + cheat_info[k].o_bit);
(*cheat_info[k].o_var) = TRUE;
k = (k + 1) % n;
case '?':
{
-#ifdef JP
- strnfmt(buf, sizeof(buf), "joption.txt#%s", cheat_info[k].o_text);
-#else
- strnfmt(buf, sizeof(buf), "option.txt#%s", cheat_info[k].o_text);
-#endif
+ strnfmt(buf, sizeof(buf), _("joption.txt#%s", "option.txt#%s"), cheat_info[k].o_text);
/* Peruse the help file */
(void)show_file(TRUE, buf, NULL, 0, 0);
}
+/*!
+ * 自動セーブオプションテーブル
+ */
static option_type autosave_info[2] =
{
{ &autosave_l, FALSE, 255, 0x01, 0x00,
-#ifdef JP
- "autosave_l", "¿·¤·¤¤³¬¤ËÆþ¤ëÅ٤˼«Æ°¥»¡¼¥Ö¤¹¤ë" },
-#else
- "autosave_l", "Autosave when entering new levels" },
-#endif
-
+ "autosave_l", _("新しい階に入る度に自動セーブする", "Autosave when entering new levels") },
{ &autosave_t, FALSE, 255, 0x02, 0x00,
-#ifdef JP
- "autosave_t", "°ìÄ꥿¡¼¥óËè¤Ë¼«Æ°¥»¡¼¥Ö¤¹¤ë" },
-#else
- "autosave_t", "Timed autosave" },
-#endif
-
+ "autosave_t", _("一定ターン毎に自動セーブする", "Timed autosave") },
};
-
+/*!
+ * @brief セーブ頻度ターンの次の値を返す
+ * @param current 現在のセーブ頻度ターン値
+ * @return 次のセーブ頻度ターン値
+ */
static s16b toggle_frequency(s16b current)
{
switch (current)
}
-/*
- * Interact with some options for cheating
+/*!
+ * @brief 自動セーブオプションを変更するコマンドのメインルーチン
+ * @param info 表示メッセージ
+ * @return なし
*/
static void do_cmd_options_autosave(cptr info)
{
while (TRUE)
{
/* Prompt XXX XXX XXX */
-#ifdef JP
- sprintf(buf, "%s ( ¥ê¥¿¡¼¥ó¤Ç¼¡¤Ø, y/n ¤Ç¥»¥Ã¥È, F ¤ÇÉÑÅÙ¤òÆþÎÏ, ESC ¤Ç·èÄê ) ", info);
-#else
- sprintf(buf, "%s (RET to advance, y/n to set, 'F' for frequency, ESC to accept) ", info);
-#endif
+ sprintf(buf, _("%s ( リターンで次へ, y/n でセット, F で頻度を入力, ESC で決定 ) ",
+ "%s (RET to advance, y/n to set, 'F' for frequency, ESC to accept) "), info);
prt(buf, 0, 0);
/* Display the option text */
sprintf(buf, "%-48s: %s (%s)",
autosave_info[i].o_desc,
-#ifdef JP
- (*autosave_info[i].o_var ? "¤Ï¤¤ " : "¤¤¤¤¤¨"),
-#else
- (*autosave_info[i].o_var ? "yes" : "no "),
-#endif
-
+ (*autosave_info[i].o_var ? _("はい ", "yes") : _("いいえ", "no ")),
autosave_info[i].o_text);
c_prt(a, buf, i + 2, 0);
}
-
-#ifdef JP
- prt(format("¼«Æ°¥»¡¼¥Ö¤ÎÉÑÅÙ¡§ %d ¥¿¡¼¥óËè", autosave_freq), 5, 0);
-#else
- prt(format("Timed autosave frequency: every %d turns", autosave_freq), 5, 0);
-#endif
-
-
+ prt(format(_("自動セーブの頻度: %d ターン毎", "Timed autosave frequency: every %d turns"), autosave_freq), 5, 0);
/* Hilite current option */
move_cursor(k + 2, 50);
case 'F':
{
autosave_freq = toggle_frequency(autosave_freq);
-#ifdef JP
- prt(format("¼«Æ°¥»¡¼¥Ö¤ÎÉÑÅÙ¡§ %d ¥¿¡¼¥óËè",
- autosave_freq), 5, 0);
-#else
- prt(format("Timed autosave frequency: every %d turns",
- autosave_freq), 5, 0);
-#endif
+ prt(format(_("自動セーブの頻度: %d ターン毎", "Timed autosave frequency: every %d turns"), autosave_freq), 5, 0);
break;
}
case '?':
{
-#ifdef JP
- (void)show_file(TRUE, "joption.txt#Autosave", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt#Autosave", NULL, 0, 0);
-#endif
-
-
+ (void)show_file(TRUE, _("joption.txt#Autosave", "option.txt#Autosave"), NULL, 0, 0);
Term_clear();
break;
}
}
-/*
+/*!
+ * @brief 標準オプションを変更するコマンドのサブルーチン /
* Interact with some options
+ * @param page オプションページ番号
+ * @param info 表示メッセージ
+ * @return なし
*/
void do_cmd_options_aux(int page, cptr info)
{
int dir;
/* Prompt XXX XXX XXX */
-#ifdef JP
- sprintf(buf, "%s (¥ê¥¿¡¼¥ó:¼¡, %sESC:½ªÎ», ?:¥Ø¥ë¥×) ", info, browse_only ? "" : "y/n:Êѹ¹, ");
-#else
- sprintf(buf, "%s (RET:next, %s, ?:help) ", info, browse_only ? "ESC:exit" : "y/n:change, ESC:accept");
-#endif
-
+ 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);
-
/* HACK -- description for easy-auto-destroy options */
-#ifdef JP
- if (page == OPT_PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "°Ê²¼¤Î¥ª¥×¥·¥ç¥ó¤Ï¡¢´Ê°×¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë¤È¤¤Î¤ß͸ú", 6, 6);
-#else
- if (page == OPT_PAGE_AUTODESTROY) c_prt(TERM_YELLOW, "Following options will protect items from easy auto-destroyer.", 6, 3);
-#endif
+ if (page == OPT_PAGE_AUTODESTROY)
+ c_prt(TERM_YELLOW, _("以下のオプションは、簡易自動破壊を使用するときのみ有効",
+ "Following options will protect items from easy auto-destroyer."), 6, _(6, 3));
/* Display the options */
for (i = 0; i < n; i++)
/* Display the option text */
sprintf(buf, "%-48s: %s (%.19s)",
option_info[opt[i]].o_desc,
-#ifdef JP
- (*option_info[opt[i]].o_var ? "¤Ï¤¤ " : "¤¤¤¤¤¨"),
-#else
- (*option_info[opt[i]].o_var ? "yes" : "no "),
-#endif
-
+ (*option_info[opt[i]].o_var ? _("はい ", "yes") : _("いいえ", "no ")),
option_info[opt[i]].o_text);
if ((page == OPT_PAGE_AUTODESTROY) && i > 2) c_prt(a, buf, i + 5, 0);
else c_prt(a, buf, i + 2, 0);
case '?':
{
-#ifdef JP
- strnfmt(buf, sizeof(buf), "joption.txt#%s", option_info[opt[k]].o_text);
-#else
- strnfmt(buf, sizeof(buf), "option.txt#%s", option_info[opt[k]].o_text);
-#endif
+ strnfmt(buf, sizeof(buf), _("joption.txt#%s", "option.txt#%s"), option_info[opt[k]].o_text);
/* Peruse the help file */
(void)show_file(TRUE, buf, NULL, 0, 0);
}
-/*
+/*!
+ * @brief ウィンドウオプションを変更するコマンドのメインルーチン /
* Modify the "window" options
+ * @return なし
*/
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];
while (go)
{
/* Prompt XXX XXX XXX */
-#ifdef JP
- prt("¥¦¥£¥ó¥É¥¦¡¦¥Õ¥é¥° (<Êý¸þ>¤Ç°ÜÆ°, t¤Ç¥Á¥§¥ó¥¸, y/n ¤Ç¥»¥Ã¥È, ESC)", 0, 0);
-#else
- prt("Window Flags (<dir>, t, y, n, ESC) ", 0, 0);
-#endif
-
+ prt(_("ウィンドウ・フラグ (<方向>で移動, tでチェンジ, y/n でセット, ESC)", "Window Flags (<dir>, t, y, n, ESC) "), 0, 0);
/* Display the windows */
for (j = 0; j < 8; j++)
if (i == y) a = TERM_L_BLUE;
/* Unused option */
-#ifdef JP
- if (!str) str = "(̤»ÈÍÑ)";
-#else
- if (!str) str = "(Unused option)";
-#endif
-
+ if (!str) str = _("(未使用)", "(Unused option)");
/* Flag name */
Term_putstr(0, i + 5, -1, a, str);
/* 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;
case '?':
{
-#ifdef JP
- (void)show_file(TRUE, "joption.txt#Window", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt#Window", NULL, 0, 0);
-#endif
-
+ (void)show_file(TRUE, _("joption.txt#Window", "option.txt#Window"), NULL, 0, 0);
Term_clear();
break;
+#define OPT_NUM 15
-/*
+static struct opts
+{
+ char key;
+ cptr name;
+ int row;
+}
+option_fields[OPT_NUM] =
+{
+#ifdef JP
+ { '1', " キー入力 オプション", 3 },
+ { '2', " マップ画面 オプション", 4 },
+ { '3', " テキスト表示 オプション", 5 },
+ { '4', " ゲームプレイ オプション", 6 },
+ { '5', " 行動中止関係 オプション", 7 },
+ { '6', " 簡易自動破壊 オプション", 8 },
+ { 'r', " プレイ記録 オプション", 9 },
+
+ { 'p', "自動拾いエディタ", 11 },
+ { 'd', " 基本ウェイト量 ", 12 },
+ { 'h', "低ヒットポイント", 13 },
+ { 'm', " 低魔力色閾値 ", 14 },
+ { 'a', " 自動セーブ オプション", 15 },
+ { 'w', "ウインドウフラグ", 16 },
+
+ { 'b', " 初期 オプション (参照のみ)", 18 },
+ { 'c', " 詐欺 オプション", 19 },
+#else
+ { '1', "Input Options", 3 },
+ { '2', "Map Screen Options", 4 },
+ { '3', "Text Display Options", 5 },
+ { '4', "Game-Play Options", 6 },
+ { '5', "Disturbance Options", 7 },
+ { '6', "Easy Auto-Destroyer Options", 8 },
+ { 'r', "Play record Options", 9 },
+
+ { 'p', "Auto-picker/destroyer editor", 11 },
+ { 'd', "Base Delay Factor", 12 },
+ { 'h', "Hitpoint Warning", 13 },
+ { 'm', "Mana Color Threshold", 14 },
+ { 'a', "Autosave Options", 15 },
+ { 'w', "Window Flags", 16 },
+
+ { 'b', "Birth Options (Browse Only)", 18 },
+ { 'c', "Cheat Options", 19 },
+#endif
+};
+
+
+/*!
+ * @brief 標準オプションを変更するコマンドのメインルーチン /
* Set or unset various options.
- *
+ * @return なし
+ * @details
+ * <pre>
* The user must use the "Ctrl-R" command to "adapt" to changes
* in any options which control "visual" aspects of the game.
+ * </pre>
*/
void do_cmd_options(void)
{
- int k;
-
+ char k;
+ int i, d, skey;
+ int y = 0;
/* Save the screen */
screen_save();
/* Interact */
while (1)
{
+ int n = OPT_NUM;
+
+ /* 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 */
-#ifdef JP
- prt("[ ¥ª¥×¥·¥ç¥ó¤ÎÀßÄê ]", 1, 0);
-#else
- prt("Options", 1, 0);
-#endif
+ prt(_("[ オプションの設定 ]", "TinyAngband options"), 1, 0);
+ while(1)
+ {
+ /* Give some choices */
+ for (i = 0; i < n; i++)
+ {
+ byte a = TERM_WHITE;
+ if (i == y) a = TERM_L_BLUE;
+ Term_putstr(5, option_fields[i].row, -1, a,
+ format("(%c) %s", toupper(option_fields[i].key), option_fields[i].name));
+ }
- /* Give some choices */
-#ifdef JP
- prt("(1) ¥¡¼ÆþÎÏ ¥ª¥×¥·¥ç¥ó", 2, 5);
- prt("(2) ¥Þ¥Ã¥×²èÌÌ ¥ª¥×¥·¥ç¥ó", 3, 5);
- prt("(3) ¥Æ¥¥¹¥Èɽ¼¨ ¥ª¥×¥·¥ç¥ó", 4, 5);
- prt("(4) ¥²¡¼¥à¥×¥ì¥¤ ¥ª¥×¥·¥ç¥ó", 5, 5);
- prt("(5) ¹ÔÆ°Ãæ»ß´Ø·¸ ¥ª¥×¥·¥ç¥ó", 6, 5);
- prt("(6) ´Ê°×¼«Æ°Ç˲õ ¥ª¥×¥·¥ç¥ó", 7, 5);
- prt("(R) ¥×¥ì¥¤µÏ¿ ¥ª¥×¥·¥ç¥ó", 8, 5);
-
- /* Special choices */
- prt("(P) ¼«Æ°½¦¤¤¥¨¥Ç¥£¥¿", 10, 5);
- prt("(D) ´ðËÜ¥¦¥§¥¤¥ÈÎÌ", 11, 5);
- prt("(H) Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð", 12, 5);
- prt("(M) ÄãËâÎÏ¿§ïçÃÍ", 13, 5);
- prt("(A) ¼«Æ°¥»¡¼¥Ö ¥ª¥×¥·¥ç¥ó", 14, 5);
- /* Window flags */
- prt("(W) ¥¦¥¤¥ó¥É¥¦¥Õ¥é¥°", 15, 5);
-#else
- prt("(1) Input Options", 2, 5);
- prt("(2) Map Screen Options", 3, 5);
- prt("(3) Text Display Options", 4, 5);
- prt("(4) Game-Play Options", 5, 5);
- prt("(5) Disturbance Options", 6, 5);
- prt("(6) Easy Auto-Destroyer Options", 7, 5);
- prt("(R) Play-record Options", 8, 5);
- /* Special choices */
- prt("(P) Auto-picker/destroyer editor", 10, 5);
- prt("(D) Base Delay Factor", 11, 5);
- prt("(H) Hitpoint Warning", 12, 5);
- prt("(M) Mana Color Threshold", 13, 5);
- prt("(A) Autosave Options", 14, 5);
- /* Window flags */
- prt("(W) Window Flags", 15, 5);
-#endif
+ prt(_("<方向>で移動, Enterで決定, ESCでキャンセル, ?でヘルプ: ", "Move to <dir>, Select to Enter, Cancel to ESC, ? to help: "), 21, 0);
- if (!p_ptr->wizard || !allow_debug_opts)
- {
- /* Birth */
-#ifdef JP
- prt("(B) ½é´ü ¥ª¥×¥·¥ç¥ó (»²¾È¤Î¤ß)", 16, 5);
-#else
- prt("(B) Birth Options (Browse Only)", 16, 5);
-#endif
- }
- else
- {
- /* Birth */
-#ifdef JP
- prt("(B) ½é´ü ¥ª¥×¥·¥ç¥ó", 16, 5);
-#else
- prt("(B) Birth Options", 16, 5);
-#endif
- }
+ /* Get command */
+ skey = inkey_special(TRUE);
+ if (!(skey & SKEY_MASK)) k = (char)skey;
+ else k = 0;
+ /* Exit */
+ if (k == ESCAPE) break;
- if (p_ptr->noscore || allow_debug_opts)
- {
- /* Cheating */
-#ifdef JP
- prt("(C) º¾µ½ ¥ª¥×¥·¥ç¥ó", 17, 5);
-#else
- prt("(C) Cheating Options", 17, 5);
-#endif
- }
+ if (my_strchr("\n\r ", k))
+ {
+ k = option_fields[y].key;
+ break;
+ }
+ for (i = 0; i < n; i++)
+ {
+ if (tolower(k) == option_fields[i].key) break;
+ }
- /* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É:", 19, 0);
-#else
- prt("Command: ", 19, 0);
-#endif
+ /* Command is found */
+ if (i < n) break;
+ /* Hack -- browse help */
+ if (k == '?') break;
- /* Get command */
- k = inkey();
+ /* Move cursor */
+ d = 0;
+ if (skey == SKEY_UP) d = 8;
+ if (skey == SKEY_DOWN) d = 2;
+ y = (y + ddy[d] + n) % n;
+ if (!d) bell();
+ }
/* Exit */
if (k == ESCAPE) break;
case '1':
{
/* Process the general options */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_INPUT, "¥¡¼ÆþÎÏ¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_INPUT, "Input Options");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_INPUT, _("キー入力オプション", "Input Options"));
break;
}
case '2':
{
/* Process the general options */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_MAPSCREEN, "¥Þ¥Ã¥×²èÌÌ¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_MAPSCREEN, "Map Screen Options");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_MAPSCREEN, _("マップ画面オプション", "Map Screen Options"));
break;
}
case '3':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_TEXT, "¥Æ¥¥¹¥Èɽ¼¨¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_TEXT, "Text Display Options");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_TEXT, _("テキスト表示オプション", "Text Display Options"));
break;
}
case '4':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_GAMEPLAY, "¥²¡¼¥à¥×¥ì¥¤¡¦¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_GAMEPLAY, "Game-Play Options");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_GAMEPLAY, _("ゲームプレイ・オプション", "Game-Play Options"));
break;
}
case '5':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_DISTURBANCE, "¹ÔÆ°Ãæ»ß´Ø·¸¤Î¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_DISTURBANCE, "Disturbance Options");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_DISTURBANCE, _("行動中止関係のオプション", "Disturbance Options"));
break;
}
case '6':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_AUTODESTROY, "´Ê°×¼«Æ°Ç˲õ¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_AUTODESTROY, "Easy Auto-Destroyer Options");
-#endif
+ do_cmd_options_aux(OPT_PAGE_AUTODESTROY, _("簡易自動破壊オプション", "Easy Auto-Destroyer Options"));
break;
}
case 'r':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_PLAYRECORD, "¥×¥ì¥¤µÏ¿¥ª¥×¥·¥ç¥ó");
-#else
- do_cmd_options_aux(OPT_PAGE_PLAYRECORD, "Play-record Options");
-#endif
+ do_cmd_options_aux(OPT_PAGE_PLAYRECORD, _("プレイ記録オプション", "Play-record Options"));
break;
}
case 'b':
{
/* Spawn */
-#ifdef JP
- do_cmd_options_aux(OPT_PAGE_BIRTH, (!p_ptr->wizard || !allow_debug_opts) ? "½é´ü¥ª¥×¥·¥ç¥ó(»²¾È¤Î¤ß)" : "½é´ü¥ª¥×¥·¥ç¥ó((*)¤Ï¥¹¥³¥¢¤Ë±Æ¶Á)");
-#else
- do_cmd_options_aux(OPT_PAGE_BIRTH, (!p_ptr->wizard || !allow_debug_opts) ? "Birth Options(browse only)" : "Birth Options((*)s effect score)");
-#endif
-
+ do_cmd_options_aux(OPT_PAGE_BIRTH, (!p_ptr->wizard || !allow_debug_opts) ?
+ _("初期オプション(参照のみ)", "Birth Options(browse only)") :
+ _("初期オプション((*)はスコアに影響)", "Birth Options((*)s effect score)"));
break;
}
}
/* Spawn */
-#ifdef JP
- do_cmd_options_cheat("º¾µ½»Õ¤Ï·è¤·¤Æ¾¡Íø¤Ç¤¤Ê¤¤¡ª");
-#else
- do_cmd_options_cheat("Cheaters never win");
-#endif
-
+ do_cmd_options_cheat(_("詐欺師は決して勝利できない!", "Cheaters never win"));
break;
}
case 'a':
case 'A':
{
-#ifdef JP
- do_cmd_options_autosave("¼«Æ°¥»¡¼¥Ö");
-#else
- do_cmd_options_autosave("Autosave");
-#endif
-
+ do_cmd_options_autosave(_("自動セーブ", "Autosave"));
break;
}
do_cmd_options_win();
p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL |
PW_PLAYER | PW_MESSAGE | PW_OVERHEAD |
- PW_MONSTER | PW_OBJECT | PW_SNAPSHOT |
- PW_BORG_1 | PW_BORG_2 | PW_DUNGEON);
+ PW_MONSTER | PW_OBJECT | PW_SNAPSHOT |
+ PW_BORG_1 | PW_BORG_2 | PW_DUNGEON |
+ PW_MONSTER_LIST);
break;
}
case 'd':
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ´ðËÜ¥¦¥§¥¤¥ÈÎÌ", 19, 0);
-#else
- prt("Command: Base Delay Factor", 19, 0);
-#endif
-
+ clear_from(18);
+ prt(_("コマンド: 基本ウェイト量", "Command: Base Delay Factor"), 19, 0);
/* Get a new value */
while (1)
{
int msec = delay_factor * delay_factor * delay_factor;
-#ifdef JP
- prt(format("¸½ºß¤Î¥¦¥§¥¤¥È: %d (%d¥ß¥êÉÃ)",
- delay_factor, msec), 22, 0);
-#else
- prt(format("Current base delay factor: %d (%d msec)",
- delay_factor, msec), 22, 0);
-#endif
-
-#ifdef JP
- prt("¥¦¥§¥¤¥È (0-9) ESC¤Ç·èÄê: ", 20, 0);
-#else
- prt("Delay Factor (0-9 or ESC to accept): ", 20, 0);
-#endif
-
+ prt(format(_("現在のウェイト: %d (%dミリ秒)", "Current base delay factor: %d (%d msec)"), delay_factor, msec), 22, 0);
+ prt(_("ウェイト (0-9) ESCで決定: ", "Delay Factor (0-9 or ESC to accept): "), 20, 0);
k = inkey();
if (k == ESCAPE) break;
else if (k == '?')
{
-#ifdef JP
- (void)show_file(TRUE, "joption.txt#BaseDelay", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt#BaseDelay", NULL, 0, 0);
-#endif
+ (void)show_file(TRUE, _("joption.txt#BaseDelay", "option.txt#BaseDelay"), NULL, 0, 0);
Term_clear();
}
else if (isdigit(k)) delay_factor = D2I(k);
case 'h':
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð", 19, 0);
-#else
- prt("Command: Hitpoint Warning", 19, 0);
-#endif
-
+ clear_from(18);
+ prt(_("コマンド: 低ヒットポイント警告", "Command: Hitpoint Warning"), 19, 0);
/* Get a new value */
while (1)
{
-#ifdef JP
- prt(format("¸½ºß¤ÎÄã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð: %d0%%",
- hitpoint_warn), 22, 0);
-#else
- prt(format("Current hitpoint warning: %d0%%",
- hitpoint_warn), 22, 0);
-#endif
-
-#ifdef JP
- prt("Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È·Ù¹ð (0-9) ESC¤Ç·èÄê: ", 20, 0);
-#else
- prt("Hitpoint Warning (0-9 or ESC to accept): ", 20, 0);
-#endif
-
+ prt(format(_("現在の低ヒットポイント警告: %d0%%", "Current hitpoint warning: %d0%%"), hitpoint_warn), 22, 0);
+ prt(_("低ヒットポイント警告 (0-9) ESCで決定: ", "Hitpoint Warning (0-9 or ESC to accept): "), 20, 0);
k = inkey();
if (k == ESCAPE) break;
else if (k == '?')
{
-#ifdef JP
- (void)show_file(TRUE, "joption.txt#Hitpoint", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt#Hitpoint", NULL, 0, 0);
-#endif
+ (void)show_file(TRUE, _("joption.txt#Hitpoint", "option.txt#Hitpoint"), NULL, 0, 0);
Term_clear();
}
else if (isdigit(k)) hitpoint_warn = D2I(k);
case 'm':
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ÄãËâÎÏ¿§ïçÃÍ", 19, 0);
-#else
- prt("Command: Mana Color Threshold", 19, 0);
-#endif
-
-
+ clear_from(18);
+ prt(_("コマンド: 低魔力色閾値", "Command: Mana Color Threshold"), 19, 0);
+
/* Get a new value */
while (1)
{
-#ifdef JP
- prt(format("¸½ºß¤ÎÄãËâÎÏ¿§ïçÃÍ: %d0%%",
- mana_warn), 22, 0);
-#else
- prt(format("Current mana color threshold: %d0%%",
- mana_warn), 22, 0);
-#endif
-
-#ifdef JP
- prt("ÄãËâÎÏïçÃÍ (0-9) ESC¤Ç·èÄê: ", 20, 0);
-#else
- prt("Mana color Threshold (0-9 or ESC to accept): ", 20, 0);
-#endif
-
+ prt(format(_("現在の低魔力色閾値: %d0%%", "Current mana color threshold: %d0%%"), mana_warn), 22, 0);
+ prt(_("低魔力閾値 (0-9) ESCで決定: ", "Mana color Threshold (0-9 or ESC to accept): "), 20, 0);
k = inkey();
if (k == ESCAPE) break;
else if (k == '?')
{
-#ifdef JP
- (void)show_file(TRUE, "joption.txt#Manapoint", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt#Manapoint", NULL, 0, 0);
-#endif
+ (void)show_file(TRUE, _("joption.txt#Manapoint", "option.txt#Manapoint"), NULL, 0, 0);
Term_clear();
}
else if (isdigit(k)) mana_warn = D2I(k);
}
case '?':
-#ifdef JP
- (void)show_file(TRUE, "joption.txt", NULL, 0, 0);
-#else
- (void)show_file(TRUE, "option.txt", NULL, 0, 0);
-#endif
+ (void)show_file(TRUE, _("joption.txt", "option.txt"), NULL, 0, 0);
Term_clear();
break;
-/*
+/*!
+ * @brief prefファイルを選択して処理する /
* Ask for a "user pref line" and process it
- *
+ * @return なし
+ * @details
* XXX XXX XXX Allow absolute file names?
*/
void do_cmd_pref(void)
strcpy(buf, "");
/* Ask for a "user pref command" */
-#ifdef JP
- if (!get_string("ÀßÄêÊѹ¹¥³¥Þ¥ó¥É: ", buf, 80)) return;
-#else
- if (!get_string("Pref: ", buf, 80)) return;
-#endif
-
+ if (!get_string(_("設定変更コマンド: ", "Pref: "), buf, 80)) return;
/* Process that pref command */
(void)process_pref_file_command(buf);
}
+/*!
+ * @brief 自動拾い設定ファイルをロードするコマンドのメインルーチン /
+ * @return なし
+ */
void do_cmd_reload_autopick(void)
{
-#ifdef JP
- if (!get_check("¼«Æ°½¦¤¤ÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹¤«? ")) return;
-#else
- if (!get_check("Reload auto-pick preference file? ")) return;
-#endif
-
+ if (!get_check(_("自動拾い設定ファイルをロードしますか? ", "Reload auto-pick preference file? "))) return;
/* Load the file with messages */
autopick_load_pref(TRUE);
}
#ifdef ALLOW_MACROS
-/*
- * Hack -- append all current macros to the given file
+/*!
+ * @brief マクロ情報をprefファイルに保存する /
+ * @param fname ファイル名
+ * @return なし
*/
static errr macro_dump(cptr fname)
{
if (!open_auto_dump(buf, mark)) return (-1);
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ¼«Æ°¥Þ¥¯¥í¥»¡¼¥Ö\n\n");
-#else
- auto_dump_printf("\n# Automatic macro dump\n\n");
-#endif
-
+ auto_dump_printf(_("\n# 自動マクロセーブ\n\n", "\n# Automatic macro dump\n\n"));
+
/* Dump them */
for (i = 0; i < macro__num; i++)
{
}
-/*
+/*!
+ * @brief マクロのトリガーキーを取得する /
* Hack -- ask for a "trigger" (see below)
- *
+ * @param buf キー表記を保管するバッファ
+ * @return なし
+ * @details
+ * <pre>
* Note the complex use of the "inkey()" function from "util.c".
*
* Note that both "flush()" calls are extremely important.
+ * </pre>
*/
static void do_cmd_macro_aux(char *buf)
{
#endif
-
-/*
+/*!
+ * @brief マクロのキー表記からアスキーコードを得てターミナルに表示する /
* Hack -- ask for a keymap "trigger" (see below)
- *
+ * @param buf キー表記を取得するバッファ
+ * @return なし
+ * @details
+ * <pre>
* Note that both "flush()" calls are extremely important. This may
* no longer be true, since "util.c" is much simpler now. XXX XXX XXX
+ * </pre>
*/
static void do_cmd_macro_aux_keymap(char *buf)
{
}
-/*
+/*!
+ * @brief キーマップをprefファイルにダンプする /
* Hack -- append all keymaps to the given file
+ * @param fname ファイルネーム
+ * @return エラーコード
+ * @details
*/
static errr keymap_dump(cptr fname)
{
if (!open_auto_dump(buf, mark)) return -1;
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ¼«Æ°¥¡¼ÇÛÃÖ¥»¡¼¥Ö\n\n");
-#else
- auto_dump_printf("\n# Automatic keymap dump\n\n");
-#endif
-
+ auto_dump_printf(_("\n# 自動キー配置セーブ\n\n", "\n# Automatic keymap dump\n\n"));
+
/* Dump them */
for (i = 0; i < 256; i++)
{
}
-
-/*
+/*!
+ * @brief マクロを設定するコマンドのメインルーチン /
* Interact with "macros"
- *
+ * @return なし
+ * @details
+ * <pre>
* Note that the macro "action" must be defined before the trigger.
*
* Could use some helpful instructions on this page. XXX XXX XXX
+ * </pre>
*/
void do_cmd_macros(void)
{
Term_clear();
/* Describe */
-#ifdef JP
- prt("[ ¥Þ¥¯¥í¤ÎÀßÄê ]", 2, 0);
-#else
- prt("Interact with Macros", 2, 0);
-#endif
-
-
+ prt(_("[ マクロの設定 ]", "Interact with Macros"), 2, 0);
/* Describe that action */
-#ifdef JP
- prt("(1) ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 4, 5);
-#else
- prt("Current action (if any) shown below:", 20, 0);
-#endif
-
+ prt(_("マクロ行動が(もしあれば)下に表示されます:", "Current action (if any) shown below:"), 20, 0);
/* Analyze the current action */
ascii_to_text(buf, macro__buf);
/* Selections */
-#ifdef JP
- prt("(1) ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 4, 5);
-#else
- prt("(1) Load a user pref file", 4, 5);
-#endif
-
+ prt(_("(1) ユーザー設定ファイルのロード", "(1) Load a user pref file"), 4, 5);
#ifdef ALLOW_MACROS
-#ifdef JP
- prt("(2) ¥Õ¥¡¥¤¥ë¤Ë¥Þ¥¯¥í¤òÄɲÃ", 5, 5);
- prt("(3) ¥Þ¥¯¥í¤Î³Îǧ", 6, 5);
- prt("(4) ¥Þ¥¯¥í¤ÎºîÀ®", 7, 5);
- prt("(5) ¥Þ¥¯¥í¤Îºï½ü", 8, 5);
- prt("(6) ¥Õ¥¡¥¤¥ë¤Ë¥¡¼ÇÛÃÖ¤òÄɲÃ", 9, 5);
- prt("(7) ¥¡¼ÇÛÃ֤γÎǧ", 10, 5);
- prt("(8) ¥¡¼ÇÛÃ֤κîÀ®", 11, 5);
- prt("(9) ¥¡¼ÇÛÃ֤κï½ü", 12, 5);
- prt("(0) ¥Þ¥¯¥í¹ÔÆ°¤ÎÆþÎÏ", 13, 5);
-#else
- prt("(2) Append macros to a file", 5, 5);
- prt("(3) Query a macro", 6, 5);
- prt("(4) Create a macro", 7, 5);
- prt("(5) Remove a macro", 8, 5);
- prt("(6) Append keymaps to a file", 9, 5);
- prt("(7) Query a keymap", 10, 5);
- prt("(8) Create a keymap", 11, 5);
- prt("(9) Remove a keymap", 12, 5);
- prt("(0) Enter a new action", 13, 5);
-#endif
-
+ prt(_("(2) ファイルにマクロを追加", "(2) Append macros to a file"), 5, 5);
+ prt(_("(3) マクロの確認", "(3) Query a macro"), 6, 5);
+ prt(_("(4) マクロの作成", "(4) Create a macro"), 7, 5);
+ prt(_("(5) マクロの削除", "(5) Remove a macro"), 8, 5);
+ prt(_("(6) ファイルにキー配置を追加", "(6) Append keymaps to a file"), 9, 5);
+ prt(_("(7) キー配置の確認", "(7) Query a keymap"), 10, 5);
+ prt(_("(8) キー配置の作成", "(8) Create a keymap"), 11, 5);
+ prt(_("(9) キー配置の削除", "(9) Remove a keymap"), 12, 5);
+ prt(_("(0) マクロ行動の入力", "(0) Enter a new action"), 13, 5);
#endif /* ALLOW_MACROS */
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ", 16, 0);
-#else
- prt("Command: ", 16, 0);
-#endif
-
+ prt(_("コマンド: ", "Command: "), 16, 0);
/* Get a command */
i = inkey();
errr err;
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 16, 0);
-#else
- prt("Command: Load a user pref file", 16, 0);
-#endif
-
+ prt(_("コマンド: ユーザー設定ファイルのロード", "Command: Load a user pref file"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 18, 0);
-#else
- prt("File: ", 18, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 18, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Ask for a file */
if (!askfor(tmp, 80)) continue;
err = process_pref_file(tmp);
if (-2 == err)
{
-#ifdef JP
- msg_format("ɸ½à¤ÎÀßÄê¥Õ¥¡¥¤¥ë'%s'¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£", tmp);
-#else
- msg_format("Loaded default '%s'.", tmp);
-#endif
+ msg_format(_("標準の設定ファイル'%s'を読み込みました。", "Loaded default '%s'."), tmp);
}
else if (err)
{
/* Prompt */
-#ifdef JP
- msg_format("'%s'¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡ª", tmp);
-#else
- msg_format("Failed to load '%s'!");
-#endif
+ msg_format(_("'%s'の読み込みに失敗しました!", "Failed to load '%s'!"), tmp);
}
else
{
-#ifdef JP
- msg_format("'%s'¤òÆɤ߹þ¤ß¤Þ¤·¤¿¡£", tmp);
-#else
- msg_format("Loaded '%s'.", tmp);
-#endif
+ msg_format(_("'%s'を読み込みました。", "Loaded '%s'."), tmp);
}
}
else if (i == '2')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥Þ¥¯¥í¤ò¥Õ¥¡¥¤¥ë¤ËÄɲ乤ë", 16, 0);
-#else
- prt("Command: Append macros to a file", 16, 0);
-#endif
-
+ prt(_("コマンド: マクロをファイルに追加する", "Command: Append macros to a file"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 18, 0);
-#else
- prt("File: ", 18, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 18, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Ask for a file */
if (!askfor(tmp, 80)) continue;
(void)macro_dump(tmp);
/* Prompt */
-#ifdef JP
- msg_print("¥Þ¥¯¥í¤òÄɲä·¤Þ¤·¤¿¡£");
-#else
- msg_print("Appended macros.");
-#endif
-
+ msg_print(_("マクロを追加しました。", "Appended macros."));
}
/* Query a macro */
int k;
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥Þ¥¯¥í¤Î³Îǧ", 16, 0);
-#else
- prt("Command: Query a macro", 16, 0);
-#endif
+ prt(_("コマンド: マクロの確認", "Command: Query a macro"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥È¥ê¥¬¡¼¥¡¼: ", 18, 0);
-#else
- prt("Trigger: ", 18, 0);
-#endif
-
+ prt(_("トリガーキー: ", "Trigger: "), 18, 0);
/* Get a macro trigger */
do_cmd_macro_aux(buf);
if (k < 0)
{
/* Prompt */
-#ifdef JP
- msg_print("¤½¤Î¥¡¼¤Ë¤Ï¥Þ¥¯¥í¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
-#else
- msg_print("Found no macro.");
-#endif
-
+ msg_print(_("そのキーにはマクロは定義されていません。", "Found no macro."));
}
/* Found one */
prt(buf, 22, 0);
/* Prompt */
-#ifdef JP
- msg_print("¥Þ¥¯¥í¤ò³Îǧ¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Found a macro.");
-#endif
-
+ msg_print(_("マクロを確認しました。", "Found a macro."));
}
}
else if (i == '4')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥Þ¥¯¥í¤ÎºîÀ®", 16, 0);
-#else
- prt("Command: Create a macro", 16, 0);
-#endif
-
+ prt(_("コマンド: マクロの作成", "Command: Create a macro"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥È¥ê¥¬¡¼¥¡¼: ", 18, 0);
-#else
- prt("Trigger: ", 18, 0);
-#endif
-
+ prt(_("トリガーキー: ", "Trigger: "), 18, 0);
/* Get a macro trigger */
do_cmd_macro_aux(buf);
clear_from(20);
/* Help message */
-#ifdef JP
- c_prt(TERM_L_RED, "¥«¡¼¥½¥ë¥¡¼¤Îº¸±¦¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤ò°ÜÆ°¡£Backspace¤«Delete¤Ç°ìʸ»úºï½ü¡£", 22, 0);
-#else
- c_prt(TERM_L_RED, "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char.", 22, 0);
-#endif
+ c_prt(TERM_L_RED, _("カーソルキーの左右でカーソル位置を移動。BackspaceかDeleteで一文字削除。",
+ "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char."), 22, 0);
/* Prompt */
-#ifdef JP
- prt("¥Þ¥¯¥í¹ÔÆ°: ", 20, 0);
-#else
- prt("Action: ", 20, 0);
-#endif
-
+ prt(_("マクロ行動: ", "Action: "), 20, 0);
/* Convert to text */
ascii_to_text(tmp, macro__buf);
macro_add(buf, macro__buf);
/* Prompt */
-#ifdef JP
- msg_print("¥Þ¥¯¥í¤òÄɲä·¤Þ¤·¤¿¡£");
-#else
- msg_print("Added a macro.");
-#endif
-
+ msg_print(_("マクロを追加しました。", "Added a macro."));
}
}
else if (i == '5')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥Þ¥¯¥í¤Îºï½ü", 16, 0);
-#else
- prt("Command: Remove a macro", 16, 0);
-#endif
-
+ prt(_("コマンド: マクロの削除", "Command: Remove a macro"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥È¥ê¥¬¡¼¥¡¼: ", 18, 0);
-#else
- prt("Trigger: ", 18, 0);
-#endif
-
+ prt(_("トリガーキー: ", "Trigger: "), 18, 0);
/* Get a macro trigger */
do_cmd_macro_aux(buf);
macro_add(buf, buf);
/* Prompt */
-#ifdef JP
- msg_print("¥Þ¥¯¥í¤òºï½ü¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Removed a macro.");
-#endif
-
+ msg_print(_("マクロを削除しました。", "Removed a macro."));
}
/* Save keymaps */
else if (i == '6')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¡¼ÇÛÃÖ¤ò¥Õ¥¡¥¤¥ë¤ËÄɲ乤ë", 16, 0);
-#else
- prt("Command: Append keymaps to a file", 16, 0);
-#endif
-
+ prt(_("コマンド: キー配置をファイルに追加する", "Command: Append keymaps to a file"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 18, 0);
-#else
- prt("File: ", 18, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 18, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Ask for a file */
if (!askfor(tmp, 80)) continue;
(void)keymap_dump(tmp);
/* Prompt */
-#ifdef JP
- msg_print("¥¡¼ÇÛÃÖ¤òÄɲä·¤Þ¤·¤¿¡£");
-#else
- msg_print("Appended keymaps.");
-#endif
-
+ msg_print(_("キー配置を追加しました。", "Appended keymaps."));
}
/* Query a keymap */
cptr act;
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¡¼ÇÛÃ֤γÎǧ", 16, 0);
-#else
- prt("Command: Query a keymap", 16, 0);
-#endif
-
+ prt(_("コマンド: キー配置の確認", "Command: Query a keymap"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("²¡¤¹¥¡¼: ", 18, 0);
-#else
- prt("Keypress: ", 18, 0);
-#endif
-
+ prt(_("押すキー: ", "Keypress: "), 18, 0);
/* Get a keymap trigger */
do_cmd_macro_aux_keymap(buf);
if (!act)
{
/* Prompt */
-#ifdef JP
- msg_print("¥¡¼ÇÛÃÖ¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
-#else
- msg_print("Found no keymap.");
-#endif
-
+ msg_print(_("キー配置は定義されていません。", "Found no keymap."));
}
/* Found one */
prt(buf, 22, 0);
/* Prompt */
-#ifdef JP
- msg_print("¥¡¼ÇÛÃÖ¤ò³Îǧ¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Found a keymap.");
-#endif
-
+ msg_print(_("キー配置を確認しました。", "Found a keymap."));
}
}
else if (i == '8')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¡¼ÇÛÃ֤κîÀ®", 16, 0);
-#else
- prt("Command: Create a keymap", 16, 0);
-#endif
-
+ prt(_("コマンド: キー配置の作成", "Command: Create a keymap"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("²¡¤¹¥¡¼: ", 18, 0);
-#else
- prt("Keypress: ", 18, 0);
-#endif
-
+ prt(_("押すキー: ", "Keypress: "), 18, 0);
/* Get a keymap trigger */
do_cmd_macro_aux_keymap(buf);
clear_from(20);
/* Help message */
-#ifdef JP
- c_prt(TERM_L_RED, "¥«¡¼¥½¥ë¥¡¼¤Îº¸±¦¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤ò°ÜÆ°¡£Backspace¤«Delete¤Ç°ìʸ»úºï½ü¡£", 22, 0);
-#else
- c_prt(TERM_L_RED, "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char.", 22, 0);
-#endif
+ c_prt(TERM_L_RED, _("カーソルキーの左右でカーソル位置を移動。BackspaceかDeleteで一文字削除。",
+ "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char."), 22, 0);
/* Prompt */
-#ifdef JP
- prt("¹ÔÆ°: ", 20, 0);
-#else
- prt("Action: ", 20, 0);
-#endif
-
+ prt(_("行動: ", "Action: "), 20, 0);
/* Convert to text */
ascii_to_text(tmp, macro__buf);
keymap_act[mode][(byte)(buf[0])] = string_make(macro__buf);
/* Prompt */
-#ifdef JP
- msg_print("¥¡¼ÇÛÃÖ¤òÄɲä·¤Þ¤·¤¿¡£");
-#else
- msg_print("Added a keymap.");
-#endif
-
+ msg_print(_("キー配置を追加しました。", "Added a keymap."));
}
}
else if (i == '9')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¡¼ÇÛÃ֤κï½ü", 16, 0);
-#else
- prt("Command: Remove a keymap", 16, 0);
-#endif
-
+ prt(_("コマンド: キー配置の削除", "Command: Remove a keymap"), 16, 0);
/* Prompt */
-#ifdef JP
- prt("²¡¤¹¥¡¼: ", 18, 0);
-#else
- prt("Keypress: ", 18, 0);
-#endif
-
+ prt(_("押すキー: ", "Keypress: "), 18, 0);
/* Get a keymap trigger */
do_cmd_macro_aux_keymap(buf);
keymap_act[mode][(byte)(buf[0])] = NULL;
/* Prompt */
-#ifdef JP
- msg_print("¥¡¼ÇÛÃÖ¤òºï½ü¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Removed a keymap.");
-#endif
-
+ msg_print(_("キー配置を削除しました。", "Removed a keymap."));
}
/* Enter a new action */
else if (i == '0')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥Þ¥¯¥í¹ÔÆ°¤ÎÆþÎÏ", 16, 0);
-#else
- prt("Command: Enter a new action", 16, 0);
-#endif
+ prt(_("コマンド: マクロ行動の入力", "Command: Enter a new action"), 16, 0);
/* Clear */
clear_from(20);
/* Help message */
-#ifdef JP
- c_prt(TERM_L_RED, "¥«¡¼¥½¥ë¥¡¼¤Îº¸±¦¤Ç¥«¡¼¥½¥ë°ÌÃÖ¤ò°ÜÆ°¡£Backspace¤«Delete¤Ç°ìʸ»úºï½ü¡£", 22, 0);
-#else
- c_prt(TERM_L_RED, "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char.", 22, 0);
-#endif
+ c_prt(TERM_L_RED, _("カーソルキーの左右でカーソル位置を移動。BackspaceかDeleteで一文字削除。",
+ "Press Left/Right arrow keys to move cursor. Backspace/Delete to delete a char."), 22, 0);
/* Prompt */
-#ifdef JP
- prt("¥Þ¥¯¥í¹ÔÆ°: ", 20, 0);
-#else
- prt("Action: ", 20, 0);
-#endif
+ prt(_("マクロ行動: ", "Action: "), 20, 0);
/* Hack -- limit the value */
tmp[80] = '\0';
screen_load();
}
-
+/*!
+ * @brief キャラクタ色の明暗表現
+ */
static cptr lighting_level_str[F_LIT_MAX] =
{
#ifdef JP
- "ɸ½à¿§",
- "ÌÀ¿§",
- "°Å¿§",
- "°Å°Å¿§",
+ "標準色",
+ "明色",
+ "暗色",
#else
"standard",
"brightly lit",
"darkened",
- "darkly darkened",
#endif
};
-static void cmd_visuals_aux(int i, int *num, int max)
+/*!
+ * @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))
{
sprintf(str, "%d", *num);
if (!get_string(format("Input new number(0-%d): ", max-1), str, 4))
- return;
+ return FALSE;
tmp = strtol(str, NULL, 0);
if (tmp >= 0 && tmp < max)
*num = tmp;
- return;
}
else if (isupper(i))
*num = (*num + max - 1) % max;
else
*num = (*num + 1) % max;
- return;
+ return TRUE;
+}
+
+/*!
+ * @brief キャラクタの変更メニュー表示
+ * @param choice_msg 選択メッセージ
+ * @return なし
+ */
+static void print_visuals_menu(cptr choice_msg)
+{
+ prt(_("[ 画面表示の設定 ]", "Interact with Visuals"), 1, 0);
+
+ /* Give some choices */
+ prt(_("(0) ユーザー設定ファイルのロード", "(0) Load a user pref file"), 3, 5);
+
+#ifdef ALLOW_VISUALS
+ prt(_("(1) モンスターの 色/文字 をファイルに書き出す", "(1) Dump monster attr/chars"), 4, 5);
+ prt(_("(2) アイテムの 色/文字 をファイルに書き出す", "(2) Dump object attr/chars"), 5, 5);
+ prt(_("(3) 地形の 色/文字 をファイルに書き出す", "(3) Dump feature attr/chars"), 6, 5);
+ prt(_("(4) モンスターの 色/文字 を変更する (数値操作)", "(4) Change monster attr/chars (numeric operation)"), 7, 5);
+ prt(_("(5) アイテムの 色/文字 を変更する (数値操作)", "(5) Change object attr/chars (numeric operation)"), 8, 5);
+ prt(_("(6) 地形の 色/文字 を変更する (数値操作)", "(6) Change feature attr/chars (numeric operation)"), 9, 5);
+ prt(_("(7) モンスターの 色/文字 を変更する (シンボルエディタ)", "(7) Change monster attr/chars (visual mode)"), 10, 5);
+ prt(_("(8) アイテムの 色/文字 を変更する (シンボルエディタ)", "(8) Change object attr/chars (visual mode)"), 11, 5);
+ prt(_("(9) 地形の 色/文字 を変更する (シンボルエディタ)", "(9) Change feature attr/chars (visual mode)"), 12, 5);
+#endif /* ALLOW_VISUALS */
+
+ prt(_("(R) 画面表示方法の初期化", "(R) Reset visuals"), 13, 5);
+
+ /* Prompt */
+ 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);
+
/*
* Interact with "visuals"
*/
void do_cmd_visuals(void)
{
int i;
-
char tmp[160];
-
char buf[1024];
-
+ bool need_redraw = FALSE;
const char *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)
{
Term_clear();
/* Ask for a choice */
-#ifdef JP
- prt("²èÌÌɽ¼¨¤ÎÀßÄê", 2, 0);
-#else
- prt("Interact with Visuals", 2, 0);
-#endif
+ print_visuals_menu(NULL);
-
- /* Give some choices */
-#ifdef JP
- prt("(1) ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 4, 5);
-#else
- prt("(1) Load a user pref file", 4, 5);
-#endif
-
-#ifdef ALLOW_VISUALS
-#ifdef JP
- prt("(2) ¥â¥ó¥¹¥¿¡¼¤Î ¿§/ʸ»ú ¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤¹", 5, 5);
- prt("(3) ¥¢¥¤¥Æ¥à¤Î ¿§/ʸ»ú ¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤¹", 6, 5);
- prt("(4) ÃÏ·Á¤Î ¿§/ʸ»ú ¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤¹", 7, 5);
- prt("(5) (̤»ÈÍÑ)", 8, 5);
- prt("(6) ¥â¥ó¥¹¥¿¡¼¤Î ¿§/ʸ»ú ¤òÊѹ¹¤¹¤ë", 9, 5);
- prt("(7) ¥¢¥¤¥Æ¥à¤Î ¿§/ʸ»ú ¤òÊѹ¹¤¹¤ë", 10, 5);
- prt("(8) ÃÏ·Á¤Î ¿§/ʸ»ú ¤òÊѹ¹¤¹¤ë", 11, 5);
- prt("(9) (̤»ÈÍÑ)", 12, 5);
-#else
- prt("(2) Dump monster attr/chars", 5, 5);
- prt("(3) Dump object attr/chars", 6, 5);
- prt("(4) Dump feature attr/chars", 7, 5);
- prt("(5) (unused)", 8, 5);
- prt("(6) Change monster attr/chars", 9, 5);
- prt("(7) Change object attr/chars", 10, 5);
- prt("(8) Change feature attr/chars", 11, 5);
- prt("(9) (unused)", 12, 5);
-#endif
-
-#endif
-#ifdef JP
- prt("(0) ²èÌÌɽ¼¨ÊýË¡¤Î½é´ü²½", 13, 5);
-#else
- prt("(0) Reset visuals", 13, 5);
-#endif
-
-
- /* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É:", 15, 0);
-#else
- prt("Command: ", 15, 0);
-#endif
-
-
- /* Prompt */
- i = inkey();
+ /* Prompt */
+ i = inkey();
/* Done */
if (i == ESCAPE) break;
- /* Load a 'pref' file */
- else if (i == '1')
+ switch (i)
{
+ /* Load a 'pref' file */
+ case '0':
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 15, 0);
-#else
- prt("Command: Load a user pref file", 15, 0);
-#endif
-
+ prt(_("コマンド: ユーザー設定ファイルのロード", "Command: Load a user pref file"), 15, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 17, 0);
-#else
- prt("File: ", 17, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 17, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Query */
if (!askfor(tmp, 70)) continue;
/* Process the given filename */
(void)process_pref_file(tmp);
- }
+
+ need_redraw = TRUE;
+ break;
#ifdef ALLOW_VISUALS
/* Dump monster attr/chars */
- else if (i == '2')
+ case '1':
{
static cptr mark = "Monster attr/chars";
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Dump monster attr/chars", 15, 0);
-#endif
-
+ prt(_("コマンド: モンスターの[色/文字]をファイルに書き出します", "Command: Dump monster attr/chars"), 15, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 17, 0);
-#else
- prt("File: ", 17, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 17, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
-
+ sprintf(tmp, "%s.prf", player_base);
+
/* Get a filename */
if (!askfor(tmp, 70)) continue;
if (!open_auto_dump(buf, mark)) continue;
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
-#else
- auto_dump_printf("\n# Monster attr/char definitions\n\n");
-#endif
+ auto_dump_printf(_("\n# モンスターの[色/文字]の設定\n\n", "\n# Monster attr/char definitions\n\n"));
/* Dump monsters */
- for (i = 1; i < max_r_idx; i++)
+ for (i = 0; i < max_r_idx; i++)
{
monster_race *r_ptr = &r_info[i];
close_auto_dump();
/* Message */
-#ifdef JP
- msg_print("¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Dumped monster attr/chars.");
-#endif
+ msg_print(_("モンスターの[色/文字]をファイルに書き出しました。", "Dumped monster attr/chars."));
+ break;
}
/* Dump object attr/chars */
- else if (i == '3')
+ case '2':
{
static cptr mark = "Object attr/chars";
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Dump object attr/chars", 15, 0);
-#endif
-
+ prt(_("コマンド: アイテムの[色/文字]をファイルに書き出します", "Command: Dump object attr/chars"), 15, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 17, 0);
-#else
- prt("File: ", 17, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 17, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Get a filename */
if (!askfor(tmp, 70)) continue;
if (!open_auto_dump(buf, mark)) continue;
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
-#else
- auto_dump_printf("\n# Object attr/char definitions\n\n");
-#endif
+ auto_dump_printf(_("\n# アイテムの[色/文字]の設定\n\n", "\n# Object attr/char definitions\n\n"));
/* Dump objects */
- for (i = 1; i < max_k_idx; i++)
+ for (i = 0; i < max_k_idx; i++)
{
char o_name[80];
object_kind *k_ptr = &k_info[i];
/* Skip non-entries */
if (!k_ptr->name) continue;
- /* Skip entries with flavor */
- if (k_ptr->flavor) continue;
+ if (!k_ptr->flavor)
+ {
+ /* Tidy name */
+ strip_name(o_name, i);
+ }
+ else
+ {
+ object_type forge;
- /* Tidy name */
- strip_name(o_name, i);
+ /* Prepare dummy object */
+ object_prep(&forge, i);
+
+ /* Get un-shuffled flavor name */
+ object_desc(o_name, &forge, OD_FORCE_FLAVOR);
+ }
/* Dump a comment */
auto_dump_printf("# %s\n", o_name);
close_auto_dump();
/* Message */
-#ifdef JP
- msg_print("¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Dumped object attr/chars.");
-#endif
+ msg_print(_("アイテムの[色/文字]をファイルに書き出しました。", "Dumped object attr/chars."));
+ break;
}
/* Dump feature attr/chars */
- else if (i == '4')
+ case '3':
{
static cptr mark = "Feature attr/chars";
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ÃÏ·Á¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Dump feature attr/chars", 15, 0);
-#endif
-
+ prt(_("コマンド: 地形の[色/文字]をファイルに書き出します", "Command: Dump feature attr/chars"), 15, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 17, 0);
-#else
- prt("File: ", 17, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 17, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Get a filename */
if (!askfor(tmp, 70)) continue;
if (!open_auto_dump(buf, mark)) continue;
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ÃÏ·Á¤Î[¿§/ʸ»ú]¤ÎÀßÄê\n\n");
-#else
- auto_dump_printf("\n# Feature attr/char definitions\n\n");
-#endif
+ auto_dump_printf(_("\n# 地形の[色/文字]の設定\n\n", "\n# Feature attr/char definitions\n\n"));
/* Dump features */
- for (i = 1; i < max_f_idx; i++)
+ for (i = 0; i < max_f_idx; i++)
{
feature_type *f_ptr = &f_info[i];
auto_dump_printf("# %s\n", (f_name + f_ptr->name));
/* Dump the feature attr/char info */
- auto_dump_printf("F:%d:0x%02X/0x%02X:0x%02X/0x%02X:0x%02X/0x%02X:0x%02X/0x%02X\n\n", i,
+ auto_dump_printf("F:%d:0x%02X/0x%02X:0x%02X/0x%02X:0x%02X/0x%02X\n\n", i,
(byte)(f_ptr->x_attr[F_LIT_STANDARD]), (byte)(f_ptr->x_char[F_LIT_STANDARD]),
(byte)(f_ptr->x_attr[F_LIT_LITE]), (byte)(f_ptr->x_char[F_LIT_LITE]),
- (byte)(f_ptr->x_attr[F_LIT_DARK]), (byte)(f_ptr->x_char[F_LIT_DARK]),
- (byte)(f_ptr->x_attr[F_LIT_DARKDARK]), (byte)(f_ptr->x_char[F_LIT_DARKDARK]));
+ (byte)(f_ptr->x_attr[F_LIT_DARK]), (byte)(f_ptr->x_char[F_LIT_DARK]));
}
/* Close */
close_auto_dump();
/* Message */
-#ifdef JP
- msg_print("ÃÏ·Á¤Î[¿§/ʸ»ú]¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Dumped feature attr/chars.");
-#endif
+ msg_print(_("地形の[色/文字]をファイルに書き出しました。", "Dumped feature attr/chars."));
+ break;
}
- /* Modify monster attr/chars */
- else if (i == '6')
+ /* Modify monster attr/chars (numeric operation) */
+ case '4':
{
+ static cptr choice_msg = _("モンスターの[色/文字]を変更します", "Change monster attr/chars");
static int r = 0;
- /* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥â¥ó¥¹¥¿¡¼¤Î[¿§/ʸ»ú]¤òÊѹ¹¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Change monster attr/chars", 15, 0);
-#endif
-
+ prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
/* Hack -- query until done */
while (1)
char c;
int t;
- byte da = (r_ptr->d_attr);
- byte dc = (r_ptr->d_char);
- byte ca = (r_ptr->x_attr);
- byte cc = (r_ptr->x_char);
+ byte da = r_ptr->d_attr;
+ byte dc = r_ptr->d_char;
+ byte ca = r_ptr->x_attr;
+ byte cc = r_ptr->x_char;
/* Label the object */
-#ifdef JP
Term_putstr(5, 17, -1, TERM_WHITE,
- format("¥â¥ó¥¹¥¿¡¼ = %d, ̾Á° = %-40.40s",
- r, (r_name + r_ptr->name)));
-#else
- Term_putstr(5, 17, -1, TERM_WHITE,
- format("Monster = %d, Name = %-40.40s",
- r, (r_name + r_ptr->name)));
-#endif
-
+ format(_("モンスター = %d, 名前 = %-40.40s", "Monster = %d, Name = %-40.40s"), r, (r_name + r_ptr->name)));
/* Label the Default values */
-#ifdef JP
Term_putstr(10, 19, -1, TERM_WHITE,
- format("½é´üÃÍ ¿§ / ʸ»ú = %3u / %3u", da, dc));
-#else
- Term_putstr(10, 19, -1, TERM_WHITE,
- format("Default attr/char = %3u / %3u", da, dc));
-#endif
+ format(_("初期値 色 / 文字 = %3u / %3u", "Default attr/char = %3u / %3u"), da, dc));
Term_putstr(40, 19, -1, TERM_WHITE, empty_symbol);
Term_queue_bigchar(43, 19, da, dc, 0, 0);
/* Label the Current values */
-#ifdef JP
Term_putstr(10, 20, -1, TERM_WHITE,
- format("¸½ºßÃÍ ¿§ / ʸ»ú = %3u / %3u", ca, cc));
-#else
- Term_putstr(10, 20, -1, TERM_WHITE,
- format("Current attr/char = %3u / %3u", ca, cc));
-#endif
+ format(_("現在値 色 / 文字 = %3u / %3u", "Current attr/char = %3u / %3u"), ca, cc));
Term_putstr(40, 20, -1, TERM_WHITE, empty_symbol);
Term_queue_bigchar(43, 20, ca, cc, 0, 0);
/* Prompt */
-#ifdef JP
- Term_putstr(0, 22, -1, TERM_WHITE,
- "¥³¥Þ¥ó¥É (n/N/^N/a/A/^A/c/C/^C): ");
-#else
- Term_putstr(0, 22, -1, TERM_WHITE,
- "Command (n/N/^N/a/A/^A/c/C/^C): ");
-#endif
+ 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();
switch (c)
{
case 'n':
- cmd_visuals_aux(i, &r, max_r_idx);
+ {
+ int prev_r = r;
+ do
+ {
+ if (!cmd_visuals_aux(i, &r, max_r_idx))
+ {
+ r = prev_r;
+ break;
+ }
+ }
+ while (!r_info[r].name);
+ }
break;
case 'a':
t = (int)r_ptr->x_attr;
- cmd_visuals_aux(i, &t, 256);
+ (void)cmd_visuals_aux(i, &t, 256);
r_ptr->x_attr = (byte)t;
+ need_redraw = TRUE;
break;
case 'c':
t = (int)r_ptr->x_char;
- cmd_visuals_aux(i, &t, 256);
+ (void)cmd_visuals_aux(i, &t, 256);
r_ptr->x_char = (byte)t;
+ need_redraw = TRUE;
+ break;
+ case 'v':
+ do_cmd_knowledge_monsters(&need_redraw, TRUE, r);
+
+ /* Clear screen */
+ Term_clear();
+ print_visuals_menu(choice_msg);
break;
}
}
+
+ break;
}
- /* Modify object attr/chars */
- else if (i == '7')
+ /* Modify object attr/chars (numeric operation) */
+ case '5':
{
+ static cptr choice_msg = _("アイテムの[色/文字]を変更します", "Change object attr/chars");
static int k = 0;
-
- /* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥¢¥¤¥Æ¥à¤Î[¿§/ʸ»ú]¤òÊѹ¹¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Change object attr/chars", 15, 0);
-#endif
-
+ prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
/* Hack -- query until done */
while (1)
char c;
int t;
- byte da = (byte)k_ptr->d_attr;
- byte dc = (byte)k_ptr->d_char;
- byte ca = (byte)k_ptr->x_attr;
- byte cc = (byte)k_ptr->x_char;
+ byte da = k_ptr->d_attr;
+ byte dc = k_ptr->d_char;
+ byte ca = k_ptr->x_attr;
+ byte cc = k_ptr->x_char;
/* Label the object */
-#ifdef JP
Term_putstr(5, 17, -1, TERM_WHITE,
- format("¥¢¥¤¥Æ¥à = %d, ̾Á° = %-40.40s",
- k, (k_name + k_ptr->name)));
-#else
- Term_putstr(5, 17, -1, TERM_WHITE,
- format("Object = %d, Name = %-40.40s",
- k, (k_name + k_ptr->name)));
-#endif
-
+ format(_("アイテム = %d, 名前 = %-40.40s", "Object = %d, Name = %-40.40s"),
+ k, k_name + (!k_ptr->flavor ? k_ptr->name : k_ptr->flavor_name)));
/* Label the Default values */
-#ifdef JP
Term_putstr(10, 19, -1, TERM_WHITE,
- format("½é´üÃÍ ¿§ / ʸ»ú = %3d / %3d", da, dc));
-#else
- Term_putstr(10, 19, -1, TERM_WHITE,
- format("Default attr/char = %3d / %3d", da, dc));
-#endif
+ format(_("初期値 色 / 文字 = %3d / %3d", "Default attr/char = %3d / %3d"), da, dc));
Term_putstr(40, 19, -1, TERM_WHITE, empty_symbol);
Term_queue_bigchar(43, 19, da, dc, 0, 0);
/* Label the Current values */
-#ifdef JP
Term_putstr(10, 20, -1, TERM_WHITE,
- format("¸½ºßÃÍ ¿§ / ʸ»ú = %3d / %3d", ca, cc));
-#else
- Term_putstr(10, 20, -1, TERM_WHITE,
- format("Current attr/char = %3d / %3d", ca, cc));
-#endif
+ format(_("現在値 色 / 文字 = %3d / %3d", "Current attr/char = %3d / %3d"), ca, cc));
Term_putstr(40, 20, -1, TERM_WHITE, empty_symbol);
Term_queue_bigchar(43, 20, ca, cc, 0, 0);
/* Prompt */
-#ifdef JP
- Term_putstr(0, 22, -1, TERM_WHITE,
- "¥³¥Þ¥ó¥É (n/N/^N/a/A/^A/c/C/^C): ");
-#else
Term_putstr(0, 22, -1, TERM_WHITE,
- "Command (n/N/^N/a/A/^A/c/C/^C): ");
-#endif
+ _("コマンド (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();
switch (c)
{
case 'n':
- cmd_visuals_aux(i, &k, max_k_idx);
+ {
+ int prev_k = k;
+ do
+ {
+ if (!cmd_visuals_aux(i, &k, max_k_idx))
+ {
+ k = prev_k;
+ break;
+ }
+ }
+ while (!k_info[k].name);
+ }
break;
case 'a':
- t = (int)k_info[k].x_attr;
- cmd_visuals_aux(i, &t, 256);
- k_info[k].x_attr = (byte)t;
+ t = (int)k_ptr->x_attr;
+ (void)cmd_visuals_aux(i, &t, 256);
+ k_ptr->x_attr = (byte)t;
+ need_redraw = TRUE;
break;
case 'c':
- t = (int)k_info[k].x_char;
- cmd_visuals_aux(i, &t, 256);
- k_info[k].x_char = (byte)t;
+ t = (int)k_ptr->x_char;
+ (void)cmd_visuals_aux(i, &t, 256);
+ k_ptr->x_char = (byte)t;
+ need_redraw = TRUE;
+ break;
+ case 'v':
+ do_cmd_knowledge_objects(&need_redraw, TRUE, k);
+
+ /* Clear screen */
+ Term_clear();
+ print_visuals_menu(choice_msg);
break;
}
}
+
+ break;
}
- /* Modify feature attr/chars */
- else if (i == '8')
+ /* 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;
-
- /* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ÃÏ·Á¤Î[¿§/ʸ»ú]¤òÊѹ¹¤·¤Þ¤¹", 15, 0);
-#else
- prt("Command: Change feature attr/chars", 15, 0);
-#endif
-
+ prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
/* Hack -- query until done */
while (1)
char c;
int t;
- byte da = (byte)f_ptr->d_attr[lighting_level];
- byte dc = (byte)f_ptr->d_char[lighting_level];
- byte ca = (byte)f_ptr->x_attr[lighting_level];
- byte cc = (byte)f_ptr->x_char[lighting_level];
+ byte da = f_ptr->d_attr[lighting_level];
+ byte dc = f_ptr->d_char[lighting_level];
+ byte ca = f_ptr->x_attr[lighting_level];
+ byte cc = f_ptr->x_char[lighting_level];
/* Label the object */
prt("", 17, 5);
-#ifdef JP
Term_putstr(5, 17, -1, TERM_WHITE,
- format("ÃÏ·Á = %d, ̾Á° = %s, ÌÀÅÙ = %s",
+ format(_("地形 = %d, 名前 = %s, 明度 = %s", "Terrain = %d, Name = %s, Lighting = %s"),
f, (f_name + f_ptr->name), lighting_level_str[lighting_level]));
-#else
- Term_putstr(5, 17, -1, TERM_WHITE,
- format("Terrain = %d, Name = %s, Lighting = %s",
- f, (f_name + f_ptr->name), lighting_level_str[lighting_level]));
-#endif
-
/* Label the Default values */
-#ifdef JP
Term_putstr(10, 19, -1, TERM_WHITE,
- format("½é´üÃÍ ¿§ / ʸ»ú = %3d / %3d", da, dc));
-#else
- Term_putstr(10, 19, -1, TERM_WHITE,
- format("Default attr/char = %3d / %3d", da, dc));
-#endif
+ format(_("初期値 色 / 文字 = %3d / %3d", "Default attr/char = %3d / %3d"), da, dc));
Term_putstr(40, 19, -1, TERM_WHITE, empty_symbol);
-
Term_queue_bigchar(43, 19, da, dc, 0, 0);
-
/* Label the Current values */
#ifdef JP
Term_putstr(10, 20, -1, TERM_WHITE,
- format("¸½ºßÃÍ ¿§ / ʸ»ú = %3d / %3d", ca, cc));
+ format("現在値 色 / 文字 = %3d / %3d", ca, cc));
#else
Term_putstr(10, 20, -1, TERM_WHITE,
format("Current attr/char = %3d / %3d", ca, cc));
/* Prompt */
#ifdef JP
Term_putstr(0, 22, -1, TERM_WHITE,
- "¥³¥Þ¥ó¥É (n/N/^N/a/A/^A/c/C/^C/l/L/^L): ");
+ "コマンド (n/N/^N/a/A/^A/c/C/^C/l/L/^L/d/D/^D/v/V/^V): ");
#else
Term_putstr(0, 22, -1, TERM_WHITE,
- "Command (n/N/^N/a/A/^A/c/C/^C/l/L/^L): ");
+ "Command (n/N/^N/a/A/^A/c/C/^C/l/L/^L/d/D/^D/v/V/^V): ");
#endif
/* Get a command */
switch (c)
{
case 'n':
- cmd_visuals_aux(i, &f, max_f_idx);
+ {
+ int prev_f = f;
+ do
+ {
+ if (!cmd_visuals_aux(i, &f, max_f_idx))
+ {
+ f = prev_f;
+ break;
+ }
+ }
+ while (!f_info[f].name || (f_info[f].mimic != f));
+ }
break;
case 'a':
- t = (int)f_info[f].x_attr[lighting_level];
- cmd_visuals_aux(i, &t, 256);
- f_info[f].x_attr[lighting_level] = (byte)t;
+ t = (int)f_ptr->x_attr[lighting_level];
+ (void)cmd_visuals_aux(i, &t, 256);
+ f_ptr->x_attr[lighting_level] = (byte)t;
+ need_redraw = TRUE;
break;
case 'c':
- t = (int)f_info[f].x_char[lighting_level];
- cmd_visuals_aux(i, &t, 256);
- f_info[f].x_char[lighting_level] = (byte)t;
+ t = (int)f_ptr->x_char[lighting_level];
+ (void)cmd_visuals_aux(i, &t, 256);
+ f_ptr->x_char[lighting_level] = (byte)t;
+ need_redraw = TRUE;
break;
case 'l':
- cmd_visuals_aux(i, &lighting_level, F_LIT_MAX);
+ (void)cmd_visuals_aux(i, &lighting_level, F_LIT_MAX);
+ break;
+ case 'd':
+ apply_default_feat_lighting(f_ptr->x_attr, f_ptr->x_char);
+ need_redraw = TRUE;
+ break;
+ case 'v':
+ do_cmd_knowledge_features(&need_redraw, TRUE, f, &lighting_level);
+
+ /* Clear screen */
+ Term_clear();
+ print_visuals_menu(choice_msg);
break;
}
}
+
+ break;
}
-#endif
+ /* Modify monster attr/chars (visual mode) */
+ case '7':
+ do_cmd_knowledge_monsters(&need_redraw, TRUE, -1);
+ break;
- /* Reset visuals */
- else if (i == '0')
+ /* Modify object attr/chars (visual mode) */
+ case '8':
+ do_cmd_knowledge_objects(&need_redraw, TRUE, -1);
+ break;
+
+ /* Modify feature attr/chars (visual mode) */
+ case '9':
{
+ int lighting_level = F_LIT_STANDARD;
+ do_cmd_knowledge_features(&need_redraw, TRUE, -1, &lighting_level);
+ break;
+ }
+
+#endif /* ALLOW_VISUALS */
+
+ /* Reset visuals */
+ case 'R':
+ case 'r':
/* Reset */
reset_visuals();
/* Message */
-#ifdef JP
- msg_print("²èÌ̾å¤Î[¿§/ʸ»ú]¤ò½é´üÃͤ˥ꥻ¥Ã¥È¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Visual attr/char tables reset.");
-#endif
-
- }
+ msg_print(_("画面上の[色/文字]を初期値にリセットしました。", "Visual attr/char tables reset."));
+ need_redraw = TRUE;
+ break;
/* Unknown option */
- else
- {
+ default:
bell();
+ break;
}
/* Flush messages */
msg_print(NULL);
}
-
/* Restore the screen */
screen_load();
+
+ if (need_redraw) do_cmd_redraw();
}
Term_clear();
/* Ask for a choice */
-#ifdef JP
- prt("[ ¥«¥é¡¼¤ÎÀßÄê ]", 2, 0);
-#else
- prt("Interact with Colors", 2, 0);
-#endif
-
+ prt(_("[ カラーの設定 ]", "Interact with Colors"), 2, 0);
/* Give some choices */
-#ifdef JP
- prt("(1) ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 4, 5);
-#else
- prt("(1) Load a user pref file", 4, 5);
-#endif
+ prt(_("(1) ユーザー設定ファイルのロード", "(1) Load a user pref file"), 4, 5);
#ifdef ALLOW_COLORS
-#ifdef JP
- prt("(2) ¥«¥é¡¼¤ÎÀßÄê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤¹", 5, 5);
- prt("(3) ¥«¥é¡¼¤ÎÀßÄê¤òÊѹ¹¤¹¤ë", 6, 5);
-#else
- prt("(2) Dump colors", 5, 5);
- prt("(3) Modify colors", 6, 5);
-#endif
-
+ prt(_("(2) カラーの設定をファイルに書き出す", "(2) Dump colors"), 5, 5);
+ prt(_("(3) カラーの設定を変更する", "(3) Modify colors"), 6, 5);
#endif
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ", 8, 0);
-#else
- prt("Command: ", 8, 0);
-#endif
-
-
+ prt(_("コマンド: ", "Command: "), 8, 0);
/* Prompt */
i = inkey();
if (i == '1')
{
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤ò¥í¡¼¥É¤·¤Þ¤¹", 8, 0);
-#else
- prt("Command: Load a user pref file", 8, 0);
-#endif
-
+ prt(_("コマンド: ユーザー設定ファイルをロードします", "Command: Load a user pref file"), 8, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 10, 0);
-#else
- prt("File: ", 10, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 10, 0);
/* Default file */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Query */
if (!askfor(tmp, 70)) continue;
static cptr mark = "Colors";
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥«¥é¡¼¤ÎÀßÄê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤¹", 8, 0);
-#else
- prt("Command: Dump colors", 8, 0);
-#endif
-
+ prt(_("コマンド: カラーの設定をファイルに書き出します", "Command: Dump colors"), 8, 0);
/* Prompt */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë: ", 10, 0);
-#else
- prt("File: ", 10, 0);
-#endif
-
+ prt(_("ファイル: ", "File: "), 10, 0);
/* Default filename */
- sprintf(tmp, "%s.prf", player_name);
+ sprintf(tmp, "%s.prf", player_base);
/* Get a filename */
if (!askfor(tmp, 70)) continue;
if (!open_auto_dump(buf, mark)) continue;
/* Start dumping */
-#ifdef JP
- auto_dump_printf("\n# ¥«¥é¡¼¤ÎÀßÄê\n\n");
-#else
- auto_dump_printf("\n# Color redefinitions\n\n");
-#endif
-
+ auto_dump_printf(_("\n# カラーの設定\n\n", "\n# Color redefinitions\n\n"));
+
/* Dump colors */
for (i = 0; i < 256; i++)
{
int gv = angband_color_table[i][2];
int bv = angband_color_table[i][3];
-#ifdef JP
- cptr name = "̤ÃÎ";
-#else
- cptr name = "unknown";
-#endif
-
+ cptr name = _("未知", "unknown");
/* Skip non-entries */
if (!kv && !rv && !gv && !bv) continue;
if (i < 16) name = color_names[i];
/* Dump a comment */
-#ifdef JP
- auto_dump_printf("# ¥«¥é¡¼ '%s'\n", name);
-#else
- auto_dump_printf("# Color '%s'\n", name);
-#endif
-
+ auto_dump_printf(_("# カラー '%s'\n", "# Color '%s'\n"), name);
+
/* Dump the monster attr/char info */
auto_dump_printf("V:%d:0x%02X:0x%02X:0x%02X:0x%02X\n\n",
i, kv, rv, gv, bv);
}
/* Close */
- close_auto_dump();
-
- /* Message */
-#ifdef JP
- msg_print("¥«¥é¡¼¤ÎÀßÄê¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Dumped color redefinitions.");
-#endif
+ close_auto_dump();
+ /* Message */
+ msg_print(_("カラーの設定をファイルに書き出しました。", "Dumped color redefinitions."));
}
/* Edit colors */
static byte a = 0;
/* Prompt */
-#ifdef JP
- prt("¥³¥Þ¥ó¥É: ¥«¥é¡¼¤ÎÀßÄê¤òÊѹ¹¤·¤Þ¤¹", 8, 0);
-#else
- prt("Command: Modify colors", 8, 0);
-#endif
-
+ prt(_("コマンド: カラーの設定を変更します", "Command: Modify colors"), 8, 0);
/* Hack -- query until done */
while (1)
}
/* Describe the color */
-#ifdef JP
- name = ((a < 16) ? color_names[a] : "̤ÄêµÁ");
-#else
- name = ((a < 16) ? color_names[a] : "undefined");
-#endif
-
+ name = ((a < 16) ? color_names[a] : _("未定義", "undefined"));
/* Describe the color */
-#ifdef JP
- Term_putstr(5, 10, -1, TERM_WHITE,
- format("¥«¥é¡¼ = %d, ̾Á° = %s", a, name));
-#else
Term_putstr(5, 10, -1, TERM_WHITE,
- format("Color = %d, Name = %s", a, name));
-#endif
-
+ format(_("カラー = %d, 名前 = %s", "Color = %d, Name = %s"), a, name));
/* Label the Current values */
Term_putstr(5, 12, -1, TERM_WHITE,
angband_color_table[a][3]));
/* Prompt */
-#ifdef JP
Term_putstr(0, 14, -1, TERM_WHITE,
- "¥³¥Þ¥ó¥É (n/N/k/K/r/R/g/G/b/B): ");
-#else
- Term_putstr(0, 14, -1, TERM_WHITE,
- "Command (n/N/k/K/r/R/g/G/b/B): ");
-#endif
+ _("コマンド (n/N/k/K/r/R/g/G/b/B): ", "Command (n/N/k/K/r/R/g/G/b/B): "));
/* Get a command */
strcpy(buf, "");
/* Input */
-#ifdef JP
- if (!get_string("¥á¥â: ", buf, 60)) return;
-#else
- if (!get_string("Note: ", buf, 60)) return;
-#endif
-
+ if (!get_string(_("メモ: ", "Note: "), buf, 60)) return;
/* Ignore empty notes */
if (!buf[0] || (buf[0] == ' ')) return;
/* Add the note to the message recall */
-#ifdef JP
- msg_format("¥á¥â: %s", buf);
-#else
- msg_format("Note: %s", buf);
-#endif
-
+ msg_format(_("メモ: %s", "Note: %s"), buf);
}
*/
void do_cmd_version(void)
{
-
/* Silly message */
-#ifdef JP
- msg_format("ÊѶòÈÚÅÜ(Hengband) %d.%d.%d",
- FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+
+#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("You are playing Hengband %d.%d.%d.",
- FAKE_VER_MAJOR-10, FAKE_VER_MINOR, FAKE_VER_PATCH);
+ msg_format(_("変愚蛮怒(Hengband) %d.%d.%d", "You are playing Hengband %d.%d.%d."),
+ FAKE_VER_MAJOR - 10, FAKE_VER_MINOR, FAKE_VER_PATCH);
#endif
}
*/
static cptr do_cmd_feeling_text[11] =
{
-#ifdef JP
- "¤³¤Î³¬¤ÎÊ·°Ïµ¤¤ò´¶¤¸¤È¤ì¤Ê¤«¤Ã¤¿...",
-#else
- "Looks like any other level.",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ë¤Ï²¿¤«ÆÃÊ̤ʤâ¤Î¤¬¤¢¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£",
-#else
- "You feel there is something special about this level.",
-#endif
-
-#ifdef JP
- "¶²¤í¤·¤¤»à¤Î¸¸¤¬ÌܤËÉ⤫¤Ó¡¢µ¤À䤷¤½¤¦¤Ë¤Ê¤Ã¤¿¡ª",
-#else
- "You nearly faint as horrible visions of death fill your mind!",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ï¤È¤Æ¤â´í¸±¤Ê¤è¤¦¤À¡£",
-#else
- "This level looks very dangerous.",
-#endif
-
-#ifdef JP
- "¤È¤Æ¤â°¤¤Í½´¶¤¬¤¹¤ë...",
-#else
- "You have a very bad feeling...",
-#endif
-
-#ifdef JP
- "°¤¤Í½´¶¤¬¤¹¤ë...",
-#else
- "You have a bad feeling...",
-#endif
-
-#ifdef JP
- "²¿¤«¶ÛÄ¥¤¹¤ë¡£",
-#else
- "You feel nervous.",
-#endif
-
-#ifdef JP
- "¾¯¤·ÉÔ±¿¤Êµ¤¤¬¤¹¤ë...",
-#else
- "You feel your luck is turning...",
-#endif
-
-#ifdef JP
- "¤³¤Î¾ì½ê¤Ï¹¥¤¤Ë¤Ê¤ì¤Ê¤¤¡£",
-#else
- "You don't like the look of this place.",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ï¤½¤ì¤Ê¤ê¤Ë°ÂÁ´¤Ê¤è¤¦¤À¡£",
-#else
- "This level looks reasonably safe.",
-#endif
-
-#ifdef JP
- "¤Ê¤ó¤ÆÂà¶þ¤Ê¤È¤³¤í¤À..."
-#else
- "What a boring place..."
-#endif
-
+ _("この階の雰囲気を感じとれなかった...", "Looks like any other level."),
+ _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."),
+ _("恐ろしい死の幻が目に浮かび、気絶しそうになった!", "You nearly faint as horrible visions of death fill your mind!"),
+ _("この階はとても危険なようだ。", "This level looks very dangerous."),
+ _("とても悪い予感がする...", "You have a very bad feeling..."),
+ _("悪い予感がする...", "You have a bad feeling..."),
+ _("何か緊張する。", "You feel nervous."),
+ _("少し不運な気がする...", "You feel your luck is turning..."),
+ _("この場所は好きになれない。", "You don't like the look of this place."),
+ _("この階はそれなりに安全なようだ。", "This level looks reasonably safe."),
+ _("なんて退屈なところだ...", "What a boring place...")
};
static cptr do_cmd_feeling_text_combat[11] =
{
-#ifdef JP
- "¤³¤Î³¬¤ÎÊ·°Ïµ¤¤ò´¶¤¸¤È¤ì¤Ê¤«¤Ã¤¿...",
-#else
- "Looks like any other level.",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ë¤Ï²¿¤«ÆÃÊ̤ʤâ¤Î¤¬¤¢¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£",
-#else
- "You feel there is something special about this level.",
-#endif
-
-#ifdef JP
- "º£Ìë¤â¤Þ¤¿¡¢Ã¯¤«¤¬Ì¿¤òÍî¤È¤¹...",
-#else
- "You nearly faint as horrible visions of death fill your mind!",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ï¤È¤Æ¤â´í¸±¤Ê¤è¤¦¤À¡£",
-#else
- "This level looks very dangerous.",
-#endif
-
-#ifdef JP
- "¤È¤Æ¤â°¤¤Í½´¶¤¬¤¹¤ë...",
-#else
- "You have a very bad feeling...",
-#endif
-
-#ifdef JP
- "°¤¤Í½´¶¤¬¤¹¤ë...",
-#else
- "You have a bad feeling...",
-#endif
-
-#ifdef JP
- "²¿¤«¶ÛÄ¥¤¹¤ë¡£",
-#else
- "You feel nervous.",
-#endif
-
-#ifdef JP
- "¾¯¤·ÉÔ±¿¤Êµ¤¤¬¤¹¤ë...",
-#else
- "You feel your luck is turning...",
-#endif
-
-#ifdef JP
- "¤³¤Î¾ì½ê¤Ï¹¥¤¤Ë¤Ê¤ì¤Ê¤¤¡£",
-#else
- "You don't like the look of this place.",
-#endif
-
-#ifdef JP
- "¤³¤Î³¬¤Ï¤½¤ì¤Ê¤ê¤Ë°ÂÁ´¤Ê¤è¤¦¤À¡£",
-#else
- "This level looks reasonably safe.",
-#endif
-
-#ifdef JP
- "¤Ê¤ó¤ÆÂà¶þ¤Ê¤È¤³¤í¤À..."
-#else
- "What a boring place..."
-#endif
-
+ _("この階の雰囲気を感じとれなかった...", "Looks like any other level."),
+ _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."),
+ _("今夜もまた、誰かが命を落とす...", "You nearly faint as horrible visions of death fill your mind!"),
+ _("この階はとても危険なようだ。", "This level looks very dangerous."),
+ _("とても悪い予感がする...", "You have a very bad feeling..."),
+ _("悪い予感がする...", "You have a bad feeling..."),
+ _("何か緊張する。", "You feel nervous."),
+ _("少し不運な気がする...", "You feel your luck is turning..."),
+ _("この場所は好きになれない。", "You don't like the look of this place."),
+ _("この階はそれなりに安全なようだ。", "This level looks reasonably safe."),
+ _("なんて退屈なところだ...", "What a boring place...")
};
static cptr do_cmd_feeling_text_lucky[11] =
{
-#ifdef JP
- "¤³¤Î³¬¤ÎÊ·°Ïµ¤¤ò´¶¤¸¤È¤ì¤Ê¤«¤Ã¤¿...",
- "¤³¤Î³¬¤Ë¤Ï²¿¤«ÆÃÊ̤ʤâ¤Î¤¬¤¢¤ë¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£",
- "¤³¤Î³¬¤Ï¤³¤Î¾å¤Ê¤¯ÁÇÀ²¤é¤·¤¤´¶¤¸¤¬¤¹¤ë¡£",
- "ÁÇÀ²¤é¤·¤¤´¶¤¸¤¬¤¹¤ë...",
- "¤È¤Æ¤âÎɤ¤´¶¤¸¤¬¤¹¤ë...",
- "Îɤ¤´¶¤¸¤¬¤¹¤ë...",
- "¤Á¤ç¤Ã¤È¹¬±¿¤Ê´¶¤¸¤¬¤¹¤ë...",
- "¿¾¯¤Ï±¿¤¬¸þ¤¤¤Æ¤¤¿¤«...",
- "¸«¤¿´¶¤¸°¤¯¤Ï¤Ê¤¤...",
- "Á´Á³ÂÌÌܤȤ¤¤¦¤³¤È¤Ï¤Ê¤¤¤¬...",
- "¤Ê¤ó¤ÆÂà¶þ¤Ê¤È¤³¤í¤À..."
-#else
- "Looks like any other level.",
- "You feel there is something special about this level.",
- "You have a superb feeling about this level.",
- "You have an excellent feeling...",
- "You have a very good feeling...",
- "You have a good feeling...",
- "You feel strangely lucky...",
- "You feel your luck is turning...",
- "You like the look of this place...",
- "This level can't be all bad...",
- "What a boring place..."
-#endif
+ _("この階の雰囲気を感じとれなかった...", "Looks like any other level."),
+ _("この階には何か特別なものがあるような気がする。", "You feel there is something special about this level."),
+ _("この階はこの上なく素晴らしい感じがする。", "You have a superb feeling about this level."),
+ _("素晴らしい感じがする...", "You have an excellent feeling..."),
+ _("とても良い感じがする...", "You have a very good feeling..."),
+ _("良い感じがする...", "You have a good feeling..."),
+ _("ちょっと幸運な感じがする...", "You feel strangely lucky..."),
+ _("多少は運が向いてきたか...", "You feel your luck is turning..."),
+ _("見た感じ悪くはない...", "You like the look of this place..."),
+ _("全然駄目ということはないが...", "This level can't be all bad..."),
+ _("なんて退屈なところだ...", "What a boring place...")
};
*/
void do_cmd_feeling(void)
{
- /* Verify the feeling */
- if (feeling > 10) feeling = 10;
-
/* No useful feeling in quests */
if (p_ptr->inside_quest && !random_quest_number(dun_level))
{
-#ifdef JP
- msg_print("ŵ·¿Åª¤Ê¥¯¥¨¥¹¥È¤Î¥À¥ó¥¸¥ç¥ó¤Î¤è¤¦¤À¡£");
-#else
- msg_print("Looks like a typical quest level.");
-#endif
-
+ msg_print(_("典型的なクエストのダンジョンのようだ。", "Looks like a typical quest level."));
return;
}
/* No useful feeling in town */
else if (p_ptr->town_num && !dun_level)
{
-#ifdef JP
- if (!strcmp(town[p_ptr->town_num].name, "¹ÓÌî"))
-#else
- if (!strcmp(town[p_ptr->town_num].name, "wilderness"))
-#endif
+ if (!strcmp(town[p_ptr->town_num].name, _("荒野", "wilderness")))
{
-#ifdef JP
- msg_print("²¿¤«¤¢¤ê¤½¤¦¤Ê¹ÓÌî¤Î¤è¤¦¤À¡£");
-#else
- msg_print("Looks like a strange wilderness.");
-#endif
-
+ msg_print(_("何かありそうな荒野のようだ。", "Looks like a strange wilderness."));
return;
}
else
{
-#ifdef JP
- msg_print("ŵ·¿Åª¤ÊÄ®¤Î¤è¤¦¤À¡£");
-#else
- msg_print("Looks like a typical town.");
-#endif
-
+ msg_print(_("典型的な町のようだ。", "Looks like a typical town."));
return;
}
}
/* No useful feeling in the wilderness */
else if (!dun_level)
{
-#ifdef JP
- msg_print("ŵ·¿Åª¤Ê¹ÓÌî¤Î¤è¤¦¤À¡£");
-#else
- msg_print("Looks like a typical wilderness.");
-#endif
-
+ msg_print(_("典型的な荒野のようだ。", "Looks like a typical wilderness."));
return;
}
/* Display the feeling */
- if (turn - old_turn >= (150 - dun_level)*TURNS_PER_TICK || cheat_xtra)
- {
- if (p_ptr->muta3 & MUT3_GOOD_LUCK) msg_print(do_cmd_feeling_text_lucky[feeling]);
- else {
- if((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON)){
- msg_print(do_cmd_feeling_text_combat[feeling]);
- }else
- msg_print(do_cmd_feeling_text[feeling]);
- }
- }
+ if (p_ptr->muta3 & MUT3_GOOD_LUCK)
+ msg_print(do_cmd_feeling_text_lucky[p_ptr->feeling]);
+ else if (p_ptr->pseikaku == SEIKAKU_COMBAT ||
+ inventory[INVEN_BOW].name1 == ART_CRIMSON)
+ msg_print(do_cmd_feeling_text_combat[p_ptr->feeling]);
else
- {
- msg_print(do_cmd_feeling_text[0]);
- }
+ msg_print(do_cmd_feeling_text[p_ptr->feeling]);
}
static cptr monster_group_text[] =
{
#ifdef JP
- "¥æ¥Ë¡¼¥¯", /* "Uniques" */
- "¾èÇϲÄǽ¤Ê¥â¥ó¥¹¥¿¡¼", /* "Riding" */
- "¥¢¥ê",
- "¥³¥¦¥â¥ê",
- "¥à¥«¥Ç",
- "¥É¥é¥´¥ó",
- "ÌܶÌ",
- "¥Í¥³",
- "¥´¡¼¥ì¥à",
- "ɸ½à¿Í´Ö·¿À¸Êª",
- "¥Ù¥È¥Ù¥È",
- "¥¼¥ê¡¼",
- "¥³¥Ü¥ë¥É",
- "¿åÀ³À¸Êª",
- "¥â¥ë¥É",
- "¥Ê¡¼¥¬",
- "¥ª¡¼¥¯",
- "¿Í´Ö",
- "»Í½Ã",
- "¥Í¥º¥ß",
- "¥¹¥±¥ë¥È¥ó",
- "¥Ç¡¼¥â¥ó",
- "¥Ü¥ë¥Æ¥Ã¥¯¥¹",
- "¥¤¥â¥à¥·/Âç·²",
+ "ユニーク", /* "Uniques" */
+ "乗馬可能なモンスター", /* "Riding" */
+ "賞金首", /* "Wanted */
+ "アンバーの王族", /* "Ambertite" */
+ "アリ",
+ "コウモリ",
+ "ムカデ",
+ "ドラゴン",
+ "目玉",
+ "ネコ",
+ "ゴーレム",
+ "標準人間型生物",
+ "ベトベト",
+ "ゼリー",
+ "コボルド",
+ "水棲生物",
+ "モルド",
+ "ナーガ",
+ "オーク",
+ "人間",
+ "四足獣",
+ "ネズミ",
+ "スケルトン",
+ "デーモン",
+ "ボルテックス",
+ "イモムシ/大群",
/* "unused", */
- "¥¤¡¼¥¯",
- "¥¾¥ó¥Ó/¥ß¥¤¥é",
- "Å·»È",
- "Ļ",
- "¸¤",
- /* "¸ÅÂå¥É¥é¥´¥ó/¥ï¥¤¥¢¡¼¥à", */
- "¥¨¥ì¥á¥ó¥¿¥ë",
- "¥È¥ó¥Ü",
- "¥´¡¼¥¹¥È",
- "»¨¼ï",
- "º«Ãî",
- "¥Ø¥Ó",
- "¥¥é¡¼¡¦¥Ó¡¼¥È¥ë",
- "¥ê¥Ã¥Á",
- "¿¼ó¤Îà¨ÃîÎà",
- "Ææ¤ÎÀ¸Êª",
- "¥ª¡¼¥¬",
- "µðÂç¿Í´Ö·¿À¸Êª",
- "¥¯¥¤¥ë¥¹¥ë¥°",
- "à¨ÃîÎà/ξÀ¸Îà",
- "ÃØéá/¥µ¥½¥ê/¥À¥Ë",
- "¥È¥í¥ë",
- /* "¾åµé¥Ç¡¼¥â¥ó", */
- "¥Ð¥ó¥Ñ¥¤¥¢",
- "¥ï¥¤¥È/¥ì¥¤¥¹/Åù",
- "¥¾¡¼¥ó/¥¶¥ì¥ó/Åù",
- "¥¤¥¨¥Æ¥£",
- "¥Ï¥¦¥ó¥É",
- "¥ß¥ß¥Ã¥¯",
- "ÊÉ/¿¢Êª/µ¤ÂÎ",
- "¤ª¤Ð¤±¥¥Î¥³",
- "µåÂÎ",
+ "イーク",
+ "ゾンビ/ミイラ",
+ "天使",
+ "鳥",
+ "犬",
+ /* "古代ドラゴン/ワイアーム", */
+ "エレメンタル",
+ "トンボ",
+ "ゴースト",
+ "雑種",
+ "昆虫",
+ "ヘビ",
+ "キラー・ビートル",
+ "リッチ",
+ "多首の爬虫類",
+ "謎の生物",
+ "オーガ",
+ "巨大人間型生物",
+ "クイルスルグ",
+ "爬虫類/両生類",
+ "蜘蛛/サソリ/ダニ",
+ "トロル",
+ /* "上級デーモン", */
+ "バンパイア",
+ "ワイト/レイス/等",
+ "ゾーン/ザレン/等",
+ "イエティ",
+ "ハウンド",
+ "ミミック",
+ "壁/植物/気体",
+ "おばけキノコ",
+ "球体",
+ "プレイヤー",
#else
"Uniques",
"Ridable monsters",
+ "Wanted monsters",
+ "Ambertite",
"Ant",
"Bat",
"Centipede",
"Wall/Plant/Gas",
"Mushroom patch",
"Ball",
+ "Player",
#endif
NULL
};
* Symbols of monsters in each group. Note the "Uniques" group
* is handled differently.
*/
-static cptr monster_group_char[] =
+static cptr monster_group_char[] =
{
(char *) -1L,
(char *) -2L,
+ (char *) -3L,
+ (char *) -4L,
"a",
"b",
"c",
"X",
"Y",
"Z",
- "$!?=&`.|/\\~[]()>",
- "#",
+ "!$&()+./=>?[\\]`{|~",
+ "#%",
",",
"*",
+ "@",
NULL
};
* of monsters in the group.
*
* mode & 0x01 : check for non-empty group
- * mode & 0x02 : cheat?
+ * mode & 0x02 : visual operation only
*/
static int collect_monsters(int grp_cur, s16b mon_idx[], byte mode)
{
/* XXX Hack -- Check if this is the "Riding" group */
bool grp_riding = (monster_group_char[grp_cur] == (char *) -2L);
+ /* XXX Hack -- Check if this is the "Wanted" group */
+ bool grp_wanted = (monster_group_char[grp_cur] == (char *) -3L);
+
+ /* XXX Hack -- Check if this is the "Amberite" group */
+ bool grp_amberite = (monster_group_char[grp_cur] == (char *) -4L);
+
+
/* Check every race */
for (i = 0; i < max_r_idx; i++)
{
if (!r_ptr->name) continue ;
/* Require known monsters */
- if (!(mode & 0x02) && !cheat_know && !r_ptr->r_sights ) continue;
+ if (!(mode & 0x02) && !cheat_know && !r_ptr->r_sights) continue;
if (grp_unique)
{
if (!(r_ptr->flags7 & RF7_RIDING)) continue;
}
+ else if (grp_wanted)
+ {
+ bool wanted = FALSE;
+ int j;
+ for (j = 0; j < MAX_KUBI; j++)
+ {
+ if (kubi_r_idx[j] == i || kubi_r_idx[j] - 10000 == i ||
+ (p_ptr->today_mon && p_ptr->today_mon == i))
+ {
+ wanted = TRUE;
+ break;
+ }
+ }
+ if (!wanted) continue;
+ }
+
+ else if (grp_amberite)
+ {
+ if (!(r_ptr->flags3 & RF3_AMBERITE)) continue;
+ }
+
else
{
/* Check for race in the group */
}
/* Terminate the list */
- mon_idx[mon_cnt] = 0;
+ mon_idx[mon_cnt] = -1;
/* Select the sort method */
ang_sort_comp = ang_sort_comp_monster_level;
static cptr object_group_text[] =
{
#ifdef JP
- "¥¥Î¥³", /* "Mushrooms" */
- "Ìô", /* "Potions" */
- "Ìý¤Ä¤Ü", /* "Flasks" */
- "´¬Êª", /* "Scrolls" */
- "»ØÎØ", /* "Rings" */
- "¥¢¥ß¥å¥ì¥Ã¥È", /* "Amulets" */
- "ū", /* "Whistle" */
- "¸÷¸»", /* "Lanterns" */
- "ËâË¡ËÀ", /* "Wands" */
- "¾ó", /* "Staffs" */
- "¥í¥Ã¥É", /* "Rods" */
- "¥«¡¼¥É", /* "Cards" */
- "¥¥ã¥×¥Á¥ã¡¼¡¦¥Ü¡¼¥ë",
- "ÍÓÈé»æ",
- "¤¯¤µ¤Ó",
- "Ȣ",
- "¿Í·Á",
- "Áü",
- "¥´¥ß",
- "¶õ¤Î¥Ó¥ó",
- "¹ü",
- "Åá·õÎà", /* "Swords" */
- "Æß´ï", /* "Blunt Weapons" */
- "ĹÊÁÉð´ï", /* "Polearms" */
- "ºÎ·¡Æ»¶ñ", /* "Diggers" */
- "Èô¤ÓÆ»¶ñ", /* "Bows" */
- "ÃÆ",
- "Ìð",
- "¥Ü¥ë¥È",
- "·ÚÁõ³»", /* "Soft Armor" */
- "½ÅÁõ³»", /* "Hard Armor" */
- "¥É¥é¥´¥ó³»", /* "Dragon Armor" */
- "½â", /* "Shields" */
- "¥¯¥í¡¼¥¯", /* "Cloaks" */
- "äƼê", /* "Gloves" */
- "¥Ø¥ë¥á¥Ã¥È", /* "Helms" */
- "´§", /* "Crowns" */
- "¥Ö¡¼¥Ä", /* "Boots" */
- "ËâË¡½ñ",
+ "キノコ", /* "Mushrooms" */
+ "薬", /* "Potions" */
+ "油つぼ", /* "Flasks" */
+ "巻物", /* "Scrolls" */
+ "指輪", /* "Rings" */
+ "アミュレット", /* "Amulets" */
+ "笛", /* "Whistle" */
+ "光源", /* "Lanterns" */
+ "魔法棒", /* "Wands" */
+ "杖", /* "Staffs" */
+ "ロッド", /* "Rods" */
+ "カード", /* "Cards" */
+ "キャプチャー・ボール",
+ "羊皮紙",
+ "くさび",
+ "箱",
+ "人形",
+ "像",
+ "ゴミ",
+ "空のビン",
+ "骨",
+ "死体",
+ "刀剣類", /* "Swords" */
+ "鈍器", /* "Blunt Weapons" */
+ "長柄武器", /* "Polearms" */
+ "採掘道具", /* "Diggers" */
+ "飛び道具", /* "Bows" */
+ "弾",
+ "矢",
+ "ボルト",
+ "軽装鎧", /* "Soft Armor" */
+ "重装鎧", /* "Hard Armor" */
+ "ドラゴン鎧", /* "Dragon Armor" */
+ "盾", /* "Shields" */
+ "クローク", /* "Cloaks" */
+ "籠手", /* "Gloves" */
+ "ヘルメット", /* "Helms" */
+ "冠", /* "Crowns" */
+ "ブーツ", /* "Boots" */
+ "魔法書",
+ "財宝",
+ "何か",
#else
"Mushrooms",
"Potions",
"Junks",
"Bottles",
"Skeletons",
+ "Corpses",
"Swords",
"Blunt Weapons",
"Polearms",
"Crowns",
"Boots",
"Spellbooks",
+ "Treasure",
+ "Something",
#endif
NULL
};
TV_JUNK,
TV_BOTTLE,
TV_SKELETON,
+ TV_CORPSE,
TV_SWORD,
TV_HAFTED,
TV_POLEARM,
TV_CROWN,
TV_BOOTS,
TV_LIFE_BOOK, /* Hack -- all spellbooks */
- 0
+ TV_GOLD,
+ 0,
+ 0,
};
/*
- * Build a list of monster indexes in the given group. Return the number
- * of monsters in the group.
+ * Build a list of object indexes in the given group. Return the number
+ * of objects in the group.
+ *
+ * mode & 0x01 : check for non-empty group
+ * mode & 0x02 : visual operation only
*/
-static int collect_objects(int grp_cur, int object_idx[])
+static int collect_objects(int grp_cur, int object_idx[], byte mode)
{
int i, j, k, object_cnt = 0;
/* Check every object */
for (i = 0; i < max_k_idx; i++)
{
- /* Access the race */
+ /* Access the object */
object_kind *k_ptr = &k_info[i];
/* Skip empty objects */
if (!k_ptr->name) continue;
- /* Skip non-flavoured objects */
- if (!k_ptr->flavor && !p_ptr->wizard) continue;
+ if (mode & 0x02)
+ {
+ /* Any objects will be displayed */
+ }
+ else
+ {
+ if (!p_ptr->wizard)
+ {
+ /* Skip non-flavoured objects */
+ if (!k_ptr->flavor) continue;
- /* Skip items with no distribution (special artifacts) */
- for (j = 0, k = 0; j < 4; j++) k += k_ptr->chance[j];
- if (!(k)) continue;
+ /* Require objects ever seen */
+ if (!k_ptr->aware) continue;
+ }
- /* Require objects ever seen*/
- if (!k_ptr->aware && !p_ptr->wizard) continue;
+ /* Skip items with no distribution (special artifacts) */
+ for (j = 0, k = 0; j < 4; j++) k += k_ptr->chance[j];
+ if (!k) continue;
+ }
- /* Check for race in the group */
+ /* Check for objects in the group */
if (TV_LIFE_BOOK == group_tval)
{
/* Hack -- All spell books */
- if (TV_LIFE_BOOK <= k_ptr->tval && k_ptr->tval <= TV_HISSATSU_BOOK)
+ if (TV_LIFE_BOOK <= k_ptr->tval && k_ptr->tval <= TV_HEX_BOOK)
{
- /* Add the race */
+ /* Add the object */
object_idx[object_cnt++] = i;
}
+ else continue;
}
else if (k_ptr->tval == group_tval)
{
- /* Add the race */
+ /* Add the object */
object_idx[object_cnt++] = i;
}
+ else continue;
+
+ /* XXX Hack -- Just checking for non-empty group */
+ if (mode & 0x01) break;
}
/* Terminate the list */
- object_idx[object_cnt] = 0;
+ object_idx[object_cnt] = -1;
- /* Return the number of races */
+ /* Return the number of objects */
return object_cnt;
}
/*
* Build a list of feature indexes in the given group. Return the number
* of features in the group.
+ *
+ * mode & 0x01 : check for non-empty group
*/
-static int collect_features(int grp_cur, int *feat_idx)
+static int collect_features(int grp_cur, int *feat_idx, byte mode)
{
int i, feat_cnt = 0;
(void)grp_cur;
/* Check every feature */
- for (i = 1; i < max_f_idx; i++)
+ for (i = 0; i < max_f_idx; i++)
{
/* Access the index */
feature_type *f_ptr = &f_info[i];
/* Add the index */
feat_idx[feat_cnt++] = i;
+
+ /* XXX Hack -- Just checking for non-empty group */
+ if (mode & 0x01) break;
}
/* Terminate the list */
- feat_idx[feat_cnt] = 0;
+ feat_idx[feat_cnt] = -1;
/* Return the number of races */
return feat_cnt;
/* Oops */
if (!fff) {
-#ifdef JP
- msg_format("%s ¤ò³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open %s.", buf);
-#endif
+ msg_format(_("%s を開くことができませんでした。", "Failed to open %s."), buf);
msg_print(NULL);
return;
}
/* Message */
-#ifdef JP
- prt("¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤µ¤ì¤¿²èÌÌ(µÇ°»£±Æ)¤ò¥í¡¼¥É¤·¤Þ¤·¤¿¡£", 0, 0);
-#else
- msg_print("Screen dump loaded.");
-#endif
+ prt(_("ファイルに書き出された画面(記念撮影)をロードしました。", "Screen dump loaded."), 0, 0);
flush();
inkey();
-cptr inven_res_label =
-#ifdef JP
- " »ÀÅŲÐÎäÆǸ÷°ÇÇ˹ì¹ö°øÆÙÎô ÌÕÉÝÍðáãÆ©Ì¿´¶¾ÃÉüÉâ";
-#else
- " AcElFiCoPoLiDkShSoNtNxCaDi BlFeCfFaSeHlEpSdRgLv";
-#endif
+cptr inven_res_label = _(" 酸電火冷毒光闇破轟獄因沌劣 盲怖乱痺透命感消復浮",
+ " AcElFiCoPoLiDkShSoNtNxCaDi BlFeCfFaSeHlEpSdRgLv");
-#ifdef JP
-#define IM_FLAG_STR "¡ö"
-#define HAS_FLAG_STR "¡Ü"
-#define NO_FLAG_STR "¡¦"
-#else
-#define IM_FLAG_STR "* "
-#define HAS_FLAG_STR "+ "
-#define NO_FLAG_STR ". "
-#endif
+#define IM_FLAG_STR _("*", "* ")
+#define HAS_FLAG_STR _("+", "+ ")
+#define NO_FLAG_STR _("・", ". ")
#define print_im_or_res_flag(IM, RES) \
{ \
if (o_ptr->tval != tval) return;
/* Identified items only */
- if (!object_known_p(o_ptr)) return;
+ if (!object_is_known(o_ptr)) return;
/*
* HACK:Ring of Lordly protection and Dragon equipment
* have random resistances.
*/
- if (((TV_WEARABLE_BEGIN <= tval) && (tval <= TV_WEARABLE_END) && o_ptr->name2)
+ if ((object_is_wearable(o_ptr) && object_is_ego(o_ptr))
|| ((tval == TV_AMULET) && (o_ptr->sval == SV_AMULET_RESISTANCE))
|| ((tval == TV_RING) && (o_ptr->sval == SV_RING_LORDLY))
|| ((tval == TV_SHIELD) && (o_ptr->sval == SV_DRAGON_SHIELD))
|| ((tval == TV_HELM) && (o_ptr->sval == SV_DRAGON_HELM))
|| ((tval == TV_GLOVES) && (o_ptr->sval == SV_SET_OF_DRAGON_GLOVES))
|| ((tval == TV_BOOTS) && (o_ptr->sval == SV_PAIR_OF_DRAGON_GREAVE))
- || o_ptr->art_name || o_ptr->name1)
+ || object_is_artifact(o_ptr))
{
int i = 0;
object_desc(o_name, o_ptr, OD_NAME_ONLY);
if (!(o_ptr->ident & (IDENT_MENTAL)))
{
-#ifdef JP
- fputs("-------ÉÔÌÀ--------------- -------ÉÔÌÀ---------\n", fff);
-#else
- fputs("-------unknown------------ -------unknown------\n", fff);
-#endif
+ fputs(_("-------不明--------------- -------不明---------\n",
+ "-------unknown------------ -------unknown------\n"), fff);
}
else
{
print_flag(TR_RES_CONF);
print_flag(TR_FREE_ACT);
print_flag(TR_SEE_INVIS);
- print_flag(TR_HOLD_LIFE);
+ print_flag(TR_HOLD_EXP);
print_flag(TR_TELEPATHY);
print_flag(TR_SLOW_DIGEST);
print_flag(TR_REGEN);
- print_flag(TR_FEATHER);
+ print_flag(TR_LEVITATION);
fputc('\n', fff);
}
fff = my_fopen_temp(file_name, 1024);
if (!fff)
{
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
j = 0;
fprintf(fff, "%s\n", inven_res_label);
}
-
-#ifdef JP
- strcpy(where, "Áõ");
-#else
- strcpy(where, "E ");
-#endif
+ strcpy(where, _("装", "E "));
for (i = INVEN_RARM; i < INVEN_TOTAL; i++)
{
do_cmd_knowledge_inven_aux(fff, &inventory[i], &j, tval, where);
}
-
-#ifdef JP
- strcpy(where, "»ý");
-#else
- strcpy(where, "I ");
-#endif
+ strcpy(where, _("持", "I "));
for (i = 0; i < INVEN_PACK; i++)
{
do_cmd_knowledge_inven_aux(fff, &inventory[i], &j, tval, where);
}
st_ptr = &town[1].store[STORE_HOME];
-#ifdef JP
- strcpy(where, "²È");
-#else
- strcpy(where, "H ");
-#endif
-
+ 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);
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "*´ÕÄê*ºÑ¤ßÉð´ï/Ëɶñ¤ÎÂÑÀ¥ê¥¹¥È", 0, 0);
-#else
- show_file(TRUE, file_name, "Resistances of *identified* equipment", 0, 0);
-#endif
+ show_file(TRUE, file_name, _("*鑑定*済み武器/防具の耐性リスト", "Resistances of *identified* equipment"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Oops */
if (!fff) {
if (message) {
-#ifdef JP
- msg_format("¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£", filename);
-#else
- msg_format("Failed to open file %s.", filename);
-#endif
+ msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), filename);
msg_print(NULL);
}
tmpfff = my_fopen(buf, "r");
if (!tmpfff) {
for (i = 0; html_head[i]; i++)
- fprintf(fff, html_head[i]);
+ fputs(html_head[i], fff);
}
else {
yomikomu = 0;
if (!tmpfff) {
for (i = 0; html_foot[i]; i++)
- fprintf(fff, html_foot[i]);
+ fputs(html_foot[i], fff);
}
else {
rewind(tmpfff);
/* Message */
if (message) {
-#ifdef JP
- msg_print("²èÌÌ(µÇ°»£±Æ)¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Screen dump saved.");
-#endif
+ msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
msg_print(NULL);
}
{
char buf[1024], tmp[256] = "screen.html";
-#ifdef JP
- if (!get_string("¥Õ¥¡¥¤¥ë̾: ", tmp, 80))
-#else
- if (!get_string("File name: ", tmp, 80))
-#endif
+ if (!get_string(_("ファイル名: ", "File name: "), tmp, 80))
return;
/* Build the filename */
int wid, hgt;
-#ifdef JP
- prt("µÇ°»£±Æ¤·¤Þ¤¹¤«¡© [(y)es/(h)tml/(n)o] ", 0, 0);
-#else
- prt("Save screen dump? [(y)es/(h)tml/(n)o] ", 0, 0);
-#endif
+ prt(_("記念撮影しますか? [(y)es/(h)tml/(n)o] ", "Save screen dump? [(y)es/(h)tml/(n)o] "), 0, 0);
while(TRUE)
{
char c = inkey();
/* Oops */
if (!fff)
{
-#ifdef JP
- msg_format("¥Õ¥¡¥¤¥ë %s ¤ò³«¤±¤Þ¤»¤ó¤Ç¤·¤¿¡£", buf);
-#else
- msg_format("Failed to open file %s.", buf);
-#endif
+ msg_format(_("ファイル %s を開けませんでした。", "Failed to open file %s."), buf);
msg_print(NULL);
return;
}
my_fclose(fff);
/* Message */
-#ifdef JP
- msg_print("²èÌÌ(µÇ°»£±Æ)¤ò¥Õ¥¡¥¤¥ë¤Ë½ñ¤½Ð¤·¤Þ¤·¤¿¡£");
-#else
- msg_print("Screen dump saved.");
-#endif
-
+ msg_print(_("画面(記念撮影)をファイルに書き出しました。", "Screen dump saved."));
msg_print(NULL);
-
/* Restore the screen */
screen_load();
}
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
next_o_idx = o_ptr->next_o_idx;
/* Ignore non-artifacts */
- if (!artifact_p(o_ptr)) continue;
+ if (!object_is_fixed_artifact(o_ptr)) continue;
/* Ignore known items */
- if (object_known_p(o_ptr)) continue;
+ if (object_is_known(o_ptr)) continue;
/* Note the artifact */
okay[o_ptr->name1] = FALSE;
if (!o_ptr->k_idx) continue;
/* Ignore non-artifacts */
- if (!artifact_p(o_ptr)) continue;
+ if (!object_is_fixed_artifact(o_ptr)) continue;
/* Ignore known items */
- if (object_known_p(o_ptr)) continue;
+ if (object_is_known(o_ptr)) continue;
/* Note the artifact */
okay[o_ptr->name1] = FALSE;
artifact_type *a_ptr = &a_info[who[k]];
/* Paranoia */
-#ifdef JP
- strcpy(base_name, "̤ÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à");
-#else
- strcpy(base_name, "Unknown Artifact");
-#endif
-
+ strcpy(base_name, _("未知の伝説のアイテム", "Unknown Artifact"));
/* Obtain the base object type */
z = lookup_kind(a_ptr->tval, a_ptr->sval);
}
/* Hack -- Build the artifact name */
-#ifdef JP
- fprintf(fff, " %s\n", base_name);
-#else
- fprintf(fff, " The %s\n", base_name);
-#endif
-
+ fprintf(fff, _(" %s\n", " The %s\n"), base_name);
}
/* Free the "who" array */
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à", 0, 0);
-#else
- show_file(TRUE, file_name, "Artifacts Seen", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("既知の伝説のアイテム", "Artifacts Seen"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/*
* Display known uniques
+ * With "XTRA HACK UNIQHIST" (Originally from XAngband)
*/
static void do_cmd_knowledge_uniques(void)
{
FILE *fff;
- char file_name[1024];
+ char file_name[1024];
+
+ int n_alive[10];
+ int n_alive_surface = 0;
+ int n_alive_over100 = 0;
+ int n_alive_total = 0;
+ int max_lev = -1;
+
+ for (i = 0; i < 10; i++) n_alive[i] = 0;
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
- if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ if (!fff)
+ {
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
for (i = 1; i < max_r_idx; i++)
{
monster_race *r_ptr = &r_info[i];
+ int lev;
- /* Use that monster */
- if (r_ptr->name) who[n++] = i;
+ if (!r_ptr->name) continue;
+
+ /* Require unique monsters */
+ if (!(r_ptr->flags1 & RF1_UNIQUE)) continue;
+
+ /* Only display "known" uniques */
+ if (!cheat_know && !r_ptr->r_sights) continue;
+
+ /* Only print rarity <= 100 uniques */
+ if (!r_ptr->rarity || ((r_ptr->rarity > 100) && !(r_ptr->flags1 & RF1_QUESTOR))) continue;
+
+ /* Only "alive" uniques */
+ if (r_ptr->max_num == 0) continue;
+
+ if (r_ptr->level)
+ {
+ lev = (r_ptr->level - 1) / 10;
+ if (lev < 10)
+ {
+ n_alive[lev]++;
+ if (max_lev < lev) max_lev = lev;
+ }
+ else n_alive_over100++;
+ }
+ else n_alive_surface++;
+
+ /* Collect "appropriate" monsters */
+ who[n++] = i;
}
/* Select the sort method */
/* Sort the array by dungeon depth of monsters */
ang_sort(who, &why, n);
+ if (n_alive_surface)
+ {
+ fprintf(fff, _(" 地上 生存: %3d体\n", " Surface alive: %3d\n"), n_alive_surface);
+ n_alive_total += n_alive_surface;
+ }
+ for (i = 0; i <= max_lev; i++)
+ {
+ fprintf(fff, _("%3d-%3d階 生存: %3d体\n", "Level %3d-%3d alive: %3d\n"), 1 + i * 10, 10 + i * 10, n_alive[i]);
+ n_alive_total += n_alive[i];
+ }
+ if (n_alive_over100)
+ {
+ fprintf(fff, _("101- 階 生存: %3d体\n", "Level 101- alive: %3d\n"), n_alive_over100);
+ n_alive_total += n_alive_over100;
+ }
+
+ if (n_alive_total)
+ {
+ fputs(_("--------- -----------\n", "------------- ----------\n"), fff);
+ fprintf(fff, _(" 合計 生存: %3d体\n\n", " Total alive: %3d\n\n"), n_alive_total);
+ }
+ else
+ {
+ fputs(_("現在は既知の生存ユニークはいません。\n", "No known uniques alive.\n"), fff);
+ }
+
/* Scan the monster races */
for (k = 0; k < n; k++)
{
monster_race *r_ptr = &r_info[who[k]];
- /* Only print Uniques */
- if (r_ptr->flags1 & (RF1_UNIQUE))
- {
- bool dead = (r_ptr->max_num == 0);
-
- if (dead) continue;
-
- /* Only display "known" uniques */
- if (dead || cheat_know || r_ptr->r_sights)
- {
- /* Print a message */
-#ifdef JP
- fprintf(fff, " %s¤Ï¤Þ¤ÀÀ¸¤¤Æ¤¤¤ë¡£\n",
- (r_name + r_ptr->name));
-#else
- fprintf(fff, " %s is alive\n",
- (r_name + r_ptr->name));
-#endif
-
- }
- }
+ /* Print a message */
+ fprintf(fff, _(" %s (レベル%d)\n", " %s (level %d)\n"), r_name + r_ptr->name, r_ptr->level);
}
/* Free the "who" array */
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¤Þ¤ÀÀ¸¤¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼", 0, 0);
-#else
- show_file(TRUE, file_name, "Alive Uniques", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("まだ生きているユニーク・モンスター", "Alive Uniques"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
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);
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "Éð´ï¤Î·Ð¸³ÃÍ", 0, 0);
-#else
- show_file(TRUE, file_name, "Weapon Proficiency", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("武器の経験値", "Weapon Proficiency"), 0, 0);
/* Remove the file */
fd_kill(file_name);
}
-/*
+/*!
+ * @brief 魔法の経験値を表示するコマンドのメインルーチン
* Display spell-exp
+ * @return なし
*/
static void do_cmd_knowledge_spell_exp(void)
{
int i = 0, spell_exp, exp_level;
FILE *fff;
- magic_type *s_ptr;
+ const magic_type *s_ptr;
char file_name[1024];
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
if (p_ptr->realm1 != REALM_NONE)
{
-#ifdef JP
- fprintf(fff, "%s¤ÎËâË¡½ñ\n", realm_names[p_ptr->realm1]);
-#else
- fprintf(fff, "%s Spellbook\n", realm_names[p_ptr->realm1]);
-#endif
+ fprintf(fff, _("%sの魔法書\n", "%s Spellbook\n"), realm_names[p_ptr->realm1]);
for (i = 0; i < 32; i++)
{
if (!is_magic(p_ptr->realm1))
if (s_ptr->slevel >= 99) continue;
spell_exp = p_ptr->spell_exp[i];
exp_level = spell_exp_level(spell_exp);
- fprintf(fff, "%-25s ", spell_names[technic2magic(p_ptr->realm1) - 1][i]);
+ fprintf(fff, "%-25s ", do_spell(p_ptr->realm1, i, SPELL_NAME));
if (p_ptr->realm1 == REALM_HISSATSU)
fprintf(fff, "[--]");
else
if (p_ptr->realm2 != REALM_NONE)
{
-#ifdef JP
- fprintf(fff, "%s¤ÎËâË¡½ñ\n", realm_names[p_ptr->realm2]);
-#else
- fprintf(fff, "\n%s Spellbook\n", realm_names[p_ptr->realm2]);
-#endif
+ fprintf(fff, _("%sの魔法書\n", "\n%s Spellbook\n"), realm_names[p_ptr->realm2]);
for (i = 0; i < 32; i++)
{
if (!is_magic(p_ptr->realm1))
spell_exp = p_ptr->spell_exp[i + 32];
exp_level = spell_exp_level(spell_exp);
- fprintf(fff, "%-25s ", spell_names[technic2magic(p_ptr->realm2) - 1][i]);
+ fprintf(fff, "%-25s ", do_spell(p_ptr->realm2, i, SPELL_NAME));
if (exp_level >= EXP_LEVEL_EXPERT) fprintf(fff, "!");
else fprintf(fff, " ");
fprintf(fff, "%s", exp_level_str[exp_level]);
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "ËâË¡¤Î·Ð¸³ÃÍ", 0, 0);
-#else
- show_file(TRUE, file_name, "Spell Proficiency", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("魔法の経験値", "Spell Proficiency"), 0, 0);
/* Remove the file */
fd_kill(file_name);
}
-/*
+/*!
+ * @brief スキル情報を表示するコマンドのメインルーチン /
* Display skill-exp
+ * @return なし
*/
static void do_cmd_knowledge_skill_exp(void)
{
FILE *fff;
char file_name[1024];
-#ifdef JP
- char skill_name[3][17]={"¥Þ¡¼¥·¥ã¥ë¥¢¡¼¥Ä", "ÆóÅáή ", "¾èÇÏ "};
-#else
- char skill_name[3][20]={"Martial Arts ", "Dual Wielding ", "Riding "};
-#endif
+ char skill_name[3][20]={_("マーシャルアーツ", "Martial Arts "),
+ _("二刀流 ", "Dual Wielding "),
+ _("乗馬 ", "Riding ")};
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "µ»Ç½¤Î·Ð¸³ÃÍ", 0, 0);
-#else
- show_file(TRUE, file_name, "Miscellaneous Proficiency", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("技能の経験値", "Miscellaneous Proficiency"), 0, 0);
/* Remove the file */
fd_kill(file_name);
}
-/*
- * Pluralize a monster name
+/*!
+ * @brief 英単語、句、説を複数形を変換する / Pluralize a monster name
+ * @param Name 変換したい文字列の参照ポインタ
+ * @return なし
*/
void plural_aux(char *Name)
{
}
}
-/*
+/*!
+ * @brief 現在のペットを表示するコマンドのメインルーチン /
* Display current pets
+ * @return なし
*/
static void do_cmd_knowledge_pets(void)
{
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
fprintf(fff, "----------------------------------------------\n");
#ifdef JP
- fprintf(fff, " ¹ç·×: %d ɤ¤Î¥Ú¥Ã¥È\n", t_friends);
- fprintf(fff, " °Ý»ý¥³¥¹¥È: %d%% MP\n", show_upkeep);
+ 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"));
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¸½ºß¤Î¥Ú¥Ã¥È", 0, 0);
-#else
- show_file(TRUE, file_name, "Current Pets", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("現在のペット", "Current Pets"), 0, 0);
/* Remove the file */
fd_kill(file_name);
}
-/*
+/*!
+ * @brief 現在のペットを表示するコマンドのメインルーチン /
* Total kill count
- *
- * Note that the player ghosts are ignored. XXX XXX XXX
+ * @return なし
+ * @note the player ghosts are ignored. XXX XXX XXX
*/
static void do_cmd_knowledge_kill_count(void)
{
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
}
if (Total < 1)
-#ifdef JP
- fprintf(fff,"¤¢¤Ê¤¿¤Ï¤Þ¤ÀŨ¤òÅݤ·¤Æ¤¤¤Ê¤¤¡£\n\n");
-#else
- fprintf(fff,"You have defeated no enemies yet.\n\n");
-#endif
-
- else if (Total == 1)
-#ifdef JP
- fprintf(fff,"¤¢¤Ê¤¿¤Ï°ìɤ¤ÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n");
-#else
- fprintf(fff,"You have defeated one enemy.\n\n");
-#endif
-
+ fprintf(fff,_("あなたはまだ敵を倒していない。\n\n", "You have defeated no enemies yet.\n\n"));
else
#ifdef JP
- fprintf(fff,"¤¢¤Ê¤¿¤Ï %lu ɤ¤ÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n", Total);
+ fprintf(fff,"あなたは%ld体の敵を倒している。\n\n", (long int)Total);
#else
- fprintf(fff,"You have defeated %lu enemies.\n\n", Total);
+ fprintf(fff,"You have defeated %ld %s.\n\n", (long int)Total, (Total == 1) ? "enemy" : "enemies");
#endif
-
}
Total = 0;
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);
+ /* p,tは人と数える by ita */
+ if (my_strchr("pt", r_ptr->d_char))
+ fprintf(fff, " %3d 人の %s\n", This, r_name + r_ptr->name);
else
- fprintf(fff, " %3d ɤ¤Î %s\n", This, r_name + r_ptr->name);
+ fprintf(fff, " %3d 体の %s\n", This, r_name + r_ptr->name);
#else
if (This < 2)
{
fprintf(fff,"----------------------------------------------\n");
#ifdef JP
- fprintf(fff," ¹ç·×: %lu ɤ¤òÅݤ·¤¿¡£\n", Total);
+ fprintf(fff," 合計: %lu 体を倒した。\n", (unsigned long int)Total);
#else
fprintf(fff," Total: %lu creature%s killed.\n",
- Total, (Total == 1 ? "" : "s"));
+ (unsigned long int)Total, (Total == 1 ? "" : "s"));
#endif
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "Åݤ·¤¿Å¨¤Î¿ô", 0, 0);
-#else
- show_file(TRUE, file_name, "Kill Count", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("倒した敵の数", "Kill Count"), 0, 0);
/* Remove the file */
fd_kill(file_name);
}
-/*
+/*!
+ * @brief モンスター情報リスト中のグループを表示する /
* Display the object groups.
+ * @param col 開始行
+ * @param row 開始列
+ * @param wid 表示文字数幅
+ * @param per_page リストの表示行
+ * @param grp_idx グループのID配列
+ * @param group_text グループ名の文字列配列
+ * @param grp_cur 現在の選択ID
+ * @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 byte char_idx = 0;
/* Hack -- for feature lighting */
-static byte attr_idx_feat[F_LIT_MAX] = {0, 0, 0, 0};
-static byte char_idx_feat[F_LIT_MAX] = {0, 0, 0, 0};
+static byte attr_idx_feat[F_LIT_MAX];
+static byte char_idx_feat[F_LIT_MAX];
/*
* Do visual mode command -- Change symbols
*/
-static bool visual_mode_command(char ch, bool *visual_list_ptr,
+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)
return TRUE;
}
-
break;
case '\n':
case 'P':
case 'p':
- if (attr_idx || (!(char_idx & 0x80) && char_idx)) /* Allow ATTR_DARK text */
+ if (attr_idx || (!(char_idx & 0x80) && char_idx)) /* Allow TERM_DARK text */
{
/* Set the char */
*cur_attr_ptr = attr_idx;
if ((ddy[d] > 0) && *attr_top_ptr + height < MIN(0x7f, (a & 0x7f) + 4)) (*attr_top_ptr)++;
return TRUE;
}
-
break;
}
* Display the monsters in a group.
*/
static void display_monster_list(int col, int row, int per_page, s16b mon_idx[],
- int mon_cur, int mon_top)
+ int mon_cur, int mon_top, bool visual_only)
{
int i;
/* Display lines until done */
- for (i = 0; i < per_page && mon_idx[mon_top + i]; i++)
+ for (i = 0; i < per_page && (mon_idx[mon_top + i] >= 0); i++)
{
byte attr;
/* Access the race */
monster_race *r_ptr = &r_info[r_idx];
-
/* Choose a color */
attr = ((i + mon_top == mon_cur) ? TERM_L_BLUE : TERM_WHITE);
/* Hack -- visual_list mode */
if (per_page == 1)
{
- c_prt(attr, format("%02x/%02x", r_ptr->x_attr, r_ptr->x_char), row + i, 60);
+ c_prt(attr, format("%02x/%02x", r_ptr->x_attr, r_ptr->x_char), row + i, (p_ptr->wizard || visual_only) ? 56 : 61);
}
- else if (p_ptr->wizard)
+ if (p_ptr->wizard || visual_only)
{
- c_prt(attr, format("%d", r_idx), row + i, 60);
+ c_prt(attr, format("%d", r_idx), row + i, 62);
}
/* Erase chars before overwritten by the race letter */
Term_erase(69, row + i, 255);
/* Display symbol */
- Term_queue_bigchar(70, row + i, r_ptr->x_attr, r_ptr->x_char, 0, 0);
+ Term_queue_bigchar(use_bigtile ? 69 : 70, row + i, r_ptr->x_attr, r_ptr->x_char, 0, 0);
-
- /* Display kills */
- if (!(r_ptr->flags1 & RF1_UNIQUE)) put_str(format("%5d", r_ptr->r_pkills), row + i, 73);
-#ifdef JP
- else c_put_str((r_ptr->max_num == 0 ? TERM_L_DARK : TERM_WHITE), (r_ptr->max_num == 0 ? "»àË´" : "À¸Â¸"), row + i, 73);
-#else
- else c_put_str((r_ptr->max_num == 0 ? TERM_L_DARK : TERM_WHITE), (r_ptr->max_num == 0 ? "dead" : "alive"), row + i, 73);
-#endif
-
+ if (!visual_only)
+ {
+ /* Display kills */
+ if (!(r_ptr->flags1 & RF1_UNIQUE))
+ put_str(format("%5d", r_ptr->r_pkills), row + i, 73);
+ else
+ c_put_str((r_ptr->max_num == 0 ? TERM_L_DARK : TERM_WHITE),
+ (r_ptr->max_num == 0 ? _("死亡", " dead") : _("生存", "alive")), row + i, 74);
+ }
}
/* Clear remaining lines */
/*
* Display known monsters.
*/
-static void do_cmd_knowledge_monsters(bool *need_redraw)
+static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int direct_r_idx)
{
int i, len, max;
int grp_cur, grp_top, old_grp_cur;
int browser_rows;
int wid, hgt;
+ byte mode;
+
/* Get size */
Term_get_size(&wid, &hgt);
max = 0;
grp_cnt = 0;
- /* Check every group */
- for (i = 0; monster_group_text[i] != NULL; i++)
+ if (direct_r_idx < 0)
{
- /* Measure the label */
- len = strlen(monster_group_text[i]);
+ mode = visual_only ? 0x03 : 0x01;
- /* Save the maximum length */
- if (len > max) max = len;
-
- /* See if any monsters are known */
- if ((monster_group_char[i] == ((char *) -1L)) || collect_monsters(i, mon_idx, 0x01))
+ /* Check every group */
+ for (i = 0; monster_group_text[i] != NULL; i++)
{
- /* Build a list of groups with known monsters */
- grp_idx[grp_cnt++] = i;
+ /* Measure the label */
+ len = strlen(monster_group_text[i]);
+
+ /* Save the maximum length */
+ if (len > max) max = len;
+
+ /* See if any monsters are known */
+ if ((monster_group_char[i] == ((char *) -1L)) || collect_monsters(i, mon_idx, mode))
+ {
+ /* Build a list of groups with known monsters */
+ grp_idx[grp_cnt++] = i;
+ }
}
+
+ mon_cnt = 0;
+ }
+ else
+ {
+ mon_idx[0] = direct_r_idx;
+ mon_cnt = 1;
+
+ /* Terminate the list */
+ mon_idx[1] = -1;
+
+ (void)visual_mode_command('v', &visual_list, browser_rows - 1, wid - (max + 3),
+ &attr_top, &char_left, &r_info[direct_r_idx].x_attr, &r_info[direct_r_idx].x_char, need_redraw);
}
/* Terminate the list */
old_grp_cur = -1;
grp_cur = grp_top = 0;
mon_cur = mon_top = 0;
- mon_cnt = 0;
flag = FALSE;
redraw = TRUE;
+ mode = visual_only ? 0x02 : 0x00;
+
while (!flag)
{
char ch;
if (redraw)
{
clear_from(0);
-
+
#ifdef JP
- prt("Ãμ± - ¥â¥ó¥¹¥¿¡¼", 2, 0);
- prt("¥°¥ë¡¼¥×", 4, 0);
- prt("̾Á°", 4, max + 3);
- if (p_ptr->wizard) prt("Idx", 4, 60);
- prt("ʸ»ú »¦³²¿ô", 4, 67);
+ prt(format("%s - モンスター", !visual_only ? "知識" : "表示"), 2, 0);
+ if (direct_r_idx < 0) prt("グループ", 4, 0);
+ prt("名前", 4, max + 3);
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
+ prt("文字", 4, 67);
+ if (!visual_only) prt("殺害数", 4, 72);
#else
- prt("Knowledge - Monsters", 2, 0);
- prt("Group", 4, 0);
+ 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) prt("Idx", 4, 60);
- prt("Sym Kills", 4, 67);
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
+ prt("Sym", 4, 68);
+ if (!visual_only) prt("Kills", 4, 73);
#endif
for (i = 0; i < 78; i++)
Term_putch(i, 5, TERM_WHITE, '=');
}
- for (i = 0; i < browser_rows; i++)
+ if (direct_r_idx < 0)
{
- Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ for (i = 0; i < browser_rows; i++)
+ {
+ Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ }
}
redraw = FALSE;
}
- /* Scroll group list */
- if (grp_cur < grp_top) grp_top = grp_cur;
- if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
+ if (direct_r_idx < 0)
+ {
+ /* Scroll group list */
+ if (grp_cur < grp_top) grp_top = grp_cur;
+ if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
- /* Display a list of monster groups */
- display_group_list(0, 6, max, browser_rows, grp_idx, monster_group_text, grp_cur, grp_top);
+ /* Display a list of monster groups */
+ display_group_list(0, 6, max, browser_rows, grp_idx, monster_group_text, grp_cur, grp_top);
- if (old_grp_cur != grp_cur)
- {
- old_grp_cur = grp_cur;
+ if (old_grp_cur != grp_cur)
+ {
+ old_grp_cur = grp_cur;
- /* Get a list of monsters in the current group */
- mon_cnt = collect_monsters(grp_idx[grp_cur], mon_idx, 0x00);
- }
+ /* Get a list of monsters in the current group */
+ mon_cnt = collect_monsters(grp_idx[grp_cur], mon_idx, mode);
+ }
- /* Scroll monster list */
- while (mon_cur < mon_top)
- mon_top = MAX(0, mon_top - browser_rows/2);
- while (mon_cur >= mon_top + browser_rows)
- mon_top = MIN(mon_cnt - browser_rows, mon_top + browser_rows/2);
+ /* Scroll monster list */
+ while (mon_cur < mon_top)
+ mon_top = MAX(0, mon_top - browser_rows/2);
+ while (mon_cur >= mon_top + browser_rows)
+ mon_top = MIN(mon_cnt - browser_rows, mon_top + browser_rows/2);
+ }
if (!visual_list)
{
/* Display a list of monsters in the current group */
- display_monster_list(max + 3, 6, browser_rows, mon_idx, mon_cur, mon_top);
+ display_monster_list(max + 3, 6, browser_rows, mon_idx, mon_cur, mon_top, visual_only);
}
else
{
mon_top = mon_cur;
/* Display a monster name */
- display_monster_list(max + 3, 6, 1, mon_idx, mon_cur, mon_top);
+ display_monster_list(max + 3, 6, 1, mon_idx, mon_cur, mon_top, visual_only);
/* Display visual list below first monster */
display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
/* Prompt */
#ifdef JP
- prt(format("<Êý¸þ>, 'r'¤Ç»×¤¤½Ð¤ò¸«¤ë%s%s, ESC", visual_list ? ", ENTER¤Ç·èÄê" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
+ 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("<dir>, 'r' to recall%s%s, ESC", visual_list ? ", ENTER to accept" : ", 'v' for visuals", (attr_idx||char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), hgt - 1, 0);
+ prt(format("<dir>%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"),
+ hgt - 1, 0);
#endif
/* Get the current monster */
r_ptr = &r_info[mon_idx[mon_cur]];
- /* Mega Hack -- track this monster race */
- if (mon_cnt) monster_race_track(mon_idx[mon_cur]);
+ if (!visual_only)
+ {
+ /* Mega Hack -- track this monster race */
+ if (mon_cnt) monster_race_track(mon_idx[mon_cur]);
- /* Hack -- handle stuff */
- handle_stuff();
+ /* Hack -- handle stuff */
+ handle_stuff();
+ }
if (visual_list)
{
ch = inkey();
/* Do visual mode command if needed */
- if (visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &r_ptr->x_attr, &r_ptr->x_char, need_redraw)) continue;
+ if (visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &r_ptr->x_attr, &r_ptr->x_char, need_redraw))
+ {
+ if (direct_r_idx >= 0)
+ {
+ switch (ch)
+ {
+ case '\n':
+ case '\r':
+ case ESCAPE:
+ flag = TRUE;
+ break;
+ }
+ }
+ continue;
+ }
switch (ch)
{
case 'r':
{
/* Recall on screen */
- if (mon_idx[mon_cur])
+ if (!visual_list && !visual_only && (mon_idx[mon_cur] > 0))
{
screen_roff(mon_idx[mon_cur], 0);
(void)inkey();
-
+
redraw = TRUE;
}
break;
* Display the objects in a group.
*/
static void display_object_list(int col, int row, int per_page, int object_idx[],
- int object_cur, int object_top)
+ int object_cur, int object_top, bool visual_only)
{
int i;
/* Display lines until done */
- for (i = 0; i < per_page && object_idx[object_top + i]; i++)
+ for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++)
{
char o_name[80];
byte a, c;
+ object_kind *flavor_k_ptr;
/* Get the object index */
int k_idx = object_idx[object_top + i];
object_kind *k_ptr = &k_info[k_idx];
/* Choose a color */
- byte attr = (k_ptr->aware ? TERM_WHITE : TERM_SLATE);
- byte cursor = (k_ptr->aware ? TERM_L_BLUE : TERM_BLUE);
+ byte attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE);
+ byte cursor = ((k_ptr->aware || visual_only) ? TERM_L_BLUE : TERM_BLUE);
+
+
+ if (!visual_only && k_ptr->flavor)
+ {
+ /* Appearance of this object is shuffled */
+ flavor_k_ptr = &k_info[k_ptr->flavor];
+ }
+ else
+ {
+ /* Appearance of this object is very normal */
+ flavor_k_ptr = k_ptr;
+ }
+
+
attr = ((i + object_top == object_cur) ? cursor : attr);
-
- /* Tidy name */
- strip_name(o_name, k_idx);
+
+ if (!k_ptr->flavor || (!visual_only && k_ptr->aware))
+ {
+ /* Tidy name */
+ strip_name(o_name, k_idx);
+ }
+ else
+ {
+ /* Flavor name */
+ strcpy(o_name, k_name + flavor_k_ptr->flavor_name);
+ }
/* Display the name */
c_prt(attr, o_name, row + i, col);
/* Hack -- visual_list mode */
if (per_page == 1)
{
- c_prt(attr, format("%02x/%02x", k_ptr->x_attr, k_ptr->x_char), row + i, 60);
+ c_prt(attr, format("%02x/%02x", flavor_k_ptr->x_attr, flavor_k_ptr->x_char), row + i, (p_ptr->wizard || visual_only) ? 64 : 68);
}
- else if (p_ptr->wizard)
+ if (p_ptr->wizard || visual_only)
{
- c_prt(attr, format ("%d", k_idx), row + i, 70);
+ c_prt(attr, format("%d", k_idx), row + i, 70);
}
- a = k_ptr->flavor ? misc_to_attr[k_ptr->flavor] : k_ptr->x_attr;
- c = k_ptr->flavor ? misc_to_char[k_ptr->flavor] : k_ptr->x_char;
-
- /* Symbol is unknown */
- if (!k_ptr->aware && !p_ptr->wizard)
- {
- c = ' ';
- a = TERM_DARK;
- }
+ a = flavor_k_ptr->x_attr;
+ c = flavor_k_ptr->x_char;
/* Display symbol */
- Term_queue_bigchar(76, row + i, a, c, 0, 0);
+ Term_queue_bigchar(use_bigtile ? 76 : 77, row + i, a, c, 0, 0);
}
/* Clear remaining lines */
/* Hack -- Handle stuff */
handle_stuff();
- if (!screen_object(o_ptr, FALSE))
+ if (!screen_object(o_ptr, SCROBJ_FAKE_OBJECT | SCROBJ_FORCE_DETAIL))
{
-#ifdef JP
- msg_print("ÆäËÊѤï¤Ã¤¿¤È¤³¤í¤Ï¤Ê¤¤¤è¤¦¤À¡£");
-#else
- msg_print("You see nothing special.");
-#endif
+ msg_print(_("特に変わったところはないようだ。", "You see nothing special."));
msg_print(NULL);
}
}
/*
* Display known objects
*/
-static void do_cmd_knowledge_objects(bool *need_redraw)
+static void do_cmd_knowledge_objects(bool *need_redraw, bool visual_only, int direct_k_idx)
{
int i, len, max;
int grp_cur, grp_top, old_grp_cur;
int browser_rows;
int wid, hgt;
+ byte mode;
+
/* Get size */
Term_get_size(&wid, &hgt);
max = 0;
grp_cnt = 0;
- /* Check every group */
- for (i = 0; object_group_text[i] != NULL; i++)
+ if (direct_k_idx < 0)
{
- /* Measure the label */
- len = strlen(object_group_text[i]);
+ mode = visual_only ? 0x03 : 0x01;
+
+ /* Check every group */
+ for (i = 0; object_group_text[i] != NULL; i++)
+ {
+ /* Measure the label */
+ len = strlen(object_group_text[i]);
+
+ /* Save the maximum length */
+ if (len > max) max = len;
+
+ /* See if any monsters are known */
+ if (collect_objects(i, object_idx, mode))
+ {
+ /* Build a list of groups with known monsters */
+ grp_idx[grp_cnt++] = i;
+ }
+ }
- /* Save the maximum length */
- if (len > max) max = len;
+ object_old = -1;
+ object_cnt = 0;
+ }
+ else
+ {
+ object_kind *k_ptr = &k_info[direct_k_idx];
+ object_kind *flavor_k_ptr;
- /* See if any monsters are known */
- if (collect_objects(i, object_idx))
+ if (!visual_only && k_ptr->flavor)
+ {
+ /* Appearance of this object is shuffled */
+ flavor_k_ptr = &k_info[k_ptr->flavor];
+ }
+ else
{
- /* Build a list of groups with known monsters */
- grp_idx[grp_cnt++] = i;
+ /* Appearance of this object is very normal */
+ flavor_k_ptr = k_ptr;
}
+
+ object_idx[0] = direct_k_idx;
+ object_old = direct_k_idx;
+ object_cnt = 1;
+
+ /* Terminate the list */
+ object_idx[1] = -1;
+
+ (void)visual_mode_command('v', &visual_list, browser_rows - 1, wid - (max + 3),
+ &attr_top, &char_left, &flavor_k_ptr->x_attr, &flavor_k_ptr->x_char, need_redraw);
}
/* Terminate the list */
old_grp_cur = -1;
grp_cur = grp_top = 0;
object_cur = object_top = 0;
- object_old = -1;
- object_cnt = 0;
flag = FALSE;
redraw = TRUE;
+ mode = visual_only ? 0x02 : 0x00;
+
while (!flag)
{
char ch;
- object_kind *k_ptr;
+ object_kind *k_ptr, *flavor_k_ptr;
if (redraw)
{
clear_from(0);
-
+
#ifdef JP
- prt("Ãμ± - ¥¢¥¤¥Æ¥à", 2, 0);
- prt("¥°¥ë¡¼¥×", 4, 0);
- prt("̾Á°", 4, max + 3);
- if (p_ptr->wizard) prt("Idx", 4, 70);
- prt("ʸ»ú", 4, 75);
+ prt(format("%s - アイテム", !visual_only ? "知識" : "表示"), 2, 0);
+ if (direct_k_idx < 0) prt("グループ", 4, 0);
+ prt("名前", 4, max + 3);
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 70);
+ prt("文字", 4, 74);
#else
- prt("Knowledge - objects", 2, 0);
- prt("Group", 4, 0);
+ prt(format("%s - objects", !visual_only ? "Knowledge" : "Visuals"), 2, 0);
+ if (direct_k_idx < 0) prt("Group", 4, 0);
prt("Name", 4, max + 3);
- if (p_ptr->wizard) prt("Idx", 4, 70);
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 70);
prt("Sym", 4, 75);
#endif
Term_putch(i, 5, TERM_WHITE, '=');
}
- for (i = 0; i < browser_rows; i++)
+ if (direct_k_idx < 0)
{
- Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ for (i = 0; i < browser_rows; i++)
+ {
+ Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ }
}
redraw = FALSE;
}
- /* Scroll group list */
- if (grp_cur < grp_top) grp_top = grp_cur;
- if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
+ if (direct_k_idx < 0)
+ {
+ /* Scroll group list */
+ if (grp_cur < grp_top) grp_top = grp_cur;
+ if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
- /* Display a list of object groups */
- display_group_list(0, 6, max, browser_rows, grp_idx, object_group_text, grp_cur, grp_top);
+ /* Display a list of object groups */
+ display_group_list(0, 6, max, browser_rows, grp_idx, object_group_text, grp_cur, grp_top);
- if (old_grp_cur != grp_cur)
- {
- old_grp_cur = grp_cur;
+ if (old_grp_cur != grp_cur)
+ {
+ old_grp_cur = grp_cur;
- /* Get a list of objects in the current group */
- object_cnt = collect_objects(grp_idx[grp_cur], object_idx);
- }
+ /* Get a list of objects in the current group */
+ object_cnt = collect_objects(grp_idx[grp_cur], object_idx, mode);
+ }
- /* Scroll object list */
- while (object_cur < object_top)
- object_top = MAX(0, object_top - browser_rows/2);
- while (object_cur >= object_top + browser_rows)
- object_top = MIN(object_cnt - browser_rows, object_top + browser_rows/2);
+ /* Scroll object list */
+ while (object_cur < object_top)
+ object_top = MAX(0, object_top - browser_rows/2);
+ while (object_cur >= object_top + browser_rows)
+ object_top = MIN(object_cnt - browser_rows, object_top + browser_rows/2);
+ }
if (!visual_list)
{
/* Display a list of objects in the current group */
- display_object_list(max + 3, 6, browser_rows, object_idx, object_cur, object_top);
+ display_object_list(max + 3, 6, browser_rows, object_idx, object_cur, object_top, visual_only);
}
else
{
object_top = object_cur;
/* Display a list of objects in the current group */
- display_object_list(max + 3, 6, 1, object_idx, object_cur, object_top);
+ display_object_list(max + 3, 6, 1, object_idx, object_cur, object_top, visual_only);
/* Display visual list below first object */
display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
/* Get the current object */
k_ptr = &k_info[object_idx[object_cur]];
- /* Mega Hack -- track this object */
- if (object_cnt) object_kind_track(object_idx[object_cur]);
+ if (!visual_only && k_ptr->flavor)
+ {
+ /* Appearance of this object is shuffled */
+ flavor_k_ptr = &k_info[k_ptr->flavor];
+ }
+ else
+ {
+ /* Appearance of this object is very normal */
+ flavor_k_ptr = k_ptr;
+ }
/* Prompt */
#ifdef JP
- prt(format("<Êý¸þ>, 'r'¤Ç¾ÜºÙ¤ò¸«¤ë%s%s, ESC", k_ptr->flavor ? "" : visual_list ? ", ENTER¤Ç·èÄê" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
+ 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("<dir>, 'r' to recall%s%s, ESC", k_ptr->flavor ? "" : visual_list ? ", ENTER to accept" : ", 'v' for visuals", (attr_idx||char_idx) ? ", 'c', 'p' to paste" : ", 'c' to copy"), hgt - 1, 0);
+ prt(format("<dir>%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"),
+ hgt - 1, 0);
#endif
- /* The "current" object changed */
- if (object_old != object_idx[object_cur])
+ if (!visual_only)
{
- /* Hack -- handle stuff */
- handle_stuff();
+ /* Mega Hack -- track this object */
+ if (object_cnt) object_kind_track(object_idx[object_cur]);
+
+ /* The "current" object changed */
+ if (object_old != object_idx[object_cur])
+ {
+ /* Hack -- handle stuff */
+ handle_stuff();
- /* Remember the "current" object */
- object_old = object_idx[object_cur];
+ /* Remember the "current" object */
+ object_old = object_idx[object_cur];
+ }
}
if (visual_list)
{
- place_visual_list_cursor(max + 3, 7, k_ptr->x_attr, k_ptr->x_char, attr_top, char_left);
+ place_visual_list_cursor(max + 3, 7, flavor_k_ptr->x_attr, flavor_k_ptr->x_char, attr_top, char_left);
}
else if (!column)
{
ch = inkey();
/* Do visual mode command if needed */
- /* Symbol of objects with flavor cannot be changed */
- if (!k_ptr->flavor && visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &k_ptr->x_attr, &k_ptr->x_char, need_redraw)) continue;
+ if (visual_mode_command(ch, &visual_list, browser_rows-1, wid - (max + 3), &attr_top, &char_left, &flavor_k_ptr->x_attr, &flavor_k_ptr->x_char, need_redraw))
+ {
+ if (direct_k_idx >= 0)
+ {
+ switch (ch)
+ {
+ case '\n':
+ case '\r':
+ case ESCAPE:
+ flag = TRUE;
+ break;
+ }
+ }
+ continue;
+ }
switch (ch)
{
case 'r':
{
/* Recall on screen */
- if (grp_cnt > 0)
+ if (!visual_list && !visual_only && (grp_cnt > 0))
+ {
desc_obj_fake(object_idx[object_cur]);
-
- redraw = TRUE;
+ redraw = TRUE;
+ }
break;
}
* 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, int lighting_level)
+ int feat_cur, int feat_top, bool visual_only, int lighting_level)
{
- int i;
- int col2 = 67;
- int col3 = 69;
- int col4 = 71;
+ int lit_col[F_LIT_MAX], i, j;
+ int f_idx_col = use_bigtile ? 62 : 64;
/* Correct columns 1 and 4 */
- if (use_bigtile)
- {
- col2++; col3 += 2; col4 += 3;
- }
+ lit_col[F_LIT_STANDARD] = use_bigtile ? (71 - F_LIT_MAX) : 71;
+ for (i = F_LIT_NS_BEGIN; i < F_LIT_MAX; i++)
+ lit_col[i] = lit_col[F_LIT_STANDARD] + 2 + (i - F_LIT_NS_BEGIN) * 2 + (use_bigtile ? i : 0);
/* Display lines until done */
- for (i = 0; i < per_page && feat_idx[feat_top + i]; i++)
+ for (i = 0; i < per_page && (feat_idx[feat_top + i] >= 0); i++)
{
byte attr;
/* Access the index */
feature_type *f_ptr = &f_info[f_idx];
+ int row_i = row + i;
+
/* Choose a color */
attr = ((i + feat_top == feat_cur) ? TERM_L_BLUE : TERM_WHITE);
/* Display the name */
- c_prt(attr, f_name + f_ptr->name, row + i, col);
+ c_prt(attr, f_name + f_ptr->name, row_i, col);
/* Hack -- visual_list mode */
if (per_page == 1)
{
/* Display lighting level */
- c_prt(attr, format("(%s)", lighting_level_str[lighting_level]), row + i, col + 1 + strlen(f_name + f_ptr->name));
+ c_prt(attr, format("(%s)", lighting_level_str[lighting_level]), row_i, col + 1 + strlen(f_name + f_ptr->name));
- c_prt(attr, format("%02x/%02x", f_ptr->x_attr[lighting_level], f_ptr->x_char[lighting_level]), row + i, 56);
+ c_prt(attr, format("%02x/%02x", f_ptr->x_attr[lighting_level], f_ptr->x_char[lighting_level]), row_i, f_idx_col - ((p_ptr->wizard || visual_only) ? 6 : 2));
+ }
+ if (p_ptr->wizard || visual_only)
+ {
+ c_prt(attr, format("%d", f_idx), row_i, f_idx_col);
}
/* Display symbol */
- Term_queue_bigchar(65, row + i, f_ptr->x_attr[F_LIT_STANDARD], f_ptr->x_char[F_LIT_STANDARD], 0, 0);
-
- Term_putch(col2, row + i, TERM_SLATE, '(');
- Term_putch(col3, row + i, TERM_SLATE, '/');
- Term_putch(col4, row + i, TERM_SLATE, '/');
- Term_putch(col4 + (use_bigtile ? 3 : 2), row + i, TERM_SLATE, ')');
+ Term_queue_bigchar(lit_col[F_LIT_STANDARD], row_i, f_ptr->x_attr[F_LIT_STANDARD], f_ptr->x_char[F_LIT_STANDARD], 0, 0);
- /* Mega-hack */
-
- /* Use lightened colour */
- Term_queue_bigchar(col2 + 1, row + i, f_ptr->x_attr[F_LIT_LITE], f_ptr->x_char[F_LIT_LITE], 0, 0);
-
- /* Use darkened colour */
- Term_queue_bigchar(col3 + 1, row + i, f_ptr->x_attr[F_LIT_DARK], f_ptr->x_char[F_LIT_DARK], 0, 0);
+ Term_putch(lit_col[F_LIT_NS_BEGIN], row_i, TERM_SLATE, '(');
+ for (j = F_LIT_NS_BEGIN + 1; j < F_LIT_MAX; j++)
+ {
+ Term_putch(lit_col[j], row_i, TERM_SLATE, '/');
+ }
+ Term_putch(lit_col[F_LIT_MAX - 1] + (use_bigtile ? 3 : 2), row_i, TERM_SLATE, ')');
- /* Use darkly darkened colour */
- Term_queue_bigchar(col4 + 1, row + i, f_ptr->x_attr[F_LIT_DARKDARK], f_ptr->x_char[F_LIT_DARKDARK], 0, 0);
+ /* Mega-hack -- Use non-standard colour */
+ for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
+ {
+ Term_queue_bigchar(lit_col[j] + 1, row_i, f_ptr->x_attr[j], f_ptr->x_char[j], 0, 0);
+ }
}
/* Clear remaining lines */
/*
* Interact with feature visuals.
*/
-static void do_cmd_knowledge_features(bool *need_redraw)
+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 browser_rows;
int wid, hgt;
- byte attr_old[F_LIT_MAX] = {0, 0, 0, 0};
- byte char_old[F_LIT_MAX] = {0, 0, 0, 0};
+ byte attr_old[F_LIT_MAX];
+ byte char_old[F_LIT_MAX];
byte *cur_attr_ptr, *cur_char_ptr;
- int lighting_level = F_LIT_STANDARD;
+
+ (void)C_WIPE(attr_old, F_LIT_MAX, byte);
+ (void)C_WIPE(char_old, F_LIT_MAX, byte);
/* Get size */
Term_get_size(&wid, &hgt);
max = 0;
grp_cnt = 0;
- /* Check every group */
- for (i = 0; feature_group_text[i] != NULL; i++)
+ if (direct_f_idx < 0)
+ {
+ /* Check every group */
+ for (i = 0; feature_group_text[i] != NULL; i++)
+ {
+ /* Measure the label */
+ len = strlen(feature_group_text[i]);
+
+ /* Save the maximum length */
+ if (len > max) max = len;
+
+ /* See if any features are known */
+ if (collect_features(i, feat_idx, 0x01))
+ {
+ /* Build a list of groups with known features */
+ grp_idx[grp_cnt++] = i;
+ }
+ }
+
+ feat_cnt = 0;
+ }
+ else
{
- /* Measure the label */
- len = strlen(feature_group_text[i]);
+ feature_type *f_ptr = &f_info[direct_f_idx];
+
+ feat_idx[0] = direct_f_idx;
+ feat_cnt = 1;
- /* Save the maximum length */
- if (len > max) max = len;
+ /* Terminate the list */
+ feat_idx[1] = -1;
- /* See if any features are known */
- if (collect_features(i, feat_idx))
+ (void)visual_mode_command('v', &visual_list, browser_rows - 1, wid - (max + 3),
+ &attr_top, &char_left, &f_ptr->x_attr[*lighting_level], &f_ptr->x_char[*lighting_level], need_redraw);
+
+ for (i = 0; i < F_LIT_MAX; i++)
{
- /* Build a list of groups with known features */
- grp_idx[grp_cnt++] = i;
+ attr_old[i] = f_ptr->x_attr[i];
+ char_old[i] = f_ptr->x_char[i];
}
}
old_grp_cur = -1;
grp_cur = grp_top = 0;
feat_cur = feat_top = 0;
- feat_cnt = 0;
flag = FALSE;
redraw = TRUE;
- while ((!flag) && (grp_cnt))
+ while (!flag)
{
char ch;
feature_type *f_ptr;
clear_from(0);
#ifdef JP
- prt("ɽ¼¨ - ÃÏ·Á", 2, 0);
- prt("¥°¥ë¡¼¥×", 4, 0);
- prt("̾Á°", 4, max + 3);
- if (use_bigtile) prt("ʸ»ú ( l/ d/ D)", 4, 63);
- else prt("ʸ»ú (l/d/D)", 4, 62);
+ prt("表示 - 地形", 2, 0);
+ if (direct_f_idx < 0) prt("グループ", 4, 0);
+ prt("名前", 4, max + 3);
+ if (use_bigtile)
+ {
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
+ prt("文字 ( 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);
- prt("Group", 4, 0);
+ if (direct_f_idx < 0) prt("Group", 4, 0);
prt("Name", 4, max + 3);
- if (use_bigtile) prt("Sym ( l/ d/ D)", 4, 64);
- else prt("Sym (l/d/D)", 4, 63);
+ if (use_bigtile)
+ {
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 62);
+ prt("Sym ( l/ d)", 4, 67);
+ }
+ else
+ {
+ if (p_ptr->wizard || visual_only) prt("Idx", 4, 64);
+ prt("Sym (l/d)", 4, 69);
+ }
#endif
for (i = 0; i < 78; i++)
Term_putch(i, 5, TERM_WHITE, '=');
}
- for (i = 0; i < browser_rows; i++)
+ if (direct_f_idx < 0)
{
- Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ for (i = 0; i < browser_rows; i++)
+ {
+ Term_putch(max + 1, 6 + i, TERM_WHITE, '|');
+ }
}
redraw = FALSE;
}
- /* Scroll group list */
- if (grp_cur < grp_top) grp_top = grp_cur;
- if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
+ if (direct_f_idx < 0)
+ {
+ /* Scroll group list */
+ if (grp_cur < grp_top) grp_top = grp_cur;
+ if (grp_cur >= grp_top + browser_rows) grp_top = grp_cur - browser_rows + 1;
- /* Display a list of feature groups */
- display_group_list(0, 6, max, browser_rows, grp_idx, feature_group_text, grp_cur, grp_top);
+ /* Display a list of feature groups */
+ display_group_list(0, 6, max, browser_rows, grp_idx, feature_group_text, grp_cur, grp_top);
- if (old_grp_cur != grp_cur)
- {
- old_grp_cur = grp_cur;
+ if (old_grp_cur != grp_cur)
+ {
+ old_grp_cur = grp_cur;
- /* Get a list of features in the current group */
- feat_cnt = collect_features(grp_idx[grp_cur], feat_idx);
- }
+ /* Get a list of features in the current group */
+ feat_cnt = collect_features(grp_idx[grp_cur], feat_idx, 0x00);
+ }
- /* Scroll feature list */
- while (feat_cur < feat_top)
- feat_top = MAX(0, feat_top - browser_rows/2);
- while (feat_cur >= feat_top + browser_rows)
- feat_top = MIN(feat_cnt - browser_rows, feat_top + browser_rows/2);
+ /* Scroll feature list */
+ while (feat_cur < feat_top)
+ feat_top = MAX(0, feat_top - browser_rows/2);
+ while (feat_cur >= feat_top + browser_rows)
+ feat_top = MIN(feat_cnt - browser_rows, feat_top + browser_rows/2);
+ }
if (!visual_list)
{
/* Display a list of features in the current group */
- display_feature_list(max + 3, 6, browser_rows, feat_idx, feat_cur, feat_top, F_LIT_STANDARD);
+ display_feature_list(max + 3, 6, browser_rows, feat_idx, feat_cur, feat_top, visual_only, F_LIT_STANDARD);
}
else
{
feat_top = feat_cur;
/* Display a list of features in the current group */
- display_feature_list(max + 3, 6, 1, feat_idx, feat_cur, feat_top, lighting_level);
+ display_feature_list(max + 3, 6, 1, feat_idx, feat_cur, feat_top, visual_only, *lighting_level);
/* Display visual list below first object */
display_visual_list(max + 3, 7, browser_rows-1, wid - (max + 3), attr_top, char_left);
/* Prompt */
#ifdef JP
- prt(format("<Êý¸þ>%s%s, ESC", visual_list ? ", ENTER¤Ç·èÄê, 'a'¤ÇÂоÝÌÀÅÙÊѹ¹" : ", 'v'¤Ç¥·¥ó¥Ü¥ëÊѹ¹", (attr_idx||char_idx) ? ", 'c', 'p'¤Ç¥Ú¡¼¥¹¥È" : ", 'c'¤Ç¥³¥Ô¡¼"), hgt - 1, 0);
+ prt(format("<方向>%s, 'd'で標準光源効果%s, ESC",
+ visual_list ? ", ENTERで決定, 'a'で対象明度変更" : ", 'v'でシンボル変更",
+ (attr_idx || char_idx) ? ", 'c', 'p'でペースト" : ", 'c'でコピー"),
+ hgt - 1, 0);
#else
- prt(format("<dir>%s%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);
+ prt(format("<dir>%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]];
- cur_attr_ptr = &f_ptr->x_attr[lighting_level];
- cur_char_ptr = &f_ptr->x_char[lighting_level];
+ cur_attr_ptr = &f_ptr->x_attr[*lighting_level];
+ cur_char_ptr = &f_ptr->x_char[*lighting_level];
if (visual_list)
{
ch = inkey();
- if ((ch == 'A') && visual_list)
+ if (visual_list && ((ch == 'A') || (ch == 'a')))
{
- if (lighting_level <= F_LIT_STANDARD) lighting_level = F_LIT_DARKDARK;
- else lighting_level--;
- attr_top = MAX(0, (f_ptr->x_attr[lighting_level] & 0x7f) - 5);
- char_left = MAX(0, f_ptr->x_char[lighting_level] - 10);
+ int prev_lighting_level = *lighting_level;
+
+ if (ch == 'A')
+ {
+ if (*lighting_level <= 0) *lighting_level = F_LIT_MAX - 1;
+ else (*lighting_level)--;
+ }
+ else
+ {
+ if (*lighting_level >= F_LIT_MAX - 1) *lighting_level = 0;
+ else (*lighting_level)++;
+ }
+
+ if (f_ptr->x_attr[prev_lighting_level] != f_ptr->x_attr[*lighting_level])
+ attr_top = MAX(0, (f_ptr->x_attr[*lighting_level] & 0x7f) - 5);
+
+ if (f_ptr->x_char[prev_lighting_level] != f_ptr->x_char[*lighting_level])
+ char_left = MAX(0, f_ptr->x_char[*lighting_level] - 10);
+
continue;
}
- else if ((ch == 'a') && visual_list)
+ else if ((ch == 'D') || (ch == 'd'))
{
- if (lighting_level >= F_LIT_DARKDARK) lighting_level = F_LIT_STANDARD;
- else lighting_level++;
- attr_top = MAX(0, (f_ptr->x_attr[lighting_level] & 0x7f) - 5);
- char_left = MAX(0, f_ptr->x_char[lighting_level] - 10);
+ byte 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);
+
+ if (visual_list)
+ {
+ if (prev_x_attr != f_ptr->x_attr[*lighting_level])
+ attr_top = MAX(0, (f_ptr->x_attr[*lighting_level] & 0x7f) - 5);
+
+ if (prev_x_char != f_ptr->x_char[*lighting_level])
+ char_left = MAX(0, f_ptr->x_char[*lighting_level] - 10);
+ }
+ else *need_redraw = TRUE;
+
continue;
}
case '\n':
case '\r':
- lighting_level = F_LIT_STANDARD;
+ if (direct_f_idx >= 0) flag = TRUE;
+ else *lighting_level = F_LIT_STANDARD;
break;
/* Preserve current visual settings */
attr_old[i] = f_ptr->x_attr[i];
char_old[i] = f_ptr->x_char[i];
}
- lighting_level = F_LIT_STANDARD;
+ *lighting_level = F_LIT_STANDARD;
break;
case 'C':
case 'p':
if (!visual_list)
{
- /* Allow ATTR_DARK text */
+ /* Allow TERM_DARK text */
for (i = F_LIT_NS_BEGIN; i < F_LIT_MAX; i++)
{
if (attr_idx_feat[i] || (!(char_idx_feat[i] & 0x80) && char_idx_feat[i])) f_ptr->x_attr[i] = attr_idx_feat[i];
}
}
- /* Prompt */
- if (!grp_cnt) msg_print("No features known.");
-
/* Free the "feat_idx" array */
C_KILL(feat_idx, max_f_idx, int);
}
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
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", (p_ptr->today_mon ? r_name + r_info[p_ptr->today_mon].name : "不明"));
fprintf(fff, "\n");
- 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");
if (!listed)
{
-#ifdef JP
- fprintf(fff,"\n%s\n", "¾Þ¶â¼ó¤Ï¤â¤¦»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£");
-#else
- fprintf(fff,"\n%s\n", "There is no more wanted monster.");
-#endif
+ fprintf(fff,"\n%s\n", _("賞金首はもう残っていません。", "There is no more wanted monster."));
}
}
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¾Þ¶â¼ó¤Î°ìÍ÷", 0, 0);
-#else
- show_file(TRUE, file_name, "Wanted monsters", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("賞金首の一覧", "Wanted monsters"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
if (fff)
{
-#ifdef JP
- fprintf(fff, "¸½ºß¤Î°À : %s\n\n", your_alignment());
-#else
- fprintf(fff, "Your alighnment : %s\n\n", your_alignment());
-#endif
+ fprintf(fff, _("現在の属性 : %s\n\n", "Your alighnment : %s\n\n"), your_alignment());
dump_virtues(fff);
}
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "Ȭ¤Ä¤ÎÆÁ", 0, 0);
-#else
- show_file(TRUE, file_name, "Virtues", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("八つの徳", "Virtues"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
if (!r_info[d_info[i].final_guardian].max_num) seiha = TRUE;
}
else if (max_dlv[i] == d_info[i].maxdepth) seiha = TRUE;
-#ifdef JP
- fprintf(fff,"%c%-12s : %3d ³¬\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
-#else
- fprintf(fff,"%c%-16s : level %3d\n", seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
-#endif
+
+ fprintf(fff, _("%c%-12s : %3d 階\n", "%c%-16s : level %3d\n"), seiha ? '!' : ' ', d_name + d_info[i].name, max_dlv[i]);
}
}
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "º£¤Þ¤Ç¤ËÆþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó", 0, 0);
-#else
- show_file(TRUE, file_name, "Dungeon", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("今までに入ったダンジョン", "Dungeon"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
((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");
+ if (p_ptr->knowledge & KNOW_HPRATE) fprintf(fff, "ç\8f¾å\9c¨ã\81®ä½\93å\8a\9bã\83©ã\83³ã\82¯ : %d/100\n\n", percent);
+ else fprintf(fff, "ç\8f¾å\9c¨ã\81®ä½\93å\8a\9bã\83©ã\83³ã\82¯ : ???\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");
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó", 0, 0);
-#else
- show_file(TRUE, file_name, "HP-rate & Max stat", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("自分に関する情報", "HP-rate & Max stat"), 0, 0);
/* Remove the file */
fd_kill(file_name);
int rand_level = 100;
int total = 0;
-#ifdef JP
- fprintf(fff, "¡Ô¿ë¹ÔÃæ¤Î¥¯¥¨¥¹¥È¡Õ\n");
-#else
- fprintf(fff, "< Current Quest >\n");
-#endif
+ fprintf(fff, _("《遂行中のクエスト》\n", "< Current Quest >\n"));
for (i = 1; i < max_quests; i++)
{
- if ((quest[i].status == QUEST_STATUS_TAKEN) || (quest[i].status == QUEST_STATUS_COMPLETED))
+ 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;
{
char note[80] = "\0";
- if (quest[i].status == QUEST_STATUS_TAKEN)
+ if (quest[i].status == QUEST_STATUS_TAKEN || quest[i].status == QUEST_STATUS_STAGE_COMPLETED)
{
switch (quest[i].type)
{
if (quest[i].max_num > 1)
{
#ifdef JP
- sprintf(note," - %d ÂΤÎ%s¤òÅݤ¹¡£(¤¢¤È %d ÂÎ)",
+ sprintf(note," - %d 体の%sを倒す。(あと %d 体)",
quest[i].max_num, name, quest[i].max_num - quest[i].cur_num);
#else
plural_aux(name);
#endif
}
else
-#ifdef JP
- sprintf(note," - %s¤òÅݤ¹¡£",name);
-#else
- sprintf(note," - kill %s.",name);
-#endif
+ sprintf(note,_(" - %sを倒す。", " - kill %s."),name);
break;
case QUEST_TYPE_FIND_ARTIFACT:
- strcpy(name, a_name + a_info[quest[i].k_idx].name);
-#ifdef JP
- sprintf(note," - %s¤ò¸«¤Ä¤±½Ð¤¹¡£", name);
-#else
- sprintf(note," - Find out %s.", name);
-#endif
+ if (quest[i].k_idx)
+ {
+ 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);
+ object_prep(q_ptr, k_idx);
+ q_ptr->name1 = quest[i].k_idx;
+ q_ptr->ident = IDENT_STORE;
+ object_desc(name, q_ptr, OD_NAME_ONLY);
+ }
+ sprintf(note,_("\n - %sを見つけ出す。", "\n - Find out %s."), name);
break;
-
case QUEST_TYPE_FIND_EXIT:
-#ifdef JP
- sprintf(note," - õº÷¤¹¤ë¡£");
-#else
- sprintf(note," - Search.");
-#endif
+ sprintf(note,_(" - 出口に到達する。", " - Reach to Exit."));
break;
case QUEST_TYPE_KILL_NUMBER:
#ifdef JP
- sprintf(note," - %d ÂΤΥâ¥ó¥¹¥¿¡¼¤òÅݤ¹¡£(¤¢¤È %d ÂÎ)",
+ sprintf(note," - %d 体のモンスターを倒す。(あと %d 体)",
quest[i].max_num, quest[i].max_num - quest[i].cur_num);
#else
sprintf(note," - Kill %d monsters, have killed %d.",
break;
case QUEST_TYPE_KILL_ALL:
-#ifdef JP
- sprintf(note," - Á´¤Æ¤Î¥â¥ó¥¹¥¿¡¼¤òÅݤ¹¡£");
-#else
- sprintf(note," - Kill all monsters.");
-#endif
+ case QUEST_TYPE_TOWER:
+ sprintf(note,_(" - 全てのモンスターを倒す。", " - Kill all monsters."));
break;
}
}
/* Print the quest info */
#ifdef JP
- sprintf(tmp_str, " %s (´í¸±ÅÙ:%d³¬ÁêÅö)%s\n",
+ 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
- fprintf(fff, tmp_str);
+ fputs(tmp_str, fff);
if (quest[i].status == QUEST_STATUS_COMPLETED)
{
-#ifdef JP
- sprintf(tmp_str, " ¥¯¥¨¥¹¥ÈãÀ® - ¤Þ¤ÀÊó½·¤ò¼õ¤±¤È¤Ã¤Æ¤Ê¤¤¡£\n");
-#else
- sprintf(tmp_str, " Quest Completed - Unrewarded\n");
-#endif
- fprintf(fff, tmp_str);
+ sprintf(tmp_str, _(" クエスト達成 - まだ報酬を受けとってない。\n", " Quest Completed - Unrewarded\n"));
+ fputs(tmp_str, fff);
}
else
{
if (quest[i].max_num > 1)
{
#ifdef JP
- sprintf(rand_tmp_str," %s (%d ³¬) - %d ÂΤÎ%s¤òÅݤ¹¡£(¤¢¤È %d ÂÎ)\n",
+ 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);
#else
else
{
#ifdef JP
- sprintf(rand_tmp_str," %s (%d ³¬) - %s¤òÅݤ¹¡£\n",
+ 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",
}
/* Print the current random quest */
- if (rand_tmp_str[0]) fprintf(fff, rand_tmp_str);
+ if (rand_tmp_str[0]) fputs(rand_tmp_str, fff);
-#ifdef JP
- if (!total) fprintf(fff, " ¤Ê¤·\n");
-#else
- if (!total) fprintf(fff, " Nothing.\n");
-#endif
+ if (!total) fprintf(fff, _(" なし\n", " Nothing.\n"));
}
-/*
- * Print all finished quests
- */
-void do_cmd_knowledge_quests_completed(FILE *fff, int quest_num[])
+static bool do_cmd_knowledge_quests_aux(FILE *fff, int q_idx)
{
char tmp_str[120];
- int i;
- int total = 0;
+ char playtime_str[16];
+ quest_type* const q_ptr = &quest[q_idx];
-#ifdef JP
- fprintf(fff, "¡ÔãÀ®¤·¤¿¥¯¥¨¥¹¥È¡Õ\n");
-#else
- fprintf(fff, "< Completed Quest >\n");
-#endif
- for (i = 1; i < max_quests; i++)
+ if (is_fixed_quest_idx(q_idx))
{
- int q_idx = quest_num[i];
+ /* Set the quest number temporary */
+ int old_quest = p_ptr->inside_quest;
- if (quest[q_idx].status == QUEST_STATUS_FINISHED)
- {
- if (is_fixed_quest_idx(q_idx))
- {
- /* Set the quest number temporary */
- int old_quest = p_ptr->inside_quest;
+ p_ptr->inside_quest = q_idx;
- p_ptr->inside_quest = q_idx;
+ /* Get the quest */
+ init_flags = INIT_NAME_ONLY;
- /* Get the quest */
- init_flags = INIT_ASSIGN;
+ process_dungeon_file("q_info.txt", 0, 0, 0, 0);
- process_dungeon_file("q_info.txt", 0, 0, 0, 0);
+ /* Reset the old quest number */
+ p_ptr->inside_quest = old_quest;
- /* Reset the old quest number */
- p_ptr->inside_quest = old_quest;
+ /* No info from "silent" quests */
+ if (q_ptr->flags & QUEST_FLAG_SILENT) return FALSE;
+ }
- /* No info from "silent" quests */
- if (quest[q_idx].flags & QUEST_FLAG_SILENT) continue;
- }
+ strnfmt(playtime_str, sizeof(playtime_str), "%02d:%02d:%02d",
+ q_ptr->comptime/(60*60), (q_ptr->comptime/60)%60, q_ptr->comptime%60);
- total++;
+ if (!is_fixed_quest_idx(q_idx) && q_ptr->r_idx)
+ {
+ /* Print the quest info */
+ if (q_ptr->complev == 0)
+ {
+ sprintf(tmp_str,
+ _(" %-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);
+ }
+ else
+ {
+ sprintf(tmp_str,
+ _(" %-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,
+ q_ptr->complev,
+ playtime_str);
+ }
+ }
+ else
+ {
+ /* Print the quest info */
+ 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);
+ }
- if (!is_fixed_quest_idx(q_idx) && quest[q_idx].r_idx)
- {
- /* Print the quest info */
+ fputs(tmp_str, fff);
- if (quest[q_idx].complev == 0)
- {
- sprintf(tmp_str,
-#ifdef JP
- " %-40s (%3d³¬) - ÉÔÀᄀ\n",
-#else
- " %-40s (Dungeon level: %3d) - (Cancelled)\n",
-#endif
- r_name+r_info[quest[q_idx].r_idx].name,
- quest[q_idx].level);
- }
- else
- {
- sprintf(tmp_str,
-#ifdef JP
- " %-40s (%3d³¬) - ¥ì¥Ù¥ë%2d\n",
-#else
- " %-40s (Dungeon level: %3d) - level %2d\n",
-#endif
- r_name+r_info[quest[q_idx].r_idx].name,
- quest[q_idx].level,
- quest[q_idx].complev);
- }
- }
- else
- {
- /* Print the quest info */
-#ifdef JP
- sprintf(tmp_str, " %-40s (´í¸±ÅÙ:%3d³¬ÁêÅö) - ¥ì¥Ù¥ë%2d\n",
- quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#else
- sprintf(tmp_str, " %-40s (Danger level: %3d) - level %2d\n",
- quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#endif
- }
+ return TRUE;
+}
+
+/*
+ * Print all finished quests
+ */
+void do_cmd_knowledge_quests_completed(FILE *fff, int 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];
+ quest_type* const q_ptr = &quest[q_idx];
- fprintf(fff, tmp_str);
+ if (q_ptr->status == QUEST_STATUS_FINISHED &&
+ do_cmd_knowledge_quests_aux(fff, q_idx))
+ {
+ ++ total;
}
}
-#ifdef JP
- if (!total) fprintf(fff, " ¤Ê¤·\n");
-#else
- if (!total) fprintf(fff, " Nothing.\n");
-#endif
+ if (!total) fprintf(fff, _(" なし\n", " Nothing.\n"));
}
*/
void do_cmd_knowledge_quests_failed(FILE *fff, int quest_num[])
{
- char tmp_str[120];
int i;
int total = 0;
-#ifdef JP
- fprintf(fff, "¡Ô¼ºÇÔ¤·¤¿¥¯¥¨¥¹¥È¡Õ\n");
-#else
- fprintf(fff, "< Failed Quest >\n");
-#endif
+ fprintf(fff, _("《失敗したクエスト》\n", "< Failed Quest >\n"));
for (i = 1; i < max_quests; i++)
{
int q_idx = quest_num[i];
+ quest_type* const q_ptr = &quest[q_idx];
- if ((quest[q_idx].status == QUEST_STATUS_FAILED_DONE) || (quest[q_idx].status == QUEST_STATUS_FAILED))
+ if (((q_ptr->status == QUEST_STATUS_FAILED_DONE) || (q_ptr->status == QUEST_STATUS_FAILED)) &&
+ do_cmd_knowledge_quests_aux(fff, q_idx))
{
- if (is_fixed_quest_idx(q_idx))
- {
- /* Set the quest number temporary */
- int old_quest = p_ptr->inside_quest;
-
- p_ptr->inside_quest = q_idx;
-
- /* Get the quest text */
- init_flags = INIT_ASSIGN;
-
- process_dungeon_file("q_info.txt", 0, 0, 0, 0);
-
- /* Reset the old quest number */
- p_ptr->inside_quest = old_quest;
-
- /* No info from "silent" quests */
- if (quest[q_idx].flags & QUEST_FLAG_SILENT) continue;
- }
-
- total++;
-
- if (!is_fixed_quest_idx(q_idx) && quest[q_idx].r_idx)
- {
- /* Print the quest info */
-#ifdef JP
- sprintf(tmp_str, " %-40s (%3d³¬) - ¥ì¥Ù¥ë%2d\n",
- r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#else
- sprintf(tmp_str, " %-40s (Dungeon level: %3d) - level %2d\n",
- r_name+r_info[quest[q_idx].r_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#endif
- }
- else
- {
- /* Print the quest info */
-#ifdef JP
- sprintf(tmp_str, " %-40s (´í¸±ÅÙ:%3d³¬ÁêÅö) - ¥ì¥Ù¥ë%2d\n",
- quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#else
- sprintf(tmp_str, " %-40s (Danger level: %3d) - level %2d\n",
- quest[q_idx].name, quest[q_idx].level, quest[q_idx].complev);
-#endif
- }
- fprintf(fff, tmp_str);
+ ++ total;
}
}
-#ifdef JP
- if (!total) fprintf(fff, " ¤Ê¤·\n");
-#else
- if (!total) fprintf(fff, " Nothing.\n");
-#endif
+ if (!total) fprintf(fff, _(" なし\n", " Nothing.\n"));
}
int i;
int total = 0;
-#ifdef JP
- fprintf(fff, "¡Ô»Ä¤ê¤Î¥é¥ó¥À¥à¥¯¥¨¥¹¥È¡Õ\n");
-#else
- fprintf(fff, "< Remaining Random Quest >\n");
-#endif
+ fprintf(fff, _("《残りのランダムクエスト》\n", "< Remaining Random Quest >\n"));
for (i = 1; i < max_quests; i++)
{
/* No info from "silent" quests */
/* Print the quest info */
#ifdef JP
- sprintf(tmp_str, " %s (%d³¬, %s)\n",
+ 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
- fprintf(fff, tmp_str);
+ fputs(tmp_str, fff);
}
}
-#ifdef JP
- if (!total) fprintf(fff, " ¤Ê¤·\n");
-#else
- if (!total) fprintf(fff, " Nothing.\n");
-#endif
+ if (!total) fprintf(fff, _(" なし\n", " Nothing.\n"));
}
/* Unused */
(void)v;
- if (qa->complev < qb->complev) return TRUE;
- if (qa->complev > qb->complev) return FALSE;
- if (qa->level <= qb->level) return TRUE;
- return FALSE;
+ return (qa->comptime <= qb->comptime);
}
void ang_sort_swap_quest_num(vptr u, vptr v, int a, int b)
fff = my_fopen_temp(file_name, 1024);
if (!fff)
{
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¥¯¥¨¥¹¥ÈãÀ®¾õ¶·", 0, 0);
-#else
- show_file(TRUE, file_name, "Quest status", 0, 0);
-#endif
+ show_file(TRUE, file_name, _("クエスト達成状況", "Quest status"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Open a new file */
fff = my_fopen_temp(file_name, 1024);
if (!fff) {
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
int x = 1;
#endif
/* Header with name of the town */
-#ifdef JP
- fprintf(fff, " [ ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à ]\n");
-#else
- fprintf(fff, " [Home Inventory]\n");
-#endif
+ fprintf(fff, _(" [ 我が家のアイテム ]\n", " [Home Inventory]\n"));
/* Dump all available items */
for (i = 0; i < st_ptr->stock_num; i++)
{
#ifdef JP
- if ((i % 12) == 0) fprintf(fff, "\n ( %d ¥Ú¡¼¥¸ )\n", x++);
+ if ((i % 12) == 0) fprintf(fff, "\n ( %d ã\83\9aã\83¼ã\82¸ )\n", x++);
object_desc(o_name, &st_ptr->stock[i], 0);
if (strlen(o_name) <= 80-3)
{
char *t;
for (n = 0, t = o_name; n < 80-3; n++, t++)
if(iskanji(*t)) {t++; n++;}
- if (n == 81-3) n = 79-3; /* ºÇ¸å¤¬´Á»úȾʬ */
+ if (n == 81-3) n = 79-3; /* 最後が漢字半分 */
fprintf(fff, "%c%s %.*s\n", I2A(i%12), paren, n, o_name);
fprintf(fff, " %.77s\n", o_name+n);
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "²æ¤¬²È¤Î¥¢¥¤¥Æ¥à", 0, 0);
-#else
- show_file(TRUE, file_name, "Home Inventory", 0, 0);
-#endif
-
+ show_file(TRUE, file_name, _("我が家のアイテム", "Home Inventory"), 0, 0);
/* Remove the file */
fd_kill(file_name);
if (!fff)
{
-#ifdef JP
- msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name);
-#else
- msg_format("Failed to create temporary file %s.", file_name);
-#endif
+ msg_format(_("一時ファイル %s を作成できませんでした。", "Failed to create temporary file %s."), file_name);
msg_print(NULL);
return;
}
if (!max_autopick)
{
-#ifdef JP
- fprintf(fff, "¼«Æ°Ç˲õ/½¦¤¤¤Ë¤Ï²¿¤âÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£");
-#else
- fprintf(fff, "No preference for auto picker/destroyer.");
-#endif
+ fprintf(fff, _("自動破壊/拾いには何も登録されていません。", "No preference for auto picker/destroyer."));
}
else
{
-#ifdef JP
- fprintf(fff, " ¼«Æ°½¦¤¤/Ç˲õ¤Ë¤Ï¸½ºß %d¹ÔÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£\n\n", max_autopick);
-#else
- fprintf(fff, " There are %d registered lines for auto picker/destroyer.\n\n", max_autopick);
-#endif
+ fprintf(fff, _(" 自動拾い/破壊には現在 %d行登録されています。\n\n",
+ " There are %d registered lines for auto picker/destroyer.\n\n"), max_autopick);
}
for (k = 0; k < max_autopick; k++)
byte act = autopick_list[k].action;
if (act & DONT_AUTOPICK)
{
-#ifdef JP
- tmp = "ÊüÃÖ";
-#else
- tmp = "Leave";
-#endif
+ tmp = _("放置", "Leave");
}
else if (act & DO_AUTODESTROY)
{
-#ifdef JP
- tmp = "Ç˲õ";
-#else
- tmp = "Destroy";
-#endif
+ tmp = _("破壊", "Destroy");
}
else if (act & DO_AUTOPICK)
{
-#ifdef JP
- tmp = "½¦¤¦";
-#else
- tmp = "Pickup";
-#endif
+ tmp = _("拾う", "Pickup");
}
else /* if (act & DO_QUERY_AUTOPICK) */ /* Obvious */
{
-#ifdef JP
- tmp = "³Îǧ";
-#else
- tmp = "Query";
-#endif
+ tmp = _("確認", "Query");
}
if (act & DO_DISPLAY)
/* Close the file */
my_fclose(fff);
/* Display the file contents */
-#ifdef JP
- show_file(TRUE, file_name, "¼«Æ°½¦¤¤/Ç˲õ ÀßÄê¥ê¥¹¥È", 0, 0);
-#else
- show_file(TRUE, file_name, "Auto-picker/Destroyer", 0, 0);
-#endif
+ show_file(TRUE, file_name, _("自動拾い/破壊 設定リスト", "Auto-picker/Destroyer"), 0, 0);
/* Remove the file */
fd_kill(file_name);
/* Ask for a choice */
#ifdef JP
- prt(format("%d/2 ¥Ú¡¼¥¸", (p+1)), 2, 65);
- prt("¸½ºß¤ÎÃ챤ò³Îǧ¤¹¤ë", 3, 0);
+ prt(format("%d/2 ã\83\9aã\83¼ã\82¸", (p+1)), 2, 65);
+ prt("現在の知識を確認する", 3, 0);
#else
prt(format("page %d/2", (p+1)), 2, 65);
prt("Display current knowledge", 3, 0);
#ifdef JP
if (p == 0)
{
- prt("(1) ´ûÃΤÎÅÁÀâ¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 6, 5);
- prt("(2) ´ûÃΤΥ¢¥¤¥Æ¥à ¤Î°ìÍ÷", 7, 5);
- prt("(3) ´ûÃΤÎÀ¸¤¤Æ¤¤¤ë¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 8, 5);
- prt("(4) ´ûÃΤΥâ¥ó¥¹¥¿¡¼ ¤Î°ìÍ÷", 9, 5);
- prt("(5) Åݤ·¤¿Å¨¤Î¿ô ¤Î°ìÍ÷", 10, 5);
- if (!vanilla_town) prt("(6) ¾Þ¶â¼ó ¤Î°ìÍ÷", 11, 5);
- prt("(7) ¸½ºß¤Î¥Ú¥Ã¥È ¤Î°ìÍ÷", 12, 5);
- prt("(8) ²æ¤¬²È¤Î¥¢¥¤¥Æ¥à ¤Î°ìÍ÷", 13, 5);
- prt("(9) *´ÕÄê*ºÑ¤ßÁõÈ÷¤ÎÂÑÀ ¤Î°ìÍ÷", 14, 5);
- prt("(0) ÃÏ·Á¤Îɽ¼¨Ê¸»ú/¥¿¥¤¥ë ¤Î°ìÍ÷", 15, 5);
+ prt("(1) 既知の伝説のアイテム の一覧", 6, 5);
+ prt("(2) 既知のアイテム の一覧", 7, 5);
+ prt("(3) 既知の生きているユニーク・モンスター の一覧", 8, 5);
+ prt("(4) 既知のモンスター の一覧", 9, 5);
+ prt("(5) 倒した敵の数 の一覧", 10, 5);
+ if (!vanilla_town) prt("(6) 賞金首 の一覧", 11, 5);
+ prt("(7) 現在のペット の一覧", 12, 5);
+ prt("(8) 我が家のアイテム の一覧", 13, 5);
+ prt("(9) *鑑定*済み装備の耐性 の一覧", 14, 5);
+ prt("(0) 地形の表示文字/タイル の一覧", 15, 5);
}
else
{
- prt("(a) ¼«Ê¬¤Ë´Ø¤¹¤ë¾ðÊó ¤Î°ìÍ÷", 6, 5);
- prt("(b) ÆÍÁ³ÊÑ°Û ¤Î°ìÍ÷", 7, 5);
- prt("(c) Éð´ï¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 8, 5);
- prt("(d) ËâË¡¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 9, 5);
- prt("(e) µ»Ç½¤Î·Ð¸³ÃÍ ¤Î°ìÍ÷", 10, 5);
- prt("(f) ¥×¥ì¥¤¥ä¡¼¤ÎÆÁ ¤Î°ìÍ÷", 11, 5);
- prt("(g) Æþ¤Ã¤¿¥À¥ó¥¸¥ç¥ó ¤Î°ìÍ÷", 12, 5);
- prt("(h) ¼Â¹ÔÃæ¤Î¥¯¥¨¥¹¥È ¤Î°ìÍ÷", 13, 5);
- prt("(i) ¸½ºß¤Î¼«Æ°½¦¤¤/Ç˲õÀßÄê ¤Î°ìÍ÷", 14, 5);
+ prt("(a) 自分に関する情報 の一覧", 6, 5);
+ prt("(b) 突然変異 の一覧", 7, 5);
+ prt("(c) 武器の経験値 の一覧", 8, 5);
+ prt("(d) 魔法の経験値 の一覧", 9, 5);
+ prt("(e) 技能の経験値 の一覧", 10, 5);
+ prt("(f) プレイヤーの徳 の一覧", 11, 5);
+ prt("(g) 入ったダンジョン の一覧", 12, 5);
+ prt("(h) 実行中のクエスト の一覧", 13, 5);
+ prt("(i) 現在の自動拾い/破壊設定 の一覧", 14, 5);
}
#else
if (p == 0)
#endif
/* Prompt */
#ifdef JP
- prt("-³¤¯-", 17, 8);
- prt("ESC) È´¤±¤ë", 21, 1);
- prt("SPACE) ¼¡¥Ú¡¼¥¸", 21, 30);
- /*prt("-) Á°¥Ú¡¼¥¸", 21, 60);*/
- prt("¥³¥Þ¥ó¥É:", 20, 0);
+ prt("-続く-", 17, 8);
+ prt("ESC) 抜ける", 21, 1);
+ prt("SPACE) 次ã\83\9aã\83¼ã\82¸", 21, 30);
+ /*prt("-) å\89\8dã\83\9aã\83¼ã\82¸", 21, 60);*/
+ prt("コマンド:", 20, 0);
#else
prt("-more-", 17, 8);
prt("ESC) Exit menu", 21, 1);
do_cmd_knowledge_artifacts();
break;
case '2': /* Objects */
- do_cmd_knowledge_objects(&need_redraw);
+ do_cmd_knowledge_objects(&need_redraw, FALSE, -1);
break;
case '3': /* Uniques */
do_cmd_knowledge_uniques();
break;
case '4': /* Monsters */
- do_cmd_knowledge_monsters(&need_redraw);
+ do_cmd_knowledge_monsters(&need_redraw, FALSE, -1);
break;
case '5': /* Kill count */
do_cmd_knowledge_kill_count();
do_cmd_knowledge_inven();
break;
case '0': /* Feature list */
- do_cmd_knowledge_features(&need_redraw);
+ {
+ int lighting_level = F_LIT_STANDARD;
+ do_cmd_knowledge_features(&need_redraw, FALSE, -1, &lighting_level);
+ }
break;
/* Next page */
case 'a': /* Max stat */
char desc[1024];
char buf[1024];
+ char day_buf[10];
FILE *fff;
num = 0;
-#ifdef JP
- strcpy(desc, "ÊѤʻþ¹ï¤À¡£");
-#else
- strcpy(desc, "It is a strange time.");
-#endif
+ strcpy(desc, _("変な時刻だ。", "It is a strange time."));
+ if (day < MAX_DAYS) sprintf(day_buf, "%d", day);
+ else strcpy(day_buf, "*****");
/* Message */
#ifdef JP
- msg_format("%d ÆüÌÜ,»þ¹ï¤Ï%d:%02d %s¤Ç¤¹¡£",
- day, (hour % 12 == 0) ? 12 : (hour % 12),
+ 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 %d. The time is %d:%02d %s.",
- day, (hour % 12 == 0) ? 12 : (hour % 12),
+ 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
/* Find the path */
if (!randint0(10) || p_ptr->image)
{
-#ifdef JP
- path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timefun_j.txt");
-#else
- path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timefun.txt");
-#endif
-
+ path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, _("timefun_j.txt", "timefun.txt"));
}
else
{
-#ifdef JP
- path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timenorm_j.txt");
-#else
- path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, "timenorm.txt");
-#endif
-
+ path_build(buf, sizeof(buf), ANGBAND_DIR_FILE, _("timenorm_j.txt", "timenorm.txt"));
}
/* Open this file */