OSDN Git Service

レイシャルパワーに関する修正.
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 23 Jul 2003 17:21:13 +0000 (17:21 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 23 Jul 2003 17:21:13 +0000 (17:21 +0000)
* レイシャルパワーに失敗した際のflush_failureが他の場所と違ってメッ
  セージの後にあったので修正.
* 吟遊詩人で歌を止める際にenergy_use = 10があるが実際はreturn FALSEで
  無効になっていたため, 歌や一時停止中の歌を止めた場合は本当に10だけ
  エナジーを使うように修正.

src/racial.c

index 6308d93..611ae5e 100644 (file)
@@ -813,12 +813,12 @@ static int racial_aux(power_desc_type *pd_ptr)
                return 1;
        }
 
+       if (flush_failure) flush();
 #ifdef JP
        msg_print("½¼Ê¬¤Ë½¸Ãæ¤Ç¤­¤Ê¤«¤Ã¤¿¡£");
 #else
        msg_print("You've failed to concentrate hard enough.");
 #endif
-       if (flush_failure) flush();
 
        return -1;
 }
@@ -923,16 +923,9 @@ static bool cmd_racial_power_aux(s32b command)
                }
                case CLASS_PALADIN:
                {
-                       if (is_good_realm(p_ptr->realm1))
-                       {
-                               if (!get_aim_dir(&dir)) return FALSE;
-                               fire_beam(GF_HOLY_FIRE, dir, plev * 3);
-                       }
-                       else
-                       {
-                               if (!get_aim_dir(&dir)) return FALSE;
-                               fire_beam(GF_HELL_FIRE, dir, plev * 3);
-                       }
+                       if (!get_aim_dir(&dir)) return FALSE;
+                       fire_beam(is_good_realm(p_ptr->realm1) ? GF_HOLY_FIRE : GF_HELL_FIRE,
+                                 dir, plev * 3);
                        break;
                }
                case CLASS_WARRIOR_MAGE:
@@ -1106,13 +1099,12 @@ static bool cmd_racial_power_aux(s32b command)
                        {
                                if (!get_aim_dir(&dir)) return FALSE;
                                (void)fire_ball_hide(GF_CONTROL_LIVING, dir, p_ptr->lev, 0);
-                               break;
                        }
                        else if (command == -4)
                        {
                                project_hack(GF_CONTROL_LIVING, p_ptr->lev);
-                               break;
                        }
+                       break;
                }
                case CLASS_ARCHER:
                {
@@ -1126,9 +1118,12 @@ static bool cmd_racial_power_aux(s32b command)
                }
                case CLASS_BARD:
                {
+                       /* Singing is already stopped */
+                       if (!p_ptr->magic_num1[0] && !p_ptr->magic_num1[1]) return FALSE;
+
                        stop_singing();
                        energy_use = 10;
-                       return FALSE;
+                       break;
                }
                case CLASS_RED_MAGE:
                {