OSDN Git Service

[Refactor] #39963 Separated spells-effect-util.c/h from spells.h/spells1.c
[hengband/hengband.git] / src / mutation.c
index d82df93..2eb4d7a 100644 (file)
 
 #include "angband.h"
 #include "core.h"
+#include "core/show-file.h"
 #include "util.h"
 
-#include "cmd-dump.h"
+#include "io/write-diary.h"
+#include "cmd/cmd-dump.h"
 #include "mutation.h"
 
 #include "selfinfo.h"
 #include "spells-status.h"
 #include "spells-floor.h"
 #include "object-hook.h"
-#include "spells.h"
 #include "cmd-basic.h"
 #include "files.h"
 #include "floor.h"
 #include "targeting.h"
 #include "player-race.h"
+#include "effect/spells-effect-util.h"
 
 /*!
  * @brief プレイヤーに突然変異を与える
@@ -206,7 +208,7 @@ bool gain_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
                        break;
                case 60: case 61:
                        muta_class = &(creature_ptr->muta1);
-                       muta_which = MUT1_PANIC_HIT;
+                       muta_which = MUT1_HIT_AND_AWAY;
                        muta_desc = _("突然、泥棒の気分が分かるようになった。", "You suddenly understand how thieves feel.");
                        break;
                        
@@ -445,7 +447,7 @@ bool gain_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
                case 120: case 121: case 122:
                        muta_class = &(creature_ptr->muta3);
                        muta_which = MUT3_HYPER_STR;
-                       muta_desc = _( "超人的に強くなった!",  "You current_world_ptr->game_turn into a superhuman he-man!");
+                       muta_desc = _( "超人的に強くなった!",  "You turn into a superhuman he-man!");
 
                        break;
                case 123: case 124: case 125:
@@ -481,7 +483,7 @@ bool gain_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
                case 136: case 137:
                        muta_class = &(creature_ptr->muta3);
                        muta_which = MUT3_ALBINO;
-                       muta_desc = _( "アルビノになった!弱くなった気がする...",  "You current_world_ptr->game_turn into an albino! You feel frail...");
+                       muta_desc = _( "アルビノになった!弱くなった気がする...",  "You turn into an albino! You feel frail...");
 
                        break;
                case 138: case 139: case 140:
@@ -541,7 +543,7 @@ bool gain_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
                case 159: case 160:
                        muta_class = &(creature_ptr->muta3);
                        muta_which = MUT3_SHORT_LEG;
-                       muta_desc = _( "足が短い突起になってしまった!",  "Your legs current_world_ptr->game_turn into short stubs!");
+                       muta_desc = _( "足が短い突起になってしまった!",  "Your legs turn into short stubs!");
 
                        break;
                case 161: case 162:
@@ -653,225 +655,224 @@ bool gain_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
        if (!muta_chosen)
        {
                msg_print(_("普通になった気がする。", "You feel normal."));
-
                return FALSE;
        }
-       else
+
+       chg_virtue(creature_ptr, V_CHANCE, 1);
+
+       /*
+         some races are apt to gain specified mutations
+         This should be allowed only if "choose_mut" is 0.
+                                               --- henkma
+       */
+       if (!choose_mut)
        {
-               chg_virtue(creature_ptr, V_CHANCE, 1);
-
-               /*
-                 some races are apt to gain specified mutations
-                 This should be allowed only if "choose_mut" is 0.
-                                                       --- henkma
-               */
-               if(!choose_mut){
-                       if (creature_ptr->prace == RACE_VAMPIRE &&
-                         !(creature_ptr->muta1 & MUT1_HYPN_GAZE) &&
-                          (randint1(10) < 7))
-                       {
-                               muta_class = &(creature_ptr->muta1);
-                               muta_which = MUT1_HYPN_GAZE;
-                       muta_desc = _( "眼が幻惑的になった...",  "Your eyes look mesmerizing...");
+               if (creature_ptr->prace == RACE_VAMPIRE &&
+                       !(creature_ptr->muta1 & MUT1_HYPN_GAZE) &&
+                       (randint1(10) < 7))
+               {
+                       muta_class = &(creature_ptr->muta1);
+                       muta_which = MUT1_HYPN_GAZE;
+                       muta_desc = _("眼が幻惑的になった...", "Your eyes look mesmerizing...");
 
-                       }
+               }
 
-                       else if (creature_ptr->prace == RACE_IMP &&
-                                !(creature_ptr->muta2 & MUT2_HORNS) &&
-                                (randint1(10) < 7))
-                         {
-                               muta_class = &(creature_ptr->muta2);
-                               muta_which = MUT2_HORNS;
-                       muta_desc = _( "角が額から生えてきた!",  "Horns pop forth into your forehead!");
+               else if (creature_ptr->prace == RACE_IMP &&
+                       !(creature_ptr->muta2 & MUT2_HORNS) &&
+                       (randint1(10) < 7))
+               {
+                       muta_class = &(creature_ptr->muta2);
+                       muta_which = MUT2_HORNS;
+                       muta_desc = _("角が額から生えてきた!", "Horns pop forth into your forehead!");
 
-                       }
+               }
 
-                       else if (creature_ptr->prace == RACE_YEEK &&
-                               !(creature_ptr->muta1 & MUT1_SHRIEK) &&
-                               (randint1(10) < 7))
-                       {
-                               muta_class = &(creature_ptr->muta1);
-                               muta_which = MUT1_SHRIEK;
-                       muta_desc = _( "声質がかなり強くなった。",  "Your vocal cords get much tougher.");
+               else if (creature_ptr->prace == RACE_YEEK &&
+                       !(creature_ptr->muta1 & MUT1_SHRIEK) &&
+                       (randint1(10) < 7))
+               {
+                       muta_class = &(creature_ptr->muta1);
+                       muta_which = MUT1_SHRIEK;
+                       muta_desc = _("声質がかなり強くなった。", "Your vocal cords get much tougher.");
 
-                       }
+               }
 
-                       else if (creature_ptr->prace == RACE_BEASTMAN &&
-                               !(creature_ptr->muta1 & MUT1_POLYMORPH) &&
-                               (randint1(10) < 2))
-                       {
-                               muta_class = &(creature_ptr->muta1);
-                               muta_which = MUT1_POLYMORPH;
-                       muta_desc = _( "あなたの肉体は変化できるようになった、",  "Your body seems mutable.");
+               else if (creature_ptr->prace == RACE_BEASTMAN &&
+                       !(creature_ptr->muta1 & MUT1_POLYMORPH) &&
+                       (randint1(10) < 2))
+               {
+                       muta_class = &(creature_ptr->muta1);
+                       muta_which = MUT1_POLYMORPH;
+                       muta_desc = _("あなたの肉体は変化できるようになった、", "Your body seems mutable.");
 
-                       }
+               }
 
-                       else if (creature_ptr->prace == RACE_MIND_FLAYER &&
-                               !(creature_ptr->muta2 & MUT2_TENTACLES) &&
-                               (randint1(10) < 7))
-                       {
-                               muta_class = &(creature_ptr->muta2);
-                               muta_which = MUT2_TENTACLES;
-                       muta_desc = _( "邪悪な触手が口の周りに生えた。",  "Evil-looking tentacles sprout from your mouth.");
+               else if (creature_ptr->prace == RACE_MIND_FLAYER &&
+                       !(creature_ptr->muta2 & MUT2_TENTACLES) &&
+                       (randint1(10) < 7))
+               {
+                       muta_class = &(creature_ptr->muta2);
+                       muta_which = MUT2_TENTACLES;
+                       muta_desc = _("邪悪な触手が口の周りに生えた。", "Evil-looking tentacles sprout from your mouth.");
 
-                       }
                }
-               msg_print(_("突然変異した!", "You mutate!"));
+       }
+
+       msg_print(_("突然変異した!", "You mutate!"));
 
-               msg_print(muta_desc);
-               *muta_class |= muta_which;
+       msg_print(muta_desc);
+       *muta_class |= muta_which;
 
-               if (muta_class == &(creature_ptr->muta3))
+       if (muta_class == &(creature_ptr->muta3))
+       {
+               if (muta_which == MUT3_PUNY)
                {
-                       if (muta_which == MUT3_PUNY)
+                       if (creature_ptr->muta3 & MUT3_HYPER_STR)
                        {
-                               if (creature_ptr->muta3 & MUT3_HYPER_STR)
-                               {
-                                       msg_print(_("あなたはもう超人的に強くはない!", "You no longer feel super-strong!"));
+                               msg_print(_("あなたはもう超人的に強くはない!", "You no longer feel super-strong!"));
 
-                                       creature_ptr->muta3 &= ~(MUT3_HYPER_STR);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_HYPER_STR);
                        }
-                       else if (muta_which == MUT3_HYPER_STR)
+               }
+               else if (muta_which == MUT3_HYPER_STR)
+               {
+                       if (creature_ptr->muta3 & MUT3_PUNY)
                        {
-                               if (creature_ptr->muta3 & MUT3_PUNY)
-                               {
-                                       msg_print(_("あなたはもう虚弱ではない!", "You no longer feel puny!"));
+                               msg_print(_("あなたはもう虚弱ではない!", "You no longer feel puny!"));
 
-                                       creature_ptr->muta3 &= ~(MUT3_PUNY);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_PUNY);
                        }
-                       else if (muta_which == MUT3_MORONIC)
+               }
+               else if (muta_which == MUT3_MORONIC)
+               {
+                       if (creature_ptr->muta3 & MUT3_HYPER_INT)
                        {
-                               if (creature_ptr->muta3 & MUT3_HYPER_INT)
-                               {
-                                       msg_print(_("あなたの脳はもう生体コンピュータではない。", "Your brain is no longer a living computer."));
+                               msg_print(_("あなたの脳はもう生体コンピュータではない。", "Your brain is no longer a living computer."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_HYPER_INT);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_HYPER_INT);
                        }
-                       else if (muta_which == MUT3_HYPER_INT)
+               }
+               else if (muta_which == MUT3_HYPER_INT)
+               {
+                       if (creature_ptr->muta3 & MUT3_MORONIC)
                        {
-                               if (creature_ptr->muta3 & MUT3_MORONIC)
-                               {
-                                       msg_print(_("あなたはもう精神薄弱ではない。", "You are no longer moronic."));
+                               msg_print(_("あなたはもう精神薄弱ではない。", "You are no longer moronic."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_MORONIC);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_MORONIC);
                        }
-                       else if (muta_which == MUT3_IRON_SKIN)
+               }
+               else if (muta_which == MUT3_IRON_SKIN)
+               {
+                       if (creature_ptr->muta3 & MUT3_SCALES)
                        {
-                               if (creature_ptr->muta3 & MUT3_SCALES)
-                               {
-                                       msg_print(_("鱗がなくなった。", "You lose your scales."));
+                               msg_print(_("鱗がなくなった。", "You lose your scales."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_SCALES);
-                               }
-                               if (creature_ptr->muta3 & MUT3_FLESH_ROT)
-                               {
-                                       msg_print(_("肉体が腐乱しなくなった。", "Your flesh rots no longer."));
-
-                                       creature_ptr->muta3 &= ~(MUT3_FLESH_ROT);
-                               }
-                               if (creature_ptr->muta3 & MUT3_WART_SKIN)
-                               {
-                                       msg_print(_("肌のイボイボがなくなった。", "You lose your warts."));
+                               creature_ptr->muta3 &= ~(MUT3_SCALES);
+                       }
+                       if (creature_ptr->muta3 & MUT3_FLESH_ROT)
+                       {
+                               msg_print(_("肉体が腐乱しなくなった。", "Your flesh rots no longer."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_WART_SKIN);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_FLESH_ROT);
                        }
-                       else if (muta_which == MUT3_WART_SKIN || muta_which == MUT3_SCALES
-                               || muta_which == MUT3_FLESH_ROT)
+                       if (creature_ptr->muta3 & MUT3_WART_SKIN)
                        {
-                               if (creature_ptr->muta3 & MUT3_IRON_SKIN)
-                               {
-                                       msg_print(_("あなたの肌はもう鉄ではない。", "Your skin is no longer made of steel."));
+                               msg_print(_("肌のイボイボがなくなった。", "You lose your warts."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_IRON_SKIN);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_WART_SKIN);
                        }
-                       else if (muta_which == MUT3_FEARLESS)
+               }
+               else if (muta_which == MUT3_WART_SKIN || muta_which == MUT3_SCALES
+                       || muta_which == MUT3_FLESH_ROT)
+               {
+                       if (creature_ptr->muta3 & MUT3_IRON_SKIN)
                        {
-                               if (creature_ptr->muta2 & MUT2_COWARDICE)
-                               {
-                                       msg_print(_("臆病でなくなった。", "You are no longer cowardly."));
+                               msg_print(_("あなたの肌はもう鉄ではない。", "Your skin is no longer made of steel."));
 
-                                       creature_ptr->muta2 &= ~(MUT2_COWARDICE);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_IRON_SKIN);
                        }
-                       else if (muta_which == MUT3_FLESH_ROT)
+               }
+               else if (muta_which == MUT3_FEARLESS)
+               {
+                       if (creature_ptr->muta2 & MUT2_COWARDICE)
                        {
-                               if (creature_ptr->muta3 & MUT3_REGEN)
-                               {
-                                       msg_print(_("急速に回復しなくなった。", "You stop regenerating."));
+                               msg_print(_("臆病でなくなった。", "You are no longer cowardly."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_REGEN);
-                               }
+                               creature_ptr->muta2 &= ~(MUT2_COWARDICE);
                        }
-                       else if (muta_which == MUT3_REGEN)
+               }
+               else if (muta_which == MUT3_FLESH_ROT)
+               {
+                       if (creature_ptr->muta3 & MUT3_REGEN)
                        {
-                               if (creature_ptr->muta3 & MUT3_FLESH_ROT)
-                               {
-                                       msg_print(_("肉体が腐乱しなくなった。", "Your flesh stops rotting."));
+                               msg_print(_("急速に回復しなくなった。", "You stop regenerating."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_FLESH_ROT);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_REGEN);
                        }
-                       else if (muta_which == MUT3_LIMBER)
+               }
+               else if (muta_which == MUT3_REGEN)
+               {
+                       if (creature_ptr->muta3 & MUT3_FLESH_ROT)
                        {
-                               if (creature_ptr->muta3 & MUT3_ARTHRITIS)
-                               {
-                                       msg_print(_("関節が痛くなくなった。", "Your joints stop hurting."));
+                               msg_print(_("肉体が腐乱しなくなった。", "Your flesh stops rotting."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_ARTHRITIS);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_FLESH_ROT);
                        }
-                       else if (muta_which == MUT3_ARTHRITIS)
+               }
+               else if (muta_which == MUT3_LIMBER)
+               {
+                       if (creature_ptr->muta3 & MUT3_ARTHRITIS)
                        {
-                               if (creature_ptr->muta3 & MUT3_LIMBER)
-                               {
-                                       msg_print(_("あなたはしなやかでなくなった。", "You no longer feel limber."));
+                               msg_print(_("関節が痛くなくなった。", "Your joints stop hurting."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_LIMBER);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_ARTHRITIS);
                        }
                }
-               else if (muta_class == &(creature_ptr->muta2))
+               else if (muta_which == MUT3_ARTHRITIS)
                {
-                       if (muta_which == MUT2_COWARDICE)
+                       if (creature_ptr->muta3 & MUT3_LIMBER)
                        {
-                               if (creature_ptr->muta3 & MUT3_FEARLESS)
-                               {
-                                       msg_print(_("恐れ知らずでなくなった。", "You no longer feel fearless."));
+                               msg_print(_("あなたはしなやかでなくなった。", "You no longer feel limber."));
 
-                                       creature_ptr->muta3 &= ~(MUT3_FEARLESS);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_LIMBER);
                        }
-                       if (muta_which == MUT2_BEAK)
+               }
+       }
+       else if (muta_class == &(creature_ptr->muta2))
+       {
+               if (muta_which == MUT2_COWARDICE)
+               {
+                       if (creature_ptr->muta3 & MUT3_FEARLESS)
                        {
-                               if (creature_ptr->muta2 & MUT2_TRUNK)
-                               {
-                                       msg_print(_("あなたの鼻はもう象の鼻のようではなくなった。", "Your nose is no longer elephantine."));
+                               msg_print(_("恐れ知らずでなくなった。", "You no longer feel fearless."));
 
-                                       creature_ptr->muta2 &= ~(MUT2_TRUNK);
-                               }
+                               creature_ptr->muta3 &= ~(MUT3_FEARLESS);
                        }
-                       if (muta_which == MUT2_TRUNK)
+               }
+               if (muta_which == MUT2_BEAK)
+               {
+                       if (creature_ptr->muta2 & MUT2_TRUNK)
                        {
-                               if (creature_ptr->muta2 & MUT2_BEAK)
-                               {
-                                       msg_print(_("硬いクチバシがなくなった。", "You no longer have a hard beak."));
+                               msg_print(_("あなたの鼻はもう象の鼻のようではなくなった。", "Your nose is no longer elephantine."));
 
-                                       creature_ptr->muta2 &= ~(MUT2_BEAK);
-                               }
+                               creature_ptr->muta2 &= ~(MUT2_TRUNK);
                        }
                }
+               if (muta_which == MUT2_TRUNK)
+               {
+                       if (creature_ptr->muta2 & MUT2_BEAK)
+                       {
+                               msg_print(_("硬いクチバシがなくなった。", "You no longer have a hard beak."));
 
-               creature_ptr->mutant_regenerate_mod = calc_mutant_regenerate_mod(creature_ptr);
-               creature_ptr->update |= PU_BONUS;
-               handle_stuff();
-               return TRUE;
+                               creature_ptr->muta2 &= ~(MUT2_BEAK);
+                       }
+               }
        }
+
+       creature_ptr->mutant_regenerate_mod = calc_mutant_regenerate_mod(creature_ptr);
+       creature_ptr->update |= PU_BONUS;
+       handle_stuff(creature_ptr);
+       return TRUE;
 }
 
 /*!
@@ -1045,7 +1046,7 @@ bool lose_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
                        break;
                case 60: case 61:
                        muta_class = &(creature_ptr->muta1);
-                       muta_which = MUT1_PANIC_HIT;
+                       muta_which = MUT1_HIT_AND_AWAY;
                        muta_desc = _( "あちこちへ跳べる気分がなくなった。",  "You no longer feel jumpy.");
 
                        break;
@@ -1489,550 +1490,30 @@ bool lose_mutation(player_type *creature_ptr, MUTATION_IDX choose_mut)
        {
                return FALSE;
        }
-       else
-       {
-               msg_print(muta_desc);
-               *(muta_class) &= ~(muta_which);
 
-               creature_ptr->update |= PU_BONUS;
-               handle_stuff();
-               creature_ptr->mutant_regenerate_mod = calc_mutant_regenerate_mod(creature_ptr);
-               return TRUE;
-       }
+       msg_print(muta_desc);
+       *(muta_class) &= ~(muta_which);
+
+       creature_ptr->update |= PU_BONUS;
+       handle_stuff(creature_ptr);
+       creature_ptr->mutant_regenerate_mod = calc_mutant_regenerate_mod(creature_ptr);
+       return TRUE;
 }
 
+
 void lose_all_mutations(player_type *creature_ptr)
 {
        if (creature_ptr->muta1 || creature_ptr->muta2 || creature_ptr->muta3)
        {
-               chg_virtue(p_ptr, V_CHANCE, -5);
+               chg_virtue(creature_ptr, V_CHANCE, -5);
                msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
                creature_ptr->muta1 = creature_ptr->muta2 = creature_ptr->muta3 = 0;
                creature_ptr->update |= PU_BONUS;
-               handle_stuff();
+               handle_stuff(creature_ptr);
                creature_ptr->mutant_regenerate_mod = calc_mutant_regenerate_mod(creature_ptr);
        }
 }
 
-/*!
- * @brief ファイルポインタを通じて突然変異の一覧を出力する
- * @param OutFile 出力先ファイルポインタ
- * @return なし
- */
-void dump_mutations(player_type *creature_ptr, FILE *OutFile)
-{
-       if (!OutFile) return;
-
-       if (creature_ptr->muta1)
-       {
-               if (creature_ptr->muta1 & MUT1_SPIT_ACID)
-               {
-                       fprintf(OutFile, _(" あなたは酸を吹きかけることができる。(ダメージ レベルX1)\n", " You can spit acid (dam lvl).\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_BR_FIRE)
-               {
-                       fprintf(OutFile, _(" あなたは炎のブレスを吐くことができる。(ダメージ レベルX2)\n", " You can breathe fire (dam lvl * 2).\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_HYPN_GAZE)
-               {
-                       fprintf(OutFile, _(" あなたの睨みは催眠効果をもつ。\n", " Your gaze is hypnotic.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_TELEKINES)
-               {
-                       fprintf(OutFile, _(" あなたは念動力をもっている。\n", " You are telekinetic.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_VTELEPORT)
-               {
-                       fprintf(OutFile, _(" あなたは自分の意思でテレポートできる。\n", " You can teleport at will.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_MIND_BLST)
-               {
-                       fprintf(OutFile, _(" あなたは敵を精神攻撃できる。\n", " You can Mind Blast your enemies.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_RADIATION)
-               {
-                       fprintf(OutFile, _(" あなたは自分の意思で放射能を発生することができる。\n", " You can emit hard radiation at will.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_VAMPIRISM)
-               {
-                       fprintf(OutFile, _(" あなたは吸血鬼のように敵から生命力を吸収することができる。\n", " You can drain life from a foe like a vampire.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_SMELL_MET)
-               {
-                       fprintf(OutFile, _(" あなたは近くにある貴金属をかぎ分けることができる。\n", " You can smell nearby precious metal.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_SMELL_MON)
-               {
-                       fprintf(OutFile, _(" あなたは近くのモンスターの存在をかぎ分けることができる。\n", " You can smell nearby monsters.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_BLINK)
-               {
-                       fprintf(OutFile, _(" あなたは短い距離をテレポートできる。\n", " You can teleport yourself short distances.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_EAT_ROCK)
-               {
-                       fprintf(OutFile, _(" あなたは硬い岩を食べることができる。\n", " You can consume solid rock.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_SWAP_POS)
-               {
-                       fprintf(OutFile, _(" あなたは他の者と場所を入れ替わることができる。\n", " You can switch locations with another being.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_SHRIEK)
-               {
-                       fprintf(OutFile, _(" あなたは身の毛もよだつ叫び声を発することができる。\n", " You can emit a horrible shriek.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_ILLUMINE)
-               {
-                       fprintf(OutFile, _(" あなたは明るい光を放つことができる。\n", " You can emit bright light.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_DET_CURSE)
-               {
-                       fprintf(OutFile, _(" あなたは邪悪な魔法の危険を感じとることができる。\n", " You can feel the danger of evil magic.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_BERSERK)
-               {
-                       fprintf(OutFile, _(" あなたは自分の意思で狂乱戦闘状態になることができる。\n", " You can drive yourself into a berserk frenzy.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_POLYMORPH)
-               {
-                       fprintf(OutFile, _(" あなたは自分の意志で変化できる。\n", " You can polymorph yourself at will.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_MIDAS_TCH)
-               {
-                       fprintf(OutFile, _(" あなたは通常アイテムを金に変えることができる。\n", " You can current_world_ptr->game_turn ordinary items to gold.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_GROW_MOLD)
-               {
-                       fprintf(OutFile, _(" あなたは周囲にキノコを生やすことができる。\n", " You can cause mold to grow near you.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_RESIST)
-               {
-                       fprintf(OutFile, _(" あなたは元素の攻撃に対して身を硬くすることができる。\n", " You can harden yourself to the ravages of the elements.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_EARTHQUAKE)
-               {
-                       fprintf(OutFile, _(" あなたは周囲のダンジョンを崩壊させることができる。\n", " You can bring down the dungeon around your ears.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_EAT_MAGIC)
-               {
-                       fprintf(OutFile, _(" あなたは魔法のエネルギーを自分の物として使用できる。\n", " You can consume magic energy for your own use.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_WEIGH_MAG)
-               {
-                       fprintf(OutFile, _(" あなたは自分に影響を与える魔法の力を感じることができる。\n", " You can feel the strength of the magics affecting you.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_STERILITY)
-               {
-                       fprintf(OutFile, _(" あなたは集団的生殖不能を起こすことができる。\n", " You can cause mass impotence.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_PANIC_HIT)
-               {
-                       fprintf(OutFile, _(" あなたは攻撃した後身を守るため逃げることができる。\n", " You can run for your life after hitting something.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_DAZZLE)
-               {
-                       fprintf(OutFile, _(" あなたは混乱と盲目を引き起こす放射能を発生することができる。 \n", " You can emit confusing, blinding radiation.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_LASER_EYE)
-               {
-                       fprintf(OutFile, _(" あなたは目からレーザー光線を発射することができる。\n", " Your eyes can fire laser beams.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_RECALL)
-               {
-                       fprintf(OutFile, _(" あなたは街とダンジョンの間を行き来することができる。\n", " You can travel between town and the depths.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_BANISH)
-               {
-                       fprintf(OutFile, _(" あなたは邪悪なモンスターを地獄に落とすことができる。\n", " You can send evil creatures directly to Hell.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_COLD_TOUCH)
-               {
-                       fprintf(OutFile, _(" あなたは物を触って凍らせることができる。\n", " You can freeze things with a touch.\n"));
-
-               }
-               if (creature_ptr->muta1 & MUT1_LAUNCHER)
-               {
-                       fprintf(OutFile, _(" あなたはアイテムを力強く投げることができる。\n", " You can hurl objects with great force.\n"));
-
-               }
-       }
-
-       if (creature_ptr->muta2)
-       {
-               if (creature_ptr->muta2 & MUT2_BERS_RAGE)
-               {
-                       fprintf(OutFile, _(" あなたは狂戦士化の発作を起こす。\n", " You are subject to berserker fits.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_COWARDICE)
-               {
-                       fprintf(OutFile, _(" あなたは時々臆病になる。\n", " You are subject to cowardice.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_RTELEPORT)
-               {
-                       fprintf(OutFile, _(" あなたはランダムにテレポートする。\n", " You are teleporting randomly.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_ALCOHOL)
-               {
-                       fprintf(OutFile, _(" あなたの体はアルコールを分泌する。\n", " Your body produces alcohol.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_HALLU)
-               {
-                       fprintf(OutFile, _(" あなたは幻覚を引き起こす精神錯乱に侵されている。\n", " You have a hallucinatory insanity.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_FLATULENT)
-               {
-                       fprintf(OutFile, _(" あなたは制御できない強烈な屁をこく。\n", " You are subject to uncontrollable flatulence.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_PROD_MANA)
-               {
-                       fprintf(OutFile, _(" あなたは制御不能な魔法のエネルギーを発している。\n", " You are producing magical energy uncontrollably.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_ATT_DEMON)
-               {
-                       fprintf(OutFile, _(" あなたはデーモンを引きつける。\n", " You attract demons.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_SCOR_TAIL)
-               {
-                       fprintf(OutFile, _(" あなたはサソリの尻尾が生えている。(毒、ダメージ 3d7)\n", " You have a scorpion tail (poison, 3d7).\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_HORNS)
-               {
-                       fprintf(OutFile, _(" あなたは角が生えている。(ダメージ 2d6)\n", " You have horns (dam. 2d6).\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_BEAK)
-               {
-                       fprintf(OutFile, _(" あなたはクチバシが生えている。(ダメージ 2d4)\n", " You have a beak (dam. 2d4).\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_SPEED_FLUX)
-               {
-                       fprintf(OutFile, _(" あなたはランダムに早く動いたり遅く動いたりする。\n", " You move faster or slower randomly.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_BANISH_ALL)
-               {
-                       fprintf(OutFile, _(" あなたは時々近くのモンスターを消滅させる。\n", " You sometimes cause nearby creatures to vanish.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_EAT_LIGHT)
-               {
-                       fprintf(OutFile, _(" あなたは時々周囲の光を吸収して栄養にする。\n", " You sometimes feed off of the light around you.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_TRUNK)
-               {
-                       fprintf(OutFile, _(" あなたは象のような鼻を持っている。(ダメージ 1d4)\n", " You have an elephantine trunk (dam 1d4).\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_ATT_ANIMAL)
-               {
-                       fprintf(OutFile, _(" あなたは動物を引きつける。\n", " You attract animals.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_TENTACLES)
-               {
-                       fprintf(OutFile, _(" あなたは邪悪な触手を持っている。(ダメージ 2d5)\n", " You have evil looking tentacles (dam 2d5).\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_RAW_CHAOS)
-               {
-                       fprintf(OutFile, _(" あなたはしばしば純カオスに包まれる。\n", " You occasionally are surrounded with raw chaos.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_NORMALITY)
-               {
-                       fprintf(OutFile, _(" あなたは変異していたが、回復してきている。\n", " You may be mutated, but you're recovering.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_WRAITH)
-               {
-                       fprintf(OutFile, _(" あなたの肉体は幽体化したり実体化したりする。\n", " You fade in and out of physical reality.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_POLY_WOUND)
-               {
-                       fprintf(OutFile, _(" あなたの健康はカオスの力に影響を受ける。\n", " Your health is subject to chaotic forces.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_WASTING)
-               {
-                       fprintf(OutFile, _(" あなたは衰弱する恐ろしい病気にかかっている。\n", " You have a horrible wasting disease.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_ATT_DRAGON)
-               {
-                       fprintf(OutFile, _(" あなたはドラゴンを引きつける。\n", " You attract dragons.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_WEIRD_MIND)
-               {
-                       fprintf(OutFile, _(" あなたの精神はランダムに拡大したり縮小したりしている。\n", " Your mind randomly expands and contracts.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_NAUSEA)
-               {
-                       fprintf(OutFile, _(" あなたの胃は非常に落ち着きがない。\n", " You have a seriously upset stomach.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_CHAOS_GIFT)
-               {
-                       fprintf(OutFile, _(" あなたはカオスの守護悪魔から褒美をうけとる。\n", " Chaos deities give you gifts.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_WALK_SHAD)
-               {
-                       fprintf(OutFile, _(" あなたはしばしば他の「影」に迷い込む。\n", " You occasionally stumble into other shadows.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_WARNING)
-               {
-                       fprintf(OutFile, _(" あなたは敵に関する警告を感じる。\n", " You receive warnings about your foes.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_INVULN)
-               {
-                       fprintf(OutFile, _(" あなたは時々負け知らずな気分になる。\n", " You occasionally feel invincible.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_SP_TO_HP)
-               {
-                       fprintf(OutFile, _(" あなたは時々血が筋肉にどっと流れる。\n", " Your blood sometimes rushes to your muscles.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_HP_TO_SP)
-               {
-                       fprintf(OutFile, _(" あなたは時々頭に血がどっと流れる。\n", " Your blood sometimes rushes to your head.\n"));
-
-               }
-               if (creature_ptr->muta2 & MUT2_DISARM)
-               {
-                       fprintf(OutFile, _(" あなたはよくつまづいて物を落とす。\n", " You occasionally stumble and drop things.\n"));
-
-               }
-       }
-
-       if (creature_ptr->muta3)
-       {
-               if (creature_ptr->muta3 & MUT3_HYPER_STR)
-               {
-                       fprintf(OutFile, _(" あなたは超人的に強い。(腕力+4)\n", " You are superhumanly strong (+4 STR).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_PUNY)
-               {
-                       fprintf(OutFile, _(" あなたは虚弱だ。(腕力-4)\n", " You are puny (-4 STR).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_HYPER_INT)
-               {
-                       fprintf(OutFile, _(" あなたの脳は生体コンピュータだ。(知能&賢さ+4)\n", " Your brain is a living computer (+4 INT/WIS).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_MORONIC)
-               {
-                       fprintf(OutFile, _(" あなたは精神薄弱だ。(知能&賢さ-4)\n", " You are moronic (-4 INT/WIS).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_RESILIENT)
-               {
-                       fprintf(OutFile, _(" あなたの体は弾力性に富んでいる。(耐久+4)\n", " You are very resilient (+4 CON).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_XTRA_FAT)
-               {
-                       fprintf(OutFile, _(" あなたは極端に太っている。(耐久+2,スピード-2)\n", " You are extremely fat (+2 CON, -2 speed).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_ALBINO)
-               {
-                       fprintf(OutFile, _(" あなたはアルビノだ。(耐久-4)\n", " You are albino (-4 CON).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_FLESH_ROT)
-               {
-                       fprintf(OutFile, _(" あなたの肉体は腐敗している。(耐久-2,魅力-1)\n", " Your flesh is rotting (-2 CON, -1 CHR).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_SILLY_VOI)
-               {
-                       fprintf(OutFile, _(" あなたの声は間抜けなキーキー声だ。(魅力-4)\n", " Your voice is a silly squeak (-4 CHR).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_BLANK_FAC)
-               {
-                       fprintf(OutFile, _(" あなたはのっぺらぼうだ。(魅力-1)\n", " Your face is featureless (-1 CHR).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_ILL_NORM)
-               {
-                       fprintf(OutFile, _(" あなたは幻影に覆われている。\n", " Your appearance is masked with illusion.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_XTRA_EYES)
-               {
-                       fprintf(OutFile, _(" あなたは余分に二つの目を持っている。(探索+15)\n", " You have an extra pair of eyes (+15 search).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_MAGIC_RES)
-               {
-                       fprintf(OutFile, _(" あなたは魔法への耐性をもっている。\n", " You are resistant to magic.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_XTRA_NOIS)
-               {
-                       fprintf(OutFile, _(" あなたは変な音を発している。(隠密-3)\n", " You make a lot of strange noise (-3 stealth).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_INFRAVIS)
-               {
-                       fprintf(OutFile, _(" あなたは素晴らしい赤外線視力を持っている。(+3)\n", " You have remarkable infravision (+3).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_XTRA_LEGS)
-               {
-                       fprintf(OutFile, _(" あなたは余分に二本の足が生えている。(加速+3)\n", " You have an extra pair of legs (+3 speed).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_SHORT_LEG)
-               {
-                       fprintf(OutFile, _(" あなたの足は短い突起だ。(加速-3)\n", " Your legs are short stubs (-3 speed).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_ELEC_TOUC)
-               {
-                       fprintf(OutFile, _(" あなたの血管には電流が流れている。\n", " Electricity is running through your veins.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_FIRE_BODY)
-               {
-                       fprintf(OutFile, _(" あなたの体は炎につつまれている。\n", " Your body is enveloped in flames.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_WART_SKIN)
-               {
-                       fprintf(OutFile, _(" あなたの肌はイボに被われている。(魅力-2, AC+5)\n", " Your skin is covered with warts (-2 CHR, +5 AC).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_SCALES)
-               {
-                       fprintf(OutFile, _(" あなたの肌は鱗になっている。(魅力-1, AC+10)\n", " Your skin has turned into scales (-1 CHR, +10 AC).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_IRON_SKIN)
-               {
-                       fprintf(OutFile, _(" あなたの肌は鉄でできている。(器用-1, AC+25)\n", " Your skin is made of steel (-1 DEX, +25 AC).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_WINGS)
-               {
-                       fprintf(OutFile, _(" あなたは羽を持っている。\n", " You have wings.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_FEARLESS)
-               {
-                       fprintf(OutFile, _(" あなたは全く恐怖を感じない。\n", " You are completely fearless.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_REGEN)
-               {
-                       fprintf(OutFile, _(" あなたは急速に回復する。\n", " You are regenerating.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_ESP)
-               {
-                       fprintf(OutFile, _(" あなたはテレパシーを持っている。\n", " You are telepathic.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_LIMBER)
-               {
-                       fprintf(OutFile, _(" あなたの体は非常にしなやかだ。(器用+3)\n", " Your body is very limber (+3 DEX).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_ARTHRITIS)
-               {
-                       fprintf(OutFile, _(" あなたはいつも関節に痛みを感じている。(器用-3)\n", " Your joints ache constantly (-3 DEX).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_VULN_ELEM)
-               {
-                       fprintf(OutFile, _(" あなたは元素の攻撃に弱い。\n", " You are susceptible to damage from the elements.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_MOTION)
-               {
-                       fprintf(OutFile, _(" あなたの動作は正確で力強い。(隠密+1)\n", " Your movements are precise and forceful (+1 STL).\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_GOOD_LUCK)
-               {
-                       fprintf(OutFile, _(" あなたは白いオーラにつつまれている。\n", " There is a white aura surrounding you.\n"));
-
-               }
-               if (creature_ptr->muta3 & MUT3_BAD_LUCK)
-               {
-                       fprintf(OutFile, _(" あなたは黒いオーラにつつまれている。\n", " There is a black aura surrounding you.\n"));
-
-               }
-       }
-}
-
-/*!
- * @brief 突然変異表示コマンドの実装 / List mutations we have...
- * @return なし
- */
-void do_cmd_knowledge_mutations(player_type *creature_ptr)
-{
-       FILE *fff;
-       GAME_TEXT file_name[1024];
-
-       fff = my_fopen_temp(file_name, 1024);
-       if (fff) dump_mutations(creature_ptr, fff);
-       my_fclose(fff);
-
-       show_file(TRUE, file_name, _("突然変異", "Mutations"), 0, 0);
-       fd_kill(file_name);
-}
-
 
 /*!
  * @brief 現在プレイヤー得ている突然変異の数を返す。
@@ -2083,6 +1564,7 @@ int calc_mutant_regenerate_mod(player_type *creature_ptr)
 
 /*!
  * @brief 突然変異のレイシャル効果実装
+ * @param creature_ptr プレーヤーへの参照ポインタ
  * @param power 発動させる突然変異レイシャルのID
  * @return レイシャルを実行した場合TRUE、キャンセルした場合FALSEを返す
  */
@@ -2094,27 +1576,27 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
        switch (power)
        {
                case MUT1_SPIT_ACID:
-                       if (!get_aim_dir(&dir)) return FALSE;
-                       stop_mouth();
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+                       stop_mouth(creature_ptr);
                        msg_print(_("酸を吐きかけた...", "You spit acid..."));
                        fire_ball(creature_ptr, GF_ACID, dir, lvl, 1 + (lvl / 30));
                        break;
 
                case MUT1_BR_FIRE:
-                       if (!get_aim_dir(&dir)) return FALSE;
-                       stop_mouth();
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+                       stop_mouth(creature_ptr);
                        msg_print(_("あなたは火炎のブレスを吐いた...", "You breathe fire..."));
-                       fire_breath(GF_FIRE, dir, lvl * 2, 1 + (lvl / 20));
+                       fire_breath(creature_ptr, GF_FIRE, dir, lvl * 2, 1 + (lvl / 20));
                        break;
 
                case MUT1_HYPN_GAZE:
-                       if (!get_aim_dir(&dir)) return FALSE;
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
                        msg_print(_("あなたの目は幻惑的になった...", "Your eyes look mesmerizing..."));
-                       (void)charm_monster(dir, lvl);
+                       (void)charm_monster(creature_ptr, dir, lvl);
                        break;
 
                case MUT1_TELEKINES:
-                       if (!get_aim_dir(&dir)) return FALSE;
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
                        msg_print(_("集中している...", "You concentrate..."));
                        fetch(creature_ptr, dir, lvl * 10, TRUE);
                        break;
@@ -2125,9 +1607,9 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        break;
 
                case MUT1_MIND_BLST:
-                       if (!get_aim_dir(&dir)) return FALSE;
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
                        msg_print(_("集中している...", "You concentrate..."));
-                       fire_bolt(GF_PSI, dir, damroll(3 + ((lvl - 1) / 5), 3));
+                       fire_bolt(creature_ptr, GF_PSI, dir, damroll(3 + ((lvl - 1) / 5), 3));
                        break;
 
                case MUT1_RADIATION:
@@ -2140,13 +1622,13 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        break;
 
                case MUT1_SMELL_MET:
-                       stop_mouth();
-                       (void)detect_treasure(DETECT_RAD_DEFAULT);
+                       stop_mouth(creature_ptr);
+                       (void)detect_treasure(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case MUT1_SMELL_MON:
-                       stop_mouth();
-                       (void)detect_monsters_normal(DETECT_RAD_DEFAULT);
+                       stop_mouth(creature_ptr);
+                       (void)detect_monsters_normal(creature_ptr, DETECT_RAD_DEFAULT);
                        break;
 
                case MUT1_BLINK:
@@ -2154,28 +1636,28 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        break;
 
                case MUT1_EAT_ROCK:
-                       return eat_lock(creature_ptr);
+                       return eat_rock(creature_ptr);
                        break;
 
                case MUT1_SWAP_POS:
                        project_length = -1;
-                       if (!get_aim_dir(&dir))
+                       if (!get_aim_dir(creature_ptr, &dir))
                        {
                                project_length = 0;
                                return FALSE;
                        }
-                       (void)teleport_swap(dir);
+                       (void)teleport_swap(creature_ptr, dir);
                        project_length = 0;
                        break;
 
                case MUT1_SHRIEK:
-                       stop_mouth();
+                       stop_mouth(creature_ptr);
                        (void)fire_ball(creature_ptr, GF_SOUND, 0, 2 * lvl, 8);
-                       (void)aggravate_monsters(0);
+                       (void)aggravate_monsters(creature_ptr, 0);
                        break;
 
                case MUT1_ILLUMINE:
-                       (void)lite_area(damroll(2, (lvl / 2)), (lvl / 10) + 1);
+                       (void)lite_area(creature_ptr, damroll(2, (lvl / 2)), (lvl / 10) + 1);
                        break;
 
                case MUT1_DET_CURSE:
@@ -2204,7 +1686,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        break;
 
                case MUT1_MIDAS_TCH:
-                       if (!alchemy()) return FALSE;
+                       if (!alchemy(creature_ptr)) return FALSE;
                        break;
 
                /* Summon pet molds around the player */
@@ -2213,7 +1695,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                                DIRECTION i;
                                for (i = 0; i < 8; i++)
                                {
-                                       summon_specific(-1, creature_ptr->y, creature_ptr->x, lvl, SUMMON_MOLD, PM_FORCE_PET);
+                                       summon_specific(creature_ptr, -1, creature_ptr->y, creature_ptr->x, lvl, SUMMON_MOLD, PM_FORCE_PET);
                                }
                        }
                        break;
@@ -2269,19 +1751,19 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        creature_ptr->current_floor_ptr->num_repro += MAX_REPRO;
                        break;
 
-               case MUT1_PANIC_HIT:
-                       if(!panic_hit()) return FALSE;
+               case MUT1_HIT_AND_AWAY:
+                       if(!hit_and_away(creature_ptr)) return FALSE;
                        break;
 
                case MUT1_DAZZLE:
-                       stun_monsters(lvl * 4);
-                       confuse_monsters(lvl * 4);
-                       turn_monsters(lvl * 4);
+                       stun_monsters(creature_ptr, lvl * 4);
+                       confuse_monsters(creature_ptr, lvl * 4);
+                       turn_monsters(creature_ptr, lvl * 4);
                        break;
 
                case MUT1_LASER_EYE:
-                       if (!get_aim_dir(&dir)) return FALSE;
-                       fire_beam(GF_LITE, dir, 2 * lvl);
+                       if (!get_aim_dir(creature_ptr, &dir)) return FALSE;
+                       fire_beam(creature_ptr, GF_LITE, dir, 2 * lvl);
                        break;
 
                case MUT1_RECALL:
@@ -2294,7 +1776,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                                grid_type *g_ptr;
                                monster_type *m_ptr;
                                monster_race *r_ptr;
-                               if (!get_direction(&dir, FALSE, FALSE)) return FALSE;
+                               if (!get_direction(creature_ptr, &dir, FALSE, FALSE)) return FALSE;
                                y = creature_ptr->y + ddy[dir];
                                x = creature_ptr->x + ddx[dir];
                                g_ptr = &creature_ptr->current_floor_ptr->grid_array[y][x];
@@ -2319,11 +1801,11 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                                        if (record_named_pet && is_pet(m_ptr) && m_ptr->nickname)
                                        {
                                                GAME_TEXT m_name[MAX_NLEN];
-                                               monster_desc(m_name, m_ptr, MD_INDEF_VISIBLE);
-                                               exe_write_diary(creature_ptr, NIKKI_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name);
+                                               monster_desc(creature_ptr, m_name, m_ptr, MD_INDEF_VISIBLE);
+                                               exe_write_diary(creature_ptr, DIARY_NAMED_PET, RECORD_NAMED_PET_GENOCIDE, m_name);
                                        }
                                        /* Delete the monster, rather than killing it. */
-                                       delete_monster_idx(g_ptr->m_idx);
+                                       delete_monster_idx(creature_ptr, g_ptr->m_idx);
                                        msg_print(_("その邪悪なモンスターは硫黄臭い煙とともに消え去った!", "The evil creature vanishes in a puff of sulfurous smoke!"));
 
                                }
@@ -2339,7 +1821,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
                        {
                                POSITION x, y;
                                grid_type *g_ptr;
-                               if (!get_direction(&dir, FALSE, FALSE)) return FALSE;
+                               if (!get_direction(creature_ptr, &dir, FALSE, FALSE)) return FALSE;
                                y = creature_ptr->y + ddy[dir];
                                x = creature_ptr->x + ddx[dir];
                                g_ptr = &creature_ptr->current_floor_ptr->grid_array[y][x];
@@ -2349,7 +1831,7 @@ bool exe_mutation_power(player_type *creature_ptr, int power)
 
                                        break;
                                }
-                               fire_bolt(GF_COLD, dir, 2 * lvl);
+                               fire_bolt(creature_ptr, GF_COLD, dir, 2 * lvl);
                        }
                        break;