Add more dynamic update code to level mesh
This commit is contained in:
parent
8b78a1569f
commit
f1b9e68305
15 changed files with 147 additions and 101 deletions
|
|
@ -2989,23 +2989,24 @@ void MapLoader::InitLevelMesh(MapData* map)
|
|||
for (unsigned int i = 0; i < Level->subsectors.Size(); i++)
|
||||
allSurfaces += 2 + Level->subsectors[i].sector->e->XFloor.ffloors.Size() * 2;
|
||||
|
||||
Level->Surfaces.Resize(allSurfaces);
|
||||
memset(Level->Surfaces.Data(), 0, sizeof(DoomLevelMeshSurface*) * allSurfaces);
|
||||
Level->LightmapTiles.Resize(allSurfaces);
|
||||
for (int& value : Level->LightmapTiles)
|
||||
value = -1;
|
||||
|
||||
unsigned int offset = 0;
|
||||
for (unsigned int i = 0; i < Level->sides.Size(); i++)
|
||||
{
|
||||
auto& side = Level->sides[i];
|
||||
int count = 4 + side.sector->e->XFloor.ffloors.Size();
|
||||
side.surface = TArrayView<DoomLevelMeshSurface*>(&Level->Surfaces[offset], count);
|
||||
side.LightmapTiles = TArrayView<int>(&Level->LightmapTiles[offset], count);
|
||||
offset += count;
|
||||
}
|
||||
for (unsigned int i = 0; i < Level->subsectors.Size(); i++)
|
||||
{
|
||||
auto& subsector = Level->subsectors[i];
|
||||
unsigned int count = 1 + subsector.sector->e->XFloor.ffloors.Size();
|
||||
subsector.surface[0] = TArrayView<DoomLevelMeshSurface*>(&Level->Surfaces[offset], count);
|
||||
subsector.surface[1] = TArrayView<DoomLevelMeshSurface*>(&Level->Surfaces[offset + count], count);
|
||||
subsector.LightmapTiles[0] = TArrayView<int>(&Level->LightmapTiles[offset], count);
|
||||
subsector.LightmapTiles[1] = TArrayView<int>(&Level->LightmapTiles[offset + count], count);
|
||||
offset += count * 2;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue