/* Purpose: Angband utilities -BEN- */
#include "angband.h"
+#include "monster-hook.h"
static int num_more = 0;
/* Paranoia -- No excessive sleeping */
-#ifdef JP
- if (usecs > 4000000L) core("不当な usleep() 呼び出し");
-#else
- if (usecs > 4000000L) core("Illegal usleep() call");
-#endif
-
-
+ if (usecs > 4000000L) core(_("不当な usleep() 呼び出し", "Illegal usleep() call"));
/* Wait for it */
Timer.tv_sec = (usecs / 1000000L);
/* Temp file */
s = tmpnam(NULL);
- /* Oops */
if (!s) return (-1);
/* Format to length */
-#ifndef WIN32
+#if !defined(WIN32) || (defined(_MSC_VER) && (_MSC_VER >= 1900))
(void)strnfmt(buf, max, "%s", s);
#else
(void)strnfmt(buf, max, ".%s", s);
errr my_fgets(FILE *fff, char *buf, huge n)
{
huge i = 0;
-
char *s;
-
char tmp[1024];
/* Read a line */
if (fgets(tmp, 1024, fff))
{
+#ifdef JP
guess_convert_to_system_encoding(tmp, sizeof(tmp));
+#endif
+
/* Convert weirdness */
for (s = tmp; *s; s++)
{
}
#endif
/* Handle printables */
- else if (isprint(*s))
+ else if (isprint((unsigned char)*s))
{
/* Copy */
buf[i++] = *s;
/*
* Hack -- replacement for "fputs()"
- *
* Dump a string, plus a newline, to a file
- *
- * XXX XXX XXX Process internal weirdness?
+ * Process internal weirdness?
*/
errr my_fputs(FILE *fff, cptr buf, huge n)
{
/* Remove */
(void)remove(buf);
- /* XXX XXX XXX */
return (0);
}
/* Rename */
(void)rename(buf, aux);
- /* XXX XXX XXX */
return (0);
}
fd_close(src_fd);
fd_close(dst_fd);
- /* XXX XXX XXX */
return (0);
}
*
* Note that we assume that the file should be "binary"
*
- * XXX XXX XXX The horrible "BEN_HACK" code is for compiling under
+ * The horrible "BEN_HACK" code is for compiling under
* the CodeWarrior compiler, in which case, for some reason, none
* of the "O_*" flags are defined, and we must fake the definition
* of "O_RDONLY", "O_WRONLY", and "O_RDWR" in "A-win-h", and then
* we must simulate the effect of the proper "open()" call below.
*/
-int fd_make(cptr file, int mode)
+int fd_make(cptr file, BIT_FLAGS mode)
{
char buf[1024];
/* Verify the fd */
if (fd < 0) return (-1);
-#if defined(SUNOS) || defined(ULTRIX) || defined(NeXT)
+#if defined(ULTRIX) || defined(NeXT)
/* Truncate */
ftruncate(fd, n);
#endif
/* Close */
(void)close(fd);
- /* XXX XXX XXX */
return (0);
}
/*
- * XXX XXX XXX Important note about "colors" XXX XXX XXX
+ * Important note about "colors"
*
* The "TERM_*" color definitions list the "composition" of each
* "Angband color" in terms of "quarters" of each of the three color
/* Hex-mode XXX */
if (*str == 'x')
{
- *s = 16 * dehex(*++str);
- *s++ += dehex(*++str);
+ *s = 16 * (char)dehex(*++str);
+ *s++ += (char)dehex(*++str);
}
/* Hack -- simple way to specify "backslash" */
/* Octal-mode */
else if (*str == '0')
{
- *s = 8 * deoct(*++str);
- *s++ += deoct(*++str);
+ *s = 8 * (char)deoct(*++str);
+ *s++ += (char)deoct(*++str);
}
/* Octal-mode */
else if (*str == '1')
{
- *s = 64 + 8 * deoct(*++str);
- *s++ += deoct(*++str);
+ *s = 64 + 8 * (char)deoct(*++str);
+ *s++ += (char)deoct(*++str);
}
/* Octal-mode */
else if (*str == '2')
{
- *s = 64 * 2 + 8 * deoct(*++str);
- *s++ += deoct(*++str);
+ *s = 64 * 2 + 8 * (char)deoct(*++str);
+ *s++ += (char)deoct(*++str);
}
/* Octal-mode */
else if (*str == '3')
{
- *s = 64 * 3 + 8 * deoct(*++str);
- *s++ += deoct(*++str);
+ *s = 64 * 3 + 8 * (char)deoct(*++str);
+ *s++ += (char)deoct(*++str);
}
/* Skip the final char */
switch(ch)
{
case '&':
- while ((tmp = my_strchr(macro_modifier_chr, *str)))
+ while ((tmp = my_strchr(macro_modifier_chr, *str)) != 0)
{
j = (int)(tmp - macro_modifier_chr);
tmp = macro_modifier_name[j];
n = i;
s = t;
}
-
- /* Result */
return (n);
}
* Add a macro definition (or redefinition).
*
* We should use "act == NULL" to "remove" a macro, but this might make it
- * impossible to save the "removal" of a macro definition. XXX XXX XXX
+ * impossible to save the "removal" of a macro definition.
*
* We should consider refusing to allow macros which contain existing macros,
* or which are contained in existing macros, because this would simplify the
- * macro analysis code. XXX XXX XXX
+ * macro analysis code.
*
* We should consider removing the "command macro" crap, and replacing it
* with some kind of "powerful keymap" ability, but this might make it hard
- * to change the "roguelike" option from inside the game. XXX XXX XXX
+ * to change the "roguelike" option from inside the game.
*/
errr macro_add(cptr pat, cptr act)
{
if (!use_music) return 1;
/* Make a sound (if allowed) */
- return Term_xtra(type , val);
+ return Term_xtra(type, val);
}
/*
* Hack -- Select floor music.
*/
-void select_floor_music()
+void select_floor_music(void)
{
int i;
/* No sound */
if (!use_music) return;
+ if(ambush_flag)
+ {
+ play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_AMBUSH);
+ return;
+ }
+
if(p_ptr->wild_mode)
{
play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_WILD);
return;
}
- for(i = 0; i < max_quests; i++)
+ for(i = 0; i < max_q_idx; i++)
{ // TODO マクロで類似条件を統合すること
if(quest[i].status == QUEST_STATUS_TAKEN &&
(quest[i].type == QUEST_TYPE_KILL_LEVEL || quest[i].type == QUEST_TYPE_RANDOM) &&
if(dungeon_type)
{
- if(play_music(TERM_XTRA_MUSIC_DUNGEON, dungeon_type))
+ if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2);
+ else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1);
+ else
{
- if(p_ptr->feeling == 2) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL2);
- else if(p_ptr->feeling >= 3 && p_ptr->feeling <= 5) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_FEEL1);
- else
+ if(play_music(TERM_XTRA_MUSIC_DUNGEON, dungeon_type))
{
if(dun_level < 40) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_LOW);
else if(dun_level < 80) play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_DUN_MED);
* Only 500 (0+1+2+...+29+30) milliseconds may elapse between each key in
* the macro trigger sequence. If a key sequence forms the "prefix" of a
* macro trigger, 500 milliseconds must pass before the key sequence is
- * known not to be that macro trigger. XXX XXX XXX
+ * known not to be that macro trigger.
*/
static char inkey_aux(void)
{
/* Excessive delay */
if (w >= 10) break;
- /* Delay */
Term_xtra(TERM_XTRA_DELAY, w);
}
}
/*
- * Mega-Hack -- special "inkey_next" pointer. XXX XXX XXX
+ * Mega-Hack -- special "inkey_next" pointer.
*
* This special pointer allows a sequence of keys to be "inserted" into
* the stream of keys returned by "inkey()". This key sequence will not
#ifdef ALLOW_BORG
/*
- * Mega-Hack -- special "inkey_hack" hook. XXX XXX XXX
+ * Mega-Hack -- special "inkey_hack" hook.
*
* This special function hook allows the "Borg" (see elsewhere) to take
* control of the "inkey()" function, and substitute in fake keypresses.
/* Wait for (and remove) a pending key */
if (0 == Term_inkey(&ch, TRUE, TRUE))
{
- /* Done */
break;
}
- /* Oops */
break;
}
/* Check for (and remove) a pending key */
if (0 == Term_inkey(&ch, FALSE, TRUE))
{
- /* Done */
break;
}
/* Excessive delay */
if (w >= 100) break;
- /* Delay */
Term_xtra(TERM_XTRA_DELAY, w);
}
}
- /* Done */
break;
}
{
/* Strip this key */
ch = 0;
-
- /* Continue */
continue;
}
/*
* Add a new "quark" to the set of quarks.
*/
-s16b quark_add(cptr str)
+u16b quark_add(cptr str)
{
- int i;
+ u16b i;
/* Look for an existing quark */
for (i = 1; i < quark__num; i++)
/*
* This function looks up a quark
*/
-cptr quark_str(s16b i)
+cptr quark_str(STR_OFFSET i)
{
cptr q;
-/*
- * How many messages are "available"?
+/*!
+ * @brief 保存中の過去ゲームメッセージの数を返す。 / How many messages are "available"?
+ * @return 残っているメッセージの数
*/
-s16b message_num(void)
+s32b message_num(void)
{
int last, next, n;
}
-
-/*
- * Recall the "text" of a saved message
+/*!
+ * @brief 過去のゲームメッセージを返す。 / Recall the "text" of a saved message
+ * @params age メッセージの世代
+ * @return メッセージの文字列ポインタ
*/
cptr message_str(int age)
{
- s16b x;
- s16b o;
+ s32b x;
+ s32b o;
cptr s;
/* Forgotten messages have no text */
}
-
-/*
- * Add a new message, with great efficiency
+/*!
+ * @brief ゲームメッセージをログに追加する。 / Add a new message, with great efficiency
+ * @params str 保存したいメッセージ
+ * @return なし
*/
void message_add(cptr str)
{
- int i, k, x, m, n;
+ u32b i, n;
+ int k, x, m;
- char u[1024];
+ char u[4096];
char splitted1[81];
cptr splitted2;
/* Important Hack -- Ignore "long" messages */
if (n >= MESSAGE_BUF / 4) return;
- /* extra step -- split the message if n>80. (added by Mogami) */
+ /* extra step -- split the message if n>80.(added by Mogami) */
if (n > 80) {
#ifdef JP
- cptr t = str;
-
- for (n = 0; n < 80; n++, t++)
- if(iskanji(*t)) {
- t++;
- n++;
- }
- if (n == 81) n = 79; /* 最後の文字が漢字半分 */
+ cptr t = str;
+
+ for (n = 0; n < 80; n++, t++)
+ {
+ if(iskanji(*t)) {
+ t++;
+ n++;
+ }
+ }
+ if (n == 81) n = 79; /* 最後の文字が漢字半分 */
#else
- for (n = 80; n > 60; n--)
- if (str[n] == ' ') break;
- if (n == 60)
- n = 80;
+ for (n = 80; n > 60; n--)
+ if (str[n] == ' ') break;
+ if (n == 60) n = 80;
#endif
- splitted2 = str + n;
- strncpy(splitted1, str ,n);
- splitted1[n] = '\0';
- str = splitted1;
+ splitted2 = str + n;
+ strncpy(splitted1, str ,n);
+ splitted1[n] = '\0';
+ str = splitted1;
} else {
- splitted2 = NULL;
+ splitted2 = NULL;
}
- /*** Step 2 -- Attempt to optimize ***/
+ /*** Step 2 -- 最適化の試行 / Attempt to optimize ***/
/* Limit number of messages to check */
m = message_num();
-
k = m / 4;
-
- /* Limit number of messages to check */
if (k > MESSAGE_MAX / 32) k = MESSAGE_MAX / 32;
/* Check previous message */
/* Find multiple */
#ifdef JP
- for (t = buf; *t && (*t != '<' || (*(t+1) != 'x' )); t++)
- if( iskanji(*t))t++;
+ for (t = buf; *t && (*t != '<' || (*(t+1) != 'x' )); t++)
+ if(iskanji(*t))t++;
#else
for (t = buf; *t && (*t != '<'); t++);
#endif
now_message++;
}
- /* Done */
break;
}
/* Check the last few messages (if any to count) */
for (i = message__next; k; k--)
{
- u16b q;
-
+ int q;
cptr old;
/* Back up and wrap if needed */
message__head += n + 1;
/* recursively add splitted message (added by Mogami) */
- end_of_message_add:
+end_of_message_add:
if (splitted2 != NULL)
message_add(splitted2);
}
if (!p_ptr->playing || !nagasu)
{
/* Pause for response */
-#ifdef JP
- Term_putstr(x, 0, -1, a, "-続く-");
-#else
- Term_putstr(x, 0, -1, a, "-more-");
-#endif
-
+ Term_putstr(x, 0, -1, a, _("-続く-", "-more-"));
/* Get an acceptable keypress */
while (1)
* The global "msg_flag" variable can be cleared to tell us to
* "erase" any "pending" messages still on the screen.
*
- * XXX XXX XXX Note that we must be very careful about using the
+ * Note that we must be very careful about using the
* "msg_print()" functions without explicitly calling the special
* "msg_print(NULL)" function, since this may result in the loss
* of information if the screen is cleared, or if anything is
* displayed on the top line.
*
- * XXX XXX XXX Note that "msg_print(NULL)" will clear the top line
+ * Note that "msg_print(NULL)" will clear the top line
* even if no messages are pending. This is probably a hack.
*/
void msg_print(cptr msg)
{
static int p = 0;
-
int n;
-
char *t;
-
char buf[1024];
if (world_monster) return;
p = 0;
}
- /* Message Length */
+ /* Original Message Length */
n = (msg ? strlen(msg) : 0);
/* Hack -- flush when requested or needed */
p = 0;
}
-
/* No message */
if (!msg) return;
/* Paranoia */
if (n > 1000) return;
+ /* Copy it */
+ if (!cheat_turn)
+ {
+ strcpy(buf, msg);
+ }
+ else
+ {
+ sprintf(buf, ("T:%d - %s"), (int)turn, msg);
+ }
- /* Memorize the message */
- if (character_generated) message_add(msg);
-
+ /* New Message Length */
+ n = strlen(buf);
- /* Copy it */
- strcpy(buf, msg);
+ /* Memorize the message */
+ if (character_generated) message_add(buf);
/* Analyze the buffer */
t = buf;
t += split; n -= split;
}
-
/* Display the tail of the message */
Term_putstr(p, 0, n, TERM_WHITE, t);
/* Memorize the tail */
/* if (character_generated) message_add(t); */
- /* Window stuff */
p_ptr->window |= (PW_MESSAGE);
window_stuff();
p += n + 1;
#endif
-
/* Optional refresh */
if (fresh_message) Term_fresh();
}
+void msg_print_wizard(int cheat_type, cptr msg)
+{
+ if (!cheat_room && cheat_type == CHEAT_DUNGEON) return;
+ if (!cheat_peek && cheat_type == CHEAT_OBJECT) return;
+ if (!cheat_hear && cheat_type == CHEAT_MONSTER) return;
+ if (!cheat_xtra && cheat_type == CHEAT_MISC) return;
+
+ cptr cheat_mes[] = {"ITEM", "MONS", "DUNG", "MISC"};
+ char buf[1024];
+ sprintf(buf, "WIZ-%s:%s", cheat_mes[cheat_type], msg);
+ msg_print(buf);
+
+ if (cheat_diary_output)
+ {
+ do_cmd_write_nikki(NIKKI_WIZARD_LOG, 0, buf);
+ }
+
+}
/*
* Hack -- prevent "accidents" in "screen_save()" or "screen_load()"
msg_print(buf);
}
+/*
+ * Display a formatted message, using "vstrnfmt()" and "msg_print()".
+ */
+void msg_format_wizard(int cheat_type, cptr fmt, ...)
+{
+ if(!cheat_room && cheat_type == CHEAT_DUNGEON) return;
+ if(!cheat_peek && cheat_type == CHEAT_OBJECT) return;
+ if(!cheat_hear && cheat_type == CHEAT_MONSTER) return;
+ if(!cheat_xtra && cheat_type == CHEAT_MISC) return;
+
+ va_list vp;
+ char buf[1024];
+
+ /* Begin the Varargs Stuff */
+ va_start(vp, fmt);
+
+ /* Format the args, save the length */
+ (void)vstrnfmt(buf, 1024, fmt, vp);
+
+ /* End the Varargs Stuff */
+ va_end(vp);
+
+ /* Display */
+ msg_print_wizard(cheat_type, buf);
+}
+
/*
* At the given location, using the given attribute, if allowed,
* add the given string. Do not clear the line.
*/
-void c_put_str(byte attr, cptr str, int row, int col)
+void c_put_str(TERM_COLOR attr, cptr str, int row, int col)
{
/* Position cursor, Dump the attr/text */
Term_putstr(col, row, -1, attr, str);
/* Clean up the char */
#ifdef JP
- ch = ((isprint(*s) || k_flag) ? *s : ' ');
+ ch = ((k_flag || isprint(*s)) ? *s : ' ');
#else
ch = (isprint(*s) ? *s : ' ');
#endif
{
int i, n = 0;
- byte av[256];
+ TERM_COLOR av[256];
char cv[256];
/* Wrap word */
{
bool res;
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Display prompt */
/* Clear prompt */
prt("", 0, 0);
-
- /* Result */
return (res);
}
* mode & CHECK_NO_HISTORY : no message_add
* mode & CHECK_DEFAULT_Y : accept any key as y, except n and Esc.
*/
-bool get_check_strict(cptr prompt, int mode)
+bool get_check_strict(cptr prompt, BIT_FLAGS mode)
{
int i;
char buf[80];
num_more = 0;
}
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
if (!rogue_like_commands)
*/
bool get_com(cptr prompt, char *command, bool z_escape)
{
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Display a prompt */
*
* Hack -- allow "command_arg" to specify a quantity
*/
-s16b get_quantity(cptr prompt, int max)
+QUANTITY get_quantity(cptr prompt, QUANTITY max)
{
- bool res;
- int amt;
+ bool res, result;
+ QUANTITY amt;
char tmp[80];
char buf[80];
+ COMMAND_CODE code;
/* Use "command_arg" */
return (amt);
}
-#ifdef ALLOW_REPEAT /* TNB */
-
/* Get the item index */
- if ((max != 1) && repeat_pull(&amt))
+ result = repeat_pull(&code);
+ amt = (QUANTITY)code;
+ if ((max != 1) && result)
{
/* Enforce the maximum */
if (amt > max) amt = max;
return (amt);
}
-#endif /* ALLOW_REPEAT -- TNB */
-
/* Build a prompt if needed */
if (!prompt)
{
/* Build a prompt */
-#ifdef JP
- sprintf(tmp, "いくつですか (1-%d): ", max);
-#else
- sprintf(tmp, "Quantity (1-%d): ", max);
-#endif
-
+ sprintf(tmp, _("いくつですか (1-%d): ", "Quantity (1-%d): "), max);
/* Use that prompt */
prompt = tmp;
}
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Display prompt */
if (!res) return 0;
/* Extract a number */
- amt = atoi(buf);
+ amt = (COMMAND_CODE)atoi(buf);
/* A letter means "all" */
if (isalpha(buf[0])) amt = max;
/* Enforce the minimum */
if (amt < 0) amt = 0;
-#ifdef ALLOW_REPEAT /* TNB */
-
- if (amt) repeat_push(amt);
-
-#endif /* ALLOW_REPEAT -- TNB */
+ if (amt) repeat_push((COMMAND_CODE)amt);
/* Return the result */
return (amt);
/*
- * Pause for user response XXX XXX XXX
+ * Pause for user response
*/
void pause_line(int row)
{
prt("", row, 0);
-#ifdef JP
- put_str("[ 何かキーを押して下さい ]", row, 26);
-#else
- put_str("[Press any key to continue]", row, 23);
-#endif
+ put_str(_("[ 何かキーを押して下さい ]", "[Press any key to continue]"), row, _(26, 23));
(void)inkey();
prt("", row, 0);
int menu = 0;
bool kisuu;
- if (py - panel_row_min > 10) basey = 2;
+ if (p_ptr->y - panel_row_min > 10) basey = 2;
else basey = 13;
basex = 15;
}
max_num = i;
kisuu = max_num % 2;
-#ifdef JP
- put_str("》",basey + 1 + num / 2, basex + 2 + (num % 2) * 24);
-#else
- put_str("> ",basey + 1 + num / 2, basex + 2 + (num % 2) * 24);
-#endif
+ put_str(_("》", "> "),basey + 1 + num / 2, basex + 2 + (num % 2) * 24);
/* Place the cursor on the player */
- move_cursor_relative(py, px);
+ move_cursor_relative(p_ptr->y, p_ptr->x);
/* Get a command */
sub_cmd = inkey();
* Note that this command is used both in the dungeon and in
* stores, and must be careful to work in both situations.
*
- * Note that "p_ptr->command_new" may not work any more. XXX XXX XXX
+ * Note that "p_ptr->command_new" may not work any more.
*/
void request_command(int shopping)
{
int i;
- char cmd;
+ s16b cmd;
int mode;
cptr act;
/* Command Count */
if (cmd == '0')
{
- int old_arg = command_arg;
+ COMMAND_ARG old_arg = command_arg;
/* Reset */
command_arg = 0;
/* Begin the input */
-#ifdef JP
- prt("回数: ", 0, 0);
-#else
- prt("Count: ", 0, 0);
-#endif
-
+ prt(_("回数: ", "Count: "), 0, 0);
/* Get a command count */
while (1)
command_arg = command_arg / 10;
/* Show current count */
-#ifdef JP
- prt(format("回数: %d", command_arg), 0, 0);
-#else
- prt(format("Count: %d", command_arg), 0, 0);
-#endif
-
+ prt(format(_("回数: %d", "Count: %d"), command_arg), 0, 0);
}
/* Actual numeric data */
}
/* Show current count */
-#ifdef JP
- prt(format("回数: %d", command_arg), 0, 0);
-#else
- prt(format("Count: %d", command_arg), 0, 0);
-#endif
-
+ prt(format(_("回数: %d", "Count: %d"), command_arg), 0, 0);
}
/* Exit on "unusable" input */
command_arg = 99;
/* Show current count */
-#ifdef JP
- prt(format("回数: %d", command_arg), 0, 0);
-#else
- prt(format("Count: %d", command_arg), 0, 0);
-#endif
-
+ prt(format(_("回数: %d", "Count: %d"), command_arg), 0, 0);
}
/* Hack -- Handle "old_arg" */
command_arg = old_arg;
/* Show current count */
-#ifdef JP
-prt(format("回数: %d", command_arg), 0, 0);
-#else
- prt(format("Count: %d", command_arg), 0, 0);
-#endif
-
+ prt(format(_("回数: %d", "Count: %d"), command_arg), 0, 0);
}
/* Hack -- white-space means "enter command now" */
if ((cmd == ' ') || (cmd == '\n') || (cmd == '\r'))
{
/* Get a real command */
-#ifdef JP
- if (!get_com("コマンド: ", (char *)&cmd, FALSE))
-#else
- if (!get_com("Command: ", (char *)&cmd, FALSE))
-#endif
-
+ if (!get_com(_("コマンド: ", "Command: "), (char *)&cmd, FALSE))
{
/* Clear count */
command_arg = 0;
-
- /* Continue */
continue;
}
}
if (cmd == '\\')
{
/* Get a real command */
-#ifdef JP
- (void)get_com("コマンド: ", (char *)&cmd, FALSE);
-#else
- (void)get_com("Command: ", (char *)&cmd, FALSE);
-#endif
-
+ (void)get_com(_("コマンド: ", "Command: "), (char *)&cmd, FALSE);
/* Hack -- bypass keymaps */
if (!inkey_next) inkey_next = "";
if (cmd == '^')
{
/* Get a new command and controlify it */
-#ifdef JP
- if (get_com("CTRL: ", (char *)&cmd, FALSE)) cmd = KTRL(cmd);
-#else
- if (get_com("Control: ", (char *)&cmd, FALSE)) cmd = KTRL(cmd);
-#endif
-
+ if (get_com(_("CTRL: ", "Control: "), (char *)&cmd, FALSE)) cmd = KTRL(cmd);
}
/* Start using the buffer */
inkey_next = request_command_buffer;
-
- /* Continue */
continue;
}
/* Use command */
command_cmd = (byte)cmd;
- /* Done */
break;
}
if (always_repeat && (command_arg <= 0))
{
/* Hack -- auto repeat certain commands */
- if (my_strchr("TBDoc+", command_cmd))
+ if (my_strchr("TBDoc+", (char)command_cmd))
{
/* Repeat 99 times */
command_arg = 99;
{
/* Hack -- Verify command */
-#ifdef JP
- if (!get_check("本当ですか? "))
-#else
- if (!get_check("Are you sure? "))
-#endif
-
+ if (!get_check(_("本当ですか? ", "Are you sure? ")))
{
/* Hack -- Use space */
command_cmd = ' ';
}
else
{
- int mode;
+ BIT_FLAGS mode;
cptr act, s;
/* Roguelike */
}
-#ifdef ALLOW_REPEAT /* TNB */
-
#define REPEAT_MAX 20
/* Number of chars saved */
static int repeat__idx = 0;
/* Saved "stuff" */
-static int repeat__key[REPEAT_MAX];
+static COMMAND_CODE repeat__key[REPEAT_MAX];
-void repeat_push(int what)
+void repeat_push(COMMAND_CODE what)
{
/* Too many keys */
if (repeat__cnt == REPEAT_MAX) return;
}
-bool repeat_pull(int *what)
+bool repeat_pull(COMMAND_CODE *what)
{
/* All out of keys */
if (repeat__idx == repeat__cnt) return (FALSE);
void repeat_check(void)
{
- int what;
+ COMMAND_CODE what;
/* Ignore some commands */
if (command_cmd == ESCAPE) return;
}
}
-#endif /* ALLOW_REPEAT -- TNB */
-
#ifdef SORT_R_INFO
continue;
}
#endif
- *str = tolower(*str);
+ *str = (char)tolower(*str);
}
}