int ident, lev;
object_type *o_ptr;
+ if (music_singing_any()) stop_singing();
+
/* Get the item (in the pack) */
if (item >= 0)
{
return;
}
- if((p_ptr->pclass == CLASS_BARD) && p_ptr->magic_num1[0])
- {
- stop_singing();
- }
+ if (music_singing_any()) stop_singing();
/* Get the item (in the pack) */
if (item >= 0)
return;
}
- if((p_ptr->pclass == CLASS_BARD) && p_ptr->magic_num1[0])
- {
- stop_singing();
- }
+ if (music_singing_any()) stop_singing();
/* Not identified yet */
ident = FALSE;
case ART_BOROMIR:
{
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¤¢¤Ê¤¿¤ÏÎ϶¯¤¤ÆÍÉ÷¤ò¿á¤ÌĤ餷¤¿¡£¼þ°Ï¤ÎŨ¤¬¿Ì¤¨¾å¤Ã¤Æ¤¤¤ë!");
#else
/* Get a direction for breathing (or abort) */
if (!get_aim_dir(&dir)) return;
+ if (music_singing_any()) stop_singing();
+
/* Branch on the sub-type */
switch (o_ptr->sval)
{
else if (o_ptr->tval == TV_WHISTLE)
{
+ if (music_singing_any()) stop_singing();
+
#if 0
if (object_is_cursed(o_ptr))
{
#define MUSIC_DETECT 101
-#define music_singing(X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == X))
+#define music_singing(X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == (X)))
+#define music_singing_any() ((p_ptr->pclass == CLASS_BARD) && p_ptr->magic_num1[0])
#define HISSATSU_NONE 0
#define HISSATSU_2 1
msg_print(NULL);
set_food(PY_FOOD_WEAK);
+ if (music_singing_any()) stop_singing();
}
if ((p_ptr->muta2 & MUT2_WALK_SHAD) &&
}
}
}
- if ((p_ptr->pclass == CLASS_BARD) && p_ptr->magic_num1[0]) p_ptr->action = ACTION_SING;
+ if (music_singing_any()) p_ptr->action = ACTION_SING;
if (z_older_than(11, 0, 7))
{
#else
msg_print("Your hands stop glowing.");
#endif
-
}
- if ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0]))
+ if (music_singing_any())
{
p_ptr->magic_num1[1] = p_ptr->magic_num1[0];
p_ptr->magic_num1[0] = 0;
{
case MUT1_SPIT_ACID:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("»À¤òÅǤ¤«¤±¤¿...");
#else
case MUT1_BR_FIRE:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¤¢¤Ê¤¿¤Ï²Ð±ê¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿...");
#else
x = px + ddx[dir];
c_ptr = &cave[y][x];
+ if (music_singing_any()) stop_singing();
+
if (!(c_ptr->m_idx))
{
#ifdef JP
break;
case MUT1_SMELL_MET:
+ if (music_singing_any()) stop_singing();
(void)detect_treasure(DETECT_RAD_DEFAULT);
break;
case MUT1_SMELL_MON:
+ if (music_singing_any()) stop_singing();
(void)detect_monsters_normal(DETECT_RAD_DEFAULT);
break;
c_ptr = &cave[y][x];
f_ptr = &f_info[c_ptr->feat];
+ if (music_singing_any()) stop_singing();
+
if (!have_flag(f_info[get_feat_mimic(c_ptr)].flags, FF_HURT_ROCK))
{
#ifdef JP
break;
case MUT1_SHRIEK:
+ if (music_singing_any()) stop_singing();
(void)fire_ball(GF_SOUND, 0, 2 * lvl, 8);
(void)aggravate_monsters(0);
break;
{
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£",((type == GF_NETHER) ? "ÃϹö" : "²Ð±ê"));
#else
x = px + ddx[dir];
c_ptr = &cave[y][x];
+ if (music_singing_any()) stop_singing();
+
if (!c_ptr->m_idx)
{
#ifdef JP
case RACE_YEEK:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¿È¤ÎÌÓ¤â¤è¤À¤Ä¶«¤ÓÀ¼¤ò¾å¤²¤¿¡ª");
#else
case RACE_KLACKON:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("»À¤òÅǤ¤¤¿¡£");
#else
}
}
+ if (music_singing_any()) stop_singing();
+
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", Type_desc);
#else
x = px + ddx[dir];
c_ptr = &cave[y][x];
+ if (music_singing_any()) stop_singing();
+
if (!c_ptr->m_idx)
{
#ifdef JP
case RACE_SPECTRE:
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_print("¤¢¤Ê¤¿¤Ï¤ª¤É¤í¤ª¤É¤í¤·¤¤¶«¤ÓÀ¼¤ò¤¢¤²¤¿¡ª");
#else
{
int type = (one_in_(2) ? GF_NETHER : GF_FIRE);
if (!get_aim_dir(&dir)) return FALSE;
+ if (music_singing_any()) stop_singing();
#ifdef JP
msg_format("¤¢¤Ê¤¿¤Ï%s¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£",((type == GF_NETHER) ? "ÃϹö" : "²Ð±ê"));
#else