Move levelmeshhelper completely out of the Common folder

Connect the level updates to the level mesh
This commit is contained in:
Magnus Norddahl 2024-08-11 18:34:03 +02:00
commit e0cba77646
7 changed files with 78 additions and 23 deletions

View file

@ -381,6 +381,41 @@ void DoomLevelMesh::FreeFlat(FLevelLocals& doomMap, unsigned int sectorIndex)
// To do: call FreeGeometry and FreeUniforms
}
void DoomLevelMesh::FloorHeightChanged(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::CeilingHeightChanged(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::MidTex3DHeightChanged(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::FloorTextureChanged(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::CeilingTextureChanged(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::SectorChangedOther(struct sector_t* sector)
{
// UpdateFlat(level, sector->Index());
}
void DoomLevelMesh::SideTextureChanged(struct side_t* side, int section)
{
// UpdateSide(level, side->Index());
}
void DoomLevelMesh::UpdateSide(FLevelLocals& doomMap, unsigned int sideIndex)
{
FreeSide(doomMap, sideIndex);
@ -428,7 +463,7 @@ void DoomLevelMesh::UpdateSide(FLevelLocals& doomMap, unsigned int sideIndex)
void DoomLevelMesh::UpdateFlat(FLevelLocals& doomMap, unsigned int sectorIndex)
{
FreeSide(doomMap, sectorIndex);
FreeFlat(doomMap, sectorIndex);
sector_t* sector = &doomMap.sectors[sectorIndex];
for (FSection& section : doomMap.sections.SectionsForSector(sectorIndex))

View file

@ -2,6 +2,7 @@
#pragma once
#include "hw_levelmesh.h"
#include "levelmeshhelper.h"
#include "scene/hw_drawstructs.h"
#include "common/rendering/hwrenderer/data/hw_meshbuilder.h"
#include "tarray.h"
@ -41,7 +42,7 @@ struct FlatSurfaceBlock
int FirstSurface = -1;
};
class DoomLevelMesh : public LevelMesh
class DoomLevelMesh : public LevelMesh, public UpdateLevelMesh
{
public:
DoomLevelMesh(FLevelLocals &doomMap);
@ -66,6 +67,14 @@ public:
void CreateLights(FLevelLocals& doomMap);
void FloorHeightChanged(struct sector_t* sector) override;
void CeilingHeightChanged(struct sector_t* sector) override;
void MidTex3DHeightChanged(struct sector_t* sector) override;
void FloorTextureChanged(struct sector_t* sector) override;
void CeilingTextureChanged(struct sector_t* sector) override;
void SectorChangedOther(struct sector_t* sector) override;
void SideTextureChanged(struct side_t* side, int section) override;
private:
void CreateSurfaces(FLevelLocals& doomMap);