Don't teleport to original segment if boss won't fit

Unless there are no other segments. Fixes issue #329.
This commit is contained in:
Chris Taylor 2017-02-26 12:10:54 +08:00 committed by kreatordxx
parent 19e4c07bb0
commit c2ea427f79

View file

@ -2050,10 +2050,13 @@ static void init_boss_segments(vobjptridx_t boss_objnum, boss_special_segment_ar
tail = 0;
seg_queue[head++] = original_boss_seg;
a.emplace_back(original_boss_seg);
if ((!size_check) || boss_fits_in_seg(boss_objp, vsegptridx(original_boss_seg)))
{
a.emplace_back(original_boss_seg);
#if DXX_USE_EDITOR
Selected_segs.emplace_back(original_boss_seg);
#endif
Selected_segs.emplace_back(original_boss_seg);
#endif
}
visited_segment_bitarray_t visited;
@ -2109,8 +2112,10 @@ static void init_boss_segments(vobjptridx_t boss_objnum, boss_special_segment_ar
boss_objp->pos = original_boss_pos;
obj_relink(boss_objp, vsegptridx(original_boss_seg));
// Last resort - add original seg even if boss doesn't fit in it
if (a.empty())
a.emplace_back(original_boss_seg);
}
}
// --------------------------------------------------------------------------------------------------------------------