- refactored P_CollectConnectedGroups to avoid frequent heap allocations for the common cases

* the temporary checking arrays are now static
 * the array that gets the returned values only starts allocating memory when the third touched sector group is found. The most common cases (no touched portal and one touched portal) can be handled without accessing the heap.

- did some streamlining of AActor::LinkToSector:

 * there's only now version of this function that can handle everything
 * moved the FIXMAPTHINGPOS stuff into a separate function.
 * removed LinkToWorldForMapThing and put all special handling this function did into P_PointInSectorBuggy.
This commit is contained in:
Christoph Oelckers 2016-02-16 12:51:10 +01:00
commit 22e8678903
7 changed files with 292 additions and 228 deletions

View file

@ -456,7 +456,7 @@ void AActor::Serialize (FArchive &arc)
if (arc.IsLoading ())
{
touching_sectorlist = NULL;
LinkToWorld (Sector);
LinkToWorld (false, NULL, Sector);
AddToHash ();
SetShade (fillcolor);
if (player)