if (!cave_empty_bold(ny, nx)) continue;
/* Hack -- no teleport onto glyph of warding */
- if (cave[ny][nx].feat == FEAT_GLYPH) continue;
- if (cave[ny][nx].feat == FEAT_MINOR_GLYPH) continue;
+ if (is_glyph_grid(&cave[ny][nx])) continue;
+ if (is_explosive_rune_grid(&cave[ny][nx])) continue;
/* ...nor onto the Pattern */
if ((cave[ny][nx].feat >= FEAT_PATTERN_START) &&
if (!cave_empty_bold(ny, nx)) continue;
/* Hack -- no teleport onto glyph of warding */
- if (cave[ny][nx].feat == FEAT_GLYPH) continue;
- if (cave[ny][nx].feat == FEAT_MINOR_GLYPH) continue;
+ if (is_glyph_grid(&cave[ny][nx])) continue;
+ if (is_explosive_rune_grid(&cave[ny][nx])) continue;
/* ...nor onto the Pattern */
if ((cave[ny][nx].feat >= FEAT_PATTERN_START) &&
}
/* Create a glyph */
- cave_set_feat(py, px, FEAT_GLYPH);
+ cave[py][px].info |= CAVE_OBJECT;
+ cave[py][px].mimic = FEAT_GLYPH;
+
+ /* Notice */
+ note_spot(py, px);
+
+ /* Redraw */
+ lite_spot(py, px);
return TRUE;
}
}
/* Create a mirror */
- cave[py][px].info |= CAVE_IN_MIRROR;
+ cave[py][px].info |= CAVE_OBJECT;
+ cave[py][px].mimic = FEAT_MIRROR;
/* Turn on the light */
cave[py][px].info |= CAVE_GLOW;
}
/* Create a glyph */
- cave_set_feat(py, px, FEAT_MINOR_GLYPH);
+ cave[py][px].info |= CAVE_OBJECT;
+ cave[py][px].mimic = FEAT_MINOR_GLYPH;
+
+ /* Notice */
+ note_spot(py, px);
+
+ /* Redraw */
+ lite_spot(py, px);
return TRUE;
}