update walls on texZ change
This commit is contained in:
parent
d09c749e1d
commit
65b75814ab
5 changed files with 22 additions and 9 deletions
|
|
@ -1008,15 +1008,7 @@ public:
|
|||
|
||||
if (val != old)
|
||||
{
|
||||
//not sure actually what TexZ does, so changing passing this as "Other"
|
||||
if(pos)
|
||||
{
|
||||
LevelMeshUpdater->SectorChangedOther(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
LevelMeshUpdater->SectorChangedOther(this);
|
||||
}
|
||||
LevelMeshUpdater->SectorChangedTexZ(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,6 +49,11 @@ void UpdateLevelMesh::SectorChangedOther(sector_t* sector)
|
|||
PropagateCorrelations(this, &UpdateLevelMesh::OnSectorChangedOther, sector);
|
||||
}
|
||||
|
||||
void UpdateLevelMesh::SectorChangedTexZ(sector_t* sector)
|
||||
{
|
||||
PropagateCorrelations(this, &UpdateLevelMesh::OnSectorChangedTexZ, sector);
|
||||
}
|
||||
|
||||
void UpdateLevelMesh::SideTextureChanged(side_t* side, int section)
|
||||
{
|
||||
OnSideTextureChanged(side, section);
|
||||
|
|
@ -98,6 +103,7 @@ struct NullLevelMeshUpdater : UpdateLevelMesh
|
|||
void OnCeilingTextureChanged(sector_t* sector) override {}
|
||||
|
||||
void OnSectorChangedOther(sector_t* sector) override {}
|
||||
void OnSectorChangedTexZ(sector_t* sector) override {}
|
||||
|
||||
void OnSideTextureChanged(side_t* side, int section) override {}
|
||||
void OnSideDecalsChanged(side_t* side) override {}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ struct UpdateLevelMesh
|
|||
void CeilingTextureChanged(sector_t *sector);
|
||||
|
||||
void SectorChangedOther(sector_t *sector);
|
||||
void SectorChangedTexZ(sector_t *sector);
|
||||
|
||||
void SideTextureChanged(side_t *side, int section);
|
||||
void SideDecalsChanged(side_t* side);
|
||||
|
|
@ -34,6 +35,7 @@ struct UpdateLevelMesh
|
|||
virtual void OnCeilingTextureChanged(sector_t *sector) = 0;
|
||||
|
||||
virtual void OnSectorChangedOther(sector_t *sector) = 0;
|
||||
virtual void OnSectorChangedTexZ(sector_t *sector) = 0;
|
||||
|
||||
virtual void OnSideTextureChanged(side_t *side, int section) = 0;
|
||||
virtual void OnSideDecalsChanged(side_t* side) = 0;
|
||||
|
|
|
|||
|
|
@ -626,6 +626,18 @@ void DoomLevelMesh::OnSectorChangedOther(sector_t* sector)
|
|||
UpdateFlat(sector->Index(), SurfaceUpdateType::Full);
|
||||
}
|
||||
|
||||
void DoomLevelMesh::OnSectorChangedTexZ(sector_t* sector)
|
||||
{
|
||||
UpdateFlat(sector->Index(), SurfaceUpdateType::Full);
|
||||
for (line_t* line : sector->Lines)
|
||||
{
|
||||
if (line->sidedef[0])
|
||||
UpdateSide(line->sidedef[0]->Index(), SurfaceUpdateType::Full);
|
||||
else if (line->sidedef[1])
|
||||
UpdateSide(line->sidedef[1]->Index(), SurfaceUpdateType::Full);
|
||||
}
|
||||
}
|
||||
|
||||
void DoomLevelMesh::OnSideTextureChanged(side_t* side, int section)
|
||||
{
|
||||
UpdateSide(side->Index(), SurfaceUpdateType::Full);
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ public:
|
|||
void OnFloorTextureChanged(sector_t* sector) override;
|
||||
void OnCeilingTextureChanged(sector_t* sector) override;
|
||||
void OnSectorChangedOther(sector_t* sector) override;
|
||||
void OnSectorChangedTexZ(sector_t* sector) override;
|
||||
void OnSideTextureChanged(side_t* side, int section) override;
|
||||
void OnSideDecalsChanged(side_t* side) override;
|
||||
void OnSectorLightChanged(sector_t* sector) override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue