From: mogami Date: Sun, 24 Mar 2002 12:50:39 +0000 (+0000) Subject: モンスタースポイラーのコードを思い出のコードと共通化。 X-Git-Tag: v2.1.2~2367 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b1f5f97798aadbca275e5bc1a541494c4f0a0834;p=hengband%2Fhengband.git モンスタースポイラーのコードを思い出のコードと共通化。 ついでにcheat_knowと町でのモンスター調査のコード整理。 --- diff --git a/src/cmd3.c b/src/cmd3.c index 93368aa9b..bf741f1b9 100644 --- a/src/cmd3.c +++ b/src/cmd3.c @@ -2938,8 +2938,6 @@ bool research_mon(void) u16b why = 0; - monster_race *r2_ptr; - u16b *who; /* XTRA HACK WHATSEARCH */ @@ -2952,8 +2950,6 @@ bool research_mon(void) static int old_sym = '\0'; static int old_i = 0; - oldcheat = cheat_know; - /* Save the screen */ screen_save(); @@ -3050,8 +3046,6 @@ sprintf(buf, "%c - %s", sym, "̵ { monster_race *r_ptr = &r_info[i]; - cheat_know = TRUE; - /* XTRA HACK WHATSEARCH */ /* Require non-unique monsters if needed */ if (norm && (r_ptr->flags1 & (RF1_UNIQUE))) continue; @@ -3092,8 +3086,6 @@ sprintf(buf, "%c - %s", sym, "̵ /* Nothing to recall */ if (!n) { - cheat_know = oldcheat; - /* Free the "who" array */ C_KILL(who, max_r_idx, u16b); @@ -3156,14 +3148,52 @@ Term_addstr(-1, TERM_WHITE, " ['r' if (recall) { /* Recall on screen */ - r2_ptr = &r_info[r_idx]; - - oldkills = r2_ptr->r_tkills; - oldwake = r2_ptr->r_wake; - screen_roff(who[i], 1); - r2_ptr->r_tkills = oldkills; - r2_ptr->r_wake = oldwake; - cheat_know = oldcheat; + monster_race *r_ptr = &r_info[r_idx]; + int m; + + /* Hack -- Maximal info */ + r_ptr->r_wake = r_ptr->r_ignore = MAX_UCHAR; + + /* Observe "maximal" attacks */ + for (m = 0; m < 4; m++) + { + /* Examine "actual" blows */ + if (r_ptr->blow[m].effect || r_ptr->blow[m].method) + { + /* Hack -- maximal observations */ + r_ptr->r_blows[m] = MAX_UCHAR; + } + } + + /* Hack -- maximal drops */ + r_ptr->r_drop_gold = r_ptr->r_drop_item = + (((r_ptr->flags1 & RF1_DROP_4D2) ? 8 : 0) + + ((r_ptr->flags1 & RF1_DROP_3D2) ? 6 : 0) + + ((r_ptr->flags1 & RF1_DROP_2D2) ? 4 : 0) + + ((r_ptr->flags1 & RF1_DROP_1D2) ? 2 : 0) + + ((r_ptr->flags1 & RF1_DROP_90) ? 1 : 0) + + ((r_ptr->flags1 & RF1_DROP_60) ? 1 : 0)); + + /* Hack -- but only "valid" drops */ + if (r_ptr->flags1 & RF1_ONLY_GOLD) r_ptr->r_drop_item = 0; + if (r_ptr->flags1 & RF1_ONLY_ITEM) r_ptr->r_drop_gold = 0; + + /* Hack -- observe many spells */ + r_ptr->r_cast_inate = MAX_UCHAR; + r_ptr->r_cast_spell = MAX_UCHAR; + + /* Hack -- know all the flags */ + r_ptr->r_flags1 = r_ptr->flags1; + r_ptr->r_flags2 = r_ptr->flags2; + r_ptr->r_flags3 = r_ptr->flags3; + r_ptr->r_flags4 = r_ptr->flags4; + r_ptr->r_flags5 = r_ptr->flags5; + r_ptr->r_flags6 = r_ptr->flags6; + + r_ptr->r_xtra1 |= MR1_SINKA; + + /* know every thing mode */ + screen_roff(r_idx, 0x01); notpicked = FALSE; /* XTRA HACK REMEMBER_IDX */ @@ -3209,8 +3239,6 @@ Term_addstr(-1, TERM_WHITE, " ['r' /* Re-display the identity */ /* prt(buf, 5, 5);*/ - cheat_know = oldcheat; - /* Free the "who" array */ C_KILL(who, max_r_idx, u16b); diff --git a/src/externs.h b/src/externs.h index ec1c4fc8e..452311c03 100644 --- a/src/externs.h +++ b/src/externs.h @@ -767,8 +767,9 @@ extern void monster_gain_exp(int m_idx, int s_idx); /* monster1.c */ extern void roff_top(int r_idx); -extern void screen_roff(int r_idx, int remember); +extern void screen_roff(int r_idx, int mode); extern void display_roff(int r_idx); +extern void output_monster_spoiler(int r_idx, void (*roff_func)(byte attr, cptr str)); extern void create_name(int type, char *name); /* monster1.c (was in monster3.c ??) */ extern bool monster_quest(int r_idx); diff --git a/src/monster1.c b/src/monster1.c index 754f3fe47..3761220cb 100644 --- a/src/monster1.c +++ b/src/monster1.c @@ -106,7 +106,19 @@ static bool know_damage(int r_idx, int i) /* - * Hack -- display monster information using "roff()" + * Prepare hook for c_roff(). It will be changed for spoiler generation in wizard1.c. + */ +void (*hook_c_roff)(byte attr, cptr str) = c_roff; + +static void hooked_roff(cptr str) +{ + /* Spawn */ + hook_c_roff(TERM_WHITE, str); +} + + +/* + * Hack -- display monster information using "hooked_roff()" * * Note that there is now a compiler option to only read the monster * descriptions from the raw file when they are actually needed, which @@ -117,7 +129,7 @@ static bool know_damage(int r_idx, int i) * left edge of the screen, on a cleared line, in which the recall is * to take place. One extra blank line is left after the recall. */ -static void roff_aux(int r_idx, int remem) +static void roff_aux(int r_idx, int mode) { monster_race *r_ptr = &r_info[r_idx]; @@ -146,40 +158,36 @@ static void roff_aux(int r_idx, int remem) u32b flags6; u32b flags7; + byte drop_gold, drop_item; + int vn = 0; byte color[64]; cptr vp[64]; - monster_race save_mem; + bool know_everything = FALSE; + /* Obtain a copy of the "known" number of drops */ + drop_gold = r_ptr->r_drop_gold; + drop_item = r_ptr->r_drop_item; - /* Cheat -- Know everything */ - if (cheat_know) - { - /* XXX XXX XXX */ - - /* Save the "old" memory */ - save_mem = *r_ptr; - - /* Hack -- Maximal kills */ -/* r_ptr->r_tkills = MAX_SHORT; */ - - /* Hack -- Maximal info */ - r_ptr->r_wake = r_ptr->r_ignore = MAX_UCHAR; + /* Obtain a copy of the "known" flags */ + flags1 = (r_ptr->flags1 & r_ptr->r_flags1); + flags2 = (r_ptr->flags2 & r_ptr->r_flags2); + flags3 = (r_ptr->flags3 & r_ptr->r_flags3); + flags4 = (r_ptr->flags4 & r_ptr->r_flags4); + flags5 = (r_ptr->flags5 & r_ptr->r_flags5); + flags6 = (r_ptr->flags6 & r_ptr->r_flags6); + flags7 = (r_ptr->flags7 & r_ptr->flags7); - /* Observe "maximal" attacks */ - for (m = 0; m < 4; m++) - { - /* Examine "actual" blows */ - if (r_ptr->blow[m].effect || r_ptr->blow[m].method) - { - /* Hack -- maximal observations */ - r_ptr->r_blows[m] = MAX_UCHAR; - } - } + /* cheat_know or reserch_mon() */ + if (cheat_know || (mode & 0x01)) + know_everything = TRUE; + /* Cheat -- Know everything */ + if (know_everything) + { /* Hack -- maximal drops */ - r_ptr->r_drop_gold = r_ptr->r_drop_item = + drop_gold = drop_item = (((r_ptr->flags1 & RF1_DROP_4D2) ? 8 : 0) + ((r_ptr->flags1 & RF1_DROP_3D2) ? 6 : 0) + ((r_ptr->flags1 & RF1_DROP_2D2) ? 4 : 0) + @@ -188,22 +196,16 @@ static void roff_aux(int r_idx, int remem) ((r_ptr->flags1 & RF1_DROP_60) ? 1 : 0)); /* Hack -- but only "valid" drops */ - if (r_ptr->flags1 & RF1_ONLY_GOLD) r_ptr->r_drop_item = 0; - if (r_ptr->flags1 & RF1_ONLY_ITEM) r_ptr->r_drop_gold = 0; - - /* Hack -- observe many spells */ - r_ptr->r_cast_inate = MAX_UCHAR; - r_ptr->r_cast_spell = MAX_UCHAR; + if (r_ptr->flags1 & RF1_ONLY_GOLD) drop_item = 0; + if (r_ptr->flags1 & RF1_ONLY_ITEM) drop_gold = 0; /* Hack -- know all the flags */ - r_ptr->r_flags1 = r_ptr->flags1; - r_ptr->r_flags2 = r_ptr->flags2; - r_ptr->r_flags3 = r_ptr->flags3; - r_ptr->r_flags4 = r_ptr->flags4; - r_ptr->r_flags5 = r_ptr->flags5; - r_ptr->r_flags6 = r_ptr->flags6; - - r_ptr->r_xtra1 |= MR1_SINKA; + flags1 = r_ptr->flags1; + flags2 = r_ptr->flags2; + flags3 = r_ptr->flags3; + flags4 = r_ptr->flags4; + flags5 = r_ptr->flags5; + flags6 = r_ptr->flags6; } @@ -211,17 +213,6 @@ static void roff_aux(int r_idx, int remem) if (r_ptr->flags1 & RF1_FEMALE) msex = 2; else if (r_ptr->flags1 & RF1_MALE) msex = 1; - - /* Obtain a copy of the "known" flags */ - flags1 = (r_ptr->flags1 & r_ptr->r_flags1); - flags2 = (r_ptr->flags2 & r_ptr->r_flags2); - flags3 = (r_ptr->flags3 & r_ptr->r_flags3); - flags4 = (r_ptr->flags4 & r_ptr->r_flags4); - flags5 = (r_ptr->flags5 & r_ptr->r_flags5); - flags6 = (r_ptr->flags6 & r_ptr->r_flags6); - flags7 = (r_ptr->flags7 & r_ptr->flags7); - - /* Assume some "obvious" flags */ if (r_ptr->flags1 & RF1_UNIQUE) flags1 |= (RF1_UNIQUE); if (r_ptr->flags1 & RF1_QUESTOR) flags1 |= (RF1_QUESTOR); @@ -234,7 +225,7 @@ static void roff_aux(int r_idx, int remem) if (r_ptr->flags1 & RF1_ESCORTS) flags1 |= (RF1_ESCORTS); /* Killing a monster reveals some properties */ - if (r_ptr->r_tkills || cheat_know) + if (r_ptr->r_tkills || know_everything) { /* Know "race" flags */ if (r_ptr->flags3 & RF3_ORC) flags3 |= (RF3_ORC); @@ -257,6 +248,12 @@ static void roff_aux(int r_idx, int remem) if (r_ptr->flags1 & RF1_FORCE_MAXHP) flags1 |= (RF1_FORCE_MAXHP); } + /* For output_monster_spoiler() */ + if (mode & 0x02) + { + /* Nothing to do */ + } + else /* Treat uniques differently */ if (flags1 & RF1_UNIQUE) @@ -269,9 +266,9 @@ static void roff_aux(int r_idx, int remem) { /* Killed ancestors */ #ifdef JP - roff(format("%^s¤Ï¤¢¤Ê¤¿¤ÎÀèÁĤò %d ¿ÍÁò¤Ã¤Æ¤¤¤ë", + hooked_roff(format("%^s¤Ï¤¢¤Ê¤¿¤ÎÀèÁĤò %d ¿ÍÁò¤Ã¤Æ¤¤¤ë", #else - roff(format("%^s has slain %d of your ancestors", + hooked_roff(format("%^s has slain %d of your ancestors", #endif wd_he[msex], r_ptr->r_deaths)); @@ -280,9 +277,9 @@ static void roff_aux(int r_idx, int remem) if (dead) { #ifdef JP - roff(format("¤¬¡¢¤¹¤Ç¤ËµØƤ¤Á¤Ï²Ì¤¿¤·¤Æ¤¤¤ë¡ª")); + hooked_roff(format("¤¬¡¢¤¹¤Ç¤ËµØƤ¤Á¤Ï²Ì¤¿¤·¤Æ¤¤¤ë¡ª")); #else - roff(format(", but you have avenged %s! ", + hooked_roff(format(", but you have avenged %s! ", plural(r_ptr->r_deaths, "him", "them"))); #endif @@ -292,9 +289,9 @@ static void roff_aux(int r_idx, int remem) else { #ifdef JP - roff(format("¤Î¤Ë¡¢¤Þ¤ÀµØƤ¤Á¤ò²Ì¤¿¤·¤Æ¤¤¤Ê¤¤¡£")); + hooked_roff(format("¤Î¤Ë¡¢¤Þ¤ÀµØƤ¤Á¤ò²Ì¤¿¤·¤Æ¤¤¤Ê¤¤¡£")); #else - roff(format(", who %s unavenged. ", + hooked_roff(format(", who %s unavenged. ", plural(r_ptr->r_deaths, "remains", "remain"))); #endif @@ -305,9 +302,9 @@ static void roff_aux(int r_idx, int remem) else if (dead) { #ifdef JP - roff("¤¢¤Ê¤¿¤Ï¤³¤ÎµØŨ¤ò¤¹¤Ç¤ËÁò¤êµî¤Ã¤Æ¤¤¤ë¡£"); + hooked_roff("¤¢¤Ê¤¿¤Ï¤³¤ÎµØŨ¤ò¤¹¤Ç¤ËÁò¤êµî¤Ã¤Æ¤¤¤ë¡£"); #else - roff("You have slain this foe. "); + hooked_roff("You have slain this foe. "); #endif } @@ -318,10 +315,10 @@ static void roff_aux(int r_idx, int remem) { /* Dead ancestors */ #ifdef JP - roff(format("¤³¤Î¥â¥ó¥¹¥¿¡¼¤Ï¤¢¤Ê¤¿¤ÎÀèÁĤò %d ¿ÍÁò¤Ã¤Æ¤¤¤ë", + hooked_roff(format("¤³¤Î¥â¥ó¥¹¥¿¡¼¤Ï¤¢¤Ê¤¿¤ÎÀèÁĤò %d ¿ÍÁò¤Ã¤Æ¤¤¤ë", r_ptr->r_deaths )); #else - roff(format("%d of your ancestors %s been killed by this creature, ", + hooked_roff(format("%d of your ancestors %s been killed by this creature, ", r_ptr->r_deaths, plural(r_ptr->r_deaths, "has", "have"))); #endif @@ -330,9 +327,9 @@ static void roff_aux(int r_idx, int remem) if (r_ptr->r_pkills) { #ifdef JP - roff(format("¤¬¡¢¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤÏÅݤ·¤Æ¤¤¤ë¡£", + hooked_roff(format("¤¬¡¢¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤÏÅݤ·¤Æ¤¤¤ë¡£", #else - roff(format("and you have exterminated at least %d of the creatures. ", + hooked_roff(format("and you have exterminated at least %d of the creatures. ", #endif r_ptr->r_pkills)); @@ -342,10 +339,10 @@ static void roff_aux(int r_idx, int remem) else if (r_ptr->r_tkills) { #ifdef JP - roff(format("¤¬¡¢%s¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤÏÅݤ·¤Æ¤¤¤ë¡£", + hooked_roff(format("¤¬¡¢%s¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤÏÅݤ·¤Æ¤¤¤ë¡£", "¤¢¤Ê¤¿¤ÎÀèÁÄ", r_ptr->r_tkills)); #else - roff(format("and %s have exterminated at least %d of the creatures. ", + hooked_roff(format("and %s have exterminated at least %d of the creatures. ", "your ancestors", r_ptr->r_tkills)); #endif @@ -355,9 +352,9 @@ static void roff_aux(int r_idx, int remem) else { #ifdef JP - roff(format("¤¬¡¢¤Þ¤À%s¤òÅݤ·¤¿¤³¤È¤Ï¤Ê¤¤¡£", + hooked_roff(format("¤¬¡¢¤Þ¤À%s¤òÅݤ·¤¿¤³¤È¤Ï¤Ê¤¤¡£", #else - roff(format("and %s is not ever known to have been defeated. ", + hooked_roff(format("and %s is not ever known to have been defeated. ", #endif wd_he[msex])); @@ -371,9 +368,9 @@ static void roff_aux(int r_idx, int remem) if (r_ptr->r_pkills) { #ifdef JP - roff(format("¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤϻ¦¤·¤Æ¤¤¤ë¡£", + hooked_roff(format("¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤϻ¦¤·¤Æ¤¤¤ë¡£", #else - roff(format("You have killed at least %d of these creatures. ", + hooked_roff(format("You have killed at least %d of these creatures. ", #endif r_ptr->r_pkills)); @@ -383,9 +380,9 @@ static void roff_aux(int r_idx, int remem) else if (r_ptr->r_tkills) { #ifdef JP - roff(format("¤¢¤Ê¤¿¤ÎÀèÁĤϤ³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤϻ¦¤·¤Æ¤¤¤ë¡£", + hooked_roff(format("¤¢¤Ê¤¿¤ÎÀèÁĤϤ³¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¯¤Ê¤¯¤È¤â %d ÂΤϻ¦¤·¤Æ¤¤¤ë¡£", #else - roff(format("Your ancestors have killed at least %d of these creatures. ", + hooked_roff(format("Your ancestors have killed at least %d of these creatures. ", #endif r_ptr->r_tkills)); @@ -395,9 +392,9 @@ static void roff_aux(int r_idx, int remem) else { #ifdef JP - roff("¤³¤Î¥â¥ó¥¹¥¿¡¼¤òÅݤ·¤¿¤³¤È¤Ï¤Ê¤¤¡£"); + hooked_roff("¤³¤Î¥â¥ó¥¹¥¿¡¼¤òÅݤ·¤¿¤³¤È¤Ï¤Ê¤¤¡£"); #else - roff("No battles to the death are recalled. "); + hooked_roff("No battles to the death are recalled. "); #endif } @@ -455,23 +452,17 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); #endif /* Dump it */ - roff(buf); + hooked_roff(buf); #ifndef JP - roff(" "); + hooked_roff(" "); #endif } if (r_idx == MON_KAGE) { /* All done */ - roff("\n"); + hooked_roff("\n"); - /* Cheat -- know everything */ - if ((cheat_know) && (remem == 0)) - { - /* Hack -- restore memory */ - COPY(r_ptr, &save_mem, monster_race); - } return; } @@ -482,21 +473,21 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (r_ptr->level == 0) { #ifdef JP - roff(format("%^s¤ÏÄ®¤Ë½»¤ß", wd_he[msex])); + hooked_roff(format("%^s¤ÏÄ®¤Ë½»¤ß", wd_he[msex])); #else - roff(format("%^s lives in the town", wd_he[msex])); + hooked_roff(format("%^s lives in the town", wd_he[msex])); #endif old = TRUE; } - else if (r_ptr->r_tkills || cheat_know) + else if (r_ptr->r_tkills || know_everything) { if (depth_in_feet) { #ifdef JP - roff(format("%^s¤ÏÄ̾ïÃϲ¼ %d ¥Õ¥£¡¼¥È¤Ç½Ð¸½¤·", + hooked_roff(format("%^s¤ÏÄ̾ïÃϲ¼ %d ¥Õ¥£¡¼¥È¤Ç½Ð¸½¤·", #else - roff(format("%^s is normally found at depths of %d feet", + hooked_roff(format("%^s is normally found at depths of %d feet", #endif wd_he[msex], r_ptr->level * 50)); @@ -504,9 +495,9 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); else { #ifdef JP - roff(format("%^s¤ÏÄ̾ïÃϲ¼ %d ³¬¤Ç½Ð¸½¤·", + hooked_roff(format("%^s¤ÏÄ̾ïÃϲ¼ %d ³¬¤Ç½Ð¸½¤·", #else - roff(format("%^s is normally found on dungeon level %d", + hooked_roff(format("%^s is normally found on dungeon level %d", #endif wd_he[msex], r_ptr->level)); @@ -519,9 +510,9 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (r_idx == MON_CHAMELEON) { #ifdef JP - roff("¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë²½¤±¤ë¡£"); + hooked_roff("¡¢Â¾¤Î¥â¥ó¥¹¥¿¡¼¤Ë²½¤±¤ë¡£"); #else - roff("and can take the shape of other monster."); + hooked_roff("and can take the shape of other monster."); #endif return; } @@ -531,24 +522,24 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (old) { #ifdef JP - roff("¡¢"); + hooked_roff("¡¢"); #else - roff(", and "); + hooked_roff(", and "); #endif } else { #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s ", wd_he[msex])); + hooked_roff(format("%^s ", wd_he[msex])); #endif old = TRUE; } #ifndef JP - roff("moves"); + hooked_roff("moves"); #endif /* Random-ness */ @@ -558,44 +549,44 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if ((flags1 & RF1_RAND_50) && (flags1 & RF1_RAND_25)) { #ifdef JP - roff("¤«¤Ê¤ê"); + hooked_roff("¤«¤Ê¤ê"); #else - roff(" extremely"); + hooked_roff(" extremely"); #endif } else if (flags1 & RF1_RAND_50) { #ifdef JP - roff("´öʬ"); + hooked_roff("´öʬ"); #else - roff(" somewhat"); + hooked_roff(" somewhat"); #endif } else if (flags1 & RF1_RAND_25) { #ifdef JP - roff("¾¯¡¹"); + hooked_roff("¾¯¡¹"); #else - roff(" a bit"); + hooked_roff(" a bit"); #endif } /* Adjective */ #ifdef JP - roff("ÉÔµ¬Â§¤Ë"); + hooked_roff("ÉÔµ¬Â§¤Ë"); #else - roff(" erratically"); + hooked_roff(" erratically"); #endif /* Hack -- Occasional conjunction */ #ifdef JP - if (speed != 110) roff("¡¢¤«¤Ä"); + if (speed != 110) hooked_roff("¡¢¤«¤Ä"); #else - if (speed != 110) roff(", and"); + if (speed != 110) hooked_roff(", and"); #endif } @@ -604,45 +595,45 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (speed > 110) { #ifdef JP - if (speed > 139) c_roff(TERM_RED, "¿®¤¸Æñ¤¤¤Û¤É"); - else if (speed > 134) c_roff(TERM_ORANGE, "ÌÔÎõ¤Ë"); - else if (speed > 129) c_roff(TERM_ORANGE, "Èó¾ï¤Ë"); - else if (speed > 124) c_roff(TERM_UMBER, "¤«¤Ê¤ê"); - else if (speed < 120) c_roff(TERM_L_UMBER, "¤ä¤ä"); - c_roff(TERM_L_RED, "ÁÇÁ᤯"); + if (speed > 139) hook_c_roff(TERM_RED, "¿®¤¸Æñ¤¤¤Û¤É"); + else if (speed > 134) hook_c_roff(TERM_ORANGE, "ÌÔÎõ¤Ë"); + else if (speed > 129) hook_c_roff(TERM_ORANGE, "Èó¾ï¤Ë"); + else if (speed > 124) hook_c_roff(TERM_UMBER, "¤«¤Ê¤ê"); + else if (speed < 120) hook_c_roff(TERM_L_UMBER, "¤ä¤ä"); + hook_c_roff(TERM_L_RED, "ÁÇÁ᤯"); #else - if (speed > 130) roff(" incredibly"); - else if (speed > 120) roff(" very"); - roff(" quickly"); + if (speed > 130) hooked_roff(" incredibly"); + else if (speed > 120) hooked_roff(" very"); + hooked_roff(" quickly"); #endif } else if (speed < 110) { #ifdef JP - if (speed < 90) c_roff(TERM_L_GREEN, "¿®¤¸Æñ¤¤¤Û¤É"); - else if (speed < 95) c_roff(TERM_BLUE, "Èó¾ï¤Ë"); - else if (speed < 100) c_roff(TERM_BLUE, "¤«¤Ê¤ê"); - else if (speed > 104) c_roff(TERM_GREEN, "¤ä¤ä"); - c_roff(TERM_L_BLUE, "¤æ¤Ã¤¯¤ê¤È"); + if (speed < 90) hook_c_roff(TERM_L_GREEN, "¿®¤¸Æñ¤¤¤Û¤É"); + else if (speed < 95) hook_c_roff(TERM_BLUE, "Èó¾ï¤Ë"); + else if (speed < 100) hook_c_roff(TERM_BLUE, "¤«¤Ê¤ê"); + else if (speed > 104) hook_c_roff(TERM_GREEN, "¤ä¤ä"); + hook_c_roff(TERM_L_BLUE, "¤æ¤Ã¤¯¤ê¤È"); #else - if (speed < 90) roff(" incredibly"); - else if (speed < 100) roff(" very"); - roff(" slowly"); + if (speed < 90) hooked_roff(" incredibly"); + else if (speed < 100) hooked_roff(" very"); + hooked_roff(" slowly"); #endif } else { #ifdef JP - roff("ÉáÄ̤ή¤µ¤Ç"); + hooked_roff("ÉáÄ̤ή¤µ¤Ç"); #else - roff(" at normal speed"); + hooked_roff(" at normal speed"); #endif } #ifdef JP - roff("Æ°¤¤¤Æ¤¤¤ë"); + hooked_roff("Æ°¤¤¤Æ¤¤¤ë"); #endif } @@ -653,18 +644,18 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (old) { #ifdef JP - roff("¡¢¤·¤«¤·"); + hooked_roff("¡¢¤·¤«¤·"); #else - roff(", but "); + hooked_roff(", but "); #endif } else { #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s ", wd_he[msex])); + hooked_roff(format("%^s ", wd_he[msex])); #endif old = TRUE; @@ -672,9 +663,9 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); /* Describe */ #ifdef JP - roff("¿¯Æþ¼Ô¤òÄÉÀפ·¤Ê¤¤"); + hooked_roff("¿¯Æþ¼Ô¤òÄÉÀפ·¤Ê¤¤"); #else - roff("does not deign to chase intruders"); + hooked_roff("does not deign to chase intruders"); #endif } @@ -683,9 +674,9 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); if (old) { #ifdef JP - roff("¡£"); + hooked_roff("¡£"); #else - roff(". "); + hooked_roff(". "); #endif old = FALSE; @@ -693,57 +684,57 @@ path_build(buf, 1024, ANGBAND_DIR_DATA, "r_info_j.raw"); /* Describe experience if known */ - if (r_ptr->r_tkills || cheat_know) + if (r_ptr->r_tkills || know_everything) { /* Introduction */ #ifdef JP - roff("¤³¤Î"); + hooked_roff("¤³¤Î"); #else if (flags1 & RF1_UNIQUE) { - roff("Killing this"); + hooked_roff("Killing this"); } else { - roff("A kill of this"); + hooked_roff("A kill of this"); } #endif /* Describe the "quality" */ #ifdef JP -if (flags2 & RF2_ELDRITCH_HORROR) c_roff(TERM_VIOLET, "¶¸µ¤¤òͶ¤¦");/*nuke me*/ +if (flags2 & RF2_ELDRITCH_HORROR) hook_c_roff(TERM_VIOLET, "¶¸µ¤¤òͶ¤¦");/*nuke me*/ #else - if (flags2 & RF2_ELDRITCH_HORROR) roff(" sanity-blasting"); + if (flags2 & RF2_ELDRITCH_HORROR) hooked_roff(" sanity-blasting"); #endif #ifdef JP -if (flags3 & RF3_ANIMAL) c_roff(TERM_L_GREEN, "¼«Á³³¦¤Î"); +if (flags3 & RF3_ANIMAL) hook_c_roff(TERM_L_GREEN, "¼«Á³³¦¤Î"); #else - if (flags3 & RF3_ANIMAL) roff(" natural"); + if (flags3 & RF3_ANIMAL) hooked_roff(" natural"); #endif #ifdef JP -if (flags3 & RF3_EVIL) c_roff(TERM_L_DARK, "¼Ù°­¤Ê¤ë"); +if (flags3 & RF3_EVIL) hook_c_roff(TERM_L_DARK, "¼Ù°­¤Ê¤ë"); #else - if (flags3 & RF3_EVIL) roff(" evil"); + if (flags3 & RF3_EVIL) hooked_roff(" evil"); #endif #ifdef JP -if (flags3 & RF3_GOOD) c_roff(TERM_YELLOW, "Á±ÎɤÊ"); +if (flags3 & RF3_GOOD) hook_c_roff(TERM_YELLOW, "Á±ÎɤÊ"); #else - if (flags3 & RF3_GOOD) roff(" good"); + if (flags3 & RF3_GOOD) hooked_roff(" good"); #endif #ifdef JP -if (flags3 & RF3_UNDEAD) c_roff(TERM_VIOLET, "¥¢¥ó¥Ç¥Ã¥É¤Î"); +if (flags3 & RF3_UNDEAD) hook_c_roff(TERM_VIOLET, "¥¢¥ó¥Ç¥Ã¥É¤Î"); #else - if (flags3 & RF3_UNDEAD) roff(" undead"); + if (flags3 & RF3_UNDEAD) hooked_roff(" undead"); #endif #ifdef JP -if (flags3 & RF3_AMBERITE) c_roff(TERM_VIOLET, "¥¢¥ó¥Ð¡¼¤Î²¦Â²¤Î"); +if (flags3 & RF3_AMBERITE) hook_c_roff(TERM_VIOLET, "¥¢¥ó¥Ð¡¼¤Î²¦Â²¤Î"); #else - if (flags3 & RF3_AMBERITE) roff(" Amberite"); + if (flags3 & RF3_AMBERITE) hooked_roff(" Amberite"); #endif @@ -751,57 +742,57 @@ if (flags3 & RF3_AMBERITE) c_roff(TERM_VIOLET, " { /* Describe the "race" */ #ifdef JP - if (flags3 & RF3_DRAGON) c_roff(TERM_ORANGE, "¥É¥é¥´¥ó"); + if (flags3 & RF3_DRAGON) hook_c_roff(TERM_ORANGE, "¥É¥é¥´¥ó"); #else - if (flags3 & RF3_DRAGON) roff(" dragon"); + if (flags3 & RF3_DRAGON) hooked_roff(" dragon"); #endif #ifdef JP -if (flags3 & RF3_DEMON) c_roff(TERM_VIOLET, "¥Ç¡¼¥â¥ó"); +if (flags3 & RF3_DEMON) hook_c_roff(TERM_VIOLET, "¥Ç¡¼¥â¥ó"); #else - if (flags3 & RF3_DEMON) roff(" demon"); + if (flags3 & RF3_DEMON) hooked_roff(" demon"); #endif #ifdef JP -if (flags3 & RF3_GIANT) c_roff(TERM_L_UMBER, "¥¸¥ã¥¤¥¢¥ó¥È"); +if (flags3 & RF3_GIANT) hook_c_roff(TERM_L_UMBER, "¥¸¥ã¥¤¥¢¥ó¥È"); #else - if (flags3 & RF3_GIANT) roff(" giant"); + if (flags3 & RF3_GIANT) hooked_roff(" giant"); #endif #ifdef JP -if (flags3 & RF3_TROLL) c_roff(TERM_BLUE, "¥È¥í¥ë"); +if (flags3 & RF3_TROLL) hook_c_roff(TERM_BLUE, "¥È¥í¥ë"); #else - if (flags3 & RF3_TROLL) roff(" troll"); + if (flags3 & RF3_TROLL) hooked_roff(" troll"); #endif #ifdef JP -if (flags3 & RF3_ORC) c_roff(TERM_UMBER, "¥ª¡¼¥¯"); +if (flags3 & RF3_ORC) hook_c_roff(TERM_UMBER, "¥ª¡¼¥¯"); #else - if (flags3 & RF3_ORC) roff(" orc"); + if (flags3 & RF3_ORC) hooked_roff(" orc"); #endif #ifdef JP -if (flags2 & RF2_HUMAN) c_roff(TERM_L_WHITE, "¿Í´Ö"); +if (flags2 & RF2_HUMAN) hook_c_roff(TERM_L_WHITE, "¿Í´Ö"); #else - if (flags2 & RF2_HUMAN) roff(" Human"); + if (flags2 & RF2_HUMAN) hooked_roff(" Human"); #endif #ifdef JP -if (flags2 & RF2_QUANTUM) c_roff(TERM_VIOLET, "ÎÌ»ÒÀ¸Êª"); +if (flags2 & RF2_QUANTUM) hook_c_roff(TERM_VIOLET, "ÎÌ»ÒÀ¸Êª"); #else - if (flags2 & RF2_QUANTUM) roff(" quantum creature"); + if (flags2 & RF2_QUANTUM) hooked_roff(" quantum creature"); #endif } #ifdef JP -else roff("¥â¥ó¥¹¥¿¡¼"); +else hooked_roff("¥â¥ó¥¹¥¿¡¼"); #else - else roff(" creature"); + else hooked_roff(" creature"); #endif #ifdef JP - roff("¤òÅݤ¹¤³¤È¤Ï"); + hooked_roff("¤òÅݤ¹¤³¤È¤Ï"); #endif /* Group some variables */ if (TRUE) @@ -810,13 +801,13 @@ else roff(" #ifdef JP i = p_ptr->lev; - roff(format(" %lu ¥ì¥Ù¥ë¤Î¥­¥ã¥é¥¯¥¿¤Ë¤È¤Ã¤Æ", (long)i)); + hooked_roff(format(" %lu ¥ì¥Ù¥ë¤Î¥­¥ã¥é¥¯¥¿¤Ë¤È¤Ã¤Æ", (long)i)); i = (long)r_ptr->mexp * r_ptr->level / (p_ptr->max_plv+2); j = ((((long)r_ptr->mexp * r_ptr->level % (p_ptr->max_plv+2)) * (long)1000 / (p_ptr->max_plv+2) + 5) / 10); - roff(format(" Ìó%ld.%02ld ¥Ý¥¤¥ó¥È¤Î·Ð¸³¤È¤Ê¤ë¡£", + hooked_roff(format(" Ìó%ld.%02ld ¥Ý¥¤¥ó¥È¤Î·Ð¸³¤È¤Ê¤ë¡£", (long)i, (long)j )); #else /* calculate the integer exp part */ @@ -828,7 +819,7 @@ else roff(" (long)1000 / (p_ptr->max_plv+2) + 5) / 10); /* Mention the experience */ - roff(format(" is worth about %ld.%02ld point%s", + hooked_roff(format(" is worth about %ld.%02ld point%s", (long)i, (long)j, (((i == 1) && (j == 0)) ? "" : "s"))); @@ -846,7 +837,7 @@ else roff(" if ((i == 8) || (i == 11) || (i == 18)) q = "n"; /* Mention the dependance on the player's level */ - roff(format(" for a%s %lu%s level character. ", + hooked_roff(format(" for a%s %lu%s level character. ", q, (long)i, p)); #endif @@ -856,63 +847,63 @@ else roff(" if ((flags2 & RF2_AURA_FIRE) && (flags2 & RF2_AURA_ELEC) && (flags3 & RF3_AURA_COLD)) { #ifdef JP -c_roff(TERM_VIOLET, format("%^s¤Ï±ê¤Èɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_VIOLET, format("%^s¤Ï±ê¤Èɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); #endif } else if ((flags2 & RF2_AURA_FIRE) && (flags2 & RF2_AURA_ELEC)) { #ifdef JP -c_roff(TERM_L_RED, format("%^s¤Ï±ê¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_L_RED, format("%^s¤Ï±ê¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); #endif } else if ((flags2 & RF2_AURA_FIRE) && (flags3 & RF3_AURA_COLD)) { #ifdef JP -c_roff(TERM_BLUE, format("%^s¤Ï±ê¤Èɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_BLUE, format("%^s¤Ï±ê¤Èɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by flames and electricity. ", wd_he[msex])); #endif } else if ((flags3 & RF3_AURA_COLD) && (flags2 & RF2_AURA_ELEC)) { #ifdef JP -c_roff(TERM_L_GREEN, format("%^s¤Ïɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_L_GREEN, format("%^s¤Ïɹ¤È¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by ice and electricity. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by ice and electricity. ", wd_he[msex])); #endif } else if (flags2 & RF2_AURA_FIRE) { #ifdef JP -c_roff(TERM_RED, format("%^s¤Ï±ê¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_RED, format("%^s¤Ï±ê¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by flames. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by flames. ", wd_he[msex])); #endif } else if (flags3 & RF3_AURA_COLD) { #ifdef JP -c_roff(TERM_BLUE, format("%^s¤Ïɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_BLUE, format("%^s¤Ïɹ¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by ice. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by ice. ", wd_he[msex])); #endif } else if (flags2 & RF2_AURA_ELEC) { #ifdef JP -c_roff(TERM_L_BLUE, format("%^s¤Ï¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); +hook_c_roff(TERM_L_BLUE, format("%^s¤Ï¥¹¥Ñ¡¼¥¯¤ËÊñ¤Þ¤ì¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s is surrounded by electricity. ", wd_he[msex])); + hooked_roff(format("%^s is surrounded by electricity. ", wd_he[msex])); #endif } @@ -920,9 +911,9 @@ c_roff(TERM_L_BLUE, format("%^s if (flags2 & RF2_REFLECTING) { #ifdef JP -roff(format("%^s¤ÏÌð¤Î¼öʸ¤òÄ·¤ÍÊÖ¤¹¡£", wd_he[msex])); +hooked_roff(format("%^s¤ÏÌð¤Î¼öʸ¤òÄ·¤ÍÊÖ¤¹¡£", wd_he[msex])); #else - roff(format("%^s reflects bolt spells. ", wd_he[msex])); + hooked_roff(format("%^s reflects bolt spells. ", wd_he[msex])); #endif } @@ -931,9 +922,9 @@ roff(format("%^s if ((flags1 & RF1_ESCORT) || (flags1 & RF1_ESCORTS)) { #ifdef JP - roff(format("%^s¤ÏÄ̾ï¸î±Ò¤òȼ¤Ã¤Æ¸½¤ì¤ë¡£", + hooked_roff(format("%^s¤ÏÄ̾ï¸î±Ò¤òȼ¤Ã¤Æ¸½¤ì¤ë¡£", #else - roff(format("%^s usually appears with escorts. ", + hooked_roff(format("%^s usually appears with escorts. ", #endif wd_he[msex])); @@ -943,9 +934,9 @@ roff(format("%^s else if (flags1 & RF1_FRIENDS) { #ifdef JP - roff(format("%^s¤ÏÄ̾クÃĤǸ½¤ì¤ë¡£", + hooked_roff(format("%^s¤ÏÄ̾クÃĤǸ½¤ì¤ë¡£", #else - roff(format("%^s usually appears in groups. ", + hooked_roff(format("%^s usually appears in groups. ", #endif wd_he[msex])); @@ -983,9 +974,9 @@ roff(format("%^s { /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -995,27 +986,27 @@ roff(format("%^s #ifdef JP if(n!=vn-1){ jverb(vp[n],jverb_buf,JVERB_OR); - c_roff(color[n], jverb_buf); - c_roff(color[n], "¤ê¡¢"); + hook_c_roff(color[n], jverb_buf); + hook_c_roff(color[n], "¤ê¡¢"); } - else c_roff(color[n], vp[n]); + else hook_c_roff(color[n], vp[n]); #else /* Intro */ - if (n == 0) roff(" may "); - else if (n < vn-1) roff(", "); - else roff(" or "); + if (n == 0) hooked_roff(" may "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" or "); /* Dump */ - roff(vp[n]); + hooked_roff(vp[n]); #endif } /* End */ #ifdef JP - roff("¤³¤È¤¬¤¢¤ë¡£"); + hooked_roff("¤³¤È¤¬¤¢¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -1164,9 +1155,9 @@ roff(format("%^s /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -1175,19 +1166,19 @@ roff(format("%^s { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¤ä"); + if ( n != 0 ) hooked_roff("¤ä"); #else - if (n == 0) roff(" may breathe "); - else if (n < vn-1) roff(", "); - else roff(" or "); + if (n == 0) hooked_roff(" may breathe "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" or "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } #ifdef JP - roff("¤Î¥Ö¥ì¥¹¤òÅǤ¯¤³¤È¤¬¤¢¤ë"); + hooked_roff("¤Î¥Ö¥ì¥¹¤òÅǤ¯¤³¤È¤¬¤¢¤ë"); #endif } @@ -1601,34 +1592,34 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " if (breath) { #ifdef JP - roff("¡¢¤Ê¤ª¤«¤Ä"); + hooked_roff("¡¢¤Ê¤ª¤«¤Ä"); #else - roff(", and is also"); + hooked_roff(", and is also"); #endif } else { #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s is", wd_he[msex])); + hooked_roff(format("%^s is", wd_he[msex])); #endif } #ifdef JP /* Adverb */ - if (flags2 & (RF2_SMART)) c_roff(TERM_YELLOW, "Ū³Î¤Ë"); + if (flags2 & (RF2_SMART)) hook_c_roff(TERM_YELLOW, "Ū³Î¤Ë"); /* Verb Phrase */ - roff("ËâË¡¤ò»È¤¦¤³¤È¤¬¤Ç¤­¡¢"); + hooked_roff("ËâË¡¤ò»È¤¦¤³¤È¤¬¤Ç¤­¡¢"); #else /* Verb Phrase */ - roff(" magical, casting spells"); + hooked_roff(" magical, casting spells"); /* Adverb */ - if (flags2 & RF2_SMART) roff(" intelligently"); + if (flags2 & RF2_SMART) hooked_roff(" intelligently"); #endif @@ -1637,19 +1628,19 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¡¢"); + if ( n != 0 ) hooked_roff("¡¢"); #else - if (n == 0) roff(" which "); - else if (n < vn-1) roff(", "); - else roff(" or "); + if (n == 0) hooked_roff(" which "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" or "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } #ifdef JP - roff("¤Î¼öʸ¤ò¾§¤¨¤ë¤³¤È¤¬¤¢¤ë"); + hooked_roff("¤Î¼öʸ¤ò¾§¤¨¤ë¤³¤È¤¬¤¢¤ë"); #endif } @@ -1664,12 +1655,12 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " n = (r_ptr->freq_inate + r_ptr->freq_spell) / 2; /* Describe the spell frequency */ - if (m > 100) + if (m > 100 || know_everything) { #ifdef JP - roff(format("(³ÎΨ:1/%d)", 100 / n)); + hooked_roff(format("(³ÎΨ:1/%d)", 100 / n)); #else - roff(format("; 1 time in %d", 100 / n)); + hooked_roff(format("; 1 time in %d", 100 / n)); #endif } @@ -1679,18 +1670,18 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " { n = ((n + 9) / 10) * 10; #ifdef JP - roff(format("(³ÎΨ:Ìó1/%d)", 100 / n)); + hooked_roff(format("(³ÎΨ:Ìó1/%d)", 100 / n)); #else - roff(format("; about 1 time in %d", 100 / n)); + hooked_roff(format("; about 1 time in %d", 100 / n)); #endif } /* End this sentence */ #ifdef JP - roff("¡£"); + hooked_roff("¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -1700,9 +1691,9 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " { /* Armor */ #ifdef JP - roff(format("%^s¤Ï AC%d ¤ÎËɸæÎϤÈ", + hooked_roff(format("%^s¤Ï AC%d ¤ÎËɸæÎϤÈ", #else - roff(format("%^s has an armor rating of %d", + hooked_roff(format("%^s has an armor rating of %d", #endif wd_he[msex], r_ptr->ac)); @@ -1711,9 +1702,9 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " if (flags1 & RF1_FORCE_MAXHP) { #ifdef JP - roff(format(" %d ¤ÎÂÎÎϤ¬¤¢¤ë¡£", + hooked_roff(format(" %d ¤ÎÂÎÎϤ¬¤¢¤ë¡£", #else - roff(format(" and a life rating of %d. ", + hooked_roff(format(" and a life rating of %d. ", #endif r_ptr->hdice * r_ptr->hside)); @@ -1723,9 +1714,9 @@ if (flags6 & (RF6_S_UNIQUE)) {vp[vn] = " else { #ifdef JP - roff(format(" %dd%d ¤ÎÂÎÎϤ¬¤¢¤ë¡£", + hooked_roff(format(" %dd%d ¤ÎÂÎÎϤ¬¤¢¤ë¡£", #else - roff(format(" and a life rating of %dd%d. ", + hooked_roff(format(" and a life rating of %dd%d. ", #endif r_ptr->hdice, r_ptr->hside)); @@ -1796,9 +1787,9 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " { /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -1809,26 +1800,26 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " #ifdef JP if(n!=vn-1){ jverb(vp[n],jverb_buf,JVERB_AND); - roff(jverb_buf); - roff("¡¢"); + hooked_roff(jverb_buf); + hooked_roff("¡¢"); } - else roff(vp[n]); + else hooked_roff(vp[n]); #else - if (n == 0) roff(" can "); - else if (n < vn-1) roff(", "); - else roff(" and "); + if (n == 0) hooked_roff(" can "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" and "); /* Dump */ - roff(vp[n]); + hooked_roff(vp[n]); #endif } /* End */ #ifdef JP - roff("¤³¤È¤¬¤Ç¤­¤ë¡£"); + hooked_roff("¤³¤È¤¬¤Ç¤­¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -1838,72 +1829,72 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " if (flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) { #ifdef JP - roff(format("%^s¤Ï¸÷¤Ã¤Æ¤¤¤ë¡£", wd_he[msex])); + hooked_roff(format("%^s¤Ï¸÷¤Ã¤Æ¤¤¤ë¡£", wd_he[msex])); #else - roff(format("%^s illuminate the dungeon. ", wd_he[msex])); + hooked_roff(format("%^s illuminate the dungeon. ", wd_he[msex])); #endif } if (flags2 & RF2_INVISIBLE) { #ifdef JP - roff(format("%^s¤ÏÆ©ÌÀ¤ÇÌܤ˸«¤¨¤Ê¤¤¡£", wd_he[msex])); + hooked_roff(format("%^s¤ÏÆ©ÌÀ¤ÇÌܤ˸«¤¨¤Ê¤¤¡£", wd_he[msex])); #else - roff(format("%^s is invisible. ", wd_he[msex])); + hooked_roff(format("%^s is invisible. ", wd_he[msex])); #endif } if (flags2 & RF2_COLD_BLOOD) { #ifdef JP - roff(format("%^s¤ÏÎä·ìưʪ¤Ç¤¢¤ë¡£", wd_he[msex])); + hooked_roff(format("%^s¤ÏÎä·ìưʪ¤Ç¤¢¤ë¡£", wd_he[msex])); #else - roff(format("%^s is cold blooded. ", wd_he[msex])); + hooked_roff(format("%^s is cold blooded. ", wd_he[msex])); #endif } if (flags2 & RF2_EMPTY_MIND) { #ifdef JP - roff(format("%^s¤Ï¥Æ¥ì¥Ñ¥·¡¼¤Ç¤Ï´¶ÃΤǤ­¤Ê¤¤¡£", wd_he[msex])); + hooked_roff(format("%^s¤Ï¥Æ¥ì¥Ñ¥·¡¼¤Ç¤Ï´¶ÃΤǤ­¤Ê¤¤¡£", wd_he[msex])); #else - roff(format("%^s is not detected by telepathy. ", wd_he[msex])); + hooked_roff(format("%^s is not detected by telepathy. ", wd_he[msex])); #endif } else if (flags2 & RF2_WEIRD_MIND) { #ifdef JP - roff(format("%^s¤Ï¤Þ¤ì¤Ë¥Æ¥ì¥Ñ¥·¡¼¤Ç´¶ÃΤǤ­¤ë¡£", wd_he[msex])); + hooked_roff(format("%^s¤Ï¤Þ¤ì¤Ë¥Æ¥ì¥Ñ¥·¡¼¤Ç´¶ÃΤǤ­¤ë¡£", wd_he[msex])); #else - roff(format("%^s is rarely detected by telepathy. ", wd_he[msex])); + hooked_roff(format("%^s is rarely detected by telepathy. ", wd_he[msex])); #endif } if (flags2 & RF2_MULTIPLY) { #ifdef JP - c_roff(TERM_L_UMBER, format("%^s¤ÏÇúȯŪ¤ËÁý¿£¤¹¤ë¡£", wd_he[msex])); + hook_c_roff(TERM_L_UMBER, format("%^s¤ÏÇúȯŪ¤ËÁý¿£¤¹¤ë¡£", wd_he[msex])); #else - c_roff(TERM_L_UMBER, format("%^s breeds explosively. ", wd_he[msex])); + hook_c_roff(TERM_L_UMBER, format("%^s breeds explosively. ", wd_he[msex])); #endif } if (flags2 & RF2_REGENERATE) { #ifdef JP - c_roff(TERM_L_WHITE, format("%^s¤ÏÁÇÁ᤯ÂÎÎϤò²óÉü¤¹¤ë¡£", wd_he[msex])); + hook_c_roff(TERM_L_WHITE, format("%^s¤ÏÁÇÁ᤯ÂÎÎϤò²óÉü¤¹¤ë¡£", wd_he[msex])); #else - c_roff(TERM_L_WHITE, format("%^s regenerates quickly. ", wd_he[msex])); + hook_c_roff(TERM_L_WHITE, format("%^s regenerates quickly. ", wd_he[msex])); #endif } if (flags7 & RF7_RIDING) { #ifdef JP - c_roff(TERM_SLATE, format("%^s¤Ë¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£", wd_he[msex])); + hook_c_roff(TERM_SLATE, format("%^s¤Ë¾è¤ë¤³¤È¤¬¤Ç¤­¤ë¡£", wd_he[msex])); #else - c_roff(TERM_SLATE, format("%^s is suitable for riding. ", wd_he[msex])); + hook_c_roff(TERM_SLATE, format("%^s is suitable for riding. ", wd_he[msex])); #endif } @@ -1941,9 +1932,9 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " { /* Intro */ #ifdef JP - roff(format("%^s¤Ë¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ë¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -1952,23 +1943,23 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¤ä"); + if ( n != 0 ) hooked_roff("¤ä"); #else - if (n == 0) roff(" is hurt by "); - else if (n < vn-1) roff(", "); - else roff(" and "); + if (n == 0) hooked_roff(" is hurt by "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" and "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } /* End */ #ifdef JP - roff("¤Ç¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤ë¡£"); + hooked_roff("¤Ç¥À¥á¡¼¥¸¤òÍ¿¤¨¤é¤ì¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -2012,9 +2003,9 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " { /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -2023,23 +2014,23 @@ if (flags2 & RF2_KILL_ITEM) vp[vn++] = " { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¤È"); + if ( n != 0 ) hooked_roff("¤È"); #else - if (n == 0) roff(" resists "); - else if (n < vn-1) roff(", "); - else roff(" and "); + if (n == 0) hooked_roff(" resists "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" and "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } /* End */ #ifdef JP - roff("¤ÎÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£"); + hooked_roff("¤ÎÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -2155,9 +2146,9 @@ if ((flags3 & RF3_RES_TELE) && !(r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " { /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -2166,50 +2157,50 @@ if ((flags3 & RF3_RES_TELE) && !(r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¤È"); + if ( n != 0 ) hooked_roff("¤È"); #else - if (n == 0) roff(" resists "); - else if (n < vn-1) roff(", "); - else roff(" and "); + if (n == 0) hooked_roff(" resists "); + else if (n < vn-1) hooked_roff(", "); + else hooked_roff(" and "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } /* End */ #ifdef JP - roff("¤ÎÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£"); + hooked_roff("¤ÎÂÑÀ­¤ò»ý¤Ã¤Æ¤¤¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } - if ((r_ptr->r_xtra1 & MR1_SINKA) || cheat_know) + if ((r_ptr->r_xtra1 & MR1_SINKA) || know_everything) { if (r_ptr->next_r_idx) { #ifdef JP - roff(format("%^s¤Ï·Ð¸³¤òÀѤà¤È¡¢", wd_he[msex])); + hooked_roff(format("%^s¤Ï·Ð¸³¤òÀѤà¤È¡¢", wd_he[msex])); #else - roff(format("%^s will evolve into ", wd_he[msex])); + hooked_roff(format("%^s will evolve into ", wd_he[msex])); #endif - c_roff(TERM_YELLOW, format("%s", r_name+r_info[r_ptr->next_r_idx].name)); + hook_c_roff(TERM_YELLOW, format("%s", r_name+r_info[r_ptr->next_r_idx].name)); #ifdef JP - roff(format("¤Ë¿Ê²½¤¹¤ë¡£")); + hooked_roff(format("¤Ë¿Ê²½¤¹¤ë¡£")); #else - roff(format(" when %s gets enugh experience. ", wd_he[msex])); + hooked_roff(format(" when %s gets enugh experience. ", wd_he[msex])); #endif } else if (!(r_ptr->flags1 & RF1_UNIQUE)) { #ifdef JP - roff(format("%s¤Ï¿Ê²½¤·¤Ê¤¤¡£", wd_he[msex])); + hooked_roff(format("%s¤Ï¿Ê²½¤·¤Ê¤¤¡£", wd_he[msex])); #else - roff(format("%s won't evolve. ", wd_he[msex])); + hooked_roff(format("%s won't evolve. ", wd_he[msex])); #endif } } @@ -2251,9 +2242,9 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " { /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s", wd_he[msex])); + hooked_roff(format("%^s", wd_he[msex])); #endif @@ -2262,23 +2253,23 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " { /* Intro */ #ifdef JP - if ( n != 0 ) roff("¤·¡¢"); + if ( n != 0 ) hooked_roff("¤·¡¢"); #else - if (n == 0) roff(" cannot be "); - else if (n < vn - 1) roff(", "); - else roff(" or "); + if (n == 0) hooked_roff(" cannot be "); + else if (n < vn - 1) hooked_roff(", "); + else hooked_roff(" or "); #endif /* Dump */ - c_roff(color[n], vp[n]); + hook_c_roff(color[n], vp[n]); } /* End */ #ifdef JP - roff("¡£"); + hooked_roff("¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -2287,7 +2278,7 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " /* Do we know how aware it is? */ if ((((int)r_ptr->r_wake * (int)r_ptr->r_wake) > r_ptr->sleep) || (r_ptr->r_ignore == MAX_UCHAR) || - ((r_ptr->sleep == 0) && ((r_ptr->r_tkills >= 10) || cheat_know))) + (r_ptr->sleep == 0 && r_ptr->r_tkills >= 10) || know_everything) { cptr act; @@ -2392,10 +2383,10 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " } #ifdef JP - roff(format("%^s¤Ï¿¯Æþ¼Ô%s¡¢ %d ¥Õ¥£¡¼¥ÈÀ褫¤é¿¯Æþ¼Ô¤Ëµ¤ÉÕ¤¯¤³¤È¤¬¤¢¤ë¡£", + hooked_roff(format("%^s¤Ï¿¯Æþ¼Ô%s¡¢ %d ¥Õ¥£¡¼¥ÈÀ褫¤é¿¯Æþ¼Ô¤Ëµ¤ÉÕ¤¯¤³¤È¤¬¤¢¤ë¡£", wd_he[msex], act, 10 * r_ptr->aaf)); #else - roff(format("%^s %s intruders, which %s may notice from %d feet. ", + hooked_roff(format("%^s %s intruders, which %s may notice from %d feet. ", wd_he[msex], act, wd_he[msex], 10 * r_ptr->aaf)); #endif @@ -2403,29 +2394,29 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " /* Drops gold and/or items */ - if (r_ptr->r_drop_gold || r_ptr->r_drop_item) + if (drop_gold || drop_item) { /* No "n" needed */ sin = FALSE; /* Intro */ #ifdef JP - roff(format("%^s¤Ï", wd_he[msex])); + hooked_roff(format("%^s¤Ï", wd_he[msex])); #else - roff(format("%^s may carry", wd_he[msex])); + hooked_roff(format("%^s may carry", wd_he[msex])); #endif /* Count maximum drop */ - n = MAX(r_ptr->r_drop_gold, r_ptr->r_drop_item); + n = MAX(drop_gold, drop_item); /* One drop (may need an "n") */ if (n == 1) { #ifdef JP - roff("°ì¤Ä¤Î"); + hooked_roff("°ì¤Ä¤Î"); #else - roff(" a"); + hooked_roff(" a"); #endif sin = TRUE; @@ -2435,9 +2426,9 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " else if (n == 2) { #ifdef JP - roff("°ì¤Ä¤«Æó¤Ä¤Î"); + hooked_roff("°ì¤Ä¤«Æó¤Ä¤Î"); #else - roff(" one or two"); + hooked_roff(" one or two"); #endif } @@ -2446,9 +2437,9 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " else { #ifdef JP - roff(format(" %d ¸Ä¤Þ¤Ç¤Î", n)); + hooked_roff(format(" %d ¸Ä¤Þ¤Ç¤Î", n)); #else - roff(format(" up to %d", n)); + hooked_roff(format(" up to %d", n)); #endif } @@ -2485,21 +2476,21 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " /* Objects */ - if (r_ptr->r_drop_item) + if (drop_item) { /* Handle singular "an" */ #ifndef JP - if (sin) roff("n"); + if (sin) hooked_roff("n"); #endif sin = FALSE; /* Dump "object(s)" */ - if (p) roff(p); + if (p) hooked_roff(p); #ifdef JP - roff("¥¢¥¤¥Æ¥à"); + hooked_roff("¥¢¥¤¥Æ¥à"); #else - roff(" object"); - if (n != 1) roff("s"); + hooked_roff(" object"); + if (n != 1) hooked_roff("s"); #endif @@ -2513,33 +2504,33 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " } /* Treasures */ - if (r_ptr->r_drop_gold) + if (drop_gold) { /* Cancel prefix */ if (!p) sin = FALSE; /* Handle singular "an" */ #ifndef JP - if (sin) roff("n"); + if (sin) hooked_roff("n"); #endif sin = FALSE; /* Dump "treasure(s)" */ - if (p) roff(p); + if (p) hooked_roff(p); #ifdef JP - roff("ºâÊõ"); + hooked_roff("ºâÊõ"); #else - roff(" treasure"); - if (n != 1) roff("s"); + hooked_roff(" treasure"); + if (n != 1) hooked_roff("s"); #endif } /* End this sentence */ #ifdef JP - roff("¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£"); + hooked_roff("¤ò»ý¤Ã¤Æ¤¤¤ë¤³¤È¤¬¤¢¤ë¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -2553,7 +2544,7 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " if (r_ptr->blow[m].method == RBM_SHOOT) continue; /* Count known attacks */ - if (r_ptr->r_blows[m]) n++; + if (r_ptr->r_blows[m] || know_everything) n++; } /* Examine (and count) the actual attacks */ @@ -2566,7 +2557,7 @@ if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) {vp[vn] = " if (r_ptr->blow[m].method == RBM_SHOOT) continue; /* Skip unknown attacks */ - if (!r_ptr->r_blows[m]) continue; + if (!r_ptr->r_blows[m] && !know_everything) continue; /* Extract the attack info */ method = r_ptr->blow[m].method; @@ -2926,17 +2917,17 @@ case RBE_DR_MANA: q = " #ifdef JP - if ( r == 0 ) roff( format("%^s¤Ï", wd_he[msex]) ); + if ( r == 0 ) hooked_roff( format("%^s¤Ï", wd_he[msex]) ); /***¼ã´³É½¸½¤òÊѹ¹ ita ***/ /* Describe damage (if known) */ - if (d1 && d2 && know_damage(r_idx, m)) + if (d1 && d2 && (know_everything || know_damage(r_idx, m))) { /* Display the damage */ - roff(format(" %dd%d ", d1, d2)); - roff("¤Î¥À¥á¡¼¥¸¤Ç"); + hooked_roff(format(" %dd%d ", d1, d2)); + hooked_roff("¤Î¥À¥á¡¼¥¸¤Ç"); } /* Hack -- force a method */ if (!p) p = "²¿¤«´ñ̯¤Ê¤³¤È¤ò¤¹¤ë"; @@ -2947,29 +2938,29 @@ case RBE_DR_MANA: q = " else if(r!=n-1) jverb( p ,jverb_buf, JVERB_AND); else strcpy(jverb_buf, p); - roff(jverb_buf); + hooked_roff(jverb_buf); /* Describe the effect (if any) */ if (q) { if(r!=n-1) jverb( q,jverb_buf, JVERB_AND); else strcpy(jverb_buf,q); - roff(jverb_buf); + hooked_roff(jverb_buf); } - if(r!=n-1) roff("¡¢"); + if(r!=n-1) hooked_roff("¡¢"); #else /* Introduce the attack description */ if (!r) { - roff(format("%^s can ", wd_he[msex])); + hooked_roff(format("%^s can ", wd_he[msex])); } else if (r < n-1) { - roff(", "); + hooked_roff(", "); } else { - roff(", and "); + hooked_roff(", and "); } @@ -2977,22 +2968,22 @@ case RBE_DR_MANA: q = " if (!p) p = "do something weird"; /* Describe the method */ - roff(p); + hooked_roff(p); /* Describe the effect (if any) */ if (q) { /* Describe the attack type */ - roff(" to "); - roff(q); + hooked_roff(" to "); + hooked_roff(q); /* Describe damage (if known) */ - if (d1 && d2 && know_damage(r_idx, m)) + if (d1 && d2 && (know_everything || know_damage(r_idx, m))) { /* Display the damage */ - roff(" with damage"); - roff(format(" %dd%d", d1, d2)); + hooked_roff(" with damage"); + hooked_roff(format(" %dd%d", d1, d2)); } } #endif @@ -3007,9 +2998,9 @@ case RBE_DR_MANA: q = " if (r) { #ifdef JP - roff("¡£"); + hooked_roff("¡£"); #else - roff(". "); + hooked_roff(". "); #endif } @@ -3018,9 +3009,9 @@ case RBE_DR_MANA: q = " else if (flags1 & RF1_NEVER_BLOW) { #ifdef JP - roff(format("%^s¤ÏʪÍýŪ¤Ê¹¶·âÊýË¡¤ò»ý¤¿¤Ê¤¤¡£", wd_he[msex])); + hooked_roff(format("%^s¤ÏʪÍýŪ¤Ê¹¶·âÊýË¡¤ò»ý¤¿¤Ê¤¤¡£", wd_he[msex])); #else - roff(format("%^s has no physical attacks. ", wd_he[msex])); + hooked_roff(format("%^s has no physical attacks. ", wd_he[msex])); #endif } @@ -3029,9 +3020,9 @@ case RBE_DR_MANA: q = " else { #ifdef JP - roff(format("%s¹¶·â¤Ë¤Ä¤¤¤Æ¤Ï²¿¤âÃΤé¤Ê¤¤¡£", wd_his[msex])); + hooked_roff(format("%s¹¶·â¤Ë¤Ä¤¤¤Æ¤Ï²¿¤âÃΤé¤Ê¤¤¡£", wd_his[msex])); #else - roff(format("Nothing is known about %s attack. ", wd_his[msex])); + hooked_roff(format("Nothing is known about %s attack. ", wd_his[msex])); #endif } @@ -3044,9 +3035,9 @@ case RBE_DR_MANA: q = " if ((flags1 & RF1_QUESTOR) && ((r_ptr->r_sights) && (r_ptr->max_num) && ((r_idx == MON_OBERON) || (r_idx == MON_SERPENT)))) { #ifdef JP - c_roff(TERM_VIOLET, "¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò»¦¤·¤¿¤¤¤È¤¤¤¦¶¯¤¤Íß˾¤ò´¶¤¸¤Æ¤¤¤ë..."); + hook_c_roff(TERM_VIOLET, "¤¢¤Ê¤¿¤Ï¤³¤Î¥â¥ó¥¹¥¿¡¼¤ò»¦¤·¤¿¤¤¤È¤¤¤¦¶¯¤¤Íß˾¤ò´¶¤¸¤Æ¤¤¤ë..."); #else - c_roff(TERM_VIOLET, "You feel an intense desire to kill this monster... "); + hook_c_roff(TERM_VIOLET, "You feel an intense desire to kill this monster... "); #endif } @@ -3054,23 +3045,17 @@ case RBE_DR_MANA: q = " else if (flags7 & RF7_GUARDIAN) { #ifdef JP - c_roff(TERM_L_RED, "¤³¤Î¥â¥ó¥¹¥¿¡¼¤Ï¥À¥ó¥¸¥ç¥ó¤Î¼ç¤Ç¤¢¤ë¡£"); + hook_c_roff(TERM_L_RED, "¤³¤Î¥â¥ó¥¹¥¿¡¼¤Ï¥À¥ó¥¸¥ç¥ó¤Î¼ç¤Ç¤¢¤ë¡£"); #else - c_roff(TERM_L_RED, "This monster is the master of a dungeon."); + hook_c_roff(TERM_L_RED, "This monster is the master of a dungeon."); #endif } /* All done */ - roff("\n"); + hooked_roff("\n"); - /* Cheat -- know everything */ - if ((cheat_know) && (remem == 0)) - { - /* Hack -- restore memory */ - COPY(r_ptr, &save_mem, monster_race); - } } @@ -3145,7 +3130,7 @@ void roff_top(int r_idx) /* * Hack -- describe the given monster race at the top of the screen */ -void screen_roff(int r_idx, int remember) +void screen_roff(int r_idx, int mode) { /* Flush messages */ msg_print(NULL); @@ -3153,8 +3138,10 @@ void screen_roff(int r_idx, int remember) /* Begin recall */ Term_erase(0, 1, 255); + hook_c_roff = c_roff; + /* Recall monster */ - roff_aux(r_idx, remember); + roff_aux(r_idx, mode); /* Describe monster */ roff_top(r_idx); @@ -3180,6 +3167,8 @@ void display_roff(int r_idx) /* Begin recall */ Term_gotoxy(0, 1); + hook_c_roff = c_roff; + /* Recall monster */ roff_aux(r_idx, 0); @@ -3188,6 +3177,19 @@ void display_roff(int r_idx) } + +/* + * Hack -- output description of the given monster race + */ +void output_monster_spoiler(int r_idx, void (*roff_func)(byte attr, cptr str)) +{ + hook_c_roff = roff_func; + + /* Recall monster */ + roff_aux(r_idx, 0x03); +} + + bool monster_quest(int r_idx) { monster_race *r_ptr = &r_info[r_idx]; diff --git a/src/wizard1.c b/src/wizard1.c index 71ba09863..8787671b6 100644 --- a/src/wizard1.c +++ b/src/wizard1.c @@ -1785,20 +1785,6 @@ static void spoil_mon_desc(cptr fname) * Primarily based on code already in mon-desc.c, mostly by -BEN- */ -/* - * Pronoun arrays - */ -static cptr wd_che[3] = -#ifdef JP -{ "¤½¤ì", "Èà", "Èà½÷" }; -#else -{ "It", "He", "She" }; -#endif - -#ifndef JP -static cptr wd_lhe[3] = -{ "it", "he", "she" }; -#endif /* @@ -1913,6 +1899,16 @@ static void spoil_out(cptr str) } + +/* + * Hook function used in spoil_mon_info() + */ +void roff_func(byte attr, cptr str) +{ + spoil_out(str); +} + + /* * Create a spoiler file for monsters (-SHAWN-) */ @@ -2084,1060 +2080,8 @@ static void spoil_mon_info(cptr fname) sprintf(buf, "Exp:%ld\n", (long)(r_ptr->mexp)); spoil_out(buf); - - /* Describe */ - spoil_out(r_text + r_ptr->text); -#ifdef JP - spoil_out("¡£ "); -#else - spoil_out(" "); -#endif - - - -#ifdef JP - spoil_out("¤³¤Î"); - -if (flags2 & RF2_ELDRITCH_HORROR) spoil_out("¶¸µ¤¤òͶ¤¦");/*nuke me*/ -if (flags3 & RF3_ANIMAL) spoil_out("¼«Á³³¦¤Î"); -if (flags3 & RF3_EVIL) spoil_out("¼Ù°­¤Ê¤ë"); -if (flags3 & RF3_GOOD) spoil_out("Á±ÎɤÊ"); -if (flags3 & RF3_UNDEAD) spoil_out("¥¢¥ó¥Ç¥Ã¥É¤Î"); -if (flags3 & RF3_AMBERITE) spoil_out("¥¢¥ó¥Ð¡¼¤Î²¦Â²¤Î"); - -if ((flags3 & (RF3_DRAGON | RF3_DEMON | RF3_GIANT | RF3_TROLL | RF3_ORC)) || (flags2 & (RF2_QUANTUM | RF2_HUMAN))) -{ - if (flags3 & RF3_DRAGON) spoil_out("¥É¥é¥´¥ó"); - if (flags3 & RF3_DEMON) spoil_out("¥Ç¡¼¥â¥ó"); - if (flags3 & RF3_GIANT) spoil_out("¥¸¥ã¥¤¥¢¥ó¥È"); - if (flags3 & RF3_TROLL) spoil_out("¥È¥í¥ë"); - if (flags3 & RF3_ORC) spoil_out("¥ª¡¼¥¯"); - if (flags2 & RF2_HUMAN) spoil_out("¿Í´Ö");/*nuke me*/ - if (flags2 & RF2_QUANTUM) spoil_out("ÎÌ»ÒÀ¸Êª"); -} -else spoil_out("¥â¥ó¥¹¥¿¡¼"); -#else - spoil_out("This"); - - if (flags2 & (RF2_ELDRITCH_HORROR)) spoil_out (" sanity-blasting"); - if (flags3 & (RF3_ANIMAL)) spoil_out(" natural"); - if (flags3 & (RF3_EVIL)) spoil_out(" evil"); - if (flags3 & (RF3_GOOD)) spoil_out(" good"); - if (flags3 & (RF3_UNDEAD)) spoil_out(" undead"); - if (flags3 & (RF3_AMBERITE)) spoil_out (" Amberite"); - - if (flags3 & (RF3_DRAGON)) spoil_out(" dragon"); - else if (flags3 & (RF3_DEMON)) spoil_out(" demon"); - else if (flags3 & (RF3_GIANT)) spoil_out(" giant"); - else if (flags3 & (RF3_TROLL)) spoil_out(" troll"); - else if (flags3 & (RF3_ORC)) spoil_out(" orc"); - else if (flags2 & (RF2_HUMAN)) spoil_out (" Human"); - else spoil_out(" creature"); -#endif - - -#ifdef JP - spoil_out("¤Ï"); -#else - spoil_out(" moves"); -#endif - - - if ((flags1 & (RF1_RAND_50)) && (flags1 & (RF1_RAND_25))) - { -#ifdef JP -spoil_out("¤«¤Ê¤êÉÔµ¬Â§¤Ë"); -#else - spoil_out(" extremely erratically"); -#endif - - } - else if (flags1 & (RF1_RAND_50)) - { -#ifdef JP -spoil_out("´öʬÉÔµ¬Â§¤Ë"); -#else - spoil_out(" somewhat erratically"); -#endif - - } - else if (flags1 & (RF1_RAND_25)) - { -#ifdef JP -spoil_out("¾¯¡¹ÉÔµ¬Â§¤Ë"); -#else - spoil_out(" a bit erratically"); -#endif - - } - else - { -#ifdef JP -spoil_out("ÉáÄ̤Ë"); -#else - spoil_out(" normally"); -#endif - - } - -#ifdef JP -spoil_out("Æ°¤¤¤Æ¤¤¤ë"); -#endif - if (flags1 & (RF1_NEVER_MOVE)) - { -#ifdef JP -spoil_out("¤¬¡¢¿¯Æþ¼Ô¤òÄÉÀפ·¤Ê¤¤"); -#else - spoil_out(", but does not deign to chase intruders"); -#endif - - } - -#ifdef JP - spoil_out("¤³¤È¤¬¤¢¤ë¡£"); -#else - spoil_out(". "); -#endif - - - if (!r_ptr->level || (flags1 & (RF1_FORCE_DEPTH))) - { - sprintf(buf, "%s is never found out of depth. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags1 & (RF1_FORCE_SLEEP)) - { - sprintf(buf, "%s is always created sluggish. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags2 & (RF2_AURA_FIRE)) - { - sprintf(buf, "%s is surrounded by flames. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags3 & (RF3_AURA_COLD)) - { - sprintf(buf, "%s is surrounded by ice. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags2 & (RF2_AURA_ELEC)) - { - sprintf(buf, "%s is surrounded by electricity. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags2 & (RF2_REFLECTING)) - { - sprintf(buf, "%s reflects bolt spells. ", wd_che[msex]); - spoil_out(buf); - } - - if (flags1 & (RF1_ESCORT)) - { - sprintf(buf, "%s usually appears with ", wd_che[msex]); - spoil_out(buf); - if (flags1 & (RF1_ESCORTS)) spoil_out("escorts. "); - else spoil_out("an escort. "); - } - - if (flags1 & RF1_FRIENDS) - { - sprintf(buf, "%s usually appears in groups. ", wd_che[msex]); - spoil_out(buf); - } - - /* Collect inate attacks */ - vn = 0; -#ifdef JP -if (flags4 & RF4_SHRIEK) vp[vn++] = "ÈáÌĤǽõ¤±¤òµá¤á¤ë"; -if (flags4 & RF4_ROCKET) vp[vn++] = "¥í¥±¥Ã¥È¤òȯ¼Í¤¹¤ë"; -if (flags4 & RF4_SHOOT) vp[vn++] = "¼Í·â¤ò¤¹¤ë"; -if (flags6 & (RF6_SPECIAL)) vp[vn++] = "ÆÃÊ̤ʹÔÆ°¤ò¤¹¤ë"; -#else - if (flags4 & RF4_SHRIEK) vp[vn++] = "shriek for help"; - if (flags4 & RF4_ROCKET) vp[vn++] = "shoot a rocket"; - if (flags4 & RF4_SHOOT) vp[vn++] = "fire missiles"; - if (flags6 & (RF6_SPECIAL)) vp[vn++] = "do something"; -#endif - - - if (vn) - { -#ifdef JP - spoil_out(wd_che[msex]); - spoil_out("¤Ï"); -#else - spoil_out(wd_che[msex]); -#endif - - for (i = 0; i < vn; i++) - { -#ifdef JP - if(i!=vn-1){ - jverb3(vp[i],jverb_buf); - spoil_out(jverb_buf); - spoil_out("¤ê¡¢"); - } - else spoil_out(vp[i]); -#else - if (!i) spoil_out(" may "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" or "); - spoil_out(vp[i]); -#endif - - } -#ifdef JP - spoil_out("¤³¤È¤¬¤Ç¤­¤ë¡£"); -#else - spoil_out(". "); -#endif - - } - - /* Collect breaths */ - vn = 0; -#ifdef JP -if (flags4 & (RF4_BR_ACID)) vp[vn++] = "»À"; -if (flags4 & (RF4_BR_ELEC)) vp[vn++] = "°ðºÊ"; -if (flags4 & (RF4_BR_FIRE)) vp[vn++] = "²Ð±ê"; -if (flags4 & (RF4_BR_COLD)) vp[vn++] = "Î䵤"; -if (flags4 & (RF4_BR_POIS)) vp[vn++] = "ÆÇ"; -if (flags4 & (RF4_BR_NETH)) vp[vn++] = "ÃϹö"; -if (flags4 & (RF4_BR_LITE)) vp[vn++] = "Á®¸÷"; -if (flags4 & (RF4_BR_DARK)) vp[vn++] = "°Å¹õ"; -if (flags4 & (RF4_BR_CONF)) vp[vn++] = "º®Íð"; -if (flags4 & (RF4_BR_SOUN)) vp[vn++] = "¹ì²»"; -if (flags4 & (RF4_BR_CHAO)) vp[vn++] = "¥«¥ª¥¹"; -if (flags4 & (RF4_BR_DISE)) vp[vn++] = "Îô²½"; -if (flags4 & (RF4_BR_NEXU)) vp[vn++] = "°ø²Ìº®Íð"; -if (flags4 & (RF4_BR_TIME)) vp[vn++] = "»þ´ÖµÕž"; -if (flags4 & (RF4_BR_INER)) vp[vn++] = "ÃÙÆß"; -if (flags4 & (RF4_BR_GRAV)) vp[vn++] = "½ÅÎÏ"; -if (flags4 & (RF4_BR_SHAR)) vp[vn++] = "ÇËÊÒ"; -if (flags4 & (RF4_BR_PLAS)) vp[vn++] = "¥×¥é¥º¥Þ"; -if (flags4 & (RF4_BR_WALL)) vp[vn++] = "¥Õ¥©¡¼¥¹"; -if (flags4 & (RF4_BR_MANA)) vp[vn++] = "ËâÎÏ"; -if (flags4 & (RF4_BR_NUKE)) vp[vn++] = "Êü¼ÍÀ­ÇÑ´þʪ"; -if (flags4 & (RF4_BR_DISI)) vp[vn++] = "ʬ²ò"; -#else - if (flags4 & (RF4_BR_ACID)) vp[vn++] = "acid"; - if (flags4 & (RF4_BR_ELEC)) vp[vn++] = "lightning"; - if (flags4 & (RF4_BR_FIRE)) vp[vn++] = "fire"; - if (flags4 & (RF4_BR_COLD)) vp[vn++] = "frost"; - if (flags4 & (RF4_BR_POIS)) vp[vn++] = "poison"; - if (flags4 & (RF4_BR_NETH)) vp[vn++] = "nether"; - if (flags4 & (RF4_BR_LITE)) vp[vn++] = "light"; - if (flags4 & (RF4_BR_DARK)) vp[vn++] = "darkness"; - if (flags4 & (RF4_BR_CONF)) vp[vn++] = "confusion"; - if (flags4 & (RF4_BR_SOUN)) vp[vn++] = "sound"; - if (flags4 & (RF4_BR_CHAO)) vp[vn++] = "chaos"; - if (flags4 & (RF4_BR_DISE)) vp[vn++] = "disenchantment"; - if (flags4 & (RF4_BR_NEXU)) vp[vn++] = "nexus"; - if (flags4 & (RF4_BR_TIME)) vp[vn++] = "time"; - if (flags4 & (RF4_BR_INER)) vp[vn++] = "inertia"; - if (flags4 & (RF4_BR_GRAV)) vp[vn++] = "gravity"; - if (flags4 & (RF4_BR_SHAR)) vp[vn++] = "shards"; - if (flags4 & (RF4_BR_PLAS)) vp[vn++] = "plasma"; - if (flags4 & (RF4_BR_WALL)) vp[vn++] = "force"; - if (flags4 & (RF4_BR_MANA)) vp[vn++] = "mana"; - if (flags4 & (RF4_BR_NUKE)) vp[vn++] = "toxic waste"; - if (flags4 & (RF4_BR_DISI)) vp[vn++] = "disintegration"; -#endif - - - if (vn) - { - breath = TRUE; -#ifdef JP - spoil_out(wd_che[msex]); - spoil_out("¤Ï"); -#else - spoil_out(wd_che[msex]); -#endif - -#ifdef JP - spoil_out("¤Ï"); -#endif - for (i = 0; i < vn; i++) - { -#ifdef JP - if ( i != 0 ) spoil_out("¤ä"); -#else - if (!i) spoil_out(" may breathe "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" or "); -#endif - - spoil_out(vp[i]); - } -#ifdef JP - spoil_out("¤Î¥Ö¥ì¥¹¤ò"); - if (flags2 & (RF2_POWERFUL)) spoil_out("¶¯ÎϤË"); - spoil_out("ÅǤ¯¤³¤È¤¬¤¢"); -#else - if (flags2 & (RF2_POWERFUL)) spoil_out(" powerfully"); -#endif - - } - - /* Collect spells */ - vn = 0; -#ifdef JP -if (flags5 & (RF5_BA_ACID)) vp[vn++] = "¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î"; -if (flags5 & (RF5_BA_ELEC)) vp[vn++] = "¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î"; -if (flags5 & (RF5_BA_FIRE)) vp[vn++] = "¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î"; -if (flags5 & (RF5_BA_COLD)) vp[vn++] = "¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î"; -if (flags5 & (RF5_BA_POIS)) vp[vn++] = "°­½­±À¤Î"; -if (flags5 & (RF5_BA_NETH)) vp[vn++] = "ÃϹöµå¤Î"; -if (flags5 & (RF5_BA_WATE)) vp[vn++] = "¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë¤Î"; -if (flags4 & (RF4_BA_NUKE)) vp[vn++] = "Êü¼Íǽµå¤Î"; -#else - if (flags5 & (RF5_BA_ACID)) vp[vn++] = "produce acid balls"; - if (flags5 & (RF5_BA_ELEC)) vp[vn++] = "produce lightning balls"; - if (flags5 & (RF5_BA_FIRE)) vp[vn++] = "produce fire balls"; - if (flags5 & (RF5_BA_COLD)) vp[vn++] = "produce frost balls"; - if (flags5 & (RF5_BA_POIS)) vp[vn++] = "produce poison balls"; - if (flags5 & (RF5_BA_NETH)) vp[vn++] = "produce nether balls"; - if (flags5 & (RF5_BA_WATE)) vp[vn++] = "produce water balls"; - if (flags4 & (RF4_BA_NUKE)) vp[vn++] = "produce balls of radiation"; -#endif - -#ifdef JP -if (flags5 & (RF5_BA_MANA)) vp[vn++] = "ËâÎϤÎÍò¤Î"; -if (flags5 & (RF5_BA_DARK)) vp[vn++] = "°Å¹õ¤ÎÍò¤Î"; -if (flags5 & (RF5_BA_LITE)) vp[vn++] = "¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î"; -if (flags4 & (RF4_BA_CHAO)) vp[vn++] = "½ã¥í¥°¥ë¥¹¤Î"; -#else - if (flags5 & (RF5_BA_MANA)) vp[vn++] = "produce mana storms"; - if (flags5 & (RF5_BA_DARK)) vp[vn++] = "produce darkness storms"; - if (flags4 & (RF5_BA_LITE)) vp[vn++] = "produce starburst"; - if (flags4 & (RF4_BA_CHAO)) vp[vn++] = "invoke raw Logrus"; -#endif -#ifdef JP -if (flags6 & (RF6_HAND_DOOM)) vp[vn++] = "ÇËÌǤμê¤Î"; -if (flags6 & (RF6_PSY_SPEAR)) vp[vn++] = "¸÷¤Î·õ¤Î"; -if (flags5 & (RF5_DRAIN_MANA)) vp[vn++] = "ËâÎϤòµÛ¤¤¼è¤ë"; -if (flags5 & (RF5_MIND_BLAST)) vp[vn++] = "Àº¿À¤ò¹¶·â¤¹¤ë"; -if (flags5 & (RF5_BRAIN_SMASH)) vp[vn++] = "Ǿ¤ò¹¶·â¤¹¤ë"; -if (flags5 & (RF5_CAUSE_1)) vp[vn++] = "·Ú½ý¤ò°ú¤­µ¯¤³¤·¤Æ¼ö¤¤¤ò¤«¤±¤ë"; -if (flags5 & (RF5_CAUSE_2)) vp[vn++] = "½Å½ý¤ò°ú¤­µ¯¤³¤·¤Æ¼ö¤¤¤ò¤«¤±¤ë"; -if (flags5 & (RF5_CAUSE_3)) vp[vn++] = "Ã×Ì¿½ý¤ò°ú¤­µ¯¤³¤·¤Æ¼ö¤¤¤ò¤«¤±¤ë"; -if (flags5 & (RF5_CAUSE_4)) vp[vn++] = "È빦¤òÆͤ¯"; -if (flags5 & (RF5_BO_ACID)) vp[vn++] = "¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_ELEC)) vp[vn++] = "¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_FIRE)) vp[vn++] = "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_COLD)) vp[vn++] = "¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_NETH)) vp[vn++] = "ÃϹö¤ÎÌð¤Î"; -if (flags5 & (RF5_BO_WATE)) vp[vn++] = "¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_MANA)) vp[vn++] = "ËâÎϤÎÌð¤Î"; -if (flags5 & (RF5_BO_PLAS)) vp[vn++] = "¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î"; -if (flags5 & (RF5_BO_ICEE)) vp[vn++] = "¶Ë´¨¤ÎÌð¤Î"; -if (flags5 & (RF5_MISSILE)) vp[vn++] = "¥Þ¥¸¥Ã¥¯¥ß¥µ¥¤¥ë¤Î"; -if (flags5 & (RF5_SCARE)) vp[vn++] = "¶²Éݤò¸Æ¤Óµ¯¤³¤¹"; -if (flags5 & (RF5_BLIND)) vp[vn++] = "Ìܤò¤¯¤é¤Þ¤»¤ë"; -if (flags5 & (RF5_CONF)) vp[vn++] = "º®Í𤵤»¤ë"; -if (flags5 & (RF5_SLOW)) vp[vn++] = "¸ºÂ®¤µ¤»¤ë"; -if (flags5 & (RF5_HOLD)) vp[vn++] = "Ëãá㤵¤»¤ë"; -if (flags6 & (RF6_HASTE)) vp[vn++] = "¼«Ê¬¤ò²Ã®¤¹¤ë"; -if (flags6 & (RF6_HEAL)) vp[vn++] = "¼«Ê¬¤ò¼£Ìþ¤¹¤ë"; -if (flags6 & (RF6_INVULNER)) vp[vn++] = "̵½ý¤Îµå¤Î"; -if (flags4 & (RF4_DISPEL)) vp[vn++] = "ËâÎϤò¾Ã¤·µî¤ë"; -if (flags6 & (RF6_BLINK)) vp[vn++] = "½Ö»þ¤Ë¾Ã¤¨¤ë"; -if (flags6 & (RF6_TPORT)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È¤¹¤ë"; -if (flags6 & (RF6_WORLD)) vp[vn++] = "»þ¤ò»ß¤á¤ë"; -if (flags6 & (RF6_TELE_TO)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È¤Ç°ú¤­Ì᤹"; -if (flags6 & (RF6_TELE_AWAY)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È¤µ¤»¤ë"; -if (flags6 & (RF6_TELE_LEVEL)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë¤µ¤»¤ë"; -if (flags6 & (RF6_DARKNESS)) vp[vn++] = "°Å°Ç¤òºî¤ë"; -if (flags6 & (RF6_TRAPS)) vp[vn++] = "¥È¥é¥Ã¥×¤òºî¤ë"; -if (flags6 & (RF6_FORGET)) vp[vn++] = "µ­²±¤ò¾Ãµî¤¹¤ë"; -if (flags6 & (RF6_RAISE_DEAD)) vp[vn++] = "»à¼Ô¤òᴤ餻¤ë"; -if (flags6 & (RF6_S_MONSTER)) vp[vn++] = "°ìÂΤΥâ¥ó¥¹¥¿¡¼¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_MONSTERS)) vp[vn++] = "Ê£¿ô¤Î¥â¥ó¥¹¥¿¡¼¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_KIN)) vp[vn++] = "µß±ç¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_ANT)) vp[vn++] = "¥¢¥ê¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_SPIDER)) vp[vn++] = "¥¯¥â¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_HOUND)) vp[vn++] = "¥Ï¥¦¥ó¥É¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_HYDRA)) vp[vn++] = "¥Ò¥É¥é¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_ANGEL)) vp[vn++] = "°ìÂΤÎÅ·»È¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_DEMON)) vp[vn++] = "°ìÂΤΥǡ¼¥â¥ó¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_UNDEAD)) vp[vn++] = "°ìÂΤΥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_DRAGON)) vp[vn++] = "°ìÂΤΥɥ饴¥ó¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_HI_UNDEAD)) vp[vn++] = "¶¯ÎϤʥ¢¥ó¥Ç¥Ã¥É¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_HI_DRAGON)) vp[vn++] = "¸ÅÂå¥É¥é¥´¥ó¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_CYBER)) vp[vn++] = "¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_AMBERITES)) vp[vn++] = "¥¢¥ó¥Ð¡¼¤Î²¦Â²¤ò¾¤´­¤¹¤ë"; -if (flags6 & (RF6_S_UNIQUE)) vp[vn++] = "¥æ¥Ë¡¼¥¯¡¦¥â¥ó¥¹¥¿¡¼¤ò¾¤´­¤¹¤ë"; -#else - if (flags6 & (RF6_HAND_DOOM)) vp[vn++] = "invoke the Hand of Doom"; - if (flags6 & (RF6_PSY_SPEAR)) vp[vn++] = "psycho-spear"; - if (flags5 & (RF5_DRAIN_MANA)) vp[vn++] = "drain mana"; - if (flags5 & (RF5_MIND_BLAST)) vp[vn++] = "cause mind blasting"; - if (flags5 & (RF5_BRAIN_SMASH)) vp[vn++] = "cause brain smashing"; - if (flags5 & (RF5_CAUSE_1)) vp[vn++] = "cause light wounds and cursing"; - if (flags5 & (RF5_CAUSE_2)) vp[vn++] = "cause serious wounds and cursing"; - if (flags5 & (RF5_CAUSE_3)) vp[vn++] = "cause critical wounds and cursing"; - if (flags5 & (RF5_CAUSE_4)) vp[vn++] = "cause mortal wounds"; - if (flags5 & (RF5_BO_ACID)) vp[vn++] = "produce acid bolts"; - if (flags5 & (RF5_BO_ELEC)) vp[vn++] = "produce lightning bolts"; - if (flags5 & (RF5_BO_FIRE)) vp[vn++] = "produce fire bolts"; - if (flags5 & (RF5_BO_COLD)) vp[vn++] = "produce frost bolts"; - if (flags5 & (RF5_BO_NETH)) vp[vn++] = "produce nether bolts"; - if (flags5 & (RF5_BO_WATE)) vp[vn++] = "produce water bolts"; - if (flags5 & (RF5_BO_MANA)) vp[vn++] = "produce mana bolts"; - if (flags5 & (RF5_BO_PLAS)) vp[vn++] = "produce plasma bolts"; - if (flags5 & (RF5_BO_ICEE)) vp[vn++] = "produce ice bolts"; - if (flags5 & (RF5_MISSILE)) vp[vn++] = "produce magic missiles"; - if (flags5 & (RF5_SCARE)) vp[vn++] = "terrify"; - if (flags5 & (RF5_BLIND)) vp[vn++] = "blind"; - if (flags5 & (RF5_CONF)) vp[vn++] = "confuse"; - if (flags5 & (RF5_SLOW)) vp[vn++] = "slow"; - if (flags5 & (RF5_HOLD)) vp[vn++] = "paralyze"; - if (flags6 & (RF6_HASTE)) vp[vn++] = "haste-self"; - if (flags6 & (RF6_HEAL)) vp[vn++] = "heal-self"; - if (flags6 & (RF6_INVULNER)) vp[vn++] = "make invulnerable"; - if (flags6 & (RF6_BLINK)) vp[vn++] = "blink-self"; - if (flags6 & (RF6_TPORT)) vp[vn++] = "teleport-self"; - if (flags6 & (RF6_WORLD)) vp[vn++] = "stop the time"; - if (flags6 & (RF6_TELE_TO)) vp[vn++] = "teleport to"; - if (flags6 & (RF6_TELE_AWAY)) vp[vn++] = "teleport away"; - if (flags6 & (RF6_TELE_LEVEL)) vp[vn++] = "teleport level"; - if (flags6 & (RF6_DARKNESS)) vp[vn++] = "create darkness"; - if (flags6 & (RF6_TRAPS)) vp[vn++] = "create traps"; - if (flags6 & (RF6_FORGET)) vp[vn++] = "cause amnesia"; - if (flags6 & (RF6_RAISE_DEAD)) vp[vn++] = "raise dead"; - if (flags6 & (RF6_S_MONSTER)) vp[vn++] = "summon a monster"; - if (flags6 & (RF6_S_MONSTERS)) vp[vn++] = "summon monsters"; - if (flags6 & (RF6_S_KIN)) vp[vn++] = "summon aid"; - if (flags6 & (RF6_S_ANT)) vp[vn++] = "summon ants"; - if (flags6 & (RF6_S_SPIDER)) vp[vn++] = "summon spiders"; - if (flags6 & (RF6_S_HOUND)) vp[vn++] = "summon hounds"; - if (flags6 & (RF6_S_HYDRA)) vp[vn++] = "summon hydras"; - if (flags6 & (RF6_S_ANGEL)) vp[vn++] = "summon an angel"; - if (flags6 & (RF6_S_DEMON)) vp[vn++] = "summon a demon"; - if (flags6 & (RF6_S_UNDEAD)) vp[vn++] = "summon an undead"; - if (flags6 & (RF6_S_DRAGON)) vp[vn++] = "summon a dragon"; - if (flags6 & (RF6_S_HI_UNDEAD)) vp[vn++] = "summon greater undead"; - if (flags6 & (RF6_S_HI_DRAGON)) vp[vn++] = "summon ancient dragons"; - if (flags6 & (RF6_S_CYBER)) vp[vn++] = "summon Cyberdemons"; - if (flags6 & (RF6_S_AMBERITES)) vp[vn++] = "summon Lords of Amber"; - if (flags6 & (RF6_S_UNIQUE)) vp[vn++] = "summon unique monsters"; -#endif - - - if (vn) - { - magic = TRUE; - if (breath) - { -#ifdef JP - spoil_out("¤ê¡¢¤Ê¤ª¤«¤Ä"); -#else - spoil_out(", and is also"); -#endif - - } - else - { -#ifdef JP - spoil_out(wd_che[msex]); - spoil_out("¤Ï"); -#else - spoil_out(wd_che[msex]); - spoil_out(" is"); -#endif - - } - -#ifdef JP - /* Adverb */ - if (flags2 & (RF2_SMART)) spoil_out("Ū³Î¤Ë"); - - /* Verb Phrase */ - spoil_out("ËâË¡¤ò»È¤¦¤³¤È¤¬¤Ç¤­¡¢"); -#else - spoil_out(" magical, casting spells"); - if (flags2 & (RF2_SMART)) spoil_out(" intelligently"); -#endif - - - for (i = 0; i < vn; i++) - { -#ifdef JP - if ( i != 0 ) spoil_out("¼öʸ¡¢"); -#else - if (!i) spoil_out(" which "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" or "); -#endif - - spoil_out(vp[i]); - } -#ifdef JP - spoil_out("¼öʸ¤ò¾§¤¨¤ë¤³¤È¤¬¤¢"); -#endif - } - - if (breath || magic) - { -#ifdef JP - sprintf(buf, "¤ë(³ÎΨ:Ìó1/%d)¡£", - 200 / (r_ptr->freq_inate + r_ptr->freq_spell)); - spoil_out(buf); -#else - sprintf(buf, "; 1 time in %d. ", - 200 / (r_ptr->freq_inate + r_ptr->freq_spell)); - spoil_out(buf); -#endif - - } - - /* Collect special abilities. */ - vn = 0; -#ifdef JP -if (flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) vp[vn++] = "¥À¥ó¥¸¥ç¥ó¤ò¾È¤é¤¹"; -if (flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) vp[vn++] = "¸÷¤Ã¤Æ¤¤¤ë"; -if (flags2 & (RF2_OPEN_DOOR)) vp[vn++] = "¥É¥¢¤ò³«¤±¤ë"; -if (flags2 & (RF2_BASH_DOOR)) vp[vn++] = "¥É¥¢¤òÂǤÁÇˤë"; -if (flags2 & (RF2_PASS_WALL)) vp[vn++] = "Êɤò¤¹¤êÈ´¤±¤ë"; -if (flags2 & (RF2_KILL_WALL)) vp[vn++] = "Êɤò·¡¤ê¿Ê¤à"; -if (flags2 & (RF2_MOVE_BODY)) vp[vn++] = "¼å¤¤¥â¥ó¥¹¥¿¡¼¤ò²¡¤·¤Î¤±¤ë"; -if (flags2 & (RF2_KILL_BODY)) vp[vn++] = "¼å¤¤¥â¥ó¥¹¥¿¡¼¤òÅݤ¹"; -if (flags2 & (RF2_TAKE_ITEM)) vp[vn++] = "¥¢¥¤¥Æ¥à¤ò½¦¤¦"; -if (flags2 & (RF2_KILL_ITEM)) vp[vn++] = "¥¢¥¤¥Æ¥à¤ò²õ¤¹"; -#else - if (flags7 & (RF7_HAS_LITE_1 | RF7_HAS_LITE_2)) vp[vn++] = "illuminate the dungeon"; - if (flags7 & (RF7_SELF_LITE_1 | RF7_SELF_LITE_2)) vp[vn++] = "illuminate the dungeon"; - if (flags2 & (RF2_OPEN_DOOR)) vp[vn++] = "open doors"; - if (flags2 & (RF2_BASH_DOOR)) vp[vn++] = "bash down doors"; - if (flags2 & (RF2_PASS_WALL)) vp[vn++] = "pass through walls"; - if (flags2 & (RF2_KILL_WALL)) vp[vn++] = "bore through walls"; - if (flags2 & (RF2_MOVE_BODY)) vp[vn++] = "push past weaker monsters"; - if (flags2 & (RF2_KILL_BODY)) vp[vn++] = "destroy weaker monsters"; - if (flags2 & (RF2_TAKE_ITEM)) vp[vn++] = "pick up objects"; - if (flags2 & (RF2_KILL_ITEM)) vp[vn++] = "destroy objects"; -#endif - - - if (vn) - { - spoil_out(wd_che[msex]); - for (i = 0; i < vn; i++) - { -#ifdef JP - if(i!=vn-1){ - jverb1(vp[i],jverb_buf); - spoil_out(jverb_buf); - spoil_out("¡¢"); - } - else spoil_out(vp[i]); -#else - if (!i) spoil_out(" can "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" and "); - spoil_out(vp[i]); -#endif - - } - spoil_out(". "); - } - - if (flags2 & (RF2_INVISIBLE)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤ÏÆ©ÌÀ¤ÇÌܤ˸«¤¨¤Ê¤¤¡£"); -#else - spoil_out(" is invisible. "); -#endif - - } - if (flags2 & (RF2_COLD_BLOOD)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤ÏÎä·ìưʪ¤Ç¤¢¤ë¡£"); -#else - spoil_out(" is cold blooded. "); -#endif - - } - if (flags2 & (RF2_EMPTY_MIND)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤Ï¥Æ¥ì¥Ñ¥·¡¼¤Ç¤Ï´¶ÃΤǤ­¤Ê¤¤¡£"); -#else - spoil_out(" is not detected by telepathy. "); -#endif - - } - if (flags2 & (RF2_WEIRD_MIND)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤Ï¤Þ¤ì¤Ë¥Æ¥ì¥Ñ¥·¡¼¤Ç´¶ÃΤǤ­¤ë¡£"); -#else - spoil_out(" is rarely detected by telepathy. "); -#endif - - } - if (flags2 & (RF2_MULTIPLY)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤ÏÇúȯŪ¤ËÁý¿£¤¹¤ë¡£"); -#else - spoil_out(" breeds explosively. "); -#endif - - } - if (flags2 & (RF2_REGENERATE)) - { - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤ÏÁÇÁ᤯ÂÎÎϤò²óÉü¤¹¤ë¡£"); -#else - spoil_out(" regenerates quickly. "); -#endif - - } - - /* Collect susceptibilities */ - vn = 0; -#ifdef JP -if (flags3 & (RF3_HURT_ROCK)) vp[vn++] = "´ä¤ò½üµî¤¹¤ë¤â¤Î"; -if (flags3 & (RF3_HURT_LITE)) vp[vn++] = "ÌÀ¤ë¤¤¸÷"; -if (flags3 & (RF3_HURT_FIRE)) vp[vn++] = "²Ð"; -if (flags3 & (RF3_HURT_COLD)) vp[vn++] = "Î䵤"; -#else - if (flags3 & (RF3_HURT_ROCK)) vp[vn++] = "rock remover"; - if (flags3 & (RF3_HURT_LITE)) vp[vn++] = "bright light"; - if (flags3 & (RF3_HURT_FIRE)) vp[vn++] = "fire"; - if (flags3 & (RF3_HURT_COLD)) vp[vn++] = "cold"; -#endif - - - if (vn) - { - spoil_out(wd_che[msex]); - for (i = 0; i < vn; i++) - { - if (!i) spoil_out(" is hurt by "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" and "); - spoil_out(vp[i]); - } - spoil_out(". "); - } - - /* Collect immunities */ - vn = 0; -#ifdef JP -if (flags3 & (RF3_IM_ACID)) vp[vn++] = "»À"; -if (flags3 & (RF3_IM_ELEC)) vp[vn++] = "ÅÅ·â"; -if (flags3 & (RF3_IM_FIRE)) vp[vn++] = "²Ð"; -if (flags3 & (RF3_IM_COLD)) vp[vn++] = "Î䵤"; -if (flags3 & (RF3_IM_POIS)) vp[vn++] = "ÆÇ"; -#else - if (flags3 & (RF3_IM_ACID)) vp[vn++] = "acid"; - if (flags3 & (RF3_IM_ELEC)) vp[vn++] = "lightning"; - if (flags3 & (RF3_IM_FIRE)) vp[vn++] = "fire"; - if (flags3 & (RF3_IM_COLD)) vp[vn++] = "cold"; - if (flags3 & (RF3_IM_POIS)) vp[vn++] = "poison"; -#endif - - - if (vn) - { - spoil_out(wd_che[msex]); - for (i = 0; i < vn; i++) - { - if (!i) spoil_out(" resists "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" and "); - spoil_out(vp[i]); - } - spoil_out(". "); - } - - /* Collect resistances */ - vn = 0; -#ifdef JP -if (flags3 & (RF3_RES_NETH)) vp[vn++] = "ÃϹö"; -if (flags3 & (RF3_RES_WATE)) vp[vn++] = "¿å"; -if (flags3 & (RF3_RES_PLAS)) vp[vn++] = "¥×¥é¥º¥Þ"; -if (flags3 & (RF3_RES_NEXU)) vp[vn++] = "°ø²Ìº®Íð"; -if (flags3 & (RF3_RES_DISE)) vp[vn++] = "Îô²½"; -if (flags3 & (RF3_RES_ALL )) vp[vn++] = "¤¢¤é¤æ¤ë¸ú²Ì"; -#else - if (flags3 & (RF3_RES_NETH)) vp[vn++] = "nether"; - if (flags3 & (RF3_RES_WATE)) vp[vn++] = "water"; - if (flags3 & (RF3_RES_PLAS)) vp[vn++] = "plasma"; - if (flags3 & (RF3_RES_NEXU)) vp[vn++] = "nexus"; - if (flags3 & (RF3_RES_DISE)) vp[vn++] = "disenchantment"; - if (flags3 & (RF3_RES_ALL )) vp[vn++] = "all"; -#endif - - if (flags3 & (RF3_RES_TELE)) vp[vn++] = "teleportation"; -#ifdef JP -if ((flags3 & RF3_RES_TELE) && !(r_ptr->flags1 & RF1_UNIQUE)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È"; -#else - if ((flags3 & RF3_RES_TELE) && !(r_ptr->flags1 & RF1_UNIQUE)) vp[vn++] = "teleportation"; -#endif - - - if (vn) - { - spoil_out(wd_che[msex]); - for (i = 0; i < vn; i++) - { - if (!i) spoil_out(" resists "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" and "); - spoil_out(vp[i]); - } - spoil_out(". "); - } - - /* Collect non-effects */ - vn = 0; -#ifdef JP -if (flags3 & (RF3_NO_STUN)) vp[vn++] = "Û¯Û°¤È¤·¤Ê¤¤"; -if (flags3 & (RF3_NO_FEAR)) vp[vn++] = "¶²Éݤò´¶¤¸¤Ê¤¤"; -if (flags3 & (RF3_NO_CONF)) vp[vn++] = "º®Í𤷤ʤ¤"; -if (flags3 & (RF3_NO_SLEEP)) vp[vn++] = "̲¤é¤µ¤ì¤Ê¤¤"; -if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) vp[vn++] = "¥Æ¥ì¥Ý¡¼¥È¤µ¤ì¤Ê¤¤"; -#else - if (flags3 & (RF3_NO_STUN)) vp[vn++] = "stunned"; - if (flags3 & (RF3_NO_FEAR)) vp[vn++] = "frightened"; - if (flags3 & (RF3_NO_CONF)) vp[vn++] = "confused"; - if (flags3 & (RF3_NO_SLEEP)) vp[vn++] = "slept"; - if ((flags3 & RF3_RES_TELE) && (r_ptr->flags1 & RF1_UNIQUE)) vp[vn++] = "teleported"; -#endif - - - if (vn) - { - spoil_out(wd_che[msex]); - for (i = 0; i < vn; i++) - { - if (!i) spoil_out(" cannot be "); - else if (i < vn-1) spoil_out(", "); - else spoil_out(" or "); - spoil_out(vp[i]); - } - spoil_out(". "); - } - - spoil_out(wd_che[msex]); -#ifdef JP -spoil_out("¤Ï¿¯Æþ¼Ô"); -if (r_ptr->sleep > 200) spoil_out("¤ò̵»ë¤·¤¬¤Á¤Ç¤¢¤ë¤¬"); -else if (r_ptr->sleep > 95) spoil_out("¤ËÂФ·¤Æ¤Û¤È¤ó¤ÉÃí°Õ¤òʧ¤ï¤Ê¤¤¤¬"); -else if (r_ptr->sleep > 75) spoil_out("¤ËÂФ·¤Æ¤¢¤Þ¤êÃí°Õ¤òʧ¤ï¤Ê¤¤¤¬"); -else if (r_ptr->sleep > 45) spoil_out("¤ò¸«²á¤´¤·¤¬¤Á¤Ç¤¢¤ë¤¬"); -else if (r_ptr->sleep > 25) spoil_out("¤ò¤Û¤ó¤Î¾¯¤·¤Ï¸«¤Æ¤ª¤ê"); -else if (r_ptr->sleep > 10) spoil_out("¤ò¤·¤Ð¤é¤¯¤Ï¸«¤Æ¤ª¤ê"); -else if (r_ptr->sleep > 5) spoil_out("¤ò´öʬÃí°Õ¿¼¤¯¸«¤Æ¤ª¤ê"); -else if (r_ptr->sleep > 3) spoil_out("¤òÃí°Õ¿¼¤¯¸«¤Æ¤ª¤ê"); -else if (r_ptr->sleep > 1) spoil_out("¤ò¤«¤Ê¤êÃí°Õ¿¼¤¯¸«¤Æ¤ª¤ê"); -else if (r_ptr->sleep > 0) spoil_out("¤ò·Ù²ü¤·¤Æ¤ª¤ê"); -else spoil_out("¤ò¤«¤Ê¤ê·Ù²ü¤·¤Æ¤ª¤ê"); -spoil_out("¡¢"); -sprintf(buf, " %d ¥Õ¥£¡¼¥ÈÀ褫¤é¿¯Æþ¼Ô¤Ëµ¤ÉÕ¤¯¤³¤È¤¬¤¢¤ë¡£", - 10 * r_ptr->aaf); - spoil_out(buf); -#else - if (r_ptr->sleep > 200) spoil_out(" prefers to ignore"); - else if (r_ptr->sleep > 95) spoil_out(" pays very little attention to"); - else if (r_ptr->sleep > 75) spoil_out(" pays little attention to"); - else if (r_ptr->sleep > 45) spoil_out(" tends to overlook"); - else if (r_ptr->sleep > 25) spoil_out(" takes quite a while to see"); - else if (r_ptr->sleep > 10) spoil_out(" takes a while to see"); - else if (r_ptr->sleep > 5) spoil_out(" is fairly observant of"); - else if (r_ptr->sleep > 3) spoil_out(" is observant of"); - else if (r_ptr->sleep > 1) spoil_out(" is very observant of"); - else if (r_ptr->sleep > 0) spoil_out(" is vigilant for"); - else spoil_out(" is ever vigilant for"); - - sprintf(buf, " intruders, which %s may notice from %d feet. ", - wd_lhe[msex], 10 * r_ptr->aaf); - spoil_out(buf); -#endif - - - i = 0; - if (flags1 & (RF1_DROP_60)) i += 1; - if (flags1 & (RF1_DROP_90)) i += 2; - if (flags1 & (RF1_DROP_1D2)) i += 2; - if (flags1 & (RF1_DROP_2D2)) i += 4; - if (flags1 & (RF1_DROP_3D2)) i += 6; - if (flags1 & (RF1_DROP_4D2)) i += 8; - - /* Drops gold and/or items */ - if (i) - { - sin = FALSE; - spoil_out(wd_che[msex]); - spoil_out(" will carry"); - - if (i == 1) - { - spoil_out(" a"); sin = TRUE; - } - else if (i == 2) - { - spoil_out(" one or two"); - sin = TRUE; - } - else - { - sprintf(buf, " up to %u", i); - spoil_out(buf); - } - - if (flags1 & (RF1_DROP_GREAT)) - { - if (sin) spoil_out("n"); - spoil_out(" exceptional object"); - } - else if (flags1 & (RF1_DROP_GOOD)) - { - spoil_out(" good object"); - } - else if (flags1 & (RF1_ONLY_ITEM)) - { - spoil_out(" object"); - } - else if (flags1 & (RF1_ONLY_GOLD)) - { - spoil_out(" treasure"); - } - else - { - spoil_out(" object"); - if (i > 1) spoil_out("s"); - spoil_out(" or treasure"); - } - if (i > 1) spoil_out("s"); - - spoil_out(". "); - } - - /* Count the actual attacks */ - for (i = 0, j = 0; j < 4; j++) - { - if (r_ptr->blow[j].method) i++; - } - - /* Examine the actual attacks */ - for (k = 0, j = 0; j < 4; j++) - { - if (!r_ptr->blow[j].method) continue; - - if (r_ptr->blow[j].method == RBM_SHOOT) continue; - - /* No method yet */ - p = "???"; - - /* Acquire the method */ - switch (r_ptr->blow[j].method) - { -#ifdef JP -case RBM_HIT: p = "²¥¤ë"; break; -case RBM_TOUCH: p = "¿¨¤ë"; break; -case RBM_PUNCH: p = "¥Ñ¥ó¥Á¤¹¤ë"; break; -case RBM_KICK: p = "½³¤ë"; break; -case RBM_CLAW: p = "¤Ò¤Ã¤«¤¯"; break; -case RBM_BITE: p = "³ú¤à"; break; -case RBM_STING: p = "»É¤¹"; break; -case RBM_SLASH: p = "»Â¤ë"; break; -#else - case RBM_HIT: p = "hit"; break; - case RBM_TOUCH: p = "touch"; break; - case RBM_PUNCH: p = "punch"; break; - case RBM_KICK: p = "kick"; break; - case RBM_CLAW: p = "claw"; break; - case RBM_BITE: p = "bite"; break; - case RBM_STING: p = "sting"; break; - case RBM_SLASH: p = "slash"; break; -#endif -#ifdef JP -case RBM_BUTT: p = "³Ñ¤ÇÆͤ¯"; break; -case RBM_CRUSH: p = "ÂÎÅö¤¿¤ê¤¹¤ë"; break; -case RBM_ENGULF: p = "°û¤ß¹þ¤à"; break; -case RBM_CHARGE: p = "ÀÁµá½ñ¤ò¤è¤³¤¹"; break; -case RBM_CRAWL: p = "ÂΤξå¤òÇ礤²ó¤ë"; break; -case RBM_DROOL: p = "¤è¤À¤ì¤ò¤¿¤é¤¹"; break; -case RBM_SPIT: p = "¤Ä¤Ð¤òÅǤ¯"; break; -case RBM_EXPLODE: p = "Çúȯ¤¹¤ë"; break; -case RBM_GAZE: p = "¤Ë¤é¤à"; break; -case RBM_WAIL: p = "µã¤­¶«¤Ö"; break; -case RBM_SPORE: p = "˦»Ò¤òÈô¤Ð¤¹"; break; -#else - case RBM_BUTT: p = "butt"; break; - case RBM_CRUSH: p = "crush"; break; - case RBM_ENGULF: p = "engulf"; break; - case RBM_CHARGE: p = "charge"; break; - case RBM_CRAWL: p = "crawl on you"; break; - case RBM_DROOL: p = "drool on you"; break; - case RBM_SPIT: p = "spit"; break; - case RBM_EXPLODE: p = "explode"; break; - case RBM_GAZE: p = "gaze"; break; - case RBM_WAIL: p = "wail"; break; - case RBM_SPORE: p = "release spores"; break; -#endif - - case RBM_XXX4: break; -#ifdef JP -case RBM_BEG: p = "¶â¤ò¤»¤¬¤à"; break; -case RBM_INSULT: p = "Éî¿«¤¹¤ë"; break; -case RBM_MOAN: p = "¤¦¤á¤¯"; break; -case RBM_SHOW: p = "²Î¤¦"; break; -#else - case RBM_BEG: p = "beg"; break; - case RBM_INSULT: p = "insult"; break; - case RBM_MOAN: p = "moan"; break; - case RBM_SHOW: p = "sing"; break; -#endif - - } - - - /* Default effect */ - q = "???"; - - /* Acquire the effect */ - switch (r_ptr->blow[j].effect) - { -#ifdef JP -case RBE_SUPERHURT: -case RBE_HURT: q = "¹¶·â¤¹¤ë"; break; -case RBE_POISON: q = "ÆǤò¤¯¤é¤ï¤¹"; break; -case RBE_UN_BONUS: q = "Îô²½¤µ¤»¤ë"; break; -case RBE_UN_POWER: q = "ËâÎϤòµÛ¤¤¼è¤ë"; break; -case RBE_EAT_GOLD: q = "¶â¤òÅð¤à"; break; -case RBE_EAT_ITEM: q = "¥¢¥¤¥Æ¥à¤òÅð¤à"; break; -case RBE_EAT_FOOD: q = "¤¢¤Ê¤¿¤Î¿©ÎÁ¤ò¿©¤Ù¤ë"; break; -case RBE_EAT_LITE: q = "ÌÀ¤«¤ê¤òµÛ¼ý¤¹¤ë"; break; -case RBE_ACID: q = "»À¤òÈô¤Ð¤¹"; break; -case RBE_ELEC: q = "´¶ÅŤµ¤»¤ë"; break; -#else - case RBE_SUPERHURT: - case RBE_HURT: q = "attack"; break; - case RBE_POISON: q = "poison"; break; - case RBE_UN_BONUS: q = "disenchant"; break; - case RBE_UN_POWER: q = "drain charges"; break; - case RBE_EAT_GOLD: q = "steal gold"; break; - case RBE_EAT_ITEM: q = "steal items"; break; - case RBE_EAT_FOOD: q = "eat your food"; break; - case RBE_EAT_LITE: q = "absorb light"; break; - case RBE_ACID: q = "shoot acid"; break; - case RBE_ELEC: q = "electrocute"; break; -#endif - -#ifdef JP -case RBE_FIRE: q = "dz¤ä¤¹"; break; -case RBE_COLD: q = "Åà¤é¤»¤ë"; break; -case RBE_BLIND: q = "ÌÕÌܤˤ¹¤ë"; break; -case RBE_CONFUSE: q = "º®Í𤵤»¤ë"; break; -case RBE_TERRIFY: q = "¶²Éݤµ¤»¤ë"; break; -case RBE_PARALYZE: q = "Ëãá㤵¤»¤ë"; break; -case RBE_LOSE_STR: q = "ÏÓÎϤò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_INT: q = "ÃÎǽ¤ò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_WIS: q = "¸­¤µ¤ò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_DEX: q = "´ïÍѤµ¤ò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_CON: q = "Âѵ×ÎϤò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_CHR: q = "Ì¥ÎϤò¸º¾¯¤µ¤»¤ë"; break; -case RBE_LOSE_ALL: q = "Á´¥¹¥Æ¡¼¥¿¥¹¤ò¸º¾¯¤µ¤»¤ë"; break; -case RBE_SHATTER: q = "Ê´ºÕ¤¹¤ë"; break; -case RBE_EXP_10: q = "·Ð¸³Ãͤò¸º¾¯(10d6+)¤µ¤»¤ë"; break; -case RBE_EXP_20: q = "·Ð¸³Ãͤò¸º¾¯(20d6+)¤µ¤»¤ë"; break; -case RBE_EXP_40: q = "·Ð¸³Ãͤò¸º¾¯(40d6+)¤µ¤»¤ë"; break; -case RBE_EXP_80: q = "·Ð¸³Ãͤò¸º¾¯(80d6+)¤µ¤»¤ë"; break; -case RBE_DISEASE: q = "ɵ¤¤Ë¤¹¤ë"; break; -case RBE_TIME: q = "»þ´ÖµÕž"; break; -case RBE_EXP_VAMP: q = "À¸Ì¿ÎϤòµÛ¼ý¤¹¤ë"; break; -case RBE_DR_MANA: q = "ËâÎϤòÃ¥¤¦"; break; -#else - case RBE_FIRE: q = "burn"; break; - case RBE_COLD: q = "freeze"; break; - case RBE_BLIND: q = "blind"; break; - case RBE_CONFUSE: q = "confuse"; break; - case RBE_TERRIFY: q = "terrify"; break; - case RBE_PARALYZE: q = "paralyze"; break; - case RBE_LOSE_STR: q = "reduce strength"; break; - case RBE_LOSE_INT: q = "reduce intelligence"; break; - case RBE_LOSE_WIS: q = "reduce wisdom"; break; - case RBE_LOSE_DEX: q = "reduce dexterity"; break; - case RBE_LOSE_CON: q = "reduce constitution"; break; - case RBE_LOSE_CHR: q = "reduce charisma"; break; - case RBE_LOSE_ALL: q = "reduce all stats"; break; - case RBE_SHATTER: q = "shatter"; break; - case RBE_EXP_10: q = "lower experience (by 10d6+)"; break; - case RBE_EXP_20: q = "lower experience (by 20d6+)"; break; - case RBE_EXP_40: q = "lower experience (by 40d6+)"; break; - case RBE_EXP_80: q = "lower experience (by 80d6+)"; break; - case RBE_DISEASE: q = "disease"; break; - case RBE_TIME: q = "time"; break; - case RBE_EXP_VAMP: q = "drain life force"; break; - case RBE_DR_MANA: q = "drain mana force"; break; -#endif - } - - - if (!k) - { - spoil_out(wd_che[msex]); - spoil_out(" can "); - } - else if (k < i-1) - { - spoil_out(", "); - } - else - { - spoil_out(", and "); - } - - /* Describe the method */ - spoil_out(p); - - /* Describe the effect, if any */ - if (r_ptr->blow[j].effect) - { - spoil_out(" to "); - spoil_out(q); - if (r_ptr->blow[j].d_dice && r_ptr->blow[j].d_side) - { - spoil_out(" with damage"); - if (r_ptr->blow[j].d_side == 1) - sprintf(buf, " %d", r_ptr->blow[j].d_dice); - else - sprintf(buf, " %dd%d", - r_ptr->blow[j].d_dice, r_ptr->blow[j].d_side); - spoil_out(buf); - } - } - - k++; - } - - if (k) - { - spoil_out(". "); - } - else if (flags1 & (RF1_NEVER_BLOW)) - { - sprintf(buf, "%s has no physical attacks. ", wd_che[msex]); - spoil_out(buf); - } + /* Reuse the code of monster recall. */ + output_monster_spoiler(who[l], roff_func); spoil_out(NULL); } @@ -3157,9 +2101,6 @@ case RBE_DR_MANA: q = " - - - /* * Forward declare */