case MS_DISPEL:
{
monster_type *m_ptr;
+ bool need_mproc_remove = FALSE;
char m_name[80];
if (!target_set(TARGET_KILL)) return FALSE;
if (m_ptr->invulner)
{
m_ptr->invulner = 0;
+ need_mproc_remove = TRUE;
if (m_ptr->ml)
{
#ifdef JP
if (m_ptr->fast)
{
m_ptr->fast = 0;
+ need_mproc_remove = TRUE;
#ifdef JP
if (m_ptr->ml) msg_format("%s¤Ï¤â¤¦²Ã®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
#else
if (m_ptr->slow)
{
m_ptr->slow = 0;
+ need_mproc_remove = TRUE;
#ifdef JP
if (m_ptr->ml) msg_format("%s¤Ï¤â¤¦¸ºÂ®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
#else
#endif
}
+ if (need_mproc_remove && !need_mproc(m_ptr)) mproc_remove(m_ptr->mproc_idx);
break;
}
case MS_ROCKET: