if (p_ptr->health_who == m_idx) p_ptr->redraw |= (PR_HEALTH);
if (p_ptr->riding == m_idx) p_ptr->redraw |= (PR_UHEALTH);
- /* Wake it up */
- m_ptr->csleep = 0;
-
- if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
+ if (m_ptr->csleep)
+ {
+ /* Wake it up */
+ m_ptr->csleep = 0;
+ if (!need_mproc(m_ptr)) mproc_remove(m_ptr->mproc_idx);
+ if (r_ptr->flags7 & RF7_HAS_LD_MASK) p_ptr->update |= (PU_MON_LITE);
+ }
/* Hack - Cancel any special player stealth magics. -LM- */
if (p_ptr->special_defense & NINJA_S_STEALTH)
{
/* Cure fear */
m_ptr->monfear = 0;
+ if (!need_mproc(m_ptr)) mproc_remove(m_ptr->mproc_idx);
/* No more fear */
(*fear) = FALSE;
/* Hack -- note fear */
(*fear) = TRUE;
+ if (!m_ptr->mproc_idx) mproc_add(m_idx);
+
/* XXX XXX XXX Hack -- Add some timed fear */
m_ptr->monfear = (randint1(10) +
(((dam >= m_ptr->hp) && (percentage > 7)) ?