/* Elemental resistances */
if (r_ptr->flags4 & RF4_BR_ACID)
{
- if (!p_ptr->immune_acid && (p_ptr->oppose_acid || music_singing(MUSIC_RESIST))) return (TRUE);
+ if (!p_ptr->immune_acid && (p_ptr->oppose_acid || music_singing(p_ptr, MUSIC_RESIST))) return (TRUE);
if (p_ptr->special_defense & DEFENSE_ACID) return (TRUE);
}
{
if (!((p_ptr->prace == RACE_DEMON) && p_ptr->lev > 44))
{
- if (!p_ptr->immune_fire && (p_ptr->oppose_fire || music_singing(MUSIC_RESIST))) return (TRUE);
+ if (!p_ptr->immune_fire && (p_ptr->oppose_fire || music_singing(p_ptr, MUSIC_RESIST))) return (TRUE);
if (p_ptr->special_defense & DEFENSE_FIRE) return (TRUE);
}
}
if (r_ptr->flags4 & RF4_BR_ELEC)
{
- if (!p_ptr->immune_elec && (p_ptr->oppose_elec || music_singing(MUSIC_RESIST))) return (TRUE);
+ if (!p_ptr->immune_elec && (p_ptr->oppose_elec || music_singing(p_ptr, MUSIC_RESIST))) return (TRUE);
if (p_ptr->special_defense & DEFENSE_ELEC) return (TRUE);
}
if (r_ptr->flags4 & RF4_BR_COLD)
{
- if (!p_ptr->immune_cold && (p_ptr->oppose_cold || music_singing(MUSIC_RESIST))) return (TRUE);
+ if (!p_ptr->immune_cold && (p_ptr->oppose_cold || music_singing(p_ptr, MUSIC_RESIST))) return (TRUE);
if (p_ptr->special_defense & DEFENSE_COLD) return (TRUE);
}
{
if (!((p_ptr->pclass == CLASS_NINJA) && p_ptr->lev > 44))
{
- if (p_ptr->oppose_pois || music_singing(MUSIC_RESIST)) return (TRUE);
+ if (p_ptr->oppose_pois || music_singing(p_ptr, MUSIC_RESIST)) return (TRUE);
if (p_ptr->special_defense & DEFENSE_POIS) return (TRUE);
}
}
/* Shut */
else
{
- if (creature_ptr->fast && !creature_ptr->lightspeed && !music_singing(MUSIC_SPEED) && !music_singing(MUSIC_SHERO))
+ if (creature_ptr->fast && !creature_ptr->lightspeed && !music_singing(p_ptr, MUSIC_SPEED) && !music_singing(p_ptr, MUSIC_SHERO))
{
msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->blessed && !music_singing(MUSIC_BLESS))
+ if (creature_ptr->blessed && !music_singing(p_ptr, MUSIC_BLESS))
{
msg_print(_("高潔な気分が消え失せた。", "The prayer has expired."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->hero && !music_singing(MUSIC_HERO) && !music_singing(MUSIC_SHERO))
+ if (creature_ptr->hero && !music_singing(p_ptr, MUSIC_HERO) && !music_singing(p_ptr, MUSIC_SHERO))
{
msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->invuln && !music_singing(MUSIC_INVULN))
+ if (creature_ptr->invuln && !music_singing(p_ptr, MUSIC_INVULN))
{
msg_print(_("無敵ではなくなった。", "The invulnerability wears off."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->tim_esp && !music_singing(MUSIC_MIND))
+ if (creature_ptr->tim_esp && !music_singing(p_ptr, MUSIC_MIND))
{
msg_print(_("意識は元に戻った。", "Your consciousness contracts again."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->tim_stealth && !music_singing(MUSIC_STEALTH))
+ if (creature_ptr->tim_stealth && !music_singing(p_ptr, MUSIC_STEALTH))
{
msg_print(_("足音が大きくなった。", "You no longer walk silently."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->oppose_acid && !music_singing(MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
+ if (creature_ptr->oppose_acid && !music_singing(p_ptr, MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
{
msg_print(_("酸への耐性が薄れた気がする。", "You feel less resistant to acid."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->oppose_elec && !music_singing(MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
+ if (creature_ptr->oppose_elec && !music_singing(p_ptr, MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
{
msg_print(_("電撃への耐性が薄れた気がする。", "You feel less resistant to electricity."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->oppose_fire && !music_singing(MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
+ if (creature_ptr->oppose_fire && !music_singing(p_ptr, MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
{
msg_print(_("火への耐性が薄れた気がする。", "You feel less resistant to fire."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->oppose_cold && !music_singing(MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
+ if (creature_ptr->oppose_cold && !music_singing(p_ptr, MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
{
msg_print(_("冷気への耐性が薄れた気がする。", "You feel less resistant to cold."));
notice = TRUE;
/* Shut */
else
{
- if (creature_ptr->oppose_pois && !music_singing(MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
+ if (creature_ptr->oppose_pois && !music_singing(p_ptr, MUSIC_RESIST) && !(creature_ptr->special_defense & KATA_MUSOU))
{
msg_print(_("毒への耐性が薄れた気がする。", "You feel less resistant to poison."));
notice = TRUE;
if (mpe_mode & MPE_ENERGY_USE)
{
- if (music_singing(MUSIC_WALL))
+ if (music_singing(p_ptr, MUSIC_WALL))
{
(void)project(0, 0, p_ptr->y, p_ptr->x, (60 + p_ptr->lev), GF_DISINTEGRATE,
PROJECT_KILL | PROJECT_ITEM, -1);
new_speed += (creature_ptr->lev) / 10 + 5;
}
- if (music_singing(MUSIC_WALL))
+ if (music_singing(p_ptr, MUSIC_WALL))
{
creature_ptr->kill_wall = TRUE;
}
/* Temporary flags macro */
-#define IS_FAST() (p_ptr->fast || music_singing(MUSIC_SPEED) || music_singing(MUSIC_SHERO))
-#define IS_INVULN() (p_ptr->invuln || music_singing(MUSIC_INVULN))
-#define IS_HERO() (p_ptr->hero || music_singing(MUSIC_HERO) || music_singing(MUSIC_SHERO))
-#define IS_BLESSED() (p_ptr->blessed || music_singing(MUSIC_BLESS) || hex_spelling(HEX_BLESS))
-#define IS_OPPOSE_ACID() (p_ptr->oppose_acid || music_singing(MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
-#define IS_OPPOSE_ELEC() (p_ptr->oppose_elec || music_singing(MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
-#define IS_OPPOSE_FIRE() (p_ptr->oppose_fire || music_singing(MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
-#define IS_OPPOSE_COLD() (p_ptr->oppose_cold || music_singing(MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
-#define IS_OPPOSE_POIS() (p_ptr->oppose_pois || music_singing(MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
-#define IS_TIM_ESP() (p_ptr->tim_esp || music_singing(MUSIC_MIND) || (p_ptr->concent >= CONCENT_TELE_THRESHOLD))
-#define IS_TIM_STEALTH() (p_ptr->tim_stealth || music_singing(MUSIC_STEALTH))
+#define IS_FAST() (p_ptr->fast || music_singing(p_ptr, MUSIC_SPEED) || music_singing(p_ptr, MUSIC_SHERO))
+#define IS_INVULN() (p_ptr->invuln || music_singing(p_ptr, MUSIC_INVULN))
+#define IS_HERO() (p_ptr->hero || music_singing(p_ptr, MUSIC_HERO) || music_singing(p_ptr, MUSIC_SHERO))
+#define IS_BLESSED() (p_ptr->blessed || music_singing(p_ptr, MUSIC_BLESS) || hex_spelling(HEX_BLESS))
+#define IS_OPPOSE_ACID() (p_ptr->oppose_acid || music_singing(p_ptr, MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
+#define IS_OPPOSE_ELEC() (p_ptr->oppose_elec || music_singing(p_ptr, MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
+#define IS_OPPOSE_FIRE() (p_ptr->oppose_fire || music_singing(p_ptr, MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
+#define IS_OPPOSE_COLD() (p_ptr->oppose_cold || music_singing(p_ptr, MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
+#define IS_OPPOSE_POIS() (p_ptr->oppose_pois || music_singing(p_ptr, MUSIC_RESIST) || (p_ptr->special_defense & KATA_MUSOU))
+#define IS_TIM_ESP() (p_ptr->tim_esp || music_singing(p_ptr, MUSIC_MIND) || (p_ptr->concent >= CONCENT_TELE_THRESHOLD))
+#define IS_TIM_STEALTH() (p_ptr->tim_stealth || music_singing(p_ptr, MUSIC_STEALTH))
#define P_PTR_KI (p_ptr->magic_num1[0])
#define INTERUPTING_SONG_EFFECT(P_PTR) ((P_PTR)->magic_num1[1])
#define SINGING_COUNT(P_PTR) ((P_PTR)->magic_num1[2])
#define SINGING_SONG_ID(P_PTR) ((P_PTR)->magic_num2[0])
-#define music_singing(X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == (X)))
+#define music_singing(p_ptr, X) ((p_ptr->pclass == CLASS_BARD) && (p_ptr->magic_num1[0] == (X)))
#define music_singing_any(CREATURE_PTR) (((CREATURE_PTR)->pclass == CLASS_BARD) && (CREATURE_PTR)->magic_num1[0])
extern concptr do_music_spell(SPELL_IDX spell, BIT_FLAGS mode);
if (known) p_ptr->dtrap = TRUE;
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
if (detect)
{
msg_print(_("トラップの存在を感じとった!", "You sense the presence of traps!"));
{
bool detect = detect_feat_flag(range, FF_DOOR, TRUE);
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
if (detect)
{
msg_print(_("ドアの存在を感じとった!", "You sense the presence of doors!"));
{
bool detect = detect_feat_flag(range, FF_STAIRS, TRUE);
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
if (detect)
{
msg_print(_("階段の存在を感じとった!", "You sense the presence of stairs!"));
{
bool detect = detect_feat_flag(range, FF_HAS_GOLD, TRUE);
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
if (detect)
{
msg_print(_("埋蔵された財宝の存在を感じとった!", "You sense the presence of buried treasure!"));
}
}
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
if (detect)
{
msg_print(_("財宝の存在を感じとった!", "You sense the presence of treasure!"));
}
}
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
if (detect)
{
msg_print(_("アイテムの存在を感じとった!", "You sense the presence of objects!"));
}
}
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
if (flag)
{
msg_print(_("モンスターの存在を感じとった!", "You sense the presence of monsters!"));
}
}
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
if (flag)
{
msg_print(_("透明な生物の存在を感じとった!", "You sense the presence of invisible creatures!"));
}
}
- if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
+ if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
if (flag)
{
msg_print(_("モンスターの存在を感じとった!", "You sense the presence of monsters!"));