+ else preserve_hold_objects = FALSE;
+ }
+
+ /* Mega-hack -- preserve held objects */
+ if (preserve_hold_objects)
+ {
+ for (this_o_idx = back_m.hold_o_idx; this_o_idx; this_o_idx = next_o_idx)
+ {
+ /* Acquire object */
+ object_type *o_ptr = &o_list[this_o_idx];
+
+ /* Acquire next object */
+ next_o_idx = o_ptr->next_o_idx;
+
+ /* Held by new monster */
+ o_ptr->held_m_idx = hack_m_idx_ii;
+ }
+ }
+ else if (back_m.hold_o_idx) /* Failed (paranoia) */
+ {
+ /* Delete objects */
+ for (this_o_idx = back_m.hold_o_idx; this_o_idx; this_o_idx = next_o_idx)
+ {
+ /* Acquire next object */
+ next_o_idx = o_list[this_o_idx].next_o_idx;
+
+ /* Delete the object */
+ delete_object_idx(this_o_idx);
+ }