OSDN Git Service

サーペントに乗馬できる複合バグ(1)+(2)+(3)修正。
[hengband/hengband.git] / src / mutation.c
index 1d34866..76b13c8 100644 (file)
@@ -1021,76 +1021,82 @@ msg_print("
        {
                chg_virtue(V_CHANCE, 1);
 
-               if (p_ptr->prace == RACE_VAMPIRE &&
-                 !(p_ptr->muta1 & MUT1_HYPN_GAZE) &&
-                  (randint1(10) < 7))
-               {
-                       muta_class = &(p_ptr->muta1);
-                       muta_which = MUT1_HYPN_GAZE;
+               /*
+                 some races are apt to gain specified mutations
+                 This should be allowed only if "choose_mut" is 0.
+                                                       --- henkma
+               */
+               if(!choose_mut){
+                       if (p_ptr->prace == RACE_VAMPIRE &&
+                         !(p_ptr->muta1 & MUT1_HYPN_GAZE) &&
+                          (randint1(10) < 7))
+                       {
+                               muta_class = &(p_ptr->muta1);
+                               muta_which = MUT1_HYPN_GAZE;
 #ifdef JP
 muta_desc = "´ã¤¬¸¸ÏÇŪ¤Ë¤Ê¤Ã¤¿...";
 #else
-                       muta_desc = "Your eyes look mesmerizing...";
+                               muta_desc = "Your eyes look mesmerizing...";
 #endif
 
-               }
+                       }
 
-               else if (p_ptr->prace == RACE_IMP &&
-                       !(p_ptr->muta2 & MUT2_HORNS) &&
-                       (randint1(10) < 7))
-               {
-                       muta_class = &(p_ptr->muta2);
-                       muta_which = MUT2_HORNS;
+                       else if (p_ptr->prace == RACE_IMP &&
+                                !(p_ptr->muta2 & MUT2_HORNS) &&
+                                (randint1(10) < 7))
+                         {
+                               muta_class = &(p_ptr->muta2);
+                               muta_which = MUT2_HORNS;
 #ifdef JP
 muta_desc = "³Ñ¤¬³Û¤«¤éÀ¸¤¨¤Æ¤­¤¿¡ª";
 #else
-                       muta_desc = "Horns pop forth into your forehead!";
+                               muta_desc = "Horns pop forth into your forehead!";
 #endif
 
-               }
+                       }
 
-               else if (p_ptr->prace == RACE_YEEK &&
-                       !(p_ptr->muta1 & MUT1_SHRIEK) &&
-                       (randint1(10) < 7))
-               {
-                       muta_class = &(p_ptr->muta1);
-                       muta_which = MUT1_SHRIEK;
+                       else if (p_ptr->prace == RACE_YEEK &&
+                               !(p_ptr->muta1 & MUT1_SHRIEK) &&
+                               (randint1(10) < 7))
+                       {
+                               muta_class = &(p_ptr->muta1);
+                               muta_which = MUT1_SHRIEK;
 #ifdef JP
 muta_desc = "À¼¼Á¤¬¤«¤Ê¤ê¶¯¤¯¤Ê¤Ã¤¿¡£";
 #else
-                       muta_desc = "Your vocal cords get much tougher.";
+                               muta_desc = "Your vocal cords get much tougher.";
 #endif
 
-               }
+                       }
 
-               else if (p_ptr->prace == RACE_BEASTMAN &&
-                       !(p_ptr->muta1 & MUT1_POLYMORPH) &&
-                       (randint1(10) < 2))
-               {
-                       muta_class = &(p_ptr->muta1);
-                       muta_which = MUT1_POLYMORPH;
+                       else if (p_ptr->prace == RACE_BEASTMAN &&
+                               !(p_ptr->muta1 & MUT1_POLYMORPH) &&
+                               (randint1(10) < 2))
+                       {
+                               muta_class = &(p_ptr->muta1);
+                               muta_which = MUT1_POLYMORPH;
 #ifdef JP
 muta_desc = "¤¢¤Ê¤¿¤ÎÆùÂΤÏÊѲ½¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡¢";
 #else
-                       muta_desc = "Your body seems mutable.";
+                               muta_desc = "Your body seems mutable.";
 #endif
 
-               }
+                       }
 
-               else if (p_ptr->prace == RACE_MIND_FLAYER &&
-                       !(p_ptr->muta2 & MUT2_TENTACLES) &&
-                       (randint1(10) < 7))
-               {
-                       muta_class = &(p_ptr->muta2);
-                       muta_which = MUT2_TENTACLES;
+                       else if (p_ptr->prace == RACE_MIND_FLAYER &&
+                               !(p_ptr->muta2 & MUT2_TENTACLES) &&
+                               (randint1(10) < 7))
+                       {
+                               muta_class = &(p_ptr->muta2);
+                               muta_which = MUT2_TENTACLES;
 #ifdef JP
 muta_desc = "¼Ù°­¤Ê¿¨¼ê¤¬¸ý¤Î¼þ¤ê¤ËÀ¸¤¨¤¿¡£";
 #else
-                       muta_desc = "Evil-looking tentacles sprout from your mouth.";
+                               muta_desc = "Evil-looking tentacles sprout from your mouth.";
 #endif
 
+                       }
                }
-
 #ifdef JP
 msg_print("ÆÍÁ³ÊÑ°Û¤·¤¿¡ª");
 #else
@@ -3254,8 +3260,8 @@ int count_bits(u32b x)
 static int count_mutations(void)
 {
        return (count_bits(p_ptr->muta1) +
-               count_bits(p_ptr->muta2) +
-               count_bits(p_ptr->muta3));
+               count_bits(p_ptr->muta2) +
+               count_bits(p_ptr->muta3));
 }
 
 
@@ -3660,7 +3666,7 @@ msg_print("
                                int i;
                                for (i = 0; i < 8; i++)
                                {
-                                       summon_specific(-1, py, px, lvl, SUMMON_BIZARRE1, FALSE, TRUE, TRUE, FALSE, FALSE);
+                                       summon_specific(-1, py, px, lvl, SUMMON_BIZARRE1, PM_FORCE_PET);
                                }
                        }
                        break;