- 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

@ -1449,12 +1449,12 @@ FSerializer &SerializePointer(FSerializer &arc, const char *key, T *&value, T **
template<> FSerializer &Serialize(FSerializer &arc, const char *key, FPolyObj *&value, FPolyObj **defval)
{
return SerializePointer(arc, key, value, defval, polyobjs);
return SerializePointer(arc, key, value, defval, level.Polyobjects.Data());
}
template<> FSerializer &Serialize(FSerializer &arc, const char *key, const FPolyObj *&value, const FPolyObj **defval)
{
return SerializePointer<const FPolyObj>(arc, key, value, defval, polyobjs);
return SerializePointer<const FPolyObj>(arc, key, value, defval, level.Polyobjects.Data());
}
template<> FSerializer &Serialize(FSerializer &arc, const char *key, side_t *&value, side_t **defval)