The problem is in the following code in grid_data_as_text():
When hallucinating, map_info sets g->m_idx to 1, so the "is_mimicking" check is misplaced. It should be:
Code:
/* If there's a monster */ if (g->m_idx > 0 && !is_mimicking(g->m_idx)) { if (g->hallucinate) { /* Just pick a random monster to display. */ hallucinatory_monster(&a, &c); } else { ...
Code:
/* If there's a monster */ if (g->m_idx > 0) { if (g->hallucinate) { /* Just pick a random monster to display. */ hallucinatory_monster(&a, &c); } else if (!is_mimicking(g->m_idx)) { ...
Comment