cave_type *c_ptr = &cave[y][x];
feature_type *f_ptr = &f_info[feat];
+ if (is_mirror_grid(c_ptr) && (d_info[dungeon_type].flags1 & DF1_DARKNESS))
+ {
+ c_ptr->info &= ~(CAVE_GLOW);
+ if (!view_torch_grids) c_ptr->info &= ~(CAVE_MARK);
+ }
+
/* Clear mimic type */
c_ptr->mimic = 0;
/* Disintegration balls explosions are stopped by perma-walls */
if (!in_disintegration_range(by, bx, y, x)) return FALSE;
- /* Permanent walls and artifacts don't get effect */
- /* But not protect monsters and other objects */
- if (!cave_valid_bold(y, x)) return TRUE;
-
- /* Destroy mirror/glyph */
- remove_mirror(y, x);
+ /* Destroy mirror */
+ if (is_mirror_grid(&cave[y][x])) remove_mirror(y, x);
f_ptr = &f_info[cave[y][x].feat];
- if (have_flag(f_ptr->flags, FF_HURT_DISI))
+ /* Permanent features don't get effect */
+ /* But not protect monsters and other objects */
+ if (have_flag(f_ptr->flags, FF_HURT_DISI) && !have_flag(f_ptr->flags, FF_PERMANENT))
{
cave_alter_feat(y, x, FF_HURT_DISI);