From 5b8dd84361ef70dfc649ccd11f6348df0c94df2d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 8 Dec 2022 22:53:18 +0100 Subject: [PATCH] - use setceilingtexture where textures are simply copied around --- source/core/maploader.cpp | 7 ++++--- source/core/sectorgeometry.cpp | 2 +- source/core/sectorgeometry.h | 4 ++-- source/games/duke/src/actors.cpp | 2 +- source/games/duke/src/actors_r.cpp | 2 +- source/games/duke/src/spawn.cpp | 2 +- source/games/sw/src/copysect.cpp | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/source/core/maploader.cpp b/source/core/maploader.cpp index bf97c7ea5..dac52c12b 100644 --- a/source/core/maploader.cpp +++ b/source/core/maploader.cpp @@ -49,6 +49,7 @@ #include "interpolate.h" #include "tiletexture.h" #include "games/blood/src/mapstructs.h" +#include "buildtiles.h" extern BitArray clipsectormap; @@ -104,7 +105,7 @@ static void ReadSectorV7(FileReader& fr, sectortype& sect) sect.setzfrommap(c, f); sect.ceilingstat = ESectorFlags::FromInt(fr.ReadUInt16()); sect.floorstat = ESectorFlags::FromInt(fr.ReadUInt16()); - sect.ceilingpicnum = fr.ReadUInt16(); + sect.setceilingtexture(tileGetTextureID(fr.ReadUInt16())); sect.ceilingheinum = fr.ReadInt16(); sect.ceilingshade = fr.ReadInt8(); sect.ceilingpal = fr.ReadUInt8(); @@ -128,7 +129,7 @@ static void ReadSectorV6(FileReader& fr, sectortype& sect) int wallptr = fr.ReadInt16(); int wallnum = fr.ReadInt16(); sect.walls.Set(&wall[wallptr], wallnum); - sect.ceilingpicnum = fr.ReadUInt16(); + sect.setceilingtexture(tileGetTextureID(fr.ReadUInt16())); sect.floorpicnum = fr.ReadUInt16(); sect.ceilingheinum = clamp(fr.ReadInt16() << 5, -32768, 32767); sect.floorheinum = clamp(fr.ReadInt16() << 5, -32768, 32767); @@ -157,7 +158,7 @@ static void ReadSectorV5(FileReader& fr, sectortype& sect) int wallptr = fr.ReadInt16(); int wallnum = fr.ReadInt16(); sect.walls.Set(&wall[wallptr], wallnum); - sect.ceilingpicnum = fr.ReadUInt16(); + sect.setceilingtexture(tileGetTextureID(fr.ReadUInt16())); sect.floorpicnum = fr.ReadUInt16(); sect.ceilingheinum = clamp(fr.ReadInt16() << 5, -32768, 32767); sect.floorheinum = clamp(fr.ReadInt16() << 5, -32768, 32767); diff --git a/source/core/sectorgeometry.cpp b/source/core/sectorgeometry.cpp index c2c6deba9..a592e57e3 100644 --- a/source/core/sectorgeometry.cpp +++ b/source/core/sectorgeometry.cpp @@ -379,7 +379,7 @@ bool SectionGeometry::ValidateSection(Section* section, int plane) else { if (sec->ceilingheinum == compare->ceilingheinum && - sec->ceilingpicnum == compare->ceilingpicnum && + sec->ceilingtexture() == compare->ceilingtexture && ((sec->ceilingstat ^ compare->ceilingstat) & (CSTAT_SECTOR_ALIGN | CSTAT_SECTOR_YFLIP | CSTAT_SECTOR_XFLIP | CSTAT_SECTOR_TEXHALF | CSTAT_SECTOR_SWAPXY)) == 0 && sec->ceilingxpan_ == compare->ceilingxpan_ && sec->ceilingypan_ == compare->ceilingypan_ && diff --git a/source/core/sectorgeometry.h b/source/core/sectorgeometry.h index 9c063540d..661de1717 100644 --- a/source/core/sectorgeometry.h +++ b/source/core/sectorgeometry.h @@ -32,7 +32,7 @@ struct sectortypelight ESectorFlags ceilingstat; ESectorFlags floorstat; - int16_t ceilingpicnum; + FTextureID ceilingtexture; int16_t ceilingheinum; int16_t floorpicnum; int16_t floorheinum; @@ -47,7 +47,7 @@ struct sectortypelight floorstat = sec->floorstat; ceilingheinum = sec->ceilingheinum; floorheinum = sec->floorheinum; - ceilingpicnum = sec->ceilingpicnum; + ceilingtexture = sec->ceilingtexture(); floorpicnum = sec->floorpicnum; } }; diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index 8644aa6eb..ddff56def 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -1807,7 +1807,7 @@ void handle_se13(DDukeActor* actor) if (ps[0].one_parallax_sectnum != nullptr) { - sc->ceilingpicnum = ps[0].one_parallax_sectnum->ceilingpicnum; + sc->setceilingtexture(ps[0].one_parallax_sectnum->ceilingtexture()); sc->ceilingshade = ps[0].one_parallax_sectnum->ceilingshade; } } diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index ecc45f194..91529889e 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -1879,7 +1879,7 @@ void destroyit(DDukeActor *actor) destsect->setceilingz(srcsect->ceilingz); destsect->ceilingstat = srcsect->ceilingstat; destsect->floorstat = srcsect->floorstat; - destsect->ceilingpicnum = srcsect->ceilingpicnum; + destsect->setceilingtexture(srcsect->ceilingtexture()); destsect->ceilingheinum = srcsect->ceilingheinum; destsect->ceilingshade = srcsect->ceilingshade; destsect->ceilingpal = srcsect->ceilingpal; diff --git a/source/games/duke/src/spawn.cpp b/source/games/duke/src/spawn.cpp index 178ff8041..762e19760 100644 --- a/source/games/duke/src/spawn.cpp +++ b/source/games/duke/src/spawn.cpp @@ -538,7 +538,7 @@ void spawneffector(DDukeActor* actor, TArray* actors) auto nsec = wl.nextSector(); if (!(nsec->ceilingstat & CSTAT_SECTOR_SKY)) { - sectp->ceilingpicnum = nsec->ceilingpicnum; + sectp->setceilingtexture(nsec->ceilingtexture()); sectp->ceilingshade = nsec->ceilingshade; break; //Leave early } diff --git a/source/games/sw/src/copysect.cpp b/source/games/sw/src/copysect.cpp index 2c231735a..30b3cd84c 100644 --- a/source/games/sw/src/copysect.cpp +++ b/source/games/sw/src/copysect.cpp @@ -228,7 +228,7 @@ void CopySectorMatch(int match) dsectp->ceilingshade = ssectp->ceilingshade; dsectp->floorpicnum = ssectp->floorpicnum; - dsectp->ceilingpicnum = ssectp->ceilingpicnum; + dsectp->setceilingtexture(ssectp->ceilingtexture()); dsectp->floorheinum = ssectp->floorheinum; dsectp->ceilingheinum = ssectp->ceilingheinum;