X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Feffects.c;h=122351de9016169a251877613e65e3501e217029;hb=577a67eed110384d77b8d12e4a15f55a845c71cf;hp=0b763c2aaa1f0672ee7222030dd559d2905f0fa1;hpb=eecaab47ccaed89d3c562ab02f0b73cc85132ed0;p=hengband%2Fhengband.git diff --git a/src/effects.c b/src/effects.c index 0b763c2aa..122351de9 100644 --- a/src/effects.c +++ b/src/effects.c @@ -1,18 +1,26 @@ -/* File: effects.c */ - -/* - * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke - * - * This software may be copied and distributed for educational, research, - * and not for profit purposes provided that this copyright and statement - * are included in all such copies. Other copyrights may also apply. +/*! + * @file effects.c + * @brief プレイヤーのステータス管理 / effects of various "objects" + * @date 2014/01/01 + * @author + * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke\n + *\n + * This software may be copied and distributed for educational, research,\n + * and not for profit purposes provided that this copyright and statement\n + * are included in all such copies. Other copyrights may also apply.\n + *\n + * 2013 Deskull rearranged comment for Doxygen.\n */ -/* Purpose: effects of various "objects" */ - #include "angband.h" -void set_action(int typ) +/*! + * @brief プレイヤーの継続行動を設定する。 + * @param typ 継続行動のID\n + * #ACTION_NONE / #ACTION_SEARCH / #ACTION_REST / #ACTION_LEARN / #ACTION_FISH / #ACTION_KAMAE / #ACTION_KATA / #ACTION_SING / #ACTION_HAYAGAKE / #ACTION_SPELL から選択。 + * @return なし + */ +void set_action(ACTION_IDX typ) { int prev_typ = p_ptr->action; @@ -26,11 +34,7 @@ void set_action(int typ) { case ACTION_SEARCH: { -#ifdef JP - msg_print("õº÷¤ò¤ä¤á¤¿¡£"); -#else - msg_print("You no longer walk carefully."); -#endif + msg_print(_("探索をやめた。", "You no longer walk carefully.")); p_ptr->redraw |= (PR_SPEED); break; } @@ -41,31 +45,19 @@ void set_action(int typ) } case ACTION_LEARN: { -#ifdef JP - msg_print("³Ø½¬¤ò¤ä¤á¤¿¡£"); -#else - msg_print("You stop Learning"); -#endif + msg_print(_("学習をやめた。", "You stop Learning")); new_mane = FALSE; break; } case ACTION_KAMAE: { -#ifdef JP - msg_print("¹½¤¨¤ò¤È¤¤¤¿¡£"); -#else - msg_print("You stop assuming the posture."); -#endif + msg_print(_("構えをといた。", "You stop assuming the posture.")); p_ptr->special_defense &= ~(KAMAE_MASK); break; } case ACTION_KATA: { -#ifdef JP - msg_print("·¿¤òÊø¤·¤¿¡£"); -#else - msg_print("You stop assuming the posture."); -#endif + msg_print(_("型を崩した。", "You stop assuming the posture.")); p_ptr->special_defense &= ~(KATA_MASK); p_ptr->update |= (PU_MONSTERS); p_ptr->redraw |= (PR_STATUS); @@ -73,20 +65,18 @@ void set_action(int typ) } case ACTION_SING: { -#ifdef JP - msg_print("²Î¤¦¤Î¤ò¤ä¤á¤¿¡£"); -#else - msg_print("You stop singing."); -#endif + msg_print(_("歌うのをやめた。", "You stop singing.")); break; } case ACTION_HAYAGAKE: { -#ifdef JP - msg_print("­¤¬½Å¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You are no longer walking extremely fast."); -#endif + msg_print(_("足が重くなった。", "You are no longer walking extremely fast.")); + p_ptr->energy_use = 100; + break; + } + case ACTION_SPELL: + { + msg_print(_("呪文の詠唱を中断した。", "You stopped spelling all spells.")); break; } } @@ -96,44 +86,29 @@ void set_action(int typ) /* If we are requested other action, stop singing */ if (prev_typ == ACTION_SING) stop_singing(); + if (prev_typ == ACTION_SPELL) stop_hex_spell(); switch (p_ptr->action) { case ACTION_SEARCH: { -#ifdef JP - msg_print("Ãí°Õ¿¼¤¯Ê⤭»Ï¤á¤¿¡£"); -#else - msg_print("You begin to walk carefully."); -#endif + msg_print(_("注意深く歩き始めた。", "You begin to walk carefully.")); p_ptr->redraw |= (PR_SPEED); break; } case ACTION_LEARN: { -#ifdef JP - msg_print("³Ø½¬¤ò»Ï¤á¤¿¡£"); -#else - msg_print("You begin Learning"); -#endif + msg_print(_("学習を始めた。", "You begin Learning")); break; } case ACTION_FISH: { -#ifdef JP - msg_print("¿åÌ̤˻å¤ò¿â¤é¤·¤¿¡¥¡¥¡¥"); -#else - msg_print("You begin fishing..."); -#endif + msg_print(_("水面に糸を垂らした...", "You begin fishing...")); break; } case ACTION_HAYAGAKE: { -#ifdef JP - msg_print("­¤¬±©¤Î¤è¤¦¤Ë·Ú¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You begin to walk extremely fast."); -#endif + msg_print(_("足が羽のように軽くなった。", "You begin to walk extremely fast.")); break; } default: @@ -149,7 +124,10 @@ void set_action(int typ) p_ptr->redraw |= (PR_STATE); } -/* reset timed flags */ +/*! + * @brief プレイヤーの全ての時限効果をリセットする。 / reset timed flags + * @return なし + */ void reset_tim_flags(void) { p_ptr->fast = 0; /* Timed -- Fast */ @@ -177,11 +155,12 @@ void reset_tim_flags(void) p_ptr->tim_stealth = 0; /* Timed -- Stealth */ p_ptr->tim_esp = 0; p_ptr->wraith_form = 0; /* Timed -- Wraith Form */ - p_ptr->tim_ffall = 0; + p_ptr->tim_levitation = 0; p_ptr->tim_sh_touki = 0; p_ptr->tim_sh_fire = 0; p_ptr->tim_sh_holy = 0; p_ptr->tim_eyeeye = 0; + p_ptr->magicdef = 0; p_ptr->resist_magic = 0; p_ptr->tsuyoshi = 0; p_ptr->kabenuke = 0; @@ -219,24 +198,105 @@ void reset_tim_flags(void) if (p_ptr->riding) { - m_list[p_ptr->riding].fast = 0; - m_list[p_ptr->riding].slow = 0; - m_list[p_ptr->riding].invulner = 0; + (void)set_monster_fast(p_ptr->riding, 0); + (void)set_monster_slow(p_ptr->riding, 0); + (void)set_monster_invulner(p_ptr->riding, 0, FALSE); } if (p_ptr->pclass == CLASS_BARD) { - p_ptr->magic_num1[0] = 0; - p_ptr->magic_num2[0] = 0; + SINGING_SONG_EFFECT(p_ptr) = 0; + SINGING_SONG_ID(p_ptr) = 0; } } +/*! + * @brief プレイヤーに魔力消去効果を与える。 + * @return なし + */ +void dispel_player(void) +{ + (void)set_fast(0, TRUE); + (void)set_lightspeed(0, TRUE); + (void)set_slow(0, TRUE); + (void)set_shield(0, TRUE); + (void)set_blessed(0, TRUE); + (void)set_tsuyoshi(0, TRUE); + (void)set_hero(0, TRUE); + (void)set_shero(0, TRUE); + (void)set_protevil(0, TRUE); + (void)set_invuln(0, TRUE); + (void)set_wraith_form(0, TRUE); + (void)set_kabenuke(0, TRUE); + (void)set_tim_res_nether(0, TRUE); + (void)set_tim_res_time(0, TRUE); + /* by henkma */ + (void)set_tim_reflect(0,TRUE); + (void)set_multishadow(0,TRUE); + (void)set_dustrobe(0,TRUE); + + (void)set_tim_invis(0, TRUE); + (void)set_tim_infra(0, TRUE); + (void)set_tim_esp(0, TRUE); + (void)set_tim_regen(0, TRUE); + (void)set_tim_stealth(0, TRUE); + (void)set_tim_levitation(0, TRUE); + (void)set_tim_sh_touki(0, TRUE); + (void)set_tim_sh_fire(0, TRUE); + (void)set_tim_sh_holy(0, TRUE); + (void)set_tim_eyeeye(0, TRUE); + (void)set_magicdef(0, TRUE); + (void)set_resist_magic(0, TRUE); + (void)set_oppose_acid(0, TRUE); + (void)set_oppose_elec(0, TRUE); + (void)set_oppose_fire(0, TRUE); + (void)set_oppose_cold(0, TRUE); + (void)set_oppose_pois(0, TRUE); + (void)set_ultimate_res(0, TRUE); + (void)set_mimic(0, 0, TRUE); + (void)set_ele_attack(0, 0); + (void)set_ele_immune(0, 0); + + /* Cancel glowing hands */ + if (p_ptr->special_attack & ATTACK_CONFUSE) + { + p_ptr->special_attack &= ~(ATTACK_CONFUSE); + msg_print(_("手の輝きがなくなった。", "Your hands stop glowing.")); + } + + if (music_singing_any() || hex_spelling_any()) + { + cptr str = (music_singing_any()) ? _("歌", "singing") : _("呪文", "spelling"); + INTERUPTING_SONG_EFFECT(p_ptr) = SINGING_SONG_EFFECT(p_ptr); + SINGING_SONG_EFFECT(p_ptr) = MUSIC_NONE; + msg_format(_("%sが途切れた。", "Your %s is interrupted."), str); + p_ptr->action = ACTION_NONE; + + /* Recalculate bonuses */ + p_ptr->update |= (PU_BONUS | PU_HP); -/* - * Set "p_ptr->tim_mimic", and "p_ptr->mimic_form", - * notice observable changes + /* Redraw map */ + p_ptr->redraw |= (PR_MAP | PR_STATUS | PR_STATE); + + /* Update monsters */ + p_ptr->update |= (PU_MONSTERS); + + /* Window stuff */ + p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON); + + p_ptr->energy_need += ENERGY_NEED(); + } +} + + +/*! + * @brief 変身効果の継続時間と変身先をセットする / Set "p_ptr->tim_mimic", and "p_ptr->mimic_form", notice observable changes + * @param v 継続時間 + * @param p 変身内容 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_mimic(int v, int p, bool do_dec) +bool set_mimic(TIME_EFFECT v, IDX p, bool do_dec) { bool notice = FALSE; @@ -254,12 +314,8 @@ bool set_mimic(int v, int p, bool do_dec) } else if ((!p_ptr->tim_mimic) || (p_ptr->mimic_form != p)) { -#ifdef JP - msg_print("¼«Ê¬¤ÎÂΤ¬ÊѤï¤Ã¤Æ¤æ¤¯¤Î¤ò´¶¤¸¤¿¡£"); -#else - msg_print("You feel that your body changes."); -#endif - p_ptr->mimic_form=p; + msg_print(_("自分の体が変わってゆくのを感じた。", "You feel that your body changes.")); + p_ptr->mimic_form = p; notice = TRUE; } } @@ -269,11 +325,7 @@ bool set_mimic(int v, int p, bool do_dec) { if (p_ptr->tim_mimic) { -#ifdef JP - msg_print("ÊѿȤ¬²ò¤±¤¿¡£"); -#else - msg_print("You are no longer transformed."); -#endif + msg_print(_("変身が解けた。", "You are no longer transformed.")); if (p_ptr->mimic_form == MIMIC_DEMON) set_oppose_fire(0, TRUE); p_ptr->mimic_form=0; notice = TRUE; @@ -289,8 +341,7 @@ bool set_mimic(int v, int p, bool do_dec) return (FALSE); /* Disturb */ - if (disturb_state) - disturb(0, 0); + if (disturb_state) disturb(0, 1); /* Redraw title */ p_ptr->redraw |= (PR_BASIC | PR_STATUS); @@ -304,15 +355,17 @@ bool set_mimic(int v, int p, bool do_dec) return (TRUE); } -/* - * Set "p_ptr->blind", notice observable changes - * - * Note the use of "PU_UN_LITE" and "PU_UN_VIEW", which is needed to - * memorize any terrain features which suddenly become "visible". - * Note that blindness is currently the only thing which can affect - * "player_can_see_bold()". +/*! + * @brief 盲目の継続時間をセットする / Set "p_ptr->blind", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + * @details + * Note the use of "PU_UN_LITE" and "PU_UN_VIEW", which is needed to\n + * memorize any terrain features which suddenly become "visible".\n + * Note that blindness is currently the only thing which can affect\n + * "player_can_see_bold()".\n */ -bool set_blind(int v) +bool set_blind(TIME_EFFECT v) { bool notice = FALSE; @@ -328,19 +381,11 @@ bool set_blind(int v) { if (p_ptr->prace == RACE_ANDROID) { -#ifdef JP -msg_print("¥»¥ó¥µ¡¼¤ò¤ä¤é¤ì¤¿¡ª"); -#else - msg_print("You are blind!"); -#endif + msg_print(_("センサーをやられた!", "You are blind!")); } else { -#ifdef JP -msg_print("Ìܤ¬¸«¤¨¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("You are blind!"); -#endif + msg_print(_("目が見えなくなってしまった!", "You are blind!")); } notice = TRUE; @@ -355,19 +400,11 @@ msg_print(" { if (p_ptr->prace == RACE_ANDROID) { -#ifdef JP -msg_print("¥»¥ó¥µ¡¼¤¬Éüµì¤·¤¿¡£"); -#else - msg_print("You can see again."); -#endif + msg_print(_("センサーが復旧した。", "You can see again.")); } else { -#ifdef JP -msg_print("¤ä¤Ã¤ÈÌܤ¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£"); -#else - msg_print("You can see again."); -#endif + msg_print(_("やっと目が見えるようになった。", "You can see again.")); } notice = TRUE; @@ -403,10 +440,12 @@ msg_print(" } -/* - * Set "p_ptr->confused", notice observable changes +/*! + * @brief 混乱の継続時間をセットする / Set "p_ptr->confused", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_confused(int v) +bool set_confused(TIME_EFFECT v) { bool notice = FALSE; @@ -420,19 +459,11 @@ bool set_confused(int v) { if (!p_ptr->confused) { -#ifdef JP -msg_print("¤¢¤Ê¤¿¤Ïº®Í𤷤¿¡ª"); -#else - msg_print("You are confused!"); -#endif + msg_print(_("あなたは混乱した!", "You are confused!")); if (p_ptr->action == ACTION_LEARN) { -#ifdef JP - msg_print("³Ø½¬¤¬Â³¤±¤é¤ì¤Ê¤¤¡ª"); -#else - msg_print("You cannot continue Learning!"); -#endif + msg_print(_("学習が続けられない!", "You cannot continue Learning!")); new_mane = FALSE; p_ptr->redraw |= (PR_STATE); @@ -440,11 +471,7 @@ msg_print(" } if (p_ptr->action == ACTION_KAMAE) { -#ifdef JP - msg_print("¹½¤¨¤¬¤È¤±¤¿¡£"); -#else - msg_print("Your posture gets loose."); -#endif + msg_print(_("構えがとけた。", "Your posture gets loose.")); p_ptr->special_defense &= ~(KAMAE_MASK); p_ptr->update |= (PU_BONUS); p_ptr->redraw |= (PR_STATE); @@ -452,11 +479,7 @@ msg_print(" } else if (p_ptr->action == ACTION_KATA) { -#ifdef JP - msg_print("·¿¤¬Êø¤ì¤¿¡£"); -#else - msg_print("Your posture gets loose."); -#endif + msg_print(_("型が崩れた。", "Your posture gets loose.")); p_ptr->special_defense &= ~(KATA_MASK); p_ptr->update |= (PU_BONUS); p_ptr->update |= (PU_MONSTERS); @@ -465,6 +488,12 @@ msg_print(" p_ptr->action = ACTION_NONE; } + /* Sniper */ + if (p_ptr->concent) reset_concentration(TRUE); + + /* Hex */ + if (hex_spelling_any()) stop_hex_spell_all(); + notice = TRUE; p_ptr->counter = FALSE; chg_virtue(V_HARMONY, -1); @@ -476,12 +505,7 @@ msg_print(" { if (p_ptr->confused) { -#ifdef JP -msg_print("¤ä¤Ã¤Èº®Í𤬤ª¤µ¤Þ¤Ã¤¿¡£"); -#else - msg_print("You feel less confused now."); -#endif - + msg_print(_("やっと混乱がおさまった。", "You feel less confused now.")); p_ptr->special_attack &= ~(ATTACK_SUIKEN); notice = TRUE; } @@ -507,10 +531,12 @@ msg_print(" } -/* - * Set "p_ptr->poisoned", notice observable changes +/*! + * @brief 毒の継続時間をセットする / Set "p_ptr->poisoned", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_poisoned(int v) +bool set_poisoned(TIME_EFFECT v) { bool notice = FALSE; @@ -524,12 +550,7 @@ bool set_poisoned(int v) { if (!p_ptr->poisoned) { -#ifdef JP -msg_print("ÆǤ˿¯¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("You are poisoned!"); -#endif - + msg_print(_("毒に侵されてしまった!", "You are poisoned!")); notice = TRUE; } } @@ -539,12 +560,7 @@ msg_print(" { if (p_ptr->poisoned) { -#ifdef JP -msg_print("¤ä¤Ã¤ÈÆǤÎÄˤߤ¬¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You are no longer poisoned."); -#endif - + msg_print(_("やっと毒の痛みがなくなった。", "You are no longer poisoned.")); notice = TRUE; } } @@ -569,10 +585,12 @@ msg_print(" } -/* - * Set "p_ptr->afraid", notice observable changes +/*! + * @brief 恐怖の継続時間をセットする / Set "p_ptr->afraid", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_afraid(int v) +bool set_afraid(TIME_EFFECT v) { bool notice = FALSE; @@ -586,19 +604,11 @@ bool set_afraid(int v) { if (!p_ptr->afraid) { -#ifdef JP -msg_print("²¿¤â¤«¤â¶²¤¯¤Ê¤Ã¤Æ¤­¤¿¡ª"); -#else - msg_print("You are terrified!"); -#endif + msg_print(_("何もかも恐くなってきた!", "You are terrified!")); if (p_ptr->special_defense & KATA_MASK) { -#ifdef JP - msg_print("·¿¤¬Êø¤ì¤¿¡£"); -#else - msg_print("Your posture gets loose."); -#endif + msg_print(_("型が崩れた。", "Your posture gets loose.")); p_ptr->special_defense &= ~(KATA_MASK); p_ptr->update |= (PU_BONUS); p_ptr->update |= (PU_MONSTERS); @@ -618,12 +628,7 @@ msg_print(" { if (p_ptr->afraid) { -#ifdef JP -msg_print("¤ä¤Ã¤È¶²Éݤò¿¶¤êʧ¤Ã¤¿¡£"); -#else - msg_print("You feel bolder now."); -#endif - + msg_print(_("やっと恐怖を振り払った。", "You feel bolder now.")); notice = TRUE; } } @@ -647,11 +652,12 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->paralyzed", notice observable changes +/*! + * @brief 麻痺の継続時間をセットする / Set "p_ptr->paralyzed", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_paralyzed(int v) +bool set_paralyzed(TIME_EFFECT v) { bool notice = FALSE; @@ -665,11 +671,12 @@ bool set_paralyzed(int v) { if (!p_ptr->paralyzed) { -#ifdef JP -msg_print("ÂΤ¬Ëãá㤷¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("You are paralyzed!"); -#endif + msg_print(_("体が麻痺してしまった!", "You are paralyzed!")); + /* Sniper */ + if (p_ptr->concent) reset_concentration(TRUE); + + /* Hex */ + if (hex_spelling_any()) stop_hex_spell_all(); p_ptr->counter = FALSE; notice = TRUE; @@ -681,12 +688,7 @@ msg_print(" { if (p_ptr->paralyzed) { -#ifdef JP -msg_print("¤ä¤Ã¤ÈÆ°¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£"); -#else - msg_print("You can move again."); -#endif - + msg_print(_("やっと動けるようになった。", "You can move again.")); notice = TRUE; } } @@ -713,13 +715,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->image", notice observable changes - * - * Note that we must redraw the map when hallucination changes. +/*! + * @brief 幻覚の継続時間をセットする / Set "p_ptr->image", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + * @details Note that we must redraw the map when hallucination changes. */ -bool set_image(int v) +bool set_image(TIME_EFFECT v) { bool notice = FALSE; @@ -735,11 +737,10 @@ bool set_image(int v) set_tsuyoshi(0, TRUE); if (!p_ptr->image) { -#ifdef JP -msg_print("¥ï¡¼¥ª¡ª²¿¤â¤«¤âÆú¿§¤Ë¸«¤¨¤ë¡ª"); -#else - msg_print("Oh, wow! Everything looks so cosmic now!"); -#endif + msg_print(_("ワーオ!何もかも虹色に見える!", "Oh, wow! Everything looks so cosmic now!")); + + /* Sniper */ + if (p_ptr->concent) reset_concentration(TRUE); p_ptr->counter = FALSE; notice = TRUE; @@ -751,12 +752,7 @@ msg_print(" { if (p_ptr->image) { -#ifdef JP -msg_print("¤ä¤Ã¤È¤Ï¤Ã¤­¤ê¤Èʪ¤¬¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£"); -#else - msg_print("You can see clearly again."); -#endif - + msg_print(_("やっとはっきりと物が見えるようになった。", "You can see clearly again.")); notice = TRUE; } } @@ -771,11 +767,14 @@ msg_print(" if (!notice) return (FALSE); /* Disturb */ - if (disturb_state) disturb(0, 0); + if (disturb_state) disturb(0, 1); /* Redraw map */ p_ptr->redraw |= (PR_MAP); + /* Update the health bar */ + p_ptr->redraw |= (PR_HEALTH | PR_UHEALTH); + /* Update monsters */ p_ptr->update |= (PU_MONSTERS); @@ -789,11 +788,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->fast", notice observable changes +/*! + * @brief 加速の継続時間をセットする / Set "p_ptr->fast", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_fast(int v, bool do_dec) +bool set_fast(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -811,12 +812,7 @@ bool set_fast(int v, bool do_dec) } else if (!IS_FAST() && !p_ptr->lightspeed) { -#ifdef JP -msg_print("ÁÇÁ᤯ư¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡ª"); -#else - msg_print("You feel yourself moving much faster!"); -#endif - + msg_print(_("素早く動けるようになった!", "You feel yourself moving much faster!")); notice = TRUE; chg_virtue(V_PATIENCE, -1); chg_virtue(V_DILIGENCE, 1); @@ -828,12 +824,7 @@ msg_print(" { if (p_ptr->fast && !p_ptr->lightspeed && !music_singing(MUSIC_SPEED) && !music_singing(MUSIC_SHERO)) { -#ifdef JP -msg_print("Æ°¤­¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£"); -#else - msg_print("You feel yourself slow down."); -#endif - + msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down.")); notice = TRUE; } } @@ -857,11 +848,13 @@ msg_print("Æ° return (TRUE); } - -/* - * Set "p_ptr->lightspeed", notice observable changes +/*! + * @brief 光速移動の継続時間をセットする / Set "p_ptr->lightspeed", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_lightspeed(int v, bool do_dec) +bool set_lightspeed(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -870,6 +863,8 @@ bool set_lightspeed(int v, bool do_dec) if (p_ptr->is_dead) return FALSE; + if (p_ptr->wild_mode) v = 0; + /* Open */ if (v) { @@ -879,12 +874,7 @@ bool set_lightspeed(int v, bool do_dec) } else if (!p_ptr->lightspeed) { -#ifdef JP -msg_print("Èó¾ï¤ËÁÇÁ᤯ư¤±¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡ª"); -#else - msg_print("You feel yourself moving extremely faster!"); -#endif - + msg_print(_("非常に素早く動けるようになった!", "You feel yourself moving extremely faster!")); notice = TRUE; chg_virtue(V_PATIENCE, -1); chg_virtue(V_DILIGENCE, 1); @@ -896,12 +886,7 @@ msg_print(" { if (p_ptr->lightspeed) { -#ifdef JP -msg_print("Æ°¤­¤ÎÁÇÁᤵ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£"); -#else - msg_print("You feel yourself slow down."); -#endif - + msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down.")); notice = TRUE; } } @@ -925,11 +910,13 @@ msg_print("Æ° return (TRUE); } - -/* - * Set "p_ptr->slow", notice observable changes +/*! + * @brief 減速の継続時間をセットする / Set "p_ptr->slow", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_slow(int v, bool do_dec) +bool set_slow(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -947,12 +934,7 @@ bool set_slow(int v, bool do_dec) } else if (!p_ptr->slow) { -#ifdef JP -msg_print("ÂΤÎÆ°¤­¤¬ÃÙ¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("You feel yourself moving slower!"); -#endif - + msg_print(_("体の動きが遅くなってしまった!", "You feel yourself moving slower!")); notice = TRUE; } } @@ -962,12 +944,7 @@ msg_print(" { if (p_ptr->slow) { -#ifdef JP -msg_print("Æ°¤­¤ÎÃÙ¤µ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£"); -#else - msg_print("You feel yourself speed up."); -#endif - + msg_print(_("動きの遅さがなくなったようだ。", "You feel yourself speed up.")); notice = TRUE; } } @@ -992,10 +969,13 @@ msg_print("Æ° } -/* - * Set "p_ptr->shield", notice observable changes +/*! + * @brief 肌石化の継続時間をセットする / Set "p_ptr->shield", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_shield(int v, bool do_dec) +bool set_shield(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1013,12 +993,7 @@ bool set_shield(int v, bool do_dec) } else if (!p_ptr->shield) { -#ifdef JP -msg_print("È©¤¬ÀФˤʤä¿¡£"); -#else - msg_print("Your skin turns to stone."); -#endif - + msg_print(_("肌が石になった。", "Your skin turns to stone.")); notice = TRUE; } } @@ -1028,12 +1003,7 @@ msg_print("È© { if (p_ptr->shield) { -#ifdef JP -msg_print("È©¤¬¸µ¤ËÌá¤Ã¤¿¡£"); -#else - msg_print("Your skin returns to normal."); -#endif - + msg_print(_("肌が元に戻った。", "Your skin returns to normal.")); notice = TRUE; } } @@ -1061,11 +1031,13 @@ msg_print("È© } - -/* - * Set "p_ptr->tsubureru", notice observable changes +/*! + * @brief つぶれるの継続時間をセットする / Set "p_ptr->tsubureru", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tsubureru(int v, bool do_dec) +bool set_tsubureru(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1083,12 +1055,7 @@ bool set_tsubureru(int v, bool do_dec) } else if (!p_ptr->tsubureru) { -#ifdef JP -msg_print("²£¤Ë¿­¤Ó¤¿¡£"); -#else - msg_print("Your body expands horizontally."); -#endif - + msg_print(_("横に伸びた。", "Your body expands horizontally.")); notice = TRUE; } } @@ -1098,12 +1065,7 @@ msg_print(" { if (p_ptr->tsubureru) { -#ifdef JP -msg_print("¤â¤¦²£¤Ë¿­¤Ó¤Æ¤¤¤Ê¤¤¡£"); -#else - msg_print("Your body returns to normal."); -#endif - + msg_print(_("もう横に伸びていない。", "Your body returns to normal.")); notice = TRUE; } } @@ -1131,11 +1093,13 @@ msg_print(" } - -/* - * Set "p_ptr->magicdef", notice observable changes +/*! + * @brief 魔法の鎧の継続時間をセットする / Set "p_ptr->magicdef", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_magicdef(int v, bool do_dec) +bool set_magicdef(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1153,12 +1117,7 @@ bool set_magicdef(int v, bool do_dec) } else if (!p_ptr->magicdef) { -#ifdef JP - msg_print("ËâË¡¤ÎËɸæÎϤ¬Áý¤·¤¿¤è¤¦¤Êµ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel more resistant to magic."); -#endif - + msg_print(_("魔法の防御力が増したような気がする。", "You feel more resistant to magic.")); notice = TRUE; } } @@ -1168,12 +1127,7 @@ bool set_magicdef(int v, bool do_dec) { if (p_ptr->magicdef) { -#ifdef JP - msg_print("ËâË¡¤ÎËɸæÎϤ¬¸µ¤ËÌá¤Ã¤¿¡£"); -#else - msg_print("You feel less resistant to magic."); -#endif - + msg_print(_("魔法の防御力が元に戻った。", "You feel less resistant to magic.")); notice = TRUE; } } @@ -1200,12 +1154,13 @@ bool set_magicdef(int v, bool do_dec) return (TRUE); } - - -/* - * Set "p_ptr->blessed", notice observable changes +/*! + * @brief 祝福の継続時間をセットする / Set "p_ptr->blessed", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_blessed(int v, bool do_dec) +bool set_blessed(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1223,12 +1178,7 @@ bool set_blessed(int v, bool do_dec) } else if (!IS_BLESSED()) { -#ifdef JP -msg_print("¹â·é¤Êµ¤Ê¬¤Ë¤Ê¤Ã¤¿¡ª"); -#else - msg_print("You feel righteous!"); -#endif - + msg_print(_("高潔な気分になった!", "You feel righteous!")); notice = TRUE; } } @@ -1238,12 +1188,7 @@ msg_print(" { if (p_ptr->blessed && !music_singing(MUSIC_BLESS)) { -#ifdef JP -msg_print("¹â·é¤Êµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£"); -#else - msg_print("The prayer has expired."); -#endif - + msg_print(_("高潔な気分が消え失せた。", "The prayer has expired.")); notice = TRUE; } } @@ -1271,10 +1216,13 @@ msg_print(" } -/* - * Set "p_ptr->hero", notice observable changes +/*! + * @brief 士気高揚の継続時間をセットする / Set "p_ptr->hero", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_hero(int v, bool do_dec) +bool set_hero(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1292,12 +1240,7 @@ bool set_hero(int v, bool do_dec) } else if (!IS_HERO()) { -#ifdef JP -msg_print("¥Ò¡¼¥í¡¼¤Ë¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel like a hero!"); -#endif - + msg_print(_("ヒーローになった気がする!", "You feel like a hero!")); notice = TRUE; } } @@ -1307,12 +1250,7 @@ msg_print(" { if (p_ptr->hero && !music_singing(MUSIC_HERO) && !music_singing(MUSIC_SHERO)) { -#ifdef JP -msg_print("¥Ò¡¼¥í¡¼¤Îµ¤Ê¬¤¬¾Ã¤¨¼º¤»¤¿¡£"); -#else - msg_print("The heroism wears off."); -#endif - + msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off.")); notice = TRUE; } } @@ -1342,11 +1280,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->shero", notice observable changes +/*! + * @brief 狂戦士化の継続時間をセットする / Set "p_ptr->shero", notice observable changes + * @param v 継続時間/ 0ならば無条件にリセット + * @param do_dec FALSEの場合現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_shero(int v, bool do_dec) +bool set_shero(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1365,12 +1305,7 @@ bool set_shero(int v, bool do_dec) } else if (!p_ptr->shero) { -#ifdef JP -msg_print("»¦Ù¤¥Þ¥·¡¼¥ó¤Ë¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel like a killing machine!"); -#endif - + msg_print(_("殺戮マシーンになった気がする!", "You feel like a killing machine!")); notice = TRUE; } } @@ -1380,12 +1315,7 @@ msg_print(" { if (p_ptr->shero) { -#ifdef JP -msg_print("ÌîÈڤʵ¤»ý¤Á¤¬¾Ã¤¨¼º¤»¤¿¡£"); -#else - msg_print("You feel less Berserk."); -#endif - + msg_print(_("野蛮な気持ちが消え失せた。", "You feel less Berserk.")); notice = TRUE; } } @@ -1415,11 +1345,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->protevil", notice observable changes +/*! + * @brief 対邪悪結界の継続時間をセットする / Set "p_ptr->protevil", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_protevil(int v, bool do_dec) +bool set_protevil(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1437,12 +1369,7 @@ bool set_protevil(int v, bool do_dec) } else if (!p_ptr->protevil) { -#ifdef JP -msg_print("¼Ù°­¤Ê¤ë¸ºß¤«¤é¼é¤é¤ì¤Æ¤¤¤ë¤è¤¦¤Ê´¶¤¸¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel safe from evil!"); -#endif - + msg_print(_("邪悪なる存在から守られているような感じがする!", "You feel safe from evil!")); notice = TRUE; } } @@ -1452,12 +1379,7 @@ msg_print(" { if (p_ptr->protevil) { -#ifdef JP -msg_print("¼Ù°­¤Ê¤ë¸ºß¤«¤é¼é¤é¤ì¤Æ¤¤¤ë´¶¤¸¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You no longer feel safe from evil."); -#endif - + msg_print(_("邪悪なる存在から守られている感じがなくなった。", "You no longer feel safe from evil.")); notice = TRUE; } } @@ -1481,10 +1403,13 @@ msg_print(" return (TRUE); } -/* - * Set "p_ptr->wraith_form", notice observable changes +/*! + * @brief 幽体化の継続時間をセットする / Set "p_ptr->wraith_form", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_wraith_form(int v, bool do_dec) +bool set_wraith_form(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1502,14 +1427,8 @@ bool set_wraith_form(int v, bool do_dec) } else if (!p_ptr->wraith_form) { -#ifdef JP -msg_print("ʪ¼Á³¦¤òÎ¥¤ì¤ÆÍ©µ´¤Î¤è¤¦¤Ê¸ºß¤Ë¤Ê¤Ã¤¿¡ª"); -#else - msg_print("You leave the physical world and turn into a wraith-being!"); -#endif - + msg_print(_("物質界を離れて幽鬼のような存在になった!", "You leave the physical world and turn into a wraith-being!")); notice = TRUE; - chg_virtue(V_UNLIFE, 3); chg_virtue(V_HONOUR, -2); chg_virtue(V_SACRIFICE, -2); @@ -1531,12 +1450,7 @@ msg_print("ʪ { if (p_ptr->wraith_form) { -#ifdef JP -msg_print("ÉÔÆ©ÌÀ¤Ë¤Ê¤Ã¤¿´¶¤¸¤¬¤¹¤ë¡£"); -#else - msg_print("You feel opaque."); -#endif - + msg_print(_("不透明になった感じがする。", "You feel opaque.")); notice = TRUE; /* Redraw map */ @@ -1565,9 +1479,6 @@ msg_print(" /* Recalculate bonuses */ p_ptr->update |= (PU_BONUS); - - - /* Handle stuff */ handle_stuff(); @@ -1576,11 +1487,13 @@ msg_print(" } - -/* - * Set "p_ptr->invuln", notice observable changes +/*! + * @brief 無傷球の継続時間をセットする / Set "p_ptr->invuln", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_invuln(int v, bool do_dec) +bool set_invuln(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1598,12 +1511,7 @@ bool set_invuln(int v, bool do_dec) } else if (!IS_INVULN()) { -#ifdef JP -msg_print("̵Ũ¤À¡ª"); -#else - msg_print("Invulnerability!"); -#endif - + msg_print(_("無敵だ!", "Invulnerability!")); notice = TRUE; chg_virtue(V_UNLIFE, -2); @@ -1627,12 +1535,7 @@ msg_print("̵Ũ { if (p_ptr->invuln && !music_singing(MUSIC_INVULN)) { -#ifdef JP -msg_print("̵Ũ¤Ç¤Ï¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("The invulnerability wears off."); -#endif - + msg_print(_("無敵ではなくなった。", "The invulnerability wears off.")); notice = TRUE; /* Redraw map */ @@ -1670,11 +1573,13 @@ msg_print("̵Ũ return (TRUE); } - -/* - * Set "p_ptr->tim_esp", notice observable changes +/*! + * @brief 時限ESPの継続時間をセットする / Set "p_ptr->tim_esp", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_esp(int v, bool do_dec) +bool set_tim_esp(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1692,12 +1597,7 @@ bool set_tim_esp(int v, bool do_dec) } else if (!IS_TIM_ESP()) { -#ifdef JP -msg_print("°Õ¼±¤¬¹­¤¬¤Ã¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel your consciousness expand!"); -#endif - + msg_print(_("意識が広がった気がする!", "You feel your consciousness expand!")); notice = TRUE; } } @@ -1707,12 +1607,7 @@ msg_print(" { if (p_ptr->tim_esp && !music_singing(MUSIC_MIND)) { -#ifdef JP -msg_print("°Õ¼±¤Ï¸µ¤ËÌá¤Ã¤¿¡£"); -#else - msg_print("Your consciousness contracts again."); -#endif - + msg_print(_("意識は元に戻った。", "Your consciousness contracts again.")); notice = TRUE; } } @@ -1742,11 +1637,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_invis", notice observable changes +/*! + * @brief 時限透明視の継続時間をセットする / Set "p_ptr->tim_invis", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_invis(int v, bool do_dec) +bool set_tim_invis(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1764,12 +1661,7 @@ bool set_tim_invis(int v, bool do_dec) } else if (!p_ptr->tim_invis) { -#ifdef JP -msg_print("Ìܤ¬Èó¾ï¤ËÉÒ´¶¤Ë¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("Your eyes feel very sensitive!"); -#endif - + msg_print(_("目が非常に敏感になった気がする!", "Your eyes feel very sensitive!")); notice = TRUE; } } @@ -1779,12 +1671,7 @@ msg_print(" { if (p_ptr->tim_invis) { -#ifdef JP -msg_print("ÌܤÎÉÒ´¶¤µ¤¬¤Ê¤¯¤Ê¤Ã¤¿¤è¤¦¤À¡£"); -#else - msg_print("Your eyes feel less sensitive."); -#endif - + msg_print(_("目の敏感さがなくなったようだ。", "Your eyes feel less sensitive.")); notice = TRUE; } } @@ -1814,11 +1701,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_infra", notice observable changes +/*! + * @brief 時限赤外線視力の継続時間をセットする / Set "p_ptr->tim_infra", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_infra(int v, bool do_dec) +bool set_tim_infra(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1836,12 +1725,7 @@ bool set_tim_infra(int v, bool do_dec) } else if (!p_ptr->tim_infra) { -#ifdef JP -msg_print("Ìܤ¬¥é¥ó¥é¥ó¤Èµ±¤­»Ï¤á¤¿¡ª"); -#else - msg_print("Your eyes begin to tingle!"); -#endif - + msg_print(_("目がランランと輝き始めた!", "Your eyes begin to tingle!")); notice = TRUE; } } @@ -1851,12 +1735,7 @@ msg_print(" { if (p_ptr->tim_infra) { -#ifdef JP -msg_print("Ìܤ層­¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your eyes stop tingling."); -#endif - + msg_print(_("目の輝きがなくなった。", "Your eyes stop tingling.")); notice = TRUE; } } @@ -1886,11 +1765,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_regen", notice observable changes +/*! + * @brief 時限急回復の継続時間をセットする / Set "p_ptr->tim_regen", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_regen(int v, bool do_dec) +bool set_tim_regen(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1908,12 +1789,7 @@ bool set_tim_regen(int v, bool do_dec) } else if (!p_ptr->tim_regen) { -#ifdef JP -msg_print("²óÉüÎϤ¬¾å¤¬¤Ã¤¿¡ª"); -#else - msg_print("You feel yourself regenerating quickly!"); -#endif - + msg_print(_("回復力が上がった!", "You feel yourself regenerating quickly!")); notice = TRUE; } } @@ -1923,12 +1799,7 @@ msg_print(" { if (p_ptr->tim_regen) { -#ifdef JP -msg_print("ÁÇÁ᤯²óÉü¤¹¤ë´¶¤¸¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You feel yourself regenerating slowly."); -#endif - + msg_print(_("素早く回復する感じがなくなった。", "You feel yourself regenerating slowly.")); notice = TRUE; } } @@ -1955,11 +1826,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_stealth", notice observable changes +/*! + * @brief 隠密の歌の継続時間をセットする / Set "p_ptr->tim_stealth", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_stealth(int v, bool do_dec) +bool set_tim_stealth(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -1977,12 +1850,7 @@ bool set_tim_stealth(int v, bool do_dec) } else if (!IS_TIM_STEALTH()) { -#ifdef JP -msg_print("­²»¤¬¾®¤µ¤¯¤Ê¤Ã¤¿¡ª"); -#else - msg_print("You begin to walk silently!"); -#endif - + msg_print(_("足音が小さくなった!", "You begin to walk silently!")); notice = TRUE; } } @@ -1992,12 +1860,7 @@ msg_print("­ { if (p_ptr->tim_stealth && !music_singing(MUSIC_STEALTH)) { -#ifdef JP -msg_print("­²»¤¬Â礭¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You no longer walk silently."); -#endif - + msg_print(_("足音が大きくなった。", "You no longer walk silently.")); notice = TRUE; } } @@ -2024,7 +1887,11 @@ msg_print("­ return (TRUE); } - +/*! + * @brief 超隠密状態をセットする + * @param set TRUEならば超隠密状態になる。 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + */ bool set_superstealth(bool set) { bool notice = FALSE; @@ -2036,22 +1903,14 @@ bool set_superstealth(bool set) { if (!(p_ptr->special_defense & NINJA_S_STEALTH)) { - if (cave[py][px].info & CAVE_MNLT) + if (cave[p_ptr->y][p_ptr->x].info & CAVE_MNLT) { -#ifdef JP - msg_print("Ũ¤ÎÌܤ«¤éÇö¤¤±Æ¤ÎÃæ¤Ëʤ¤¤±£¤µ¤ì¤¿¡£"); -#else - msg_print("You are mantled in weak shadow from ordinary eyes."); -#endif + msg_print(_("敵の目から薄い影の中に覆い隠された。", "You are mantled in weak shadow from ordinary eyes.")); p_ptr->monlite = p_ptr->old_monlite = TRUE; } else { -#ifdef JP - msg_print("Ũ¤ÎÌܤ«¤é±Æ¤ÎÃæ¤Ëʤ¤¤±£¤µ¤ì¤¿¡ª"); -#else - msg_print("You are mantled in shadow from ordinary eyes!"); -#endif + msg_print(_("敵の目から影の中に覆い隠された!", "You are mantled in shadow from ordinary eyes!")); p_ptr->monlite = p_ptr->old_monlite = FALSE; } @@ -2067,12 +1926,7 @@ bool set_superstealth(bool set) { if (p_ptr->special_defense & NINJA_S_STEALTH) { -#ifdef JP - msg_print("ºÆ¤ÓŨ¤ÎÌܤˤµ¤é¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£"); -#else - msg_print("You are exposed to common sight once more."); -#endif - + msg_print(_("再び敵の目にさらされるようになった。", "You are exposed to common sight once more.")); notice = TRUE; /* Use the value */ @@ -2093,11 +1947,13 @@ bool set_superstealth(bool set) return (TRUE); } - -/* - * Set "p_ptr->tim_ffall", notice observable changes +/*! + * @brief 一時的浮遊の継続時間をセットする / Set "p_ptr->tim_levitation", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_ffall(int v, bool do_dec) +bool set_tim_levitation(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2109,18 +1965,13 @@ bool set_tim_ffall(int v, bool do_dec) /* Open */ if (v) { - if (p_ptr->tim_ffall && !do_dec) + if (p_ptr->tim_levitation && !do_dec) { - if (p_ptr->tim_ffall > v) return FALSE; + if (p_ptr->tim_levitation > v) return FALSE; } - else if (!p_ptr->tim_ffall) + else if (!p_ptr->tim_levitation) { -#ifdef JP -msg_print("ÂΤ¬Ãè¤ËÉ⤭»Ï¤á¤¿¡£"); -#else - msg_print("You begin to fly!"); -#endif - + msg_print(_("体が宙に浮き始めた。", "You begin to fly!")); notice = TRUE; } } @@ -2128,20 +1979,15 @@ msg_print(" /* Shut */ else { - if (p_ptr->tim_ffall) + if (p_ptr->tim_levitation) { -#ifdef JP -msg_print("¤â¤¦Ãè¤ËÉ⤫¤Ù¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You stop flying."); -#endif - + msg_print(_("もう宙に浮かべなくなった。", "You stop flying.")); notice = TRUE; } } /* Use the value */ - p_ptr->tim_ffall = v; + p_ptr->tim_levitation = v; /* Redraw status bar */ p_ptr->redraw |= (PR_STATUS); @@ -2162,11 +2008,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_sh_touki", notice observable changes +/*! + * @brief 一時的闘気のオーラの継続時間をセットする / Set "p_ptr->tim_sh_touki", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_sh_touki(int v, bool do_dec) +bool set_tim_sh_touki(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2184,12 +2032,7 @@ bool set_tim_sh_touki(int v, bool do_dec) } else if (!p_ptr->tim_sh_touki) { -#ifdef JP -msg_print("ÂΤ¬Æ®µ¤¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£"); -#else - msg_print("You have enveloped by the aura of the Force!"); -#endif - + msg_print(_("体が闘気のオーラで覆われた。", "You have enveloped by the aura of the Force!")); notice = TRUE; } } @@ -2199,12 +2042,7 @@ msg_print(" { if (p_ptr->tim_sh_touki) { -#ifdef JP -msg_print("Æ®µ¤¤¬¾Ã¤¨¤¿¡£"); -#else - msg_print("Aura of the Force disappeared."); -#endif - + msg_print(_("闘気が消えた。", "Aura of the Force disappeared.")); notice = TRUE; } } @@ -2228,11 +2066,13 @@ msg_print("Æ® return (TRUE); } - -/* - * Set "p_ptr->tim_sh_fire", notice observable changes +/*! + * @brief 一時的火炎のオーラの継続時間をセットする / Set "p_ptr->tim_sh_fire", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_sh_fire(int v, bool do_dec) +bool set_tim_sh_fire(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2250,12 +2090,7 @@ bool set_tim_sh_fire(int v, bool do_dec) } else if (!p_ptr->tim_sh_fire) { -#ifdef JP -msg_print("ÂΤ¬±ê¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£"); -#else - msg_print("You have enveloped by fiery aura!"); -#endif - + msg_print(_("体が炎のオーラで覆われた。", "You have enveloped by fiery aura!")); notice = TRUE; } } @@ -2265,12 +2100,7 @@ msg_print(" { if (p_ptr->tim_sh_fire) { -#ifdef JP -msg_print("±ê¤Î¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£"); -#else - msg_print("Fiery aura disappeared."); -#endif - + msg_print(_("炎のオーラが消えた。", "Fiery aura disappeared.")); notice = TRUE; } } @@ -2297,11 +2127,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_sh_holy", notice observable changes +/*! + * @brief 一時的聖なるのオーラの継続時間をセットする / Set "p_ptr->tim_sh_holy", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_sh_holy(int v, bool do_dec) +bool set_tim_sh_holy(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2319,12 +2151,7 @@ bool set_tim_sh_holy(int v, bool do_dec) } else if (!p_ptr->tim_sh_holy) { -#ifdef JP -msg_print("ÂΤ¬À»¤Ê¤ë¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£"); -#else - msg_print("You have enveloped by holy aura!"); -#endif - + msg_print(_("体が聖なるオーラで覆われた。", "You have enveloped by holy aura!")); notice = TRUE; } } @@ -2334,12 +2161,7 @@ msg_print(" { if (p_ptr->tim_sh_holy) { -#ifdef JP -msg_print("À»¤Ê¤ë¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£"); -#else - msg_print("Holy aura disappeared."); -#endif - + msg_print(_("聖なるオーラが消えた。", "Holy aura disappeared.")); notice = TRUE; } } @@ -2366,12 +2188,13 @@ msg_print(" return (TRUE); } - - -/* - * Set "p_ptr->tim_eyeeye", notice observable changes +/*! + * @brief 目には目をの残り時間をセットする / Set "p_ptr->tim_eyeeye", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_eyeeye(int v, bool do_dec) +bool set_tim_eyeeye(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2389,12 +2212,7 @@ bool set_tim_eyeeye(int v, bool do_dec) } else if (!p_ptr->tim_eyeeye) { -#ifdef JP -msg_print("Ë¡¤Î¼é¤ê¼ê¤Ë¤Ê¤Ã¤¿µ¤¤¬¤·¤¿¡ª"); -#else - msg_print("You feel like a keeper of commandments!"); -#endif - + msg_print(_("法の守り手になった気がした!", "You feel like a keeper of commandments!")); notice = TRUE; } } @@ -2404,12 +2222,7 @@ msg_print("Ë¡ { if (p_ptr->tim_eyeeye) { -#ifdef JP -msg_print("Ĩȳ¤ò¼¹¹Ô¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You no longer feel like a keeper."); -#endif - + msg_print(_("懲罰を執行することができなくなった。", "You no longer feel like a keeper.")); notice = TRUE; } } @@ -2437,11 +2250,13 @@ msg_print("Ĩȳ } - -/* - * Set "p_ptr->resist_magic", notice observable changes +/*! + * @brief 一時的魔法防御の継続時間をセットする / Set "p_ptr->resist_magic", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_resist_magic(int v, bool do_dec) +bool set_resist_magic(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2459,12 +2274,7 @@ bool set_resist_magic(int v, bool do_dec) } else if (!p_ptr->resist_magic) { -#ifdef JP -msg_print("ËâË¡¤Ø¤ÎÂÑÀ­¤¬¤Ä¤¤¤¿¡£"); -#else - msg_print("You have been protected from magic!"); -#endif - + msg_print(_("魔法への耐性がついた。", "You have been protected from magic!")); notice = TRUE; } } @@ -2474,12 +2284,7 @@ msg_print(" { if (p_ptr->resist_magic) { -#ifdef JP -msg_print("ËâË¡¤Ë¼å¤¯¤Ê¤Ã¤¿¡£"); -#else -msg_print("You are no longer protected from magic."); -#endif - + msg_print(_("魔法に弱くなった。", "You are no longer protected from magic.")); notice = TRUE; } } @@ -2506,11 +2311,13 @@ msg_print("You are no longer protected from magic."); return (TRUE); } - -/* - * Set "p_ptr->tim_reflect", notice observable changes +/*! + * @brief 一時的反射の継続時間をセットする / Set "p_ptr->tim_reflect", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_tim_reflect(int v, bool do_dec) +bool set_tim_reflect(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2528,12 +2335,7 @@ bool set_tim_reflect(int v, bool do_dec) } else if (!p_ptr->tim_reflect) { -#ifdef JP -msg_print("ÂΤÎɽÌ̤¬³ê¤«¤Ë¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("Your body becames smooth."); -#endif - + msg_print(_("体の表面が滑かになった気がする。", "Your body becames smooth.")); notice = TRUE; } } @@ -2543,12 +2345,7 @@ msg_print(" { if (p_ptr->tim_reflect) { -#ifdef JP -msg_print("ÂΤÎɽÌ̤¬³ê¤«¤Ç¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your body is no longer smooth."); -#endif - + msg_print(_("体の表面が滑かでなくなった。", "Your body is no longer smooth.")); notice = TRUE; } } @@ -2579,7 +2376,7 @@ msg_print(" /* * Set "p_ptr->multishadow", notice observable changes */ -bool set_multishadow(int v, bool do_dec) +bool set_multishadow(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2597,12 +2394,7 @@ bool set_multishadow(int v, bool do_dec) } else if (!p_ptr->multishadow) { -#ifdef JP -msg_print("¤¢¤Ê¤¿¤Î¼þ¤ê¤Ë¸¸±Æ¤¬À¸¤Þ¤ì¤¿¡£"); -#else - msg_print("Your Shadow enveloped you."); -#endif - + msg_print(_("あなたの周りに幻影が生まれた。", "Your Shadow enveloped you.")); notice = TRUE; } } @@ -2612,12 +2404,7 @@ msg_print(" { if (p_ptr->multishadow) { -#ifdef JP -msg_print("¸¸±Æ¤¬¾Ã¤¨¤¿¡£"); -#else - msg_print("Your Shadow disappears."); -#endif - + msg_print(_("幻影が消えた。", "Your Shadow disappears.")); notice = TRUE; } } @@ -2644,11 +2431,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->dustrobe", notice observable changes +/*! + * @brief 一時的破片のオーラの継続時間をセットする / Set "p_ptr->dustrobe", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_dustrobe(int v, bool do_dec) +bool set_dustrobe(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2666,12 +2455,7 @@ bool set_dustrobe(int v, bool do_dec) } else if (!p_ptr->dustrobe) { -#ifdef JP -msg_print("ÂΤ¬¶À¤Î¥ª¡¼¥é¤Çʤ¤ï¤ì¤¿¡£"); -#else - msg_print("You were enveloped by mirror shards."); -#endif - + msg_print(_("体が鏡のオーラで覆われた。", "You were enveloped by mirror shards.")); notice = TRUE; } } @@ -2681,12 +2465,7 @@ msg_print(" { if (p_ptr->dustrobe) { -#ifdef JP -msg_print("¶À¤Î¥ª¡¼¥é¤¬¾Ã¤¨¤¿¡£"); -#else - msg_print("The mirror shards disappear."); -#endif - + msg_print(_("鏡のオーラが消えた。", "The mirror shards disappear.")); notice = TRUE; } } @@ -2713,11 +2492,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->tim_regen", notice observable changes +/*! + * @brief 一時的壁抜けの継続時間をセットする / Set "p_ptr->kabenuke", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_kabenuke(int v, bool do_dec) +bool set_kabenuke(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2735,12 +2516,7 @@ bool set_kabenuke(int v, bool do_dec) } else if (!p_ptr->kabenuke) { -#ifdef JP -msg_print("ÂΤ¬È¾Êª¼Á¤Î¾õÂ֤ˤʤä¿¡£"); -#else - msg_print("You became ethereal form."); -#endif - + msg_print(_("体が半物質の状態になった。", "You became ethereal form.")); notice = TRUE; } } @@ -2750,12 +2526,7 @@ msg_print(" { if (p_ptr->kabenuke) { -#ifdef JP -msg_print("ÂΤ¬Êª¼Á²½¤·¤¿¡£"); -#else - msg_print("You are no longer in an ethereal form."); -#endif - + msg_print(_("体が物質化した。", "You are no longer in an ethereal form.")); notice = TRUE; } } @@ -2772,6 +2543,9 @@ msg_print(" /* Disturb */ if (disturb_state) disturb(0, 0); + /* Recalculate bonuses */ + p_ptr->update |= (PU_BONUS); + /* Handle stuff */ handle_stuff(); @@ -2779,8 +2553,13 @@ msg_print(" return (TRUE); } - -bool set_tsuyoshi(int v, bool do_dec) +/*! + * @brief オクレ兄さんの継続時間をセットする / Set "p_ptr->tsuyoshi", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + */ +bool set_tsuyoshi(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -2798,12 +2577,7 @@ bool set_tsuyoshi(int v, bool do_dec) } else if (!p_ptr->tsuyoshi) { -#ifdef JP -msg_print("¡Ö¥ª¥¯¥ì·»¤µ¤ó¡ª¡×"); -#else - msg_print("Brother OKURE!"); -#endif - + msg_print(_("「オクレ兄さん!」", "Brother OKURE!")); notice = TRUE; chg_virtue(V_VITALITY, 2); } @@ -2814,11 +2588,7 @@ msg_print(" { if (p_ptr->tsuyoshi) { -#ifdef JP -msg_print("ÆùÂΤ¬µÞ®¤Ë¤·¤Ü¤ó¤Ç¤¤¤Ã¤¿¡£"); -#else - msg_print("Your body had quickly shriveled."); -#endif + msg_print(_("肉体が急速にしぼんでいった。", "Your body had quickly shriveled.")); (void)dec_stat(A_CON, 20, TRUE); (void)dec_stat(A_STR, 20, TRUE); @@ -2853,12 +2623,13 @@ msg_print(" return (TRUE); } - -/* - * Set a temporary elemental brand. Clear all other brands. Print status - * messages. -LM- +/*! + * @brief 一時的元素スレイの継続時間をセットする / Set a temporary elemental brand. Clear all other brands. Print status messages. -LM- + * @param attack_type スレイのタイプID + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_ele_attack(u32b attack_type, int v) +bool set_ele_attack(u32b attack_type, TIME_EFFECT v) { /* Hack -- Force good values */ v = (v > 10000) ? 10000 : (v < 0) ? 0 : v; @@ -2867,47 +2638,27 @@ bool set_ele_attack(u32b attack_type, int v) if ((p_ptr->special_attack & (ATTACK_ACID)) && (attack_type != ATTACK_ACID)) { p_ptr->special_attack &= ~(ATTACK_ACID); -#ifdef JP - msg_print("»À¤Ç¹¶·â¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your temporary acidic brand fades away."); -#endif + msg_print(_("酸で攻撃できなくなった。", "Your temporary acidic brand fades away.")); } if ((p_ptr->special_attack & (ATTACK_ELEC)) && (attack_type != ATTACK_ELEC)) { p_ptr->special_attack &= ~(ATTACK_ELEC); -#ifdef JP - msg_print("ÅÅ·â¤Ç¹¶·â¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your temporary electrical brand fades away."); -#endif + msg_print(_("電撃で攻撃できなくなった。", "Your temporary electrical brand fades away.")); } if ((p_ptr->special_attack & (ATTACK_FIRE)) && (attack_type != ATTACK_FIRE)) { p_ptr->special_attack &= ~(ATTACK_FIRE); -#ifdef JP - msg_print("²Ð±ê¤Ç¹¶·â¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your temporary fiery brand fades away."); -#endif + msg_print(_("火炎で攻撃できなくなった。", "Your temporary fiery brand fades away.")); } if ((p_ptr->special_attack & (ATTACK_COLD)) && (attack_type != ATTACK_COLD)) { p_ptr->special_attack &= ~(ATTACK_COLD); -#ifdef JP - msg_print("Î䵤¤Ç¹¶·â¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your temporary frost brand fades away."); -#endif + msg_print(_("冷気で攻撃できなくなった。", "Your temporary frost brand fades away.")); } if ((p_ptr->special_attack & (ATTACK_POIS)) && (attack_type != ATTACK_POIS)) { p_ptr->special_attack &= ~(ATTACK_POIS); -#ifdef JP - msg_print("ÆǤǹ¶·â¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("Your temporary poison brand fades away."); -#endif + msg_print(_("毒で攻撃できなくなった。", "Your temporary poison brand fades away.")); } if ((v) && (attack_type)) @@ -2920,13 +2671,13 @@ bool set_ele_attack(u32b attack_type, int v) /* Message. */ #ifdef JP - msg_format("%s¤Ç¹¶·â¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡ª", - ((attack_type == ATTACK_ACID) ? "»À" : - ((attack_type == ATTACK_ELEC) ? "ÅÅ·â" : - ((attack_type == ATTACK_FIRE) ? "²Ð±ê" : - ((attack_type == ATTACK_COLD) ? "Î䵤" : - ((attack_type == ATTACK_POIS) ? "ÆÇ" : - "(¤Ê¤·)")))))); + msg_format("%sで攻撃できるようになった!", + ((attack_type == ATTACK_ACID) ? "酸" : + ((attack_type == ATTACK_ELEC) ? "電撃" : + ((attack_type == ATTACK_FIRE) ? "火炎" : + ((attack_type == ATTACK_COLD) ? "冷気" : + ((attack_type == ATTACK_POIS) ? "毒" : + "(なし)")))))); #else msg_format("For a while, the blows you deal will %s", ((attack_type == ATTACK_ACID) ? "melt with acid!" : @@ -2952,12 +2703,13 @@ bool set_ele_attack(u32b attack_type, int v) return (TRUE); } - -/* - * Set a temporary elemental brand. Clear all other brands. Print status - * messages. -LM- +/*! + * @brief 一時的元素免疫の継続時間をセットする / Set a temporary elemental brand. Clear all other brands. Print status messages. -LM- + * @param immune_type 免疫のタイプID + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_ele_immune(u32b immune_type, int v) +bool set_ele_immune(u32b immune_type, TIME_EFFECT v) { /* Hack -- Force good values */ v = (v > 10000) ? 10000 : (v < 0) ? 0 : v; @@ -2966,47 +2718,27 @@ bool set_ele_immune(u32b immune_type, int v) if ((p_ptr->special_defense & (DEFENSE_ACID)) && (immune_type != DEFENSE_ACID)) { p_ptr->special_defense &= ~(DEFENSE_ACID); -#ifdef JP - msg_print("»À¤Î¹¶·â¤Ç½ý¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡£"); -#else - msg_print("You are no longer immune to acid."); -#endif + msg_print(_("酸の攻撃で傷つけられるようになった。。", "You are no longer immune to acid.")); } if ((p_ptr->special_defense & (DEFENSE_ELEC)) && (immune_type != DEFENSE_ELEC)) { p_ptr->special_defense &= ~(DEFENSE_ELEC); -#ifdef JP - msg_print("ÅÅ·â¤Î¹¶·â¤Ç½ý¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡£"); -#else - msg_print("You are no longer immune to electricity."); -#endif + msg_print(_("電撃の攻撃で傷つけられるようになった。。", "You are no longer immune to electricity.")); } if ((p_ptr->special_defense & (DEFENSE_FIRE)) && (immune_type != DEFENSE_FIRE)) { p_ptr->special_defense &= ~(DEFENSE_FIRE); -#ifdef JP - msg_print("²Ð±ê¤Î¹¶·â¤Ç½ý¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡£"); -#else - msg_print("You are no longer immune to fire."); -#endif + msg_print(_("火炎の攻撃で傷つけられるようになった。。", "You are no longer immune to fire.")); } if ((p_ptr->special_defense & (DEFENSE_COLD)) && (immune_type != DEFENSE_COLD)) { p_ptr->special_defense &= ~(DEFENSE_COLD); -#ifdef JP - msg_print("Î䵤¤Î¹¶·â¤Ç½ý¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡£"); -#else - msg_print("You are no longer immune to cold."); -#endif + msg_print(_("冷気の攻撃で傷つけられるようになった。。", "You are no longer immune to cold.")); } if ((p_ptr->special_defense & (DEFENSE_POIS)) && (immune_type != DEFENSE_POIS)) { p_ptr->special_defense &= ~(DEFENSE_POIS); -#ifdef JP - msg_print("ÆǤι¶·â¤Ç½ý¤Ä¤±¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£¡£"); -#else - msg_print("You are no longer immune to poison."); -#endif + msg_print(_("毒の攻撃で傷つけられるようになった。。", "You are no longer immune to poison.")); } if ((v) && (immune_type)) @@ -3019,13 +2751,13 @@ bool set_ele_immune(u32b immune_type, int v) /* Message. */ #ifdef JP - msg_format("%s¤Î¹¶·â¤ò¼õ¤±¤Ä¤±¤Ê¤¯¤Ê¤Ã¤¿¡ª", - ((immune_type == DEFENSE_ACID) ? "»À" : - ((immune_type == DEFENSE_ELEC) ? "ÅÅ·â" : - ((immune_type == DEFENSE_FIRE) ? "²Ð±ê" : - ((immune_type == DEFENSE_COLD) ? "Î䵤" : - ((immune_type == DEFENSE_POIS) ? "ÆÇ" : - "(¤Ê¤·)")))))); + msg_format("%sの攻撃を受けつけなくなった!", + ((immune_type == DEFENSE_ACID) ? "酸" : + ((immune_type == DEFENSE_ELEC) ? "電撃" : + ((immune_type == DEFENSE_FIRE) ? "火炎" : + ((immune_type == DEFENSE_COLD) ? "冷気" : + ((immune_type == DEFENSE_POIS) ? "毒" : + "(なし)")))))); #else msg_format("For a while, You are immune to %s", ((immune_type == DEFENSE_ACID) ? "acid!" : @@ -3051,11 +2783,13 @@ bool set_ele_immune(u32b immune_type, int v) return (TRUE); } - -/* - * Set "p_ptr->oppose_acid", notice observable changes +/*! + * @brief 一時的酸耐性の継続時間をセットする / Set "p_ptr->oppose_acid", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_oppose_acid(int v, bool do_dec) +bool set_oppose_acid(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -3073,12 +2807,7 @@ bool set_oppose_acid(int v, bool do_dec) } else if (!IS_OPPOSE_ACID()) { -#ifdef JP -msg_print("»À¤Ø¤ÎÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant to acid!"); -#endif - + msg_print(_("酸への耐性がついた気がする!", "You feel resistant to acid!")); notice = TRUE; } } @@ -3088,12 +2817,7 @@ msg_print(" { if (p_ptr->oppose_acid && !music_singing(MUSIC_RESIST) && !(p_ptr->special_defense & KATA_MUSOU)) { -#ifdef JP -msg_print("»À¤Ø¤ÎÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant to acid."); -#endif - + msg_print(_("酸への耐性が薄れた気がする。", "You feel less resistant to acid.")); notice = TRUE; } } @@ -3117,11 +2841,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->oppose_elec", notice observable changes +/*! + * @brief 一時的電撃耐性の継続時間をセットする / Set "p_ptr->oppose_elec", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_oppose_elec(int v, bool do_dec) +bool set_oppose_elec(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -3139,12 +2865,7 @@ bool set_oppose_elec(int v, bool do_dec) } else if (!IS_OPPOSE_ELEC()) { -#ifdef JP -msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant to electricity!"); -#endif - + msg_print(_("電撃への耐性がついた気がする!", "You feel resistant to electricity!")); notice = TRUE; } } @@ -3154,12 +2875,7 @@ msg_print(" { if (p_ptr->oppose_elec && !music_singing(MUSIC_RESIST) && !(p_ptr->special_defense & KATA_MUSOU)) { -#ifdef JP -msg_print("ÅÅ·â¤Ø¤ÎÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant to electricity."); -#endif - + msg_print(_("電撃への耐性が薄れた気がする。", "You feel less resistant to electricity.")); notice = TRUE; } } @@ -3183,11 +2899,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->oppose_fire", notice observable changes +/*! + * @brief 一時的火炎耐性の継続時間をセットする / Set "p_ptr->oppose_fire", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_oppose_fire(int v, bool do_dec) +bool set_oppose_fire(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -3206,12 +2924,7 @@ bool set_oppose_fire(int v, bool do_dec) } else if (!IS_OPPOSE_FIRE()) { -#ifdef JP -msg_print("²Ð¤Ø¤ÎÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant to fire!"); -#endif - + msg_print(_("火への耐性がついた気がする!", "You feel resistant to fire!")); notice = TRUE; } } @@ -3221,12 +2934,7 @@ msg_print(" { if (p_ptr->oppose_fire && !music_singing(MUSIC_RESIST) && !(p_ptr->special_defense & KATA_MUSOU)) { -#ifdef JP -msg_print("²Ð¤Ø¤ÎÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant to fire."); -#endif - + msg_print(_("火への耐性が薄れた気がする。", "You feel less resistant to fire.")); notice = TRUE; } } @@ -3250,11 +2958,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->oppose_cold", notice observable changes +/*! + * @brief 一時的冷気耐性の継続時間をセットする / Set "p_ptr->oppose_cold", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_oppose_cold(int v, bool do_dec) +bool set_oppose_cold(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -3272,12 +2982,7 @@ bool set_oppose_cold(int v, bool do_dec) } else if (!IS_OPPOSE_COLD()) { -#ifdef JP -msg_print("Î䵤¤Ø¤ÎÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant to cold!"); -#endif - + msg_print(_("冷気への耐性がついた気がする!", "You feel resistant to cold!")); notice = TRUE; } } @@ -3287,12 +2992,7 @@ msg_print(" { if (p_ptr->oppose_cold && !music_singing(MUSIC_RESIST) && !(p_ptr->special_defense & KATA_MUSOU)) { -#ifdef JP -msg_print("Î䵤¤Ø¤ÎÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant to cold."); -#endif - + msg_print(_("冷気への耐性が薄れた気がする。", "You feel less resistant to cold.")); notice = TRUE; } } @@ -3316,11 +3016,13 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->oppose_pois", notice observable changes +/*! + * @brief 一時的毒耐性の継続時間をセットする / Set "p_ptr->oppose_pois", notice observable changes + * @param v 継続時間 + * @param do_dec 現在の継続時間より長い値のみ上書きする + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 */ -bool set_oppose_pois(int v, bool do_dec) +bool set_oppose_pois(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -3339,12 +3041,7 @@ bool set_oppose_pois(int v, bool do_dec) } else if (!IS_OPPOSE_POIS()) { -#ifdef JP -msg_print("ÆǤؤÎÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant to poison!"); -#endif - + msg_print(_("毒への耐性がついた気がする!", "You feel resistant to poison!")); notice = TRUE; } } @@ -3354,12 +3051,7 @@ msg_print(" { if (p_ptr->oppose_pois && !music_singing(MUSIC_RESIST) && !(p_ptr->special_defense & KATA_MUSOU)) { -#ifdef JP -msg_print("ÆǤؤÎÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant to poison."); -#endif - + msg_print(_("毒への耐性が薄れた気がする。", "You feel less resistant to poison.")); notice = TRUE; } } @@ -3383,13 +3075,14 @@ msg_print(" return (TRUE); } - -/* - * Set "p_ptr->stun", notice observable changes - * +/*! + * @brief 朦朧の継続時間をセットする / Set "p_ptr->stun", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + * @details * Note the special code to only notice "range" changes. */ -bool set_stun(int v) +bool set_stun(TIME_EFFECT v) { int old_aux, new_aux; bool notice = FALSE; @@ -3457,43 +3150,18 @@ bool set_stun(int v) switch (new_aux) { /* Stun */ - case 1: -#ifdef JP -msg_print("°Õ¼±¤¬¤â¤¦¤í¤¦¤È¤·¤Æ¤­¤¿¡£"); -#else - msg_print("You have been stunned."); -#endif - - break; + case 1: msg_print(_("意識がもうろうとしてきた。", "You have been stunned.")); break; /* Heavy stun */ - case 2: -#ifdef JP -msg_print("°Õ¼±¤¬¤Ò¤É¤¯¤â¤¦¤í¤¦¤È¤·¤Æ¤­¤¿¡£"); -#else - msg_print("You have been heavily stunned."); -#endif - - break; + case 2: msg_print(_("意識がひどくもうろうとしてきた。", "You have been heavily stunned.")); break; /* Knocked out */ - case 3: -#ifdef JP -msg_print("Ƭ¤¬¥¯¥é¥¯¥é¤·¤Æ°Õ¼±¤¬±ó¤Î¤¤¤Æ¤­¤¿¡£"); -#else - msg_print("You have been knocked out."); -#endif - - break; + case 3: msg_print(_("頭がクラクラして意識が遠のいてきた。", "You have been knocked out.")); break; } if (randint1(1000) < v || one_in_(16)) { -#ifdef JP -msg_print("³ä¤ì¤ë¤è¤¦¤ÊƬÄˤ¬¤¹¤ë¡£"); -#else - msg_print("A vicious blow hits your head."); -#endif + msg_print(_("割れるような頭痛がする。", "A vicious blow hits your head.")); if (one_in_(3)) { @@ -3511,11 +3179,7 @@ msg_print(" } if (p_ptr->special_defense & KATA_MASK) { -#ifdef JP - msg_print("·¿¤¬Êø¤ì¤¿¡£"); -#else - msg_print("Your posture gets loose."); -#endif + msg_print(_("型が崩れた。", "Your posture gets loose.")); p_ptr->special_defense &= ~(KATA_MASK); p_ptr->update |= (PU_BONUS); p_ptr->update |= (PU_MONSTERS); @@ -3524,6 +3188,12 @@ msg_print(" p_ptr->action = ACTION_NONE; } + /* Sniper */ + if (p_ptr->concent) reset_concentration(TRUE); + + /* Hex */ + if (hex_spelling_any()) stop_hex_spell_all(); + /* Notice */ notice = TRUE; } @@ -3535,12 +3205,8 @@ msg_print(" switch (new_aux) { /* None */ - case 0: -#ifdef JP -msg_print("¤ä¤Ã¤ÈÛ¯Û°¾õÂÖ¤«¤é²óÉü¤·¤¿¡£"); -#else - msg_print("You are no longer stunned."); -#endif + case 0: + msg_print(_("やっと朦朧状態から回復した。", "You are no longer stunned.")); if (disturb_state) disturb(0, 0); break; @@ -3573,12 +3239,14 @@ msg_print(" } -/* - * Set "p_ptr->cut", notice observable changes - * +/*! + * @brief 出血の継続時間をセットする / Set "p_ptr->cut", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + * @details * Note the special code to only notice "range" changes. */ -bool set_cut(int v) +bool set_cut(TIME_EFFECT v) { int old_aux, new_aux; bool notice = FALSE; @@ -3698,74 +3366,25 @@ bool set_cut(int v) switch (new_aux) { /* Graze */ - case 1: -#ifdef JP -msg_print("¤«¤¹¤ê½ý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a graze."); -#endif - - break; + case 1: msg_print(_("かすり傷を負ってしまった。", "You have been given a graze.")); break; /* Light cut */ - case 2: -#ifdef JP -msg_print("·Ú¤¤½ý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a light cut."); -#endif - - break; + case 2: msg_print(_("軽い傷を負ってしまった。", "You have been given a light cut.")); break; /* Bad cut */ - case 3: -#ifdef JP -msg_print("¤Ò¤É¤¤½ý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a bad cut."); -#endif - - break; + case 3: msg_print(_("ひどい傷を負ってしまった。", "You have been given a bad cut.")); break; /* Nasty cut */ - case 4: -#ifdef JP -msg_print("ÂçÊѤʽý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a nasty cut."); -#endif - - break; + case 4: msg_print(_("大変な傷を負ってしまった。", "You have been given a nasty cut.")); break; /* Severe cut */ - case 5: -#ifdef JP -msg_print("½ÅÂç¤Ê½ý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a severe cut."); -#endif - - break; + case 5: msg_print(_("重大な傷を負ってしまった。", "You have been given a severe cut.")); break; /* Deep gash */ - case 6: -#ifdef JP -msg_print("¤Ò¤É¤¤¿¼¼ê¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a deep gash."); -#endif - - break; + case 6: msg_print(_("ひどい深手を負ってしまった。", "You have been given a deep gash.")); break; /* Mortal wound */ - case 7: -#ifdef JP -msg_print("Ã×̿Ū¤Ê½ý¤òÉé¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been given a mortal wound."); -#endif - - break; + case 7: msg_print(_("致命的な傷を負ってしまった。", "You have been given a mortal wound.")); break; } /* Notice */ @@ -3775,13 +3394,7 @@ msg_print(" { if (!p_ptr->sustain_chr) { -#ifdef JP -msg_print("¤Ò¤É¤¤½ýÀפ¬»Ä¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£"); -#else - msg_print("You have been horribly scarred."); -#endif - - + msg_print(_("ひどい傷跡が残ってしまった。", "You have been horribly scarred.")); do_dec_stat(A_CHR); } } @@ -3795,11 +3408,7 @@ msg_print(" { /* None */ case 0: -#ifdef JP -msg_format("¤ä¤Ã¤È%s¡£", p_ptr->prace == RACE_ANDROID ? "²ø²æ¤¬Ä¾¤Ã¤¿" : "½Ð·ì¤¬»ß¤Þ¤Ã¤¿"); -#else - msg_print("You are no longer bleeding."); -#endif + msg_format(_("やっと%s。", "You are no longer bleeding."), p_ptr->prace == RACE_ANDROID ? "怪我が直った" : "出血が止まった"); if (disturb_state) disturb(0, 0); break; @@ -3831,30 +3440,33 @@ msg_format(" return (TRUE); } - -/* - * Set "p_ptr->food", notice observable changes - * +/*! + * @brief 空腹状態をセットする / Set "p_ptr->food", notice observable changes + * @param v 継続時間 + * @return ステータスに影響を及ぼす変化があった場合TRUEを返す。 + * @details + * Set "", notice observable changes\n + *\n * The "p_ptr->food" variable can get as large as 20000, allowing the * addition of the most "filling" item, Elvish Waybread, which adds - * 7500 food units, without overflowing the 32767 maximum limit. - * + * 7500 food units, without overflowing the 32767 maximum limit.\n + *\n * Perhaps we should disturb the player with various messages, - * especially messages about hunger status changes. XXX XXX XXX - * + * especially messages about hunger status changes. XXX XXX XXX\n + *\n * Digestion of food is handled in "dungeon.c", in which, normally, * the player digests about 20 food units per 100 game turns, more * when "fast", more when "regenerating", less with "slow digestion", * but when the player is "gorged", he digests 100 food units per 10 - * game turns, or a full 1000 food units per 100 game turns. - * + * game turns, or a full 1000 food units per 100 game turns.\n + *\n * Note that the player's speed is reduced by 10 units while gorged, * so if the player eats a single food ration (5000 food units) when * full (15000 food units), he will be gorged for (5000/100)*10 = 500 * game turns, or 500/(100/5) = 25 player turns (if nothing else is - * affecting the player speed). + * affecting the player speed).\n */ -bool set_food(int v) +bool set_food(TIME_EFFECT v) { int old_aux, new_aux; @@ -3951,52 +3563,20 @@ bool set_food(int v) switch (new_aux) { /* Weak */ - case 1: -#ifdef JP -msg_print("¤Þ¤À¶õÊ¢¤ÇÅݤ줽¤¦¤À¡£"); -#else - msg_print("You are still weak."); -#endif - - break; + case 1: msg_print(_("まだ空腹で倒れそうだ。", "You are still weak.")); break; /* Hungry */ - case 2: -#ifdef JP -msg_print("¤Þ¤À¶õÊ¢¤À¡£"); -#else - msg_print("You are still hungry."); -#endif - - break; + case 2: msg_print(_("まだ空腹だ。", "You are still hungry.")); break; /* Normal */ - case 3: -#ifdef JP -msg_print("¶õÊ¢´¶¤¬¤ª¤µ¤Þ¤Ã¤¿¡£"); -#else - msg_print("You are no longer hungry."); -#endif - - break; + case 3: msg_print(_("空腹感がおさまった。", "You are no longer hungry.")); break; /* Full */ - case 4: -#ifdef JP -msg_print("ËþÊ¢¤À¡ª"); -#else - msg_print("You are full!"); -#endif - - break; + case 4: msg_print(_("満腹だ!", "You are full!")); break; /* Bloated */ case 5: -#ifdef JP -msg_print("¿©¤Ù²á¤®¤À¡ª"); -#else - msg_print("You have gorged yourself!"); -#endif + msg_print(_("食べ過ぎだ!", "You have gorged yourself!")); chg_virtue(V_HARMONY, -1); chg_virtue(V_PATIENCE, -1); chg_virtue(V_TEMPERANCE, -2); @@ -4015,61 +3595,23 @@ msg_print(" switch (new_aux) { /* Fainting / Starving */ - case 0: -#ifdef JP -msg_print("¤¢¤Þ¤ê¤Ë¤â¶õÊ¢¤Çµ¤¤ò¼º¤Ã¤Æ¤·¤Þ¤Ã¤¿¡ª"); -#else - msg_print("You are getting faint from hunger!"); -#endif - - break; + case 0: msg_print(_("あまりにも空腹で気を失ってしまった!", "You are getting faint from hunger!")); break; /* Weak */ - case 1: -#ifdef JP -msg_print("¤ªÊ¢¤¬¶õ¤¤¤ÆÅݤ줽¤¦¤À¡£"); -#else - msg_print("You are getting weak from hunger!"); -#endif - - break; + case 1: msg_print(_("お腹が空いて倒れそうだ。", "You are getting weak from hunger!")); break; /* Hungry */ - case 2: -#ifdef JP -msg_print("¤ªÊ¢¤¬¶õ¤¤¤Æ¤­¤¿¡£"); -#else - msg_print("You are getting hungry."); -#endif - - break; + case 2: msg_print(_("お腹が空いてきた。", "You are getting hungry.")); break; /* Normal */ - case 3: -#ifdef JP -msg_print("ËþÊ¢´¶¤¬¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You are no longer full."); -#endif - - break; + case 3: msg_print(_("満腹感がなくなった。", "You are no longer full.")); break; /* Full */ - case 4: -#ifdef JP -msg_print("¤ä¤Ã¤È¤ªÊ¢¤¬¤­¤Ä¤¯¤Ê¤¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You are no longer gorged."); -#endif - - break; + case 4: msg_print(_("やっとお腹がきつくなくなった。", "You are no longer gorged.")); break; } if (p_ptr->wild_mode && (new_aux < 2)) { - p_ptr->wilderness_x = px; - p_ptr->wilderness_y = py; - p_ptr->energy_need = 0; change_wild_mode(); } @@ -4099,15 +3641,17 @@ msg_print(" return (TRUE); } -/* - * Increases a stat by one randomized level -RAK- - * - * Note that this function (used by stat potions) now restores - * the stat BEFORE increasing it. +/*! + * @brief プレイヤーの基本能力値を増加させる / Increases a stat by one randomized level -RAK- + * @param stat 上昇させるステータスID + * @return 実際に上昇した場合TRUEを返す。 + * @details + * Note that this function (used by stat potions) now restores\n + * the stat BEFORE increasing it.\n */ bool inc_stat(int stat) { - int value, gain; + BASE_STATUS value, gain; /* Then augment the current/max stat */ value = p_ptr->stat_cur[stat]; @@ -4164,23 +3708,28 @@ bool inc_stat(int stat) return (FALSE); } - - -/* - * Decreases a stat by an amount indended to vary from 0 to 100 percent. - * - * Amount could be a little higher in extreme cases to mangle very high - * stats from massive assaults. -CWS - * - * Note that "permanent" means that the *given* amount is permanent, - * not that the new value becomes permanent. This may not work exactly - * as expected, due to "weirdness" in the algorithm, but in general, - * if your stat is already drained, the "max" value will not drop all - * the way down to the "cur" value. +/*! + * @brief プレイヤーの基本能力値を減少させる / Decreases a stat by an amount indended to vary from 0 to 100 percent. + * @param stat 減少させるステータスID + * @param amount 減少させる基本量 + * @param permanent TRUEならば現在の最大値を減少させる + * @return 実際に減少した場合TRUEを返す。 + * @details + *\n + * Amount could be a little higher in extreme cases to mangle very high\n + * stats from massive assaults. -CWS\n + *\n + * Note that "permanent" means that the *given* amount is permanent,\n + * not that the new value becomes permanent. This may not work exactly\n + * as expected, due to "weirdness" in the algorithm, but in general,\n + * if your stat is already drained, the "max" value will not drop all\n + * the way down to the "cur" value.\n */ bool dec_stat(int stat, int amount, int permanent) { - int cur, max, loss, same, res = FALSE; + BASE_STATUS cur, max; + int loss, same; + bool res = FALSE; /* Acquire current value */ @@ -4292,8 +3841,10 @@ bool dec_stat(int stat, int amount, int permanent) } -/* - * Restore a stat. Return TRUE only if this actually makes a difference. +/*! + * @brief プレイヤーの基本能力値を回復させる / Restore a stat. Return TRUE only if this actually makes a difference. + * @param stat 回復ステータスID + * @return 実際に回復した場合TRUEを返す。 */ bool res_stat(int stat) { @@ -4325,7 +3876,10 @@ bool hp_player(int num) { int vir; vir = virtue_number(V_VITALITY); - if (vir) + + if(num <= 0) return (FALSE); + + if(vir) { num = num * (p_ptr->virtues[vir - 1] + 1250) / 1250; } @@ -4353,45 +3907,25 @@ bool hp_player(int num) /* Heal 0-4 */ if (num < 5) { -#ifdef JP -msg_print("¾¯¤·µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You feel a little better."); -#endif - + msg_print(_("少し気分が良くなった。", "You feel a little better.")); } /* Heal 5-14 */ else if (num < 15) { -#ifdef JP -msg_print("µ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You feel better."); -#endif - + msg_print(_("気分が良くなった。", "You feel better.")); } /* Heal 15-34 */ else if (num < 35) { -#ifdef JP -msg_print("¤È¤Æ¤âµ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You feel much better."); -#endif - + msg_print(_("とても気分が良くなった。", "You feel much better.")); } /* Heal 35+ */ else { -#ifdef JP -msg_print("¤Ò¤¸¤ç¤¦¤Ëµ¤Ê¬¤¬Îɤ¯¤Ê¤Ã¤¿¡£"); -#else - msg_print("You feel very good."); -#endif - + msg_print(_("ひじょうに気分が良くなった。", "You feel very good.")); } /* Notice */ @@ -4408,42 +3942,12 @@ msg_print(" */ static cptr desc_stat_pos[] = { -#ifdef JP -"¶¯¤¯", -#else - "strong", -#endif - -#ifdef JP -"ÃÎŪ¤Ë", -#else - "smart", -#endif - -#ifdef JP -"¸­¤¯", -#else - "wise", -#endif - -#ifdef JP -"´ïÍѤË", -#else - "dextrous", -#endif - -#ifdef JP -"·ò¹¯¤Ë", -#else - "healthy", -#endif - -#ifdef JP -"Èþ¤·¤¯" -#else - "cute" -#endif - + _("強く", "strong"), + _("知的に", "smart"), + _("賢く", "wise"), + _("器用に", "dextrous"), + _("健康に", "healthy"), + _("美しく", "cute") }; @@ -4452,22 +3956,12 @@ static cptr desc_stat_pos[] = */ static cptr desc_stat_neg[] = { -#ifdef JP -"¼å¤¯", -"̵ÃΤË", -"¶ò¤«¤Ë", -"ÉÔ´ïÍѤË", -"ÉÔ·ò¹¯¤Ë", -"½¹¤¯" -#else - "weak", - "stupid", - "naive", - "clumsy", - "sickly", - "ugly" -#endif - + _("弱く", "weak"), + _("無知に", "stupid"), + _("愚かに", "naive"), + _("不器用に", "clumsy"), + _("不健康に", "sickly"), + _("醜く", "ugly") }; @@ -4493,13 +3987,8 @@ bool do_dec_stat(int stat) if (sust && (!ironman_nightmare || randint0(13))) { /* Message */ -#ifdef JP -msg_format("%s¤Ê¤Ã¤¿µ¤¤¬¤·¤¿¤¬¡¢¤¹¤°¤Ë¸µ¤ËÌá¤Ã¤¿¡£", -#else - msg_format("You feel %s for a moment, but the feeling passes.", -#endif - - desc_stat_neg[stat]); + msg_format(_("%sなった気がしたが、すぐに元に戻った。", "You feel %s for a moment, but the feeling passes."), + desc_stat_neg[stat]); /* Notice effect */ return (TRUE); @@ -4509,12 +3998,7 @@ msg_format("%s if (dec_stat(stat, 10, (ironman_nightmare && !randint0(13)))) { /* Message */ -#ifdef JP -msg_format("¤Ò¤É¤¯%s¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡£", desc_stat_neg[stat]); -#else - msg_format("You feel very %s.", desc_stat_neg[stat]); -#endif - + msg_format(_("ひどく%sなった気がする。", "You feel very %s."), desc_stat_neg[stat]); /* Notice effect */ return (TRUE); @@ -4534,12 +4018,7 @@ bool do_res_stat(int stat) if (res_stat(stat)) { /* Message */ -#ifdef JP -msg_format("¸µÄ̤ê¤Ë%s¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡£", desc_stat_pos[stat]); -#else - msg_format("You feel less %s.", desc_stat_neg[stat]); -#endif - + msg_format(_("元通りに%sなった気がする。", "You feel less %s."), desc_stat_pos[stat]); /* Notice */ return (TRUE); @@ -4577,12 +4056,7 @@ bool do_inc_stat(int stat) chg_virtue(V_VITALITY, 1); /* Message */ -#ifdef JP -msg_format("¥ï¡¼¥ª¡ª¤È¤Æ¤â%s¤Ê¤Ã¤¿¡ª", desc_stat_pos[stat]); -#else - msg_format("Wow! You feel very %s!", desc_stat_pos[stat]); -#endif - + msg_format(_("ワーオ!とても%sなった!", "Wow! You feel very %s!"), desc_stat_pos[stat]); /* Notice */ return (TRUE); @@ -4592,12 +4066,7 @@ msg_format(" if (res) { /* Message */ -#ifdef JP -msg_format("¸µÄ̤ê¤Ë%s¤Ê¤Ã¤¿µ¤¤¬¤¹¤ë¡£", desc_stat_pos[stat]); -#else - msg_format("You feel less %s.", desc_stat_neg[stat]); -#endif - + msg_format(_("元通りに%sなった気がする。", "You feel less %s."), desc_stat_pos[stat]); /* Notice */ return (TRUE); @@ -4617,12 +4086,7 @@ bool restore_level(void) if (p_ptr->exp < p_ptr->max_exp) { /* Message */ -#ifdef JP -msg_print("À¸Ì¿ÎϤ¬Ìá¤Ã¤Æ¤­¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel your life energies returning."); -#endif - + msg_print(_("経験値が戻ってきた気がする。", "You feel your experience returning.")); /* Restore the experience */ p_ptr->exp = p_ptr->max_exp; @@ -4638,7 +4102,6 @@ msg_print(" return (FALSE); } - /* * Forget everything */ @@ -4700,23 +4163,12 @@ void do_poly_wounds(void) if (!(wounds || hit_p || Nasty_effect)) return; -#ifdef JP -msg_print("½ý¤¬¤è¤ê·Ú¤¤¤â¤Î¤ËÊѲ½¤·¤¿¡£"); -#else - msg_print("Your wounds are polymorphed into less serious ones."); -#endif - + msg_print(_("傷がより軽いものに変化した。", "Your wounds are polymorphed into less serious ones.")); hp_player(change); if (Nasty_effect) { -#ifdef JP -msg_print("¿·¤¿¤Ê½ý¤¬¤Ç¤­¤¿¡ª"); -take_hit(DAMAGE_LOSELIFE, change / 2, "ÊѲ½¤·¤¿½ý", -1); -#else - msg_print("A new wound was created!"); - take_hit(DAMAGE_LOSELIFE, change / 2, "a polymorphed wound", -1); -#endif - + msg_print(_("新たな傷ができた!", "A new wound was created!")); + take_hit(DAMAGE_LOSELIFE, change / 2, _("変化した傷", "a polymorphed wound"), -1); set_cut(change); } else @@ -4726,22 +4178,82 @@ take_hit(DAMAGE_LOSELIFE, change / 2, " } -void do_poly_self(void) +/* + * Change player race + */ +void change_race(CHARACTER_IDX new_race, cptr effect_msg) { - int power = p_ptr->lev; + cptr title = race_info[new_race].title; + int old_race = p_ptr->prace; #ifdef JP -msg_print("¤¢¤Ê¤¿¤ÏÊѲ½¤Îˬ¤ì¤ò´¶¤¸¤¿..."); + msg_format("あなたは%s%sに変化した!", effect_msg, title); #else - msg_print("You feel a change coming over you..."); + msg_format("You turn into %s %s%s!", (!effect_msg[0] && is_a_vowel(title[0]) ? "an" : "a"), effect_msg, title); #endif + chg_virtue(V_CHANCE, 2); + + if (p_ptr->prace < 32) + { + p_ptr->old_race1 |= 1L << p_ptr->prace; + } + else + { + p_ptr->old_race2 |= 1L << (p_ptr->prace-32); + } + p_ptr->prace = new_race; + rp_ptr = &race_info[p_ptr->prace]; + + /* Experience factor */ + p_ptr->expfact = rp_ptr->r_exp + cp_ptr->c_exp; + + /* + * The speed bonus of Klackons and Sprites are disabled + * and the experience penalty is decreased. + */ + if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER) || (p_ptr->pclass == CLASS_NINJA)) && ((p_ptr->prace == RACE_KLACKON) || (p_ptr->prace == RACE_SPRITE))) + p_ptr->expfact -= 15; + + /* Get character's height and weight */ + get_height_weight(); + + /* Hitdice */ + if (p_ptr->pclass == CLASS_SORCERER) + p_ptr->hitdie = rp_ptr->r_mhp/2 + cp_ptr->c_mhp + ap_ptr->a_mhp; + else + p_ptr->hitdie = rp_ptr->r_mhp + cp_ptr->c_mhp + ap_ptr->a_mhp; + + do_cmd_rerate(FALSE); + + /* The experience level may be modified */ + check_experience(); + + p_ptr->redraw |= (PR_BASIC); + + p_ptr->update |= (PU_BONUS); + + handle_stuff(); + + /* Load an autopick preference file */ + if (old_race != p_ptr->prace) autopick_load_pref(FALSE); + + /* Player's graphic tile may change */ + lite_spot(p_ptr->y, p_ptr->x); +} + + +void do_poly_self(void) +{ + int power = p_ptr->lev; + + msg_print(_("あなたは変化の訪れを感じた...", "You feel a change coming over you...")); chg_virtue(V_CHANCE, 1); if ((power > randint0(20)) && one_in_(3) && (p_ptr->prace != RACE_ANDROID)) { char effect_msg[80] = ""; - int new_race, expfact, goalexpfact, h_percent; + CHARACTER_IDX new_race; /* Some form of racial polymorph... */ power -= 10; @@ -4755,23 +4267,13 @@ msg_print(" { p_ptr->psex = SEX_FEMALE; sp_ptr = &sex_info[p_ptr->psex]; -#ifdef JP -sprintf(effect_msg, "½÷À­¤Î"); -#else - sprintf(effect_msg, "female "); -#endif - + sprintf(effect_msg, _("女性の", "female ")); } else { p_ptr->psex = SEX_MALE; sp_ptr = &sex_info[p_ptr->psex]; -#ifdef JP -sprintf(effect_msg, "ÃËÀ­¤Î"); -#else - sprintf(effect_msg, "male "); -#endif - + sprintf(effect_msg, _("男性の", "male ")); } } @@ -4798,23 +4300,12 @@ sprintf(effect_msg, " if (effect_msg[0]) { char tmp_msg[10]; -#ifdef JP - sprintf(tmp_msg,"%s",effect_msg); - sprintf(effect_msg,"´ñ·Á¤Î%s",tmp_msg); -#else - sprintf(tmp_msg,"%s ",effect_msg); - sprintf(effect_msg,"deformed %s ",tmp_msg); -#endif - + sprintf(tmp_msg,_("%s", "%s "),effect_msg); + sprintf(effect_msg,_("奇形の%s", "deformed %s "),tmp_msg); } else { -#ifdef JP - sprintf(effect_msg,"´ñ·Á¤Î"); -#else - sprintf(effect_msg,"deformed "); -#endif - + sprintf(effect_msg,_("奇形の", "deformed ")); } } @@ -4824,102 +4315,16 @@ sprintf(effect_msg, " power -= 10; if (!lose_mutation(0)) -#ifdef JP -msg_print("´ñ̯¤Ê¤¯¤é¤¤ÉáÄ̤ˤʤ俵¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel oddly normal."); -#endif - + msg_print(_("奇妙なくらい普通になった気がする。", "You feel oddly normal.")); } - /* - * Restrict the race choices by exp penalty so - * weak polymorph always means weak race - */ - if (power < 0) - goalexpfact = 100; - else - goalexpfact = 100 + 3 * randint0(power); - do { - new_race = randint0(MAX_RACES); - expfact = race_info[new_race].r_exp; - } - while (((new_race == p_ptr->prace) && (expfact > goalexpfact)) || (new_race == RACE_ANDROID)); - -#ifdef JP - msg_format("¤¢¤Ê¤¿¤Ï%s%s¤ËÊѲ½¤·¤¿¡ª", effect_msg, - race_info[new_race].title); -#else - if (effect_msg[0]) - { - msg_format("You turn into a%s %s!", - ((new_race == RACE_AMBERITE || new_race == RACE_ELF - || new_race == RACE_IMP) ? "n" : ""), - race_info[new_race].title); - } - else - { - msg_format("You turn into a %s%s!", effect_msg, - race_info[new_race].title); + new_race = (CHARACTER_IDX)randint0(MAX_RACES); } -#endif + while ((new_race == p_ptr->prace) || (new_race == RACE_ANDROID)); - chg_virtue(V_CHANCE, 2); - - if (p_ptr->prace < 32) - { - p_ptr->old_race1 |= 1L << p_ptr->prace; - } - else - { - p_ptr->old_race2 = 1L << (p_ptr->prace-32); - } - p_ptr->prace = new_race; - rp_ptr = &race_info[p_ptr->prace]; - - /* Experience factor */ - p_ptr->expfact = rp_ptr->r_exp + cp_ptr->c_exp; - - if (((p_ptr->pclass == CLASS_MONK) || (p_ptr->pclass == CLASS_FORCETRAINER) || (p_ptr->pclass == CLASS_NINJA)) && ((p_ptr->prace == RACE_KLACKON) || (p_ptr->prace == RACE_SPRITE))) - p_ptr->expfact -= 15; - - - /* Calculate the height/weight for males */ - if (p_ptr->psex == SEX_MALE) - { - p_ptr->ht = randnor(rp_ptr->m_b_ht, rp_ptr->m_m_ht); - h_percent = (int)(p_ptr->ht) * 100 / (int)(rp_ptr->m_b_ht); - p_ptr->wt = randnor((int)(rp_ptr->m_b_wt) * h_percent /100 - , (int)(rp_ptr->m_m_wt) * h_percent / 300 ); - } - - /* Calculate the height/weight for females */ - else if (p_ptr->psex == SEX_FEMALE) - { - p_ptr->ht = randnor(rp_ptr->f_b_ht, rp_ptr->f_m_ht); - h_percent = (int)(p_ptr->ht) * 100 / (int)(rp_ptr->f_b_ht); - p_ptr->wt = randnor((int)(rp_ptr->f_b_wt) * h_percent /100 - , (int)(rp_ptr->f_m_wt) * h_percent / 300 ); - } - - check_experience(); - - /* Hitdice */ - if (p_ptr->pclass == CLASS_SORCERER) - p_ptr->hitdie = rp_ptr->r_mhp/2 + cp_ptr->c_mhp + ap_ptr->a_mhp; - else - p_ptr->hitdie = rp_ptr->r_mhp + cp_ptr->c_mhp + ap_ptr->a_mhp; - - do_cmd_rerate(FALSE); - - p_ptr->redraw |= (PR_BASIC); - - p_ptr->update |= (PU_BONUS); - - handle_stuff(); - lite_spot(py, px); + change_race(new_race, effect_msg); } if ((power > randint0(30)) && one_in_(6)) @@ -4928,12 +4333,7 @@ msg_print(" /* Abomination! */ power -= 20; - -#ifdef JP -msg_format("%s¤Î¹½À®¤¬ÊѲ½¤·¤¿¡ª", p_ptr->prace == RACE_ANDROID ? "µ¡³£" : "Æâ¡"); -#else - msg_print("Your internal organs are rearranged!"); -#endif + msg_format(_("%sの構成が変化した!", "Your internal organs are rearranged!"), p_ptr->prace == RACE_ANDROID ? "機械" : "内臓"); while (tmp < 6) { @@ -4942,13 +4342,8 @@ msg_format("%s } if (one_in_(6)) { -#ifdef JP -msg_print("¸½ºß»Ñ¤ÇÀ¸¤­¤Æ¤¤¤¯¤Î¤Ïº¤Æñ¤Ê¤è¤¦¤À¡ª"); -take_hit(DAMAGE_LOSELIFE, damroll(randint1(10), p_ptr->lev), "Ã×̿Ū¤ÊÆÍÁ³ÊÑ°Û", -1); -#else - msg_print("You find living difficult in your present form!"); - take_hit(DAMAGE_LOSELIFE, damroll(randint1(10), p_ptr->lev), "a lethal mutation", -1); -#endif + msg_print(_("現在の姿で生きていくのは困難なようだ!", "You find living difficult in your present form!")); + take_hit(DAMAGE_LOSELIFE, damroll(randint1(10), p_ptr->lev), _("致命的な突然変異", "a lethal mutation"), -1); power -= 10; } @@ -4992,12 +4387,13 @@ take_hit(DAMAGE_LOSELIFE, damroll(randint1(10), p_ptr->lev), " * the game when he dies, since the "You die." message is shown before * setting the player to "dead". */ -int take_hit(int damage_type, int damage, cptr hit_from, int monspell) + +int take_hit(int damage_type, HIT_POINT damage, cptr hit_from, int monspell) { int old_chp = p_ptr->chp; char death_message[1024]; - char tmp[80]; + char tmp[1024]; int warning = (p_ptr->mhp * hitpoint_warn / 10); @@ -5012,7 +4408,7 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) if (damage_type != DAMAGE_USELIFE) { /* Disturb */ - disturb(1, 0); + disturb(1, 1); if (auto_more) { now_damaged = TRUE; @@ -5028,19 +4424,11 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) { if (damage_type == DAMAGE_FORCE) { -#ifdef JP - msg_print("¥Ð¥ê¥¢¤¬ÀÚ¤êÎö¤«¤ì¤¿¡ª"); -#else - msg_print("The attack cuts your shield of invulnerability open!"); -#endif + msg_print(_("バリアが切り裂かれた!", "The attack cuts your shield of invulnerability open!")); } else if (one_in_(PENETRATE_INVULNERABILITY)) { -#ifdef JP - msg_print("̵Ũ¤Î¥Ð¥ê¥¢¤òÇˤäƹ¶·â¤µ¤ì¤¿¡ª"); -#else - msg_print("The attack penetrates your shield of invulnerability!"); -#endif + msg_print(_("無敵のバリアを破って攻撃された!", "The attack penetrates your shield of invulnerability!")); } else { @@ -5048,24 +4436,15 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) } } - /* Multishadow effects is determined by turn */ - if (p_ptr->multishadow && (turn & 1)) + if (CHECK_MULTISHADOW()) { if (damage_type == DAMAGE_FORCE) { -#ifdef JP - msg_print("¸¸±Æ¤â¤í¤È¤âÂΤ¬ÀÚ¤êÎö¤«¤ì¤¿¡ª"); -#else - msg_print("The attack hits Shadow together with you!"); -#endif + msg_print(_("幻影もろとも体が切り裂かれた!", "The attack hits Shadow together with you!")); } else if (damage_type == DAMAGE_ATTACK) { -#ifdef JP - msg_print("¹¶·â¤Ï¸¸±Æ¤ËÌ¿Ã椷¡¢¤¢¤Ê¤¿¤Ë¤ÏÆϤ«¤Ê¤«¤Ã¤¿¡£"); -#else - msg_print("The attack hits Shadow, you are unharmed!"); -#endif + msg_print(_("攻撃は幻影に命中し、あなたには届かなかった。", "The attack hits Shadow, you are unharmed!")); return 0; } } @@ -5074,11 +4453,7 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) { if (damage_type == DAMAGE_FORCE) { -#ifdef JP - msg_print("Ⱦʪ¼Á¤ÎÂΤ¬ÀÚ¤êÎö¤«¤ì¤¿¡ª"); -#else - msg_print("The attack cuts through your ethereal body!"); -#endif + msg_print(_("半物質の体が切り裂かれた!", "The attack cuts through your ethereal body!")); } else { @@ -5108,8 +4483,6 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) /* Window stuff */ p_ptr->window |= (PW_PLAYER); - handle_stuff(); - if (damage_type != DAMAGE_GENO && p_ptr->chp == 0) { chg_virtue(V_SACRIFICE, 1); @@ -5119,12 +4492,11 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) /* Dead player */ if (p_ptr->chp < 0) { - char buf[10]; bool android = (p_ptr->prace == RACE_ANDROID ? TRUE : FALSE); -#ifdef JP /* »à¤ó¤À»þ¤Ë¶¯À©½ªÎ»¤·¤Æ»à¤ò²óÈò¤Ç¤­¤Ê¤¯¤·¤Æ¤ß¤¿ by Habu */ +#ifdef JP /* 死んだ時に強制終了して死を回避できなくしてみた by Habu */ if (!cheat_save) - if(!save_player()) msg_print("¥»¡¼¥Ö¼ºÇÔ¡ª"); + if(!save_player()) msg_print("セーブ失敗!"); #endif /* Sound */ @@ -5132,6 +4504,8 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) chg_virtue(V_SACRIFICE, 10); + handle_stuff(); + /* Leaving */ p_ptr->leaving = TRUE; @@ -5141,17 +4515,17 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) if (p_ptr->inside_arena) { cptr m_name = r_name+r_info[arena_info[p_ptr->arena_number].r_idx].name; -#ifdef JP - msg_format("¤¢¤Ê¤¿¤Ï%s¤ÎÁ°¤ËÇÔ¤ìµî¤Ã¤¿¡£", m_name); -#else - msg_format("You are beaten by %s.", m_name); -#endif + msg_format(_("あなたは%sの前に敗れ去った。", "You are beaten by %s."), m_name); msg_print(NULL); if (record_arena) do_cmd_write_nikki(NIKKI_ARENA, -1 - p_ptr->arena_number, m_name); } else { int q_idx = quest_number(dun_level); + bool seppuku = streq(hit_from, "Seppuku"); + bool winning_seppuku = p_ptr->total_winner && seppuku; + + play_music(TERM_XTRA_MUSIC_BASIC, MUSIC_BASIC_GAMEOVER); #ifdef WORLD_SCORE /* Make screen dump */ @@ -5159,72 +4533,70 @@ int take_hit(int damage_type, int damage, cptr hit_from, int monspell) #endif /* Note cause of death */ + if (seppuku) + { + strcpy(p_ptr->died_from, hit_from); +#ifdef JP + if (!winning_seppuku) strcpy(p_ptr->died_from, "切腹"); +#endif + } + else + { + char dummy[1024]; #ifdef JP - sprintf(p_ptr->died_from, "%s%s%s", !p_ptr->paralyzed ? "" : p_ptr->free_act ? "ĦÁü¾õÂÖ¤Ç":"Ëãáã¾õÂÖ¤Ç", p_ptr->image ? "¸¸³Ð¤ËÏĤó¤À" : "", hit_from); + sprintf(dummy, "%s%s%s", !p_ptr->paralyzed ? "" : p_ptr->free_act ? "彫像状態で" : "麻痺状態で", p_ptr->image ? "幻覚に歪んだ" : "", hit_from); #else - sprintf(p_ptr->died_from, "%s%s", hit_from, !p_ptr->paralyzed ? "" : " while helpless"); + sprintf(dummy, "%s%s", hit_from, !p_ptr->paralyzed ? "" : " while helpless"); #endif + my_strcpy(p_ptr->died_from, dummy, sizeof p_ptr->died_from); + } /* No longer a winner */ p_ptr->total_winner = FALSE; - if (p_ptr->inside_arena) -#ifdef JP - strcpy(buf,"¥¢¥ê¡¼¥Ê"); -#else - strcpy(buf,"in the Arena"); -#endif - else if (!dun_level) -#ifdef JP - strcpy(buf,"ÃϾå"); -#else - strcpy(buf,"on the surface"); -#endif - else if (q_idx && (is_fixed_quest_idx(q_idx) && - !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) -#ifdef JP - strcpy(buf,"¥¯¥¨¥¹¥È"); -#else - strcpy(buf,"in a quest"); -#endif + if (winning_seppuku) + { + do_cmd_write_nikki(NIKKI_BUNSHOU, 0, _("勝利の後切腹した。", "did Seppuku after the winning.")); + } else -#ifdef JP - sprintf(buf,"%d³¬", dun_level); -#else - sprintf(buf,"level %d", dun_level); -#endif -#ifdef JP - sprintf(tmp,"%s¤Ç%s¤Ë»¦¤µ¤ì¤¿¡£",buf, p_ptr->died_from); -#else - sprintf(tmp,"killed by %s %s.", p_ptr->died_from, buf); -#endif - do_cmd_write_nikki(NIKKI_BUNSHOU, 0, tmp); -#ifdef JP - do_cmd_write_nikki(NIKKI_GAMESTART, 1, "-------- ¥²¡¼¥à¥ª¡¼¥Ð¡¼ --------"); -#else - do_cmd_write_nikki(NIKKI_GAMESTART, 1, "-------- Game Over --------"); -#endif + { + char buf[20]; + + if (p_ptr->inside_arena) + strcpy(buf,_("アリーナ", "in the Arena")); + else if (!dun_level) + strcpy(buf,_("地上", "on the surface")); + else if (q_idx && (is_fixed_quest_idx(q_idx) && + !((q_idx == QUEST_OBERON) || (q_idx == QUEST_SERPENT)))) + strcpy(buf,_("クエスト", "in a quest")); + else + sprintf(buf,_("%d階", "level %d"), (int)dun_level); + + sprintf(tmp, _("%sで%sに殺された。", "killed by %s %s."), buf, p_ptr->died_from); + do_cmd_write_nikki(NIKKI_BUNSHOU, 0, tmp); + } + + do_cmd_write_nikki(NIKKI_GAMESTART, 1, _("-------- ゲームオーバー --------", "-------- Game Over --------")); do_cmd_write_nikki(NIKKI_BUNSHOU, 1, "\n\n\n\n"); flush(); -#ifdef JP -if (get_check_strict("²èÌ̤òÊݸ¤·¤Þ¤¹¤«¡©", CHECK_NO_HISTORY)) -#else - if (get_check_strict("Dump the screen? ", CHECK_NO_HISTORY)) -#endif - + if (get_check_strict(_("画面を保存しますか?", "Dump the screen? "), CHECK_NO_HISTORY)) { do_cmd_save_screen(); } flush(); + /* Initialize "last message" buffer */ + if (p_ptr->last_message) string_free(p_ptr->last_message); + p_ptr->last_message = NULL; + /* Hack -- Note death */ if (!last_words) { #ifdef JP -msg_format("¤¢¤Ê¤¿¤Ï%s¤Þ¤·¤¿¡£", android ? "²õ¤ì" : "»à¤Ë"); + msg_format("あなたは%sました。", android ? "壊れ" : "死に"); #else msg_print(android ? "You are broken." : "You die."); #endif @@ -5233,92 +4605,90 @@ msg_format(" } else { - if (streq(p_ptr->died_from, "Seppuku")) + if (winning_seppuku) { -#ifdef JP - get_rnd_line("seppuku_j.txt", 0, death_message); -#else - get_rnd_line("seppuku.txt", 0, death_message); -#endif + get_rnd_line(_("seppuku_j.txt", "seppuku.txt"), 0, death_message); } else { -#ifdef JP -get_rnd_line("death_j.txt", 0, death_message); -#else - get_rnd_line("death.txt", 0, death_message); -#endif + get_rnd_line(_("death_j.txt", "death.txt"), 0, death_message); } + + do + { #ifdef JP - while (!get_string(streq(p_ptr->died_from, "Seppuku") ? "¼­À¤¤Î¶ç: " : "ÃÇËöËâ¤Î¶«¤Ó: ", death_message, 1024)) ; + while (!get_string(winning_seppuku ? "辞世の句: " : "断末魔の叫び: ", death_message, 1024)) ; #else - while (!get_string("Last word: ", death_message, 1024)) ; + while (!get_string("Last word: ", death_message, 1024)) ; #endif + } + while (winning_seppuku && !get_check_strict(_("よろしいですか?", "Are you sure? "), CHECK_NO_HISTORY)); + if (death_message[0] == '\0') { #ifdef JP - strcpy(death_message, format("¤¢¤Ê¤¿¤Ï%s¤Þ¤·¤¿¡£", android ? "²õ¤ì" : "»à¤Ë")); + strcpy(death_message, format("あなたは%sました。", android ? "壊れ" : "死に")); #else strcpy(death_message, android ? "You are broken." : "You die."); #endif } - if (streq(p_ptr->died_from, "Seppuku")) - { + else p_ptr->last_message = string_make(death_message); + #ifdef JP - int i, len; - int w = Term->wid; - int h = Term->hgt; - int msg_pos_x[9] = { 5, 7, 9, 12, 14, 17, 19, 21, 23}; - int msg_pos_y[9] = { 3, 4, 5, 4, 5, 4, 5, 6, 4}; - cptr str; - char* str2; - - Term_clear(); - - /* ºù»¶¤ë */ - for (i = 0; i < 40; i++) - Term_putstr(randint0(w / 2) * 2, randint0(h), 2, TERM_VIOLET, "¦Ô"); - - str = death_message; - if (strncmp(str, "¡Ö", 2) == 0) str += 2; - - str2 = strstr_j(str, "¡×"); - if (str2 != NULL) *str2 = '\0'; - - i = 0; - while (i < 9) - { - str2 = strstr_j(str, " "); - if (str2 == NULL) len = strlen(str); - else len = str2 - str; - - if (len != 0) - { - Term_putstr_v(w * 3 / 4 - 2 - msg_pos_x[i] * 2, msg_pos_y[i], len, - TERM_WHITE, str); - if (str2 == NULL) break; - i++; - } - str = str2 + 1; - if (*str == 0) break; - } - - /* Hide cursor */ - Term_putstr(w-1, h-1, 1, TERM_WHITE, " "); - - flush(); + if (winning_seppuku) + { + int i, len; + int w = Term->wid; + int h = Term->hgt; + int msg_pos_x[9] = { 5, 7, 9, 12, 14, 17, 19, 21, 23}; + int msg_pos_y[9] = { 3, 4, 5, 4, 5, 4, 5, 6, 4}; + cptr str; + char* str2; + + Term_clear(); + + /* 桜散る */ + for (i = 0; i < 40; i++) + Term_putstr(randint0(w / 2) * 2, randint0(h), 2, TERM_VIOLET, "υ"); + + str = death_message; + if (strncmp(str, "「", 2) == 0) str += 2; + + str2 = my_strstr(str, "」"); + if (str2 != NULL) *str2 = '\0'; + + i = 0; + while (i < 9) + { + str2 = my_strstr(str, " "); + if (str2 == NULL) len = strlen(str); + else len = str2 - str; + + if (len != 0) + { + Term_putstr_v(w * 3 / 4 - 2 - msg_pos_x[i] * 2, msg_pos_y[i], len, + TERM_WHITE, str); + if (str2 == NULL) break; + i++; + } + str = str2 + 1; + if (*str == 0) break; + } + + /* Hide cursor */ + Term_putstr(w-1, h-1, 1, TERM_WHITE, " "); + + flush(); #ifdef WORLD_SCORE - /* Make screen dump */ - screen_dump = make_screen_dump(); + /* Make screen dump */ + screen_dump = make_screen_dump(); #endif - /* Wait a key press */ - (void)inkey(); -#else - msg_print(death_message); -#endif + /* Wait a key press */ + (void)inkey(); } else +#endif msg_print(death_message); } } @@ -5327,28 +4697,22 @@ get_rnd_line("death_j.txt", 0, death_message); return damage; } + handle_stuff(); + /* Hitpoint warning */ if (p_ptr->chp < warning) { /* Hack -- bell on first notice */ - if (alert_hitpoint && (old_chp > warning)) bell(); + if (old_chp > warning) bell(); sound(SOUND_WARN); if (record_danger && (old_chp > warning)) { if (p_ptr->image && damage_type == DAMAGE_ATTACK) -#ifdef JP - hit_from = "²¿¤«"; -#else - hit_from = "something"; -#endif + hit_from = _("何か", "something"); -#ifdef JP - sprintf(tmp,"%s¤Ë¤è¤Ã¤Æ¥Ô¥ó¥Á¤Ë´Ù¤¤¤Ã¤¿¡£",hit_from); -#else - sprintf(tmp,"A critical situation because of %s.",hit_from); -#endif + sprintf(tmp,_("%sによってピンチに陥った。", "A critical situation because of %s."),hit_from); do_cmd_write_nikki(NIKKI_BUNSHOU, 0, tmp); } @@ -5359,20 +4723,12 @@ get_rnd_line("death_j.txt", 0, death_message); } /* Message */ -#ifdef JP -msg_print("*** ·Ù¹ð:Äã¥Ò¥Ã¥È¡¦¥Ý¥¤¥ó¥È¡ª ***"); -#else - msg_print("*** LOW HITPOINT WARNING! ***"); -#endif - + msg_print(_("*** 警告:低ヒット・ポイント! ***", "*** LOW HITPOINT WARNING! ***")); msg_print(NULL); flush(); } if (p_ptr->wild_mode && !p_ptr->leaving && (p_ptr->chp < MAX(warning, p_ptr->mhp/5))) { - p_ptr->wilderness_x = px; - p_ptr->wilderness_y = py; - p_ptr->energy_need = 0; change_wild_mode(); } return damage; @@ -5382,14 +4738,14 @@ msg_print("*** /* * Gain experience */ -void gain_exp(s32b amount) +void gain_exp_64(s32b amount, u32b amount_frac) { if (p_ptr->is_dead) return; if (p_ptr->prace == RACE_ANDROID) return; /* Gain some experience */ - p_ptr->exp += amount; + s64b_add(&(p_ptr->exp), &(p_ptr->exp_frac), amount, amount_frac); /* Slowly recover from experience drainage */ if (p_ptr->exp < p_ptr->max_exp) @@ -5403,6 +4759,15 @@ void gain_exp(s32b amount) } +/* + * Gain experience + */ +void gain_exp(s32b amount) +{ + gain_exp_64(amount, 0L); +} + + void calc_android_exp(void) { int i; @@ -5417,7 +4782,7 @@ void calc_android_exp(void) object_type forge; object_type *q_ptr = &forge; u32b value, exp; - int level = MAX(get_object_level(o_ptr) - 8, 1); + int level = MAX(k_info[o_ptr->k_idx].level - 8, 1); if ((i == INVEN_RIGHT) || (i == INVEN_LEFT) || (i == INVEN_NECK) || (i == INVEN_LITE)) continue; if (!o_ptr->k_idx) continue; @@ -5429,12 +4794,12 @@ void calc_android_exp(void) q_ptr->discount = 0; q_ptr->curse_flags = 0L; - if (o_ptr->name1) + if (object_is_fixed_artifact(o_ptr)) { level = (level + MAX(a_info[o_ptr->name1].level - 8, 5)) / 2; level += MIN(20, a_info[o_ptr->name1].rarity/(a_info[o_ptr->name1].gen_flags & TRG_INSTA_ART ? 10 : 3)); } - else if (o_ptr->name2) + else if (object_is_ego(o_ptr)) { level += MAX(3, (e_info[o_ptr->name2].rating - 5)/2); } @@ -5443,7 +4808,7 @@ void calc_android_exp(void) s32b total_flags = flag_cost(o_ptr, o_ptr->pval); int fake_level; - if (o_ptr->tval >= TV_BOOTS) + if (!object_is_weapon_ammo(o_ptr)) { /* For armors */ if (total_flags < 15000) fake_level = 10; @@ -5468,7 +4833,7 @@ void calc_android_exp(void) if (value > 5000000L) value = 5000000L; if ((o_ptr->tval == TV_DRAG_ARMOR) || (o_ptr->tval == TV_CARD)) level /= 2; - if (o_ptr->name1 || o_ptr->name2 || o_ptr->art_name || + if (object_is_artifact(o_ptr) || object_is_ego(o_ptr) || (o_ptr->tval == TV_DRAG_ARMOR) || ((o_ptr->tval == TV_HELM) && (o_ptr->sval == SV_DRAGON_HELM)) || ((o_ptr->tval == TV_SHIELD) && (o_ptr->sval == SV_DRAGON_SHIELD)) || @@ -5479,15 +4844,15 @@ void calc_android_exp(void) if (level > 65) level = 35 + (level - 65) / 5; else if (level > 35) level = 25 + (level - 35) / 3; else if (level > 15) level = 15 + (level - 15) / 2; - exp = MIN(100000L, value) * level * level / 2; + exp = MIN(100000L, value) / 2 * level * level; if (value > 100000L) - exp += (value - 100000L) * level * level / 8; + exp += (value - 100000L) / 8 * level * level; } else { exp = MIN(100000L, value) * level; if (value > 100000L) - exp += (value - 100000L) * level / 4; + exp += (value - 100000L) / 4 * level; } if ((((i == INVEN_RARM) || (i == INVEN_LARM)) && (buki_motteruka(i))) || (i == INVEN_BOW)) total_exp += exp / 48; else total_exp += exp / 16; @@ -5522,39 +4887,27 @@ void lose_exp(s32b amount) * Drain experience * If resisted to draining, return FALSE */ -bool drain_exp(s32b drain, s32b slip, int hold_life_prob) +bool drain_exp(s32b drain, s32b slip, int hold_exp_prob) { /* Androids and their mimics are never drained */ if (p_ptr->prace == RACE_ANDROID) return FALSE; - if (p_ptr->hold_life && (randint0(100) < hold_life_prob)) + if (p_ptr->hold_exp && (randint0(100) < hold_exp_prob)) { /* Hold experience */ -#ifdef JP - msg_print("¤·¤«¤·¼«¸Ê¤ÎÀ¸Ì¿ÎϤò¼é¤ê¤­¤Ã¤¿¡ª"); -#else - msg_print("You keep hold of your life force!"); -#endif + msg_print(_("しかし自己の経験値を守りきった!", "You keep hold of your experience!")); return FALSE; } /* Hold experience failed */ - if (p_ptr->hold_life) + if (p_ptr->hold_exp) { -#ifdef JP - msg_print("À¸Ì¿ÎϤò¾¯¤·µÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel your life slipping away!"); -#endif + msg_print(_("経験値を少し吸い取られた気がする!", "You feel your experience slipping away!")); lose_exp(slip); } else { -#ifdef JP - msg_print("À¸Ì¿ÎϤ¬ÂΤ«¤éµÛ¤¤¼è¤é¤ì¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel your life draining away!"); -#endif + msg_print(_("経験値が体から吸い取られた気がする!", "You feel your experience draining away!")); lose_exp(drain); } @@ -5562,7 +4915,7 @@ bool drain_exp(s32b drain, s32b slip, int hold_life_prob) } -bool set_ultimate_res(int v, bool do_dec) +bool set_ultimate_res(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -5580,12 +4933,7 @@ bool set_ultimate_res(int v, bool do_dec) } else if (!p_ptr->ult_res) { -#ifdef JP -msg_print("¤¢¤é¤æ¤ë¤³¤È¤ËÂФ·¤ÆÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel resistant!"); -#endif - + msg_print(_("あらゆることに対して耐性がついた気がする!", "You feel resistant!")); notice = TRUE; } } @@ -5595,12 +4943,7 @@ msg_print(" { if (p_ptr->ult_res) { -#ifdef JP -msg_print("¤¢¤é¤æ¤ë¤³¤È¤ËÂФ¹¤ëÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less resistant"); -#endif - + msg_print(_("あらゆることに対する耐性が薄れた気がする。", "You feel less resistant")); notice = TRUE; } } @@ -5627,7 +4970,7 @@ msg_print(" return (TRUE); } -bool set_tim_res_nether(int v, bool do_dec) +bool set_tim_res_nether(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -5645,12 +4988,7 @@ bool set_tim_res_nether(int v, bool do_dec) } else if (!p_ptr->tim_res_nether) { -#ifdef JP -msg_print("ÃϹö¤ÎÎϤËÂФ·¤ÆÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel nether resistant!"); -#endif - + msg_print(_("地獄の力に対して耐性がついた気がする!", "You feel nether resistant!")); notice = TRUE; } } @@ -5660,12 +4998,7 @@ msg_print(" { if (p_ptr->tim_res_nether) { -#ifdef JP -msg_print("ÃϹö¤ÎÎϤËÂФ¹¤ëÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less nether resistant"); -#endif - + msg_print(_("地獄の力に対する耐性が薄れた気がする。", "You feel less nether resistant")); notice = TRUE; } } @@ -5692,7 +5025,7 @@ msg_print(" return (TRUE); } -bool set_tim_res_time(int v, bool do_dec) +bool set_tim_res_time(TIME_EFFECT v, bool do_dec) { bool notice = FALSE; @@ -5710,12 +5043,7 @@ bool set_tim_res_time(int v, bool do_dec) } else if (!p_ptr->tim_res_time) { -#ifdef JP -msg_print("»þ´ÖµÕž¤ÎÎϤËÂФ·¤ÆÂÑÀ­¤¬¤Ä¤¤¤¿µ¤¤¬¤¹¤ë¡ª"); -#else - msg_print("You feel time resistant!"); -#endif - + msg_print(_("時間逆転の力に対して耐性がついた気がする!", "You feel time resistant!")); notice = TRUE; } } @@ -5725,12 +5053,7 @@ msg_print(" { if (p_ptr->tim_res_time) { -#ifdef JP -msg_print("»þ´ÖµÕž¤ÎÎϤËÂФ¹¤ëÂÑÀ­¤¬Çö¤ì¤¿µ¤¤¬¤¹¤ë¡£"); -#else - msg_print("You feel less time resistant"); -#endif - + msg_print(_("時間逆転の力に対する耐性が薄れた気がする。", "You feel less time resistant")); notice = TRUE; } } @@ -5767,55 +5090,44 @@ bool choose_ele_attack(void) char choice; + if (!buki_motteruka(INVEN_RARM) && !buki_motteruka(INVEN_LARM)) + { + msg_format(_("武器を持たないと魔法剣は使えない。", "You cannot use temporary branding with no weapon.")); + return FALSE; + } + /* Save screen */ screen_save(); num = (p_ptr->lev - 20) / 5; - -#ifdef JP - c_prt(TERM_RED, " a) ¾Æ´þ", 2, 14); -#else - c_prt(TERM_RED, " a) Fire Brand", 2, 14); -#endif - -#ifdef JP - if (num >= 2) c_prt(TERM_L_WHITE," b) Åà·ë", 3, 14); -#else - if (num >= 2) c_prt(TERM_L_WHITE," b) Cold Brand", 3, 14); -#endif - else prt("", 3, 14); - -#ifdef JP - if (num >= 3) c_prt(TERM_GREEN, " c) ÆÇ»¦", 4, 14); -#else - if (num >= 3) c_prt(TERM_GREEN, " c) Poison Brand", 4, 14); -#endif - else prt("", 4, 14); - -#ifdef JP - if (num >= 4) c_prt(TERM_L_DARK, " d) Íϲò", 5, 14); -#else - if (num >= 4) c_prt(TERM_L_DARK, " d) Acid Brand", 5, 14); -#endif - else prt("", 5, 14); - -#ifdef JP - if (num >= 5) c_prt(TERM_BLUE, " e) ÅÅ·â", 6, 14); -#else - if (num >= 5) c_prt(TERM_BLUE, " e) Elec Brand", 6, 14); -#endif - else prt("", 6, 14); + c_prt(TERM_RED, _(" a) 焼棄", " a) Fire Brand"), 2, 14); + + if (num >= 2) + c_prt(TERM_L_WHITE,_(" b) 凍結", " b) Cold Brand"), 3, 14); + else + prt("", 3, 14); + + if (num >= 3) + c_prt(TERM_GREEN, _(" c) 毒殺", " c) Poison Brand"), 4, 14); + else + prt("", 4, 14); + + if (num >= 4) + c_prt(TERM_L_DARK, _(" d) 溶解", " d) Acid Brand"), 5, 14); + else + prt("", 5, 14); + + if (num >= 5) + c_prt(TERM_BLUE, _(" e) 電撃", " e) Elec Brand"), 6, 14); + else + prt("", 6, 14); prt("", 7, 14); prt("", 8, 14); prt("", 9, 14); prt("", 1, 0); -#ifdef JP - prt(" ¤É¤Î¸µÁǹ¶·â¤ò¤·¤Þ¤¹¤«¡©", 1, 14); -#else - prt(" Choose a temporary elemental brand ", 1, 14); -#endif + prt(_(" どの元素攻撃をしますか?", " Choose a temporary elemental brand "), 1, 14); choice = inkey(); @@ -5831,11 +5143,7 @@ bool choose_ele_attack(void) set_ele_attack(ATTACK_ELEC, p_ptr->lev/2 + randint1(p_ptr->lev/2)); else { -#ifdef JP - msg_print("ËâË¡·õ¤ò»È¤¦¤Î¤ò¤ä¤á¤¿¡£"); -#else - msg_print("You cancel the temporary branding."); -#endif + msg_print(_("魔法剣を使うのをやめた。", "You cancel the temporary branding.")); screen_load(); return FALSE; } @@ -5848,37 +5156,17 @@ bool choose_ele_attack(void) /* * Choose a elemental immune. -LM- */ -bool choose_ele_immune(int turn) +bool choose_ele_immune(TIME_EFFECT immune_turn) { char choice; /* Save screen */ screen_save(); -#ifdef JP - c_prt(TERM_RED, " a) ²Ð±ê", 2, 14); -#else - c_prt(TERM_RED, " a) Immune Fire", 2, 14); -#endif - -#ifdef JP - c_prt(TERM_L_WHITE," b) Î䵤", 3, 14); -#else - c_prt(TERM_L_WHITE," b) Immune Cold", 3, 14); -#endif - -#ifdef JP - c_prt(TERM_L_DARK, " c) »À", 4, 14); -#else - c_prt(TERM_L_DARK, " c) Immune Acid", 4, 14); -#endif - -#ifdef JP - c_prt(TERM_BLUE, " d) ÅÅ·â", 5, 14); -#else - c_prt(TERM_BLUE, " d) Immune Elec", 5, 14); -#endif - + c_prt(TERM_RED, _(" a) 火炎", " a) Immune Fire"), 2, 14); + c_prt(TERM_L_WHITE,_(" b) 冷気", " b) Immune Cold"), 3, 14); + c_prt(TERM_L_DARK, _(" c) 酸", " c) Immune Acid"), 4, 14); + c_prt(TERM_BLUE, _(" d) 電撃", " d) Immune Elec"), 5, 14); prt("", 6, 14); prt("", 7, 14); @@ -5886,29 +5174,21 @@ bool choose_ele_immune(int turn) prt("", 9, 14); prt("", 1, 0); -#ifdef JP - prt(" ¤É¤Î¸µÁǤÎÌȱ֤ò¤Ä¤±¤Þ¤¹¤«¡©", 1, 14); -#else - prt(" Choose a temporary elemental immune ", 1, 14); -#endif + prt(_(" どの元素の免疫をつけますか?", " Choose a temporary elemental immune "), 1, 14); choice = inkey(); if ((choice == 'a') || (choice == 'A')) - set_ele_immune(DEFENSE_FIRE, turn); + set_ele_immune(DEFENSE_FIRE, immune_turn); else if ((choice == 'b') || (choice == 'B')) - set_ele_immune(DEFENSE_COLD, turn); + set_ele_immune(DEFENSE_COLD, immune_turn); else if ((choice == 'c') || (choice == 'C')) - set_ele_immune(DEFENSE_ACID, turn); + set_ele_immune(DEFENSE_ACID, immune_turn); else if ((choice == 'd') || (choice == 'D')) - set_ele_immune(DEFENSE_ELEC, turn); + set_ele_immune(DEFENSE_ELEC, immune_turn); else { -#ifdef JP - msg_print("Ìȱ֤òÉÕ¤±¤ë¤Î¤ò¤ä¤á¤¿¡£"); -#else - msg_print("You cancel the temporary immune."); -#endif + msg_print(_("免疫を付けるのをやめた。", "You cancel the temporary immune.")); screen_load(); return FALSE; } @@ -5916,3 +5196,4 @@ bool choose_ele_immune(int turn) screen_load(); return TRUE; } +