summaryrefslogtreecommitdiff
path: root/src/traps.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/traps.cc')
-rw-r--r--src/traps.cc31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/traps.cc b/src/traps.cc
index 49d07cbf..b336a770 100644
--- a/src/traps.cc
+++ b/src/traps.cc
@@ -656,17 +656,14 @@ bool_ player_activate_trap_type(s16b y, s16b x, object_type *i_ptr, s16b item)
/* Teleport Away Trap */
case TRAP_OF_TELEPORT_AWAY:
{
- int item, amt;
- object_type *o_ptr;
-
/* teleport away all items */
- while (cave[y][x].o_idx != 0)
+ while (!cave[y][x].o_idxs.empty())
{
- item = cave[y][x].o_idx;
+ auto item = cave[y][x].o_idxs.front();
- o_ptr = &o_list[item];
+ object_type *o_ptr = &o_list[item];
- amt = o_ptr->number;
+ int amt = o_ptr->number;
ident = do_trap_teleport_away(o_ptr, y, x);
@@ -1182,7 +1179,7 @@ bool_ player_activate_trap_type(s16b y, s16b x, object_type *i_ptr, s16b item)
cv_ptr2 = &cave[cy][cx];
- if (!cave_valid_bold(cy, cx) || cv_ptr2->o_idx != 0) continue;
+ if (!cave_valid_bold(cy, cx) || (!cv_ptr2->o_idxs.empty())) continue;
/* don't put anything in vaults */
if (cv_ptr2->info & CAVE_ICKY) continue;
@@ -2730,8 +2727,6 @@ bool_ mon_hit_trap(int m_idx)
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- object_type *kit_o_ptr, *load_o_ptr, *j_ptr;
-
u32b f1, f2, f3, f4, f5, esp;
object_type object_type_body;
@@ -2758,9 +2753,10 @@ bool_ mon_hit_trap(int m_idx)
int cost = 0;
/* Get the trap objects */
- kit_o_ptr = &o_list[cave[my][mx].special2];
- load_o_ptr = &o_list[cave[my][mx].special];
- j_ptr = &object_type_body;
+ auto kit_o_idx = cave[my][mx].special2;
+ auto kit_o_ptr = &o_list[kit_o_idx];
+ auto load_o_ptr = &o_list[cave[my][mx].special];
+ auto j_ptr = &object_type_body;
/* Get trap properties */
object_flags(kit_o_ptr, &f1, &f2, &f3, &f4, &f5, &esp);
@@ -3000,8 +2996,7 @@ bool_ mon_hit_trap(int m_idx)
if (load_o_ptr->number <= 0)
{
remove = TRUE;
- delete_object_idx(kit_o_ptr->next_o_idx);
- kit_o_ptr->next_o_idx = 0;
+ delete_object_idx(kit_o_idx);
}
/* Drop (or break) near that location */
@@ -3046,8 +3041,7 @@ bool_ mon_hit_trap(int m_idx)
if (load_o_ptr->number <= 0)
{
remove = TRUE;
- delete_object_idx(kit_o_ptr->next_o_idx);
- kit_o_ptr->next_o_idx = 0;
+ delete_object_idx(kit_o_idx);
}
}
@@ -3088,8 +3082,7 @@ bool_ mon_hit_trap(int m_idx)
if (load_o_ptr->number <= 0)
{
remove = TRUE;
- delete_object_idx(kit_o_ptr->next_o_idx);
- kit_o_ptr->next_o_idx = 0;
+ delete_object_idx(kit_o_idx);
}
}