Index: cmd4.c =================================================================== --- cmd4.c (revision 2930) +++ cmd4.c (working copy) @@ -5060,6 +5060,8 @@ #ifdef JP "ユニーク", /* "Uniques" */ "乗馬可能なモンスター", /* "Riding" */ + "アンバーの王族", /* "Amberite" */ + "賞金首", /* "Wanted" */ "アリ", "コウモリ", "ムカデ", @@ -5119,6 +5121,8 @@ #else "Uniques", "Ridable monsters", + "Amberite", + "Wanted monsters", "Ant", "Bat", "Centipede", @@ -5188,6 +5192,8 @@ { (char *) -1L, (char *) -2L, + (char *) -3L, + (char *) -4L, "a", "b", "c", @@ -5293,6 +5299,12 @@ /* 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 "Amberite" group */ + bool grp_amberite = (monster_group_char[grp_cur] == (char *) -3L); + + /* XXX Hack -- Check if this is the "Amberite" group */ + bool grp_wanted = (monster_group_char[grp_cur] == (char *) -4L); + /* Check every race */ for (i = 0; i < max_r_idx; i++) { @@ -5315,6 +5327,27 @@ if (!(r_ptr->flags7 & RF7_RIDING)) continue; } + else if (grp_amberite) + { + if (!(r_ptr->flags3 & RF3_AMBERITE)) 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 { /* Check for race in the group */ @@ -8933,12 +8966,44 @@ for (i = 0; i < MAX_KUBI; i++) { + const char *color; + const char *done_mark; + monster_race *r_ptr; + if (kubi_r_idx[i] <= 10000) { - fprintf(fff,"%s\n", r_name + r_info[kubi_r_idx[i]].name); - listed = TRUE; + r_ptr = &r_info[kubi_r_idx[i]]; + if (r_ptr->max_num == 0) + { + color = "[[[[y|"; +#ifdef JP + done_mark = "(死亡)"; +#else + done_mark = "(dead)"; +#endif + } + else + { + color = "[[[[w|"; +#ifdef JP + done_mark = ""; +#else + done_mark = ""; +#endif + } } + else + { + r_ptr = &r_info[kubi_r_idx[i] - 10000]; + color = "[[[[r|"; +#ifdef JP + done_mark = "(済)"; +#else + done_mark = "(done)"; +#endif + } + fprintf(fff,"%s%s %s|\n", color, r_name + r_ptr->name, done_mark); } if (!listed)