x = randint0(MAX_WID);
/* Must be an empty floor. */
- if (!cave_empty_bold(y, x)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, y, x)) continue;
/* Place the object there. */
(void)drop_near(q_ptr, -1, y, x);
if (!player_can_enter(shooter_ptr->current_floor_ptr->grid_array[ny][nx].feat, 0)) break;
/* Stopped by monsters */
- if (!cave_empty_bold(ny, nx)) break;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, ny, nx)) break;
shooter_ptr->current_floor_ptr->grid_array[ny][nx].m_idx = m_idx;
shooter_ptr->current_floor_ptr->grid_array[oy][ox].m_idx = 0;
if (!in_bounds(floor_ptr, ny, nx)) continue;
/* Require "empty" floor space */
- if (!cave_empty_bold(ny, nx)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, ny, nx)) continue;
/* Hack -- no teleport onto glyph of warding */
if (is_glyph_grid(&floor_ptr->grid_array[ny][nx])) continue;
* Line 2 -- forbid normal monsters
* Line 3 -- forbid the player
*/
-#define cave_empty_bold(Y,X) \
+#define cave_empty_bold(F,Y,X) \
(cave_have_flag_bold((Y), (X), FF_PLACE) && \
- !(p_ptr->current_floor_ptr->grid_array[Y][X].m_idx) && \
+ !((F)->grid_array[Y][X].m_idx) && \
!player_bold(p_ptr, Y,X))
* Line 2 -- forbid trees while dungeon generation
*/
#define cave_empty_bold2(Y,X) \
- (cave_empty_bold(Y,X) && \
+ (cave_empty_bold(p_ptr->current_floor_ptr, Y,X) && \
(current_world_ptr->character_dungeon || !cave_have_flag_bold((Y), (X), FF_TREE)))
/*
- * Grid based version of "cave_empty_bold()"
+ * Grid based version of "cave_empty_bold(p_ptr->current_floor_ptr, )"
*/
#define cave_empty_grid(C) \
(cave_have_flag_grid((C), FF_PLACE) && \
POSITION nx = GRID_X(path_g[i]);
grid_type *g_ptr = &caster_ptr->current_floor_ptr->grid_array[ny][nx];
- if (in_bounds(caster_ptr->current_floor_ptr, ny, nx) && cave_empty_bold(ny, nx) &&
+ if (in_bounds(caster_ptr->current_floor_ptr, ny, nx) && cave_empty_bold(p_ptr->current_floor_ptr, ny, nx) &&
!(g_ptr->info & CAVE_OBJECT) &&
!pattern_tile(ny, nx))
{
}
else
{
- if (!cave_empty_bold(y, x)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, y, x)) continue;
}
/* Accept far away grids */
}
return count;
-}
\ No newline at end of file
+}
if (pattern_tile(y, x)) continue;
/* Require empty floor grid in line of projection */
- if (cave_empty_bold(y, x) && projectable(y1, x1, y, x) && projectable(y, x, y1, x1)) return (TRUE);
+ if (cave_empty_bold(p_ptr->current_floor_ptr, y, x) && projectable(y1, x1, y, x) && projectable(y, x, y1, x1)) return (TRUE);
}
}
for (k = 0; k < 30; k++)
{
- if (!summon_possible(cy, cx) || !cave_empty_bold(cy, cx))
+ if (!summon_possible(cy, cx) || !cave_empty_bold(p_ptr->current_floor_ptr, cy, cx))
{
int j;
for (j = 100; j > 0; j--)
{
scatter(&cy, &cx, y, x, 2, 0);
- if (cave_empty_bold(cy, cx)) break;
+ if (cave_empty_bold(p_ptr->current_floor_ptr, cy, cx)) break;
}
if (!j) break;
}
- if (!cave_empty_bold(cy, cx)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, cy, cx)) continue;
if (summon_named_creature(m_idx, cy, cx, MON_NAZGUL, mode))
{
if (p_ptr->current_floor_ptr->grid_array[dy][dx].m_idx) flag = TRUE;
}
- if (!cave_empty_bold(y, x) || (p_ptr->current_floor_ptr->grid_array[y][x].info & CAVE_ICKY) ||
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, y, x) || (p_ptr->current_floor_ptr->grid_array[y][x].info & CAVE_ICKY) ||
(distance(y, x, caster_ptr->y, caster_ptr->x) > plev + 2))
{
msg_print(_("そこには移動できない。", "Can not teleport to there."));
{
y += ddy[dir];
x += ddx[dir];
- if (cave_empty_bold(y, x))
+ if (cave_empty_bold(p_ptr->current_floor_ptr, y, x))
{
ty = y;
tx = x;
x = caster_ptr->x + ddx_ddd[i];
/* Skip non-empty grids */
- if (!cave_empty_bold(y, x)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, y, x)) continue;
/* Important -- Skip "quake" grids */
if (map[16 + y - cy][16 + x - cx]) continue;
x = xx + ddx_ddd[i];
/* Skip non-empty grids */
- if (!cave_empty_bold(y, x)) continue;
+ if (!cave_empty_bold(p_ptr->current_floor_ptr, y, x)) continue;
/* Hack -- no safety on glyph of warding */
if (is_glyph_grid(&caster_ptr->current_floor_ptr->grid_array[y][x])) continue;
int ny = GRID_Y(path_g[i]);
int nx = GRID_X(path_g[i]);
- if (cave_empty_bold(ny, nx) && player_can_enter(p_ptr->current_floor_ptr->grid_array[ny][nx].feat, 0))
+ if (cave_empty_bold(p_ptr->current_floor_ptr, ny, nx) && player_can_enter(p_ptr->current_floor_ptr->grid_array[ny][nx].feat, 0))
{
ty = ny;
tx = nx;
{
y += ddy[dir];
x += ddx[dir];
- if (cave_empty_bold(y, x))
+ if (cave_empty_bold(p_ptr->current_floor_ptr, y, x))
{
ty = y;
tx = x;
while (--attempts)
{
scatter(&wy, &wx, p_ptr->y, p_ptr->x, 3, 0);
- if (cave_empty_bold(wy, wx)) break;
+ if (cave_empty_bold(p_ptr->current_floor_ptr, wy, wx)) break;
}
(void)alloc_horde(wy, wx);