Previously if a mapped Plane move occurred then all of the Surfaces of LineSides in the cluster-linked Sector were marked for updating, irrespective of whether those surfaces are actually "dependent" on said plane.
In large maps with lots of moving planes and light decorations, this meant a lot of unnecessary surface redecoration.
SectorCluster's internal boundary info is automatically prepared the first time one of the dependent Planes move if needed (map hacks may mean this info is already prepared). The boundary info is then used to limit light decoration updates to only those Surfaces which share a boundary edge with the cluster.
Todo for later: Free the boundary info if the dependent planes have not moved in a while.
Optimize|World|SectorCluster: Avoid unnecessary Surface Decoration updates
Previously if a mapped Plane move occurred then all of the Surfaces
of LineSides in the cluster-linked Sector were marked for updating,
irrespective of whether those surfaces are actually "dependent" on
said plane.
In large maps with lots of moving planes and light decorations, this
meant a lot of unnecessary surface redecoration.
SectorCluster's internal boundary info is automatically prepared the
first time one of the dependent Planes move if needed (map hacks may
mean this info is already prepared). The boundary info is then used
to limit light decoration updates to only those Surfaces which share
a boundary edge with the cluster.
Todo for later: Free the boundary info if the dependent planes have
not moved in a while.