- moved main polyobject array into FLevelLocals and simplified the setup process to not depend on P_SpawnMapThing.

Since the SpawnedThings array is still available when polyobjects are spawned it makes no sense to create an expensive linked list in P_SpawnMapThing.
This can be done far better by scanning through the array again and collect all matching items in a second array.
This commit is contained in:
Christoph Oelckers 2018-12-28 10:08:39 +01:00
commit 64595abe60
12 changed files with 72 additions and 126 deletions

View file

@ -285,6 +285,7 @@ void P_FreeLevelData ()
level.rejectmatrix.Clear();
level.Zones.Clear();
level.blockmap.Clear();
level.Polyobjects.Clear();
if (PolyBlockMap != nullptr)
{
@ -301,12 +302,6 @@ void P_FreeLevelData ()
delete[] PolyBlockMap;
PolyBlockMap = nullptr;
}
if (polyobjs != nullptr)
{
delete[] polyobjs;
polyobjs = nullptr;
}
po_NumPolyobjs = 0;
level.deathmatchstarts.Clear();
level.AllPlayerStarts.Clear();