X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Futil.c;h=e1972e37fbf0d13560b8af0f09fad103024fda4a;hb=97ab6e743be47c3c082d699ddf862a792fe08e9b;hp=2fdb8b19dd14e840e6c96da2d64cc177aed5e7f9;hpb=88b43fd47cc6b66e40378a9e095b1855ec5c1e81;p=hengband%2Fhengband.git diff --git a/src/util.c b/src/util.c index 2fdb8b19d..e1972e37f 100644 --- a/src/util.c +++ b/src/util.c @@ -11,6 +11,7 @@ /* Purpose: Angband utilities -BEN- */ #include "angband.h" +#include "monster-hook.h" static int num_more = 0; @@ -283,11 +284,10 @@ static errr path_temp(char *buf, int max) /* 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); @@ -438,9 +438,7 @@ FILE *my_fopen_temp(char *buf, int max) errr my_fgets(FILE *fff, char *buf, huge n) { huge i = 0; - char *s; - char tmp[1024]; /* Read a line */ @@ -503,7 +501,7 @@ errr my_fgets(FILE *fff, char *buf, huge n) } #endif /* Handle printables */ - else if (isprint(*s)) + else if (isprint((unsigned char)*s)) { /* Copy */ buf[i++] = *s; @@ -529,10 +527,8 @@ errr my_fgets(FILE *fff, char *buf, huge n) /* * 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) { @@ -562,18 +558,6 @@ errr my_fputs(FILE *fff, cptr buf, huge n) /* - * Code Warrior is a little weird about some functions - */ -#ifdef BEN_HACK -extern int open(const char *, int, ...); -extern int close(int); -extern int read(int, void *, unsigned int); -extern int write(int, const void *, unsigned int); -extern long lseek(int, long, int); -#endif /* BEN_HACK */ - - -/* * The Macintosh is a little bit brain-dead sometimes */ #ifdef MACINTOSH @@ -605,7 +589,6 @@ errr fd_kill(cptr file) /* Remove */ (void)remove(buf); - /* XXX XXX XXX */ return (0); } @@ -627,7 +610,6 @@ errr fd_move(cptr file, cptr what) /* Rename */ (void)rename(buf, aux); - /* XXX XXX XXX */ return (0); } @@ -678,44 +660,22 @@ errr fd_copy(cptr file, cptr what) fd_close(src_fd); fd_close(dst_fd); - /* XXX XXX XXX */ return (0); } /* * Hack -- attempt to open a file descriptor (create file) - * * This function should fail if the file already exists - * * Note that we assume that the file should be "binary" - * - * XXX XXX XXX 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]; /* Hack -- Try to parse the path */ if (path_parse(buf, 1024, file)) return (-1); -#ifdef BEN_HACK - - /* Check for existance */ - /* if (fd_close(fd_open(file, O_RDONLY | O_BINARY))) return (1); */ - - /* Mega-Hack -- Create the file */ - (void)my_fclose(my_fopen(file, "wb")); - - /* Re-open the file for writing */ - return (open(buf, O_WRONLY | O_BINARY, mode)); - -#else /* BEN_HACK */ - #if defined(MAC_MPW) || defined(MACH_O_CARBON) { int fdes; @@ -726,12 +686,11 @@ int fd_make(cptr file, int mode) /* Return the descriptor */ return (fdes); } -# else +#else /* Create the file, fail if exists, write-only, binary */ return (open(buf, O_CREAT | O_EXCL | O_WRONLY | O_BINARY, mode)); -# endif +#endif -#endif /* BEN_HACK */ } @@ -936,7 +895,6 @@ errr fd_close(int fd) /* Close */ (void)close(fd); - /* XXX XXX XXX */ return (0); } @@ -947,7 +905,7 @@ errr fd_close(int fd) /* - * 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 @@ -1197,8 +1155,8 @@ void text_to_ascii(char *buf, cptr str) /* 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" */ @@ -1252,29 +1210,29 @@ void text_to_ascii(char *buf, cptr str) /* 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 */ @@ -1322,7 +1280,7 @@ static bool trigger_ascii_to_text(char **bufptr, cptr *strptr) 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]; @@ -1588,8 +1546,6 @@ static sint macro_find_ready(cptr pat) n = i; s = t; } - - /* Result */ return (n); } @@ -1598,15 +1554,15 @@ static sint macro_find_ready(cptr pat) * 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) { @@ -1715,18 +1671,24 @@ errr play_music(int type, int val) 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); @@ -1754,7 +1716,7 @@ void select_floor_music() 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) && @@ -1770,11 +1732,11 @@ void select_floor_music() 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); @@ -1820,7 +1782,7 @@ void select_floor_music() * 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) { @@ -1904,7 +1866,6 @@ static char inkey_aux(void) /* Excessive delay */ if (w >= 10) break; - /* Delay */ Term_xtra(TERM_XTRA_DELAY, w); } } @@ -1999,7 +1960,7 @@ static void forget_macro_action(void) /* - * 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 @@ -2012,7 +1973,7 @@ static cptr inkey_next = NULL; #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. @@ -2199,11 +2160,9 @@ char inkey(void) /* Wait for (and remove) a pending key */ if (0 == Term_inkey(&ch, TRUE, TRUE)) { - /* Done */ break; } - /* Oops */ break; } @@ -2213,7 +2172,6 @@ char inkey(void) /* Check for (and remove) a pending key */ if (0 == Term_inkey(&ch, FALSE, TRUE)) { - /* Done */ break; } @@ -2226,12 +2184,10 @@ char inkey(void) /* Excessive delay */ if (w >= 100) break; - /* Delay */ Term_xtra(TERM_XTRA_DELAY, w); } } - /* Done */ break; } @@ -2245,8 +2201,6 @@ char inkey(void) { /* Strip this key */ ch = 0; - - /* Continue */ continue; } @@ -2345,9 +2299,9 @@ void quark_init(void) /* * 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++) @@ -2373,7 +2327,7 @@ s16b quark_add(cptr str) /* * This function looks up a quark */ -cptr quark_str(s16b i) +cptr quark_str(STR_OFFSET i) { cptr q; @@ -2413,10 +2367,11 @@ cptr quark_str(s16b i) -/* - * How many messages are "available"? +/*! + * @brief 保存中の過去ゲームメッセージの数を返す。 / How many messages are "available"? + * @return 残っているメッセージの数 */ -s16b message_num(void) +s32b message_num(void) { int last, next, n; @@ -2435,14 +2390,15 @@ s16b message_num(void) } - -/* - * 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 */ @@ -2462,15 +2418,17 @@ cptr message_str(int age) } - -/* - * 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; @@ -2485,39 +2443,37 @@ void message_add(cptr str) /* 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 */ @@ -2543,8 +2499,8 @@ void message_add(cptr str) /* 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 @@ -2585,15 +2541,13 @@ void message_add(cptr str) 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 */ @@ -2732,7 +2686,7 @@ void message_add(cptr str) 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); } @@ -2809,23 +2763,20 @@ static void msg_flush(int x) * 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; @@ -2837,13 +2788,12 @@ void msg_print(cptr msg) p = 0; } - /* Message Length */ + /* Original Message Length */ n = (msg ? strlen(msg) : 0); /* Hack -- flush when requested or needed */ if (p && (!msg || ((p + n) > 72))) { - /* Flush */ msg_flush(p); /* Forget it */ @@ -2853,20 +2803,27 @@ void msg_print(cptr msg) 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; @@ -2942,14 +2899,12 @@ void msg_print(cptr msg) 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(); @@ -2963,11 +2918,28 @@ void msg_print(cptr msg) 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()" @@ -3033,6 +3005,32 @@ void msg_format(cptr fmt, ...) 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); +} + /* @@ -3041,7 +3039,7 @@ void msg_format(cptr fmt, ...) * 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); @@ -3156,7 +3154,7 @@ void c_roff(byte a, cptr str) { int i, n = 0; - byte av[256]; + TERM_COLOR av[256]; char cv[256]; /* Wrap word */ @@ -3569,7 +3567,7 @@ bool get_string(cptr prompt, char *buf, int len) { bool res; - /* Paranoia XXX XXX XXX */ + /* Paranoia */ msg_print(NULL); /* Display prompt */ @@ -3580,8 +3578,6 @@ bool get_string(cptr prompt, char *buf, int len) /* Clear prompt */ prt("", 0, 0); - - /* Result */ return (res); } @@ -3606,7 +3602,7 @@ bool get_check(cptr prompt) * 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]; @@ -3619,7 +3615,7 @@ bool get_check_strict(cptr prompt, int mode) num_more = 0; } - /* Paranoia XXX XXX XXX */ + /* Paranoia */ msg_print(NULL); if (!rogue_like_commands) @@ -3721,7 +3717,7 @@ bool get_check_strict(cptr prompt, int mode) */ bool get_com(cptr prompt, char *command, bool z_escape) { - /* Paranoia XXX XXX XXX */ + /* Paranoia */ msg_print(NULL); /* Display a prompt */ @@ -3750,12 +3746,13 @@ bool get_com(cptr prompt, char *command, bool z_escape) * * 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" */ @@ -3774,10 +3771,10 @@ s16b get_quantity(cptr prompt, int max) 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; @@ -3789,8 +3786,6 @@ s16b get_quantity(cptr prompt, int max) return (amt); } -#endif /* ALLOW_REPEAT -- TNB */ - /* Build a prompt if needed */ if (!prompt) { @@ -3801,7 +3796,7 @@ s16b get_quantity(cptr prompt, int max) prompt = tmp; } - /* Paranoia XXX XXX XXX */ + /* Paranoia */ msg_print(NULL); /* Display prompt */ @@ -3826,7 +3821,7 @@ s16b get_quantity(cptr prompt, int max) 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; @@ -3837,11 +3832,7 @@ s16b get_quantity(cptr prompt, int 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); @@ -3849,7 +3840,7 @@ s16b get_quantity(cptr prompt, int max) /* - * Pause for user response XXX XXX XXX + * Pause for user response */ void pause_line(int row) { @@ -4197,7 +4188,7 @@ static char inkey_from_menu(void) 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; @@ -4251,7 +4242,7 @@ static char inkey_from_menu(void) 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(); @@ -4346,13 +4337,13 @@ static char inkey_from_menu(void) * 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; @@ -4426,7 +4417,7 @@ void request_command(int shopping) /* Command Count */ if (cmd == '0') { - int old_arg = command_arg; + COMMAND_ARG old_arg = command_arg; /* Reset */ command_arg = 0; @@ -4509,8 +4500,6 @@ void request_command(int shopping) { /* Clear count */ command_arg = 0; - - /* Continue */ continue; } } @@ -4547,8 +4536,6 @@ void request_command(int shopping) /* Start using the buffer */ inkey_next = request_command_buffer; - - /* Continue */ continue; } @@ -4560,7 +4547,6 @@ void request_command(int shopping) /* Use command */ command_cmd = (byte)cmd; - /* Done */ break; } @@ -4568,7 +4554,7 @@ void request_command(int shopping) 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; @@ -4761,7 +4747,7 @@ int get_keymap_dir(char ch) } else { - int mode; + BIT_FLAGS mode; cptr act, s; /* Roguelike */ @@ -4799,8 +4785,6 @@ int get_keymap_dir(char ch) } -#ifdef ALLOW_REPEAT /* TNB */ - #define REPEAT_MAX 20 /* Number of chars saved */ @@ -4810,10 +4794,10 @@ static int repeat__cnt = 0; 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; @@ -4826,7 +4810,7 @@ void repeat_push(int what) } -bool repeat_pull(int *what) +bool repeat_pull(COMMAND_CODE *what) { /* All out of keys */ if (repeat__idx == repeat__cnt) return (FALSE); @@ -4840,7 +4824,7 @@ bool repeat_pull(int *what) void repeat_check(void) { - int what; + COMMAND_CODE what; /* Ignore some commands */ if (command_cmd == ESCAPE) return; @@ -4876,8 +4860,6 @@ void repeat_check(void) } } -#endif /* ALLOW_REPEAT -- TNB */ - #ifdef SORT_R_INFO @@ -5401,7 +5383,7 @@ void str_tolower(char *str) continue; } #endif - *str = tolower(*str); + *str = (char)tolower(*str); } }