* Line 2 -- forbid object terrains
* Line 3 -- forbid normal objects
*/
-#define cave_clean_bold(Y,X) \
+#define cave_clean_bold(F,Y,X) \
(cave_have_flag_bold((Y), (X), FF_FLOOR) && \
- !(p_ptr->current_floor_ptr->grid_array[Y][X].info & CAVE_OBJECT) && \
- (p_ptr->current_floor_ptr->grid_array[Y][X].o_idx == 0))
+ !((F)->grid_array[Y][X].info & CAVE_OBJECT) && \
+ ((F)->grid_array[Y][X].o_idx == 0))
/*
* Line 3 -- forbid the player
*/
#define cave_naked_bold(Y,X) \
- (cave_clean_bold(Y,X) && \
+ (cave_clean_bold(p_ptr->current_floor_ptr, Y,X) && \
!(p_ptr->current_floor_ptr->grid_array[Y][X].m_idx) && \
!player_bold(p_ptr, Y,X))
*/
bool warding_glyph(player_type *caster_ptr)
{
- if (!cave_clean_bold(caster_ptr->y, caster_ptr->x))
+ if (!cave_clean_bold(p_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x))
{
msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
return FALSE;
*/
bool explosive_rune(floor_type *floor_ptr, POSITION y, POSITION x)
{
- if (!cave_clean_bold(y, x))
+ if (!cave_clean_bold(p_ptr->current_floor_ptr, y, x))
{
msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
return FALSE;
*/
bool place_mirror(player_type *caster_ptr)
{
- if (!cave_clean_bold(caster_ptr->y, caster_ptr->x))
+ if (!cave_clean_bold(p_ptr->current_floor_ptr, caster_ptr->y, caster_ptr->x))
{
msg_print(_("床上のアイテムが呪文を跳ね返した。", "The object resists the spell."));
return FALSE;
if (!in_bounds(p_ptr->current_floor_ptr, y, x)) return;
/* Require empty, clean, floor grid */
- if (!cave_clean_bold(y, x)) return;
+ if (!cave_clean_bold(p_ptr->current_floor_ptr, y, x)) return;
/* Place an invisible trap */
g_ptr->mimic = g_ptr->feat;