X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Ffiles.c;h=cbeb5b168d1838a0794be326327e68a2abf835ef;hb=d35ce4aec281386ea3e96c7e2ae6d6b115637566;hp=268645e35bd2bd2be84a0081abe55e658f4bb6dc;hpb=5903fcf4619483f306e89e7ca24bfda5e0000fc1;p=hengband%2Fhengband.git diff --git a/src/files.c b/src/files.c index 268645e35..cbeb5b168 100644 --- a/src/files.c +++ b/src/files.c @@ -822,7 +822,7 @@ cptr process_pref_file_expr(char **sp, char *fp) char b2 = ']'; char f = ' '; - static char tmp[8]; + static char tmp[10]; /* Initial */ s = (*sp); @@ -957,7 +957,7 @@ cptr process_pref_file_expr(char **sp, char *fp) { /* Accept all printables except spaces and brackets */ #ifdef JP - while ((iskanji(*s) || isprint(*s)) && !my_strchr(" []", *s)) + while (iskanji(*s) || (isprint(*s) && !my_strchr(" []", *s))) { if (iskanji(*s)) s++; s++; @@ -1074,6 +1074,13 @@ cptr process_pref_file_expr(char **sp, char *fp) else v = "0"; } + + /* Money */ + else if (streq(b+1, "MONEY")) + { + sprintf(tmp, "%09d", p_ptr->au); + v = tmp; + } } /* Constant */ @@ -2547,7 +2554,7 @@ static void player_flags(u32b flgs[TR_FLAG_SIZE]) case RACE_S_FAIRY: add_flag(flgs, TR_LEVITATION); break; - case RACE_KUTA: + case RACE_KUTAR: add_flag(flgs, TR_RES_CONF); break; case RACE_ANDROID: @@ -2779,6 +2786,18 @@ static void tim_player_flags(u32b flgs[TR_FLAG_SIZE]) add_flag(flgs, TR_SUST_CON); add_flag(flgs, TR_SUST_CHR); } + + /* Hex bonuses */ + if (p_ptr->realm1 == REALM_HEX) + { + if (hex_spelling(HEX_DEMON_AURA)) + { + add_flag(flgs, TR_SH_FIRE); + add_flag(flgs, TR_REGEN); + } + if (hex_spelling(HEX_ICE_ARMOR)) add_flag(flgs, TR_SH_COLD); + if (hex_spelling(HEX_SHOCK_CLOAK)) add_flag(flgs, TR_SH_ELEC); + } } @@ -3245,49 +3264,49 @@ static void display_player_other_flag_info(void) row = 3; col = col + 12 + 7; - display_player_equippy(row-2, col+12, 0); - c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+12); - -#ifdef JP - display_flag_aux(row+ 0, col, "¥Æ¥ì¥Ñ¥·¡¼:", TR_TELEPATHY, &f, 0); - display_flag_aux(row+ 1, col, "¼Ù°­ESP :", TR_ESP_EVIL, &f, 0); - display_flag_aux(row+ 2, col, "̵À¸ÊªESP :", TR_ESP_NONLIVING, &f, 0); - display_flag_aux(row+ 3, col, "Á±ÎÉESP :", TR_ESP_GOOD, &f, 0); - display_flag_aux(row+ 4, col, "ÉÔ»àESP :", TR_ESP_UNDEAD, &f, 0); - display_flag_aux(row+ 5, col, "°­ËâESP :", TR_ESP_DEMON, &f, 0); - display_flag_aux(row+ 6, col, "ζESP :", TR_ESP_DRAGON, &f, 0); - display_flag_aux(row+ 7, col, "¿Í´ÖESP :", TR_ESP_HUMAN, &f, 0); - display_flag_aux(row+ 8, col, "ưʪESP :", TR_ESP_ANIMAL, &f, 0); - display_flag_aux(row+ 9, col, "¥ª¡¼¥¯ESP :", TR_ESP_ORC, &f, 0); - display_flag_aux(row+10, col, "¥È¥í¥ëESP :", TR_ESP_TROLL, &f, 0); - display_flag_aux(row+11, col, "µð¿ÍESP :", TR_ESP_GIANT, &f, 0); - - display_flag_aux(row+13, col, "ÏÓÎÏ°Ý»ý :", TR_SUST_STR, &f, 0); - display_flag_aux(row+14, col, "ÃÎÎÏ°Ý»ý :", TR_SUST_INT, &f, 0); - display_flag_aux(row+15, col, "¸­¤µ°Ý»ý :", TR_SUST_WIS, &f, 0); - display_flag_aux(row+16, col, "´ïÍÑ°Ý»ý :", TR_SUST_DEX, &f, 0); - display_flag_aux(row+17, col, "Âѵװݻý :", TR_SUST_CON, &f, 0); - display_flag_aux(row+18, col, "Ì¥ÎÏ°Ý»ý :", TR_SUST_CHR, &f, 0); -#else - display_flag_aux(row+ 0, col, "Telepathy :", TR_TELEPATHY, &f, 0); - display_flag_aux(row+ 1, col, "ESP Evil :", TR_ESP_EVIL, &f, 0); - display_flag_aux(row+ 2, col, "ESP Noliv.:", TR_ESP_NONLIVING, &f, 0); - display_flag_aux(row+ 3, col, "ESP Good :", TR_ESP_GOOD, &f, 0); - display_flag_aux(row+ 4, col, "ESP Undead:", TR_ESP_UNDEAD, &f, 0); - display_flag_aux(row+ 5, col, "ESP Demon :", TR_ESP_DEMON, &f, 0); - display_flag_aux(row+ 6, col, "ESP Dragon:", TR_ESP_DRAGON, &f, 0); - display_flag_aux(row+ 7, col, "ESP Human :", TR_ESP_HUMAN, &f, 0); - display_flag_aux(row+ 8, col, "ESP Animal:", TR_ESP_ANIMAL, &f, 0); - display_flag_aux(row+ 9, col, "ESP Orc :", TR_ESP_ORC, &f, 0); - display_flag_aux(row+10, col, "ESP Troll :", TR_ESP_TROLL, &f, 0); - display_flag_aux(row+11, col, "ESP Giant :", TR_ESP_GIANT, &f, 0); - - display_flag_aux(row+13, col, "Sust Str :", TR_SUST_STR, &f, 0); - display_flag_aux(row+14, col, "Sust Int :", TR_SUST_INT, &f, 0); - display_flag_aux(row+15, col, "Sust Wis :", TR_SUST_WIS, &f, 0); - display_flag_aux(row+16, col, "Sust Dex :", TR_SUST_DEX, &f, 0); - display_flag_aux(row+17, col, "Sust Con :", TR_SUST_CON, &f, 0); - display_flag_aux(row+18, col, "Sust Chr :", TR_SUST_CHR, &f, 0); + display_player_equippy(row-2, col+13, 0); + c_put_str(TERM_WHITE, "abcdefghijkl@", row-1, col+13); + +#ifdef JP + display_flag_aux(row+ 0, col, "¥Æ¥ì¥Ñ¥·¡¼ :", TR_TELEPATHY, &f, 0); + display_flag_aux(row+ 1, col, "¼Ù°­ESP :", TR_ESP_EVIL, &f, 0); + display_flag_aux(row+ 2, col, "̵À¸ÊªESP :", TR_ESP_NONLIVING, &f, 0); + display_flag_aux(row+ 3, col, "Á±ÎÉESP :", TR_ESP_GOOD, &f, 0); + display_flag_aux(row+ 4, col, "ÉÔ»àESP :", TR_ESP_UNDEAD, &f, 0); + display_flag_aux(row+ 5, col, "°­ËâESP :", TR_ESP_DEMON, &f, 0); + display_flag_aux(row+ 6, col, "ζESP :", TR_ESP_DRAGON, &f, 0); + display_flag_aux(row+ 7, col, "¿Í´ÖESP :", TR_ESP_HUMAN, &f, 0); + display_flag_aux(row+ 8, col, "ưʪESP :", TR_ESP_ANIMAL, &f, 0); + display_flag_aux(row+ 9, col, "¥ª¡¼¥¯ESP :", TR_ESP_ORC, &f, 0); + display_flag_aux(row+10, col, "¥È¥í¥ëESP :", TR_ESP_TROLL, &f, 0); + display_flag_aux(row+11, col, "µð¿ÍESP :", TR_ESP_GIANT, &f, 0); + display_flag_aux(row+12, col, "¥æ¥Ë¡¼¥¯ESP:", TR_ESP_UNIQUE, &f, 0); + display_flag_aux(row+13, col, "ÏÓÎÏ°Ý»ý :", TR_SUST_STR, &f, 0); + display_flag_aux(row+14, col, "ÃÎÎÏ°Ý»ý :", TR_SUST_INT, &f, 0); + display_flag_aux(row+15, col, "¸­¤µ°Ý»ý :", TR_SUST_WIS, &f, 0); + display_flag_aux(row+16, col, "´ïÍÑ°Ý»ý :", TR_SUST_DEX, &f, 0); + display_flag_aux(row+17, col, "Âѵװݻý :", TR_SUST_CON, &f, 0); + display_flag_aux(row+18, col, "Ì¥ÎÏ°Ý»ý :", TR_SUST_CHR, &f, 0); +#else + display_flag_aux(row+ 0, col, "Telepathy :", TR_TELEPATHY, &f, 0); + display_flag_aux(row+ 1, col, "ESP Evil :", TR_ESP_EVIL, &f, 0); + display_flag_aux(row+ 2, col, "ESP Noliv. :", TR_ESP_NONLIVING, &f, 0); + display_flag_aux(row+ 3, col, "ESP Good :", TR_ESP_GOOD, &f, 0); + display_flag_aux(row+ 4, col, "ESP Undead :", TR_ESP_UNDEAD, &f, 0); + display_flag_aux(row+ 5, col, "ESP Demon :", TR_ESP_DEMON, &f, 0); + display_flag_aux(row+ 6, col, "ESP Dragon :", TR_ESP_DRAGON, &f, 0); + display_flag_aux(row+ 7, col, "ESP Human :", TR_ESP_HUMAN, &f, 0); + display_flag_aux(row+ 8, col, "ESP Animal :", TR_ESP_ANIMAL, &f, 0); + display_flag_aux(row+ 9, col, "ESP Orc :", TR_ESP_ORC, &f, 0); + display_flag_aux(row+10, col, "ESP Troll :", TR_ESP_TROLL, &f, 0); + display_flag_aux(row+11, col, "ESP Giant :", TR_ESP_GIANT, &f, 0); + display_flag_aux(row+12, col, "ESP Unique :", TR_ESP_UNIQUE, &f, 0); + display_flag_aux(row+13, col, "Sust Str :", TR_SUST_STR, &f, 0); + display_flag_aux(row+14, col, "Sust Int :", TR_SUST_INT, &f, 0); + display_flag_aux(row+15, col, "Sust Wis :", TR_SUST_WIS, &f, 0); + display_flag_aux(row+16, col, "Sust Dex :", TR_SUST_DEX, &f, 0); + display_flag_aux(row+17, col, "Sust Con :", TR_SUST_CON, &f, 0); + display_flag_aux(row+18, col, "Sust Chr :", TR_SUST_CHR, &f, 0); #endif @@ -4108,11 +4127,7 @@ static void dump_aux_display_player(FILE *fff) fprintf(fff, "%s\n", buf); } - for (i = 0; (unsigned int) i < (p_ptr->count / 80); i++) - fprintf(fff, " "); fprintf(fff, "\n"); - for (i = 0; (unsigned int) i < (p_ptr->count % 80); i++) - fprintf(fff, " "); } @@ -4331,7 +4346,88 @@ static void dump_aux_class_special(FILE *fff) for (i=0;i<=col;i++) { - fprintf(fff, p[i]); + fputs(p[i], fff); + } + } + else if (p_ptr->pclass == CLASS_MAGIC_EATER) + { + char s[EATER_EXT][MAX_NLEN]; + int tval, ext, k_idx; + int i, magic_num; + +#ifdef JP + fprintf(fff, "\n\n [¼è¤ê¹þ¤ó¤ÀËâË¡Æ»¶ñ]\n"); +#else + fprintf(fff, "\n\n [Magic devices eaten]\n"); +#endif + + for (ext = 0; ext < 3; ext++) + { + int eat_num = 0; + + /* Dump an extent name */ + switch (ext) + { + case 0: + tval = TV_STAFF; +#ifdef JP + fprintf(fff, "\n[¾ó]\n"); +#else + fprintf(fff, "\n[Staffs]\n"); +#endif + break; + case 1: + tval = TV_WAND; +#ifdef JP + fprintf(fff, "\n[ËâË¡ËÀ]\n"); +#else + fprintf(fff, "\n[Wands]\n"); +#endif + break; + case 2: + tval = TV_ROD; +#ifdef JP + fprintf(fff, "\n[¥í¥Ã¥É]\n"); +#else + fprintf(fff, "\n[Rods]\n"); +#endif + break; + } + + /* Get magic device names that were eaten */ + for (i = 0; i < EATER_EXT; i++) + { + int idx = EATER_EXT * ext + i; + + magic_num = p_ptr->magic_num2[idx]; + if (!magic_num) continue; + + k_idx = lookup_kind(tval, i); + if (!k_idx) continue; + sprintf(s[eat_num], "%23s (%2d)", (k_name + k_info[k_idx].name), magic_num); + eat_num++; + } + + /* Dump magic devices in this extent */ + if (eat_num > 0) + { + for (i = 0; i < eat_num; i++) + { + fputs(s[i], fff); + if (i % 3 < 2) fputs(" ", fff); + else fputs("\n", fff); + } + + if (i % 3 > 0) fputs("\n", fff); + } + else /* Not found */ + { +#ifdef JP + fputs(" (¤Ê¤·)\n", fff); +#else + fputs(" (none)\n", fff); +#endif + } } } } @@ -5157,7 +5253,7 @@ static void show_file_aux_line(cptr str, int cy, cptr shower) /* Search for a shower string in the line */ if (shower) { - ptr = my_strstr(&lcstr[i], shower); + ptr = my_strstr(&lcstr[i], shower); if (ptr) showercol = ptr - &lcstr[i]; } @@ -5276,6 +5372,7 @@ bool show_file(bool show_version, cptr name, cptr what, int line, int mode) /* Hold strings to find/show */ char finder_str[81]; char shower_str[81]; + char back_str[81]; /* String to show */ cptr shower = NULL; @@ -5626,9 +5723,10 @@ prt("[ /* Get a special key code */ skey = inkey_special(TRUE); - /* Show the help for the help */ - if (skey == '?') + switch (skey) { + /* Show the help for the help */ + case '?': /* Hack - prevent silly recursion */ #ifdef JP if (strcmp(name, "jhelpinfo.txt") != 0) @@ -5637,11 +5735,10 @@ prt("[ if (strcmp(name, "helpinfo.txt") != 0) show_file(TRUE, "helpinfo.txt", NULL, 0, mode); #endif - } + break; /* Hack -- try showing */ - if (skey == '=') - { + case '=': /* Get "shower" */ #ifdef JP prt("¶¯Ä´: ", hgt - 1, 0); @@ -5649,18 +5746,25 @@ prt("[ prt("Show: ", hgt - 1, 0); #endif - (void)askfor(shower_str, 80); - - /* Make it lowercase */ - str_tolower(shower_str); + strcpy(back_str, shower_str); + if (askfor(shower_str, 80)) + { + if (shower_str[0]) + { + /* Make it lowercase */ + str_tolower(shower_str); - /* Show it */ - shower = shower_str; - } + /* Show it */ + shower = shower_str; + } + else shower = NULL; /* Stop showing */ + } + else strcpy(shower_str, back_str); + break; /* Hack -- try finding */ - if (skey == '/' || skey == KTRL('s')) - { + case '/': + case KTRL('s'): /* Get "finder" */ #ifdef JP prt("¸¡º÷: ", hgt - 1, 0); @@ -5668,113 +5772,113 @@ prt("[ prt("Find: ", hgt - 1, 0); #endif - + strcpy(back_str, finder_str); if (askfor(finder_str, 80)) { - /* Find it */ - find = finder_str; - back = line; - line = line + 1; + if (finder_str[0]) + { + /* Find it */ + find = finder_str; + back = line; + line = line + 1; - /* Make finder lowercase */ - str_tolower(finder_str); + /* Make finder lowercase */ + str_tolower(finder_str); - /* Show it */ - shower = finder_str; + /* Show it */ + shower = finder_str; + } + else shower = NULL; /* Stop showing */ } - } + else strcpy(finder_str, back_str); + break; /* Hack -- go to a specific line */ - if (skey == '#') - { - char tmp[81]; + case '#': + { + char tmp[81]; #ifdef JP -prt("¹Ô: ", hgt - 1, 0); + prt("¹Ô: ", hgt - 1, 0); #else - prt("Goto Line: ", hgt - 1, 0); + prt("Goto Line: ", hgt - 1, 0); #endif - strcpy(tmp, "0"); + strcpy(tmp, "0"); - if (askfor(tmp, 80)) - { - line = atoi(tmp); + if (askfor(tmp, 80)) line = atoi(tmp); } - } + break; /* Hack -- go to the top line */ - if (skey == SKEY_TOP) - { + case SKEY_TOP: line = 0; - } + break; /* Hack -- go to the bottom line */ - if (skey == SKEY_BOTTOM) - { - line = ((size-1)/rows)*rows; - } + case SKEY_BOTTOM: + line = ((size - 1) / rows) * rows; + break; /* Hack -- go to a specific file */ - if (skey == '%') - { - char tmp[81]; + case '%': + { + char tmp[81]; #ifdef JP -prt("¥Õ¥¡¥¤¥ë¡¦¥Í¡¼¥à: ", hgt - 1, 0); -strcpy(tmp, "jhelp.hlp"); + prt("¥Õ¥¡¥¤¥ë¡¦¥Í¡¼¥à: ", hgt - 1, 0); + strcpy(tmp, "jhelp.hlp"); #else - prt("Goto File: ", hgt - 1, 0); - strcpy(tmp, "help.hlp"); + prt("Goto File: ", hgt - 1, 0); + strcpy(tmp, "help.hlp"); #endif - - if (askfor(tmp, 80)) - { - if (!show_file(TRUE, tmp, NULL, 0, mode)) skey = 'q'; + if (askfor(tmp, 80)) + { + if (!show_file(TRUE, tmp, NULL, 0, mode)) skey = 'q'; + } } - } + break; /* Allow backing up */ - if (skey == '-') - { + case '-': line = line + (reverse ? rows : -rows); if (line < 0) line = 0; - } + break; /* One page up */ - if (skey == SKEY_PGUP) - { + case SKEY_PGUP: line = line - rows; if (line < 0) line = 0; - } + break; /* Advance a single line */ - if ((skey == '\n') || (skey == '\r')) - { + case '\n': + case '\r': line = line + (reverse ? -1 : 1); if (line < 0) line = 0; - } - + break; /* Move up / down */ - if (skey == '8' || skey == SKEY_UP) - { + case '8': + case SKEY_UP: line--; if (line < 0) line = 0; - } + break; - if (skey == '2' || skey == SKEY_DOWN) line++; + case '2': + case SKEY_DOWN: + line++; + break; /* Advance one page */ - if (skey == ' ') - { + case ' ': line = line + (reverse ? -rows : rows); if (line < 0) line = 0; - } + break; /* One page down */ - if (skey == SKEY_PGDOWN) - { + case SKEY_PGDOWN: line = line + rows; + break; } /* Recurse on numbers */ @@ -5803,14 +5907,11 @@ strcpy(tmp, "jhelp.hlp"); strcpy (xtmp, ""); #ifdef JP - if (!get_string("¥Õ¥¡¥¤¥ë̾: ", xtmp, 80)) + if (!get_string("¥Õ¥¡¥¤¥ë̾: ", xtmp, 80)) continue; #else - if (!get_string("File name: ", xtmp, 80)) + if (!get_string("File name: ", xtmp, 80)) continue; #endif - { - continue; - } - + /* Close it */ my_fclose(fff); @@ -5826,11 +5927,10 @@ strcpy(tmp, "jhelp.hlp"); if (!(fff && ffp)) { #ifdef JP -msg_print("¥Õ¥¡¥¤¥ë¤¬³«¤±¤Þ¤»¤ó¡£"); + msg_print("¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó¡£"); #else msg_print("Failed to open file."); #endif - skey = ESCAPE; break; } @@ -5851,8 +5951,7 @@ msg_print(" } /* Return to last screen */ - if (skey == ESCAPE) break; - if (skey == '<') break; + if ((skey == ESCAPE) || (skey == '<')) break; /* Exit on the ^q */ if (skey == KTRL('q')) skey = 'q'; @@ -6103,7 +6202,8 @@ void get_name(void) /* Use the name */ strcpy(player_name, tmp); } - else if (0 == strlen(player_name)) + + if (0 == strlen(player_name)) { /* Use default name */ strcpy(player_name, "PLAYER");