X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fcmd4.c;h=65465398e59ed938b636fd60934f49c2ebaa70ab;hb=b9c835731f89354137e4c2a8b163cd5cee65cc30;hp=dd934777d1cd3be3557d474b86f10572f62028bc;hpb=2f74f20958b09901f256a3596aaae9ab309f9445;p=hengbandforosx%2Fhengbandosx.git diff --git a/src/cmd4.c b/src/cmd4.c index dd934777d..65465398e 100644 --- a/src/cmd4.c +++ b/src/cmd4.c @@ -461,9 +461,11 @@ errr do_cmd_write_nikki(int type, int num, cptr note) case NIKKI_HIGAWARI: { #ifdef JP - fprintf(fff, "%dÆüÌÜ\n",day); + if (day < MAX_DAYS) fprintf(fff, "%dÆüÌÜ\n", day); + else fputs("*****ÆüÌÜ\n", fff); #else - fprintf(fff, "Day %d\n",day); + if (day < MAX_DAYS) fprintf(fff, "Day %d\n", day); + else fputs("Day *****\n", fff); #endif do_level = FALSE; break; @@ -749,62 +751,111 @@ errr do_cmd_write_nikki(int type, int num, cptr note) fprintf(fff, " %2d:%02d %20s ", hour, min, note_level); switch (num) { - case 0: + case RECORD_NAMED_PET_NAME: #ifdef JP fprintf(fff, "%s¤òι¤Îͧ¤Ë¤¹¤ë¤³¤È¤Ë·è¤á¤¿¡£\n", note); #else fprintf(fff, "decided to travel together with %s.\n", note); #endif break; - case 1: + case RECORD_NAMED_PET_UNNAME: #ifdef JP fprintf(fff, "%s¤Î̾Á°¤ò¾Ã¤·¤¿¡£\n", note); #else fprintf(fff, "unnamed %s.\n", note); #endif break; - case 2: + case RECORD_NAMED_PET_DISMISS: #ifdef JP fprintf(fff, "%s¤ò²òÊü¤·¤¿¡£\n", note); #else fprintf(fff, "dismissed %s.\n", note); #endif break; - case 3: + case RECORD_NAMED_PET_DEATH: #ifdef JP fprintf(fff, "%s¤¬»à¤ó¤Ç¤·¤Þ¤Ã¤¿¡£\n", note); #else fprintf(fff, "%s died.\n", note); #endif break; - case 4: + case RECORD_NAMED_PET_MOVED: #ifdef JP fprintf(fff, "%s¤ò¤ª¤¤¤ÆÊ̤ΥޥåפذÜÆ°¤·¤¿¡£\n", note); #else fprintf(fff, "moved to another map leaving %s behind.\n", note); #endif break; - case 5: + case RECORD_NAMED_PET_LOST_SIGHT: #ifdef JP fprintf(fff, "%s¤È¤Ï¤°¤ì¤Æ¤·¤Þ¤Ã¤¿¡£\n", note); #else fprintf(fff, "lost sight of %s.\n", note); #endif break; - case 6: + case RECORD_NAMED_PET_DESTROY: #ifdef JP fprintf(fff, "%s¤¬*Ç˲õ*¤Ë¤è¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note); #else fprintf(fff, "%s was made disappeared by *destruction*.\n", note); #endif break; - case 7: + case RECORD_NAMED_PET_EARTHQUAKE: #ifdef JP fprintf(fff, "%s¤¬´äÀФ˲¡¤·ÄÙ¤µ¤ì¤¿¡£\n", note); #else fprintf(fff, "%s was crushed by falling rocks.\n", note); #endif break; + case RECORD_NAMED_PET_GENOCIDE: +#ifdef JP + fprintf(fff, "%s¤¬Ëõ»¦¤Ë¤è¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note); +#else + fprintf(fff, "%s was made disappeared by genocide.\n", note); +#endif + break; + case RECORD_NAMED_PET_WIZ_ZAP: +#ifdef JP + fprintf(fff, "%s¤¬¥Ç¥Ð¥Ã¥°¥³¥Þ¥ó¥É¤Ë¤è¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note); +#else + fprintf(fff, "%s was removed by debug command.\n", note); +#endif + break; + case RECORD_NAMED_PET_TELE_LEVEL: +#ifdef JP + fprintf(fff, "%s¤¬¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë¤Ë¤è¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note); +#else + fprintf(fff, "%s was made disappeared by teleport level.\n", note); +#endif + break; + case RECORD_NAMED_PET_BLAST: +#ifdef JP + fprintf(fff, "%s¤òÇúÇˤ·¤¿¡£\n", note); +#else + fprintf(fff, "blasted %s.\n", note); +#endif + break; + case RECORD_NAMED_PET_HEAL_LEPER: +#ifdef JP + fprintf(fff, "%s¤Îɵ¤¤¬¼£¤ê餫¤é³°¤ì¤¿¡£\n", note); +#else + fprintf(fff, "%s was healed and left.\n", note); +#endif + break; + case RECORD_NAMED_PET_COMPACT: +#ifdef JP + fprintf(fff, "%s¤¬¥â¥ó¥¹¥¿¡¼¾ðÊ󰵽̤ˤè¤Ã¤Æ¾Ã¤¨µî¤Ã¤¿¡£\n", note); +#else + fprintf(fff, "%s was made disappeared by compacting monsters.\n", note); +#endif + break; + case RECORD_NAMED_PET_LOSE_PARENT: +#ifdef JP + fprintf(fff, "%s¤Î¾¤´­¼Ô¤¬´û¤Ë¤¤¤Ê¤¤¤¿¤á¾Ã¤¨µî¤Ã¤¿¡£\n", note); +#else + fprintf(fff, "%s disappeared because there does not exist summoner.\n", note); +#endif + break; default: fprintf(fff, "\n"); break; @@ -3008,7 +3059,7 @@ void do_cmd_macros(void) /* Describe that action */ #ifdef JP - prt("(1) ¥æ¡¼¥¶¡¼ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥í¡¼¥É", 4, 5); + prt("¥Þ¥¯¥í¹ÔÆ°¤¬(¤â¤·¤¢¤ì¤Ð)²¼¤Ëɽ¼¨¤µ¤ì¤Þ¤¹:", 20, 0); #else prt("Current action (if any) shown below:", 20, 0); #endif @@ -5302,6 +5353,7 @@ static cptr object_group_text[] = "¥´¥ß", "¶õ¤Î¥Ó¥ó", "¹ü", + "»àÂÎ", "Åá·õÎà", /* "Swords" */ "Æß´ï", /* "Blunt Weapons" */ "ĹÊÁÉð´ï", /* "Polearms" */ @@ -5320,6 +5372,7 @@ static cptr object_group_text[] = "´§", /* "Crowns" */ "¥Ö¡¼¥Ä", /* "Boots" */ "ËâË¡½ñ", + "ºâÊõ", "²¿¤«", #else "Mushrooms", @@ -5343,6 +5396,7 @@ static cptr object_group_text[] = "Junks", "Bottles", "Skeletons", + "Corpses", "Swords", "Blunt Weapons", "Polearms", @@ -5361,6 +5415,7 @@ static cptr object_group_text[] = "Crowns", "Boots", "Spellbooks", + "Treasure", "Something", #endif NULL @@ -5393,6 +5448,7 @@ static byte object_group_tval[] = TV_JUNK, TV_BOTTLE, TV_SKELETON, + TV_CORPSE, TV_SWORD, TV_HAFTED, TV_POLEARM, @@ -5411,6 +5467,7 @@ static byte object_group_tval[] = TV_CROWN, TV_BOOTS, TV_LIFE_BOOK, /* Hack -- all spellbooks */ + TV_GOLD, 0, 0, }; @@ -6562,6 +6619,7 @@ static void do_cmd_knowledge_artifacts(void) /* * Display known uniques + * With "XTRA HACK UNIQHIST" (Originally from XAngband) */ static void do_cmd_knowledge_uniques(void) { @@ -6573,10 +6631,19 @@ static void do_cmd_knowledge_uniques(void) 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) { + if (!fff) + { #ifdef JP msg_format("°ì»þ¥Õ¥¡¥¤¥ë %s ¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£", file_name); #else @@ -6593,9 +6660,36 @@ static void do_cmd_knowledge_uniques(void) 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 */ @@ -6605,31 +6699,64 @@ static void do_cmd_knowledge_uniques(void) /* Sort the array by dungeon depth of monsters */ ang_sort(who, &why, n); + if (n_alive_surface) + { +#ifdef JP + fprintf(fff, " ÃϾå À¸Â¸: %3dÂÎ\n", n_alive_surface); +#else + fprintf(fff, " Surface alive: %3d\n", n_alive_surface); +#endif + n_alive_total += n_alive_surface; + } + for (i = 0; i <= max_lev; i++) + { +#ifdef JP + fprintf(fff, "%3d-%3d³¬ À¸Â¸: %3dÂÎ\n", 1 + i * 10, 10 + i * 10, n_alive[i]); +#else + fprintf(fff, "Level %3d-%3d alive: %3d\n", 1 + i * 10, 10 + i * 10, n_alive[i]); +#endif + n_alive_total += n_alive[i]; + } + if (n_alive_over100) + { +#ifdef JP + fprintf(fff, "101- ³¬ À¸Â¸: %3dÂÎ\n", n_alive_over100); +#else + fprintf(fff, "Level 101- alive: %3d\n", n_alive_over100); +#endif + n_alive_total += n_alive_over100; + } + + if (n_alive_total) + { +#ifdef JP + fputs("--------- -----------\n", fff); + fprintf(fff, " ¹ç·× À¸Â¸: %3dÂÎ\n\n", n_alive_total); +#else + fputs("------------- ----------\n", fff); + fprintf(fff, " Total alive: %3d\n\n", n_alive_total); +#endif + } + else + { +#ifdef JP + fputs("¸½ºß¤Ï´ûÃΤÎÀ¸Â¸¥æ¥Ë¡¼¥¯¤Ï¤¤¤Þ¤»¤ó¡£\n", fff); +#else + fputs("No known uniques alive.\n", fff); +#endif + } + /* Scan the monster races */ for (k = 0; k < n; k++) { monster_race *r_ptr = &r_info[who[k]]; - /* Only print Uniques (rarity <= 100) */ - if ((r_ptr->flags1 & RF1_UNIQUE) && r_ptr->rarity && (r_ptr->rarity <= 100)) - { - 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 */ + /* Print a message */ #ifdef JP - fprintf(fff, " %s¤Ï¤Þ¤ÀÀ¸¤­¤Æ¤¤¤ë¡£\n", - (r_name + r_ptr->name)); + fprintf(fff, " %s (¥ì¥Ù¥ë%d)\n", r_name + r_ptr->name, r_ptr->level); #else - fprintf(fff, " %s is alive\n", - (r_name + r_ptr->name)); + fprintf(fff, " %s (level %d)\n", r_name + r_ptr->name, r_ptr->level); #endif - } - } } /* Free the "who" array */ @@ -7047,7 +7174,7 @@ static void do_cmd_knowledge_pets(void) fprintf(fff, "----------------------------------------------\n"); #ifdef JP - fprintf(fff, " ¹ç·×: %d ɤ¤Î¥Ú¥Ã¥È\n", t_friends); + fprintf(fff, " ¹ç·×: %d ÂΤΥڥåÈ\n", t_friends); fprintf(fff, " °Ý»ý¥³¥¹¥È: %d%% MP\n", show_upkeep); #else fprintf(fff, " Total: %d pet%s.\n", @@ -7141,21 +7268,12 @@ static void do_cmd_knowledge_kill_count(void) #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 - else #ifdef JP - fprintf(fff,"¤¢¤Ê¤¿¤Ï %lu ɤ¤ÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n", Total); + fprintf(fff,"¤¢¤Ê¤¿¤Ï%ldÂΤÎŨ¤òÅݤ·¤Æ¤¤¤ë¡£\n\n", Total); #else - fprintf(fff,"You have defeated %lu enemies.\n\n", Total); + fprintf(fff,"You have defeated %ld %s.\n\n", Total, (Total == 1) ? "enemy" : "enemies"); #endif - } Total = 0; @@ -7200,11 +7318,11 @@ static void do_cmd_knowledge_kill_count(void) if (This > 0) { #ifdef JP - /* p,t¤Ï¿Í¤È¿ô¤¨¤ë by ita*/ - if(my_strchr("pt",r_ptr->d_char)) + /* 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) { @@ -7234,7 +7352,7 @@ static void do_cmd_knowledge_kill_count(void) fprintf(fff,"----------------------------------------------\n"); #ifdef JP - fprintf(fff," ¹ç·×: %lu ɤ¤òÅݤ·¤¿¡£\n", Total); + fprintf(fff," ¹ç·×: %lu ÂΤòÅݤ·¤¿¡£\n", Total); #else fprintf(fff," Total: %lu creature%s killed.\n", Total, (Total == 1 ? "" : "s")); @@ -7551,7 +7669,7 @@ static bool visual_mode_command(char ch, bool *visual_list_ptr, 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; @@ -7776,8 +7894,8 @@ static void do_cmd_knowledge_monsters(bool *need_redraw, bool visual_only, int d if (direct_r_idx < 0) prt("Group", 4, 0); prt("Name", 4, max + 3); if (p_ptr->wizard || visual_only) prt("Idx", 4, 62); - prt("Sym ", 4, 67); - if (!visual_only) prt(" Kills", 4, 72); + prt("Sym", 4, 68); + if (!visual_only) prt("Kills", 4, 73); #endif for (i = 0; i < 78; i++) @@ -8041,7 +8159,7 @@ static void desc_obj_fake(int k_idx) /* 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("ÆäËÊѤï¤Ã¤¿¤È¤³¤í¤Ï¤Ê¤¤¤è¤¦¤À¡£"); @@ -8724,7 +8842,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, int d 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]; @@ -9903,6 +10021,7 @@ void do_cmd_time(void) char desc[1024]; char buf[1024]; + char day_buf[10]; FILE *fff; @@ -9922,14 +10041,17 @@ void do_cmd_time(void) #endif + 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