}
else
{
- place_trap(*y, *x);
+ place_trap(p_ptr->current_floor_ptr, *y, *x);
}
p_ptr->current_floor_ptr->object_level = p_ptr->current_floor_ptr->base_level;
/* Random trap */
else if (random & RANDOM_TRAP)
{
- place_trap(*y, *x);
+ place_trap(p_ptr->current_floor_ptr, *y, *x);
}
/* Hidden trap (or door) */
else if (letter[idx].trap)
case ALLOC_TYP_TRAP:
{
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
floor_ptr->grid_array[y][x].info &= ~(CAVE_FLOOR);
break;
}
if (!is_floor_grid(g_ptr) || g_ptr->o_idx || g_ptr->m_idx) continue;
/* Place the trap */
- place_trap(y1, x1);
+ place_trap(p_ptr->current_floor_ptr, y1, x1);
break;
}
}
else
{
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
}
break;
/* Trap */
case '^':
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
break;
/* Black market in a dungeon */
}
else
{
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
}
}
else if (value < 30)
floor_ptr->monster_level = floor_ptr->base_level + 5;
place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP));
floor_ptr->monster_level = floor_ptr->base_level;
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
}
else if (value < 40)
{
else if (value < 50)
{
/* Trap */
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
}
else
{
}
else if (randint0(100) < 50)
{
- place_trap(y, x);
+ place_trap(floor_ptr, y, x);
}
else if (randint0(100) < 50)
{
case GF_MAKE_TRAP:
{
- place_trap(y, x);
+ place_trap(p_ptr->current_floor_ptr, y, x);
break;
}
* when they are "discovered" (by detecting them or setting them off),\n
* the trap is "instantiated" as a visible, "typed", trap.\n
*/
-void place_trap(POSITION y, POSITION x)
+void place_trap(floor_type *floor_ptr, POSITION y, POSITION x)
{
- grid_type *g_ptr = &p_ptr->current_floor_ptr->grid_array[y][x];
+ grid_type *g_ptr = &floor_ptr->grid_array[y][x];
/* Paranoia -- verify location */
- if (!in_bounds(p_ptr->current_floor_ptr, y, x)) return;
+ if (!in_bounds(floor_ptr, y, x)) return;
/* Require empty, clean, floor grid */
- if (!cave_clean_bold(p_ptr->current_floor_ptr, y, x)) return;
+ if (!cave_clean_bold(floor_ptr, y, x)) return;
/* Place an invisible trap */
g_ptr->mimic = g_ptr->feat;
extern void init_normal_traps(void);
extern FEAT_IDX choose_random_trap(void);
extern void disclose_grid(POSITION y, POSITION x);
-extern void place_trap(POSITION y, POSITION x);
+extern void place_trap(floor_type *floor_ptr, POSITION y, POSITION x);
extern void hit_trap(player_type *trapped_ptr, bool break_trap);
extern const int chest_traps[64];