diff --git a/source/blood/src/db.cpp b/source/blood/src/db.cpp index ebf493689..349740a2f 100644 --- a/source/blood/src/db.cpp +++ b/source/blood/src/db.cpp @@ -647,12 +647,12 @@ void dbLoadMap(const char *pPath, int *pX, int *pY, int *pZ, short *pAngle, shor pSector->extra = LittleShort(load.extra); pSector->ceilingshade = load.ceilingshade; pSector->ceilingpal = load.ceilingpal; - pSector->ceilingxpanning = load.ceilingxpanning; - pSector->ceilingypanning = load.ceilingypanning; + pSector->ceilingxpan_ = load.ceilingxpanning; + pSector->ceilingypan_ = load.ceilingypanning; pSector->floorshade = load.floorshade; pSector->floorpal = load.floorpal; - pSector->floorxpanning = load.floorxpanning; - pSector->floorypanning = load.floorypanning; + pSector->floorxpan_ = load.floorxpanning; + pSector->floorypan_ = load.floorypanning; pSector->visibility = load.visibility; qsector_filler[i] = load.fogpal; pSector->fogpal = 0; @@ -734,12 +734,12 @@ void dbLoadMap(const char *pPath, int *pX, int *pY, int *pZ, short *pAngle, shor pXSector->marker0 = bitReader.readUnsigned(16); pXSector->marker1 = bitReader.readUnsigned(16); pXSector->Crush = bitReader.readUnsigned(1); - pXSector->ceilXPanFrac = bitReader.readUnsigned(8); - pXSector->ceilYPanFrac = bitReader.readUnsigned(8); - pXSector->floorXPanFrac = bitReader.readUnsigned(8); + pSector->ceilingxpan_ += bitReader.readUnsigned(8) / 256.f; + pSector->ceilingypan_ += bitReader.readUnsigned(8) / 256.f; + pSector->floorxpan_ += bitReader.readUnsigned(8) / 256.f; pXSector->damageType = bitReader.readUnsigned(3); pXSector->floorpal = bitReader.readUnsigned(4); - pXSector->floorYPanFrac = bitReader.readUnsigned(8); + pSector->floorypan_ = bitReader.readUnsigned(8) / 256.f; pXSector->locked = bitReader.readUnsigned(1); pXSector->windVel = bitReader.readUnsigned(10); pXSector->windAng = bitReader.readUnsigned(11); diff --git a/source/blood/src/db.h b/source/blood/src/db.h index e3e14e770..3e581fb65 100644 --- a/source/blood/src/db.h +++ b/source/blood/src/db.h @@ -213,12 +213,8 @@ struct XSECTOR { uint8_t Depth; // Depth uint8_t Key; // Key uint8_t ceilpal; // Ceil pal2 - uint8_t ceilXPanFrac; // Ceiling x panning frac - uint8_t ceilYPanFrac; // Ceiling y panning frac - uint8_t floorXPanFrac; // Floor x panning frac uint8_t damageType; // DamageType uint8_t floorpal; // Floor pal2 - uint8_t floorYPanFrac; // Floor y panning frac uint8_t bobZRange; // Motion Z range }; diff --git a/source/blood/src/loadsave.cpp b/source/blood/src/loadsave.cpp index d8c9b0fc6..9bb190d0c 100644 --- a/source/blood/src/loadsave.cpp +++ b/source/blood/src/loadsave.cpp @@ -510,10 +510,6 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, XSECTOR& w, XSECTO ("depth", w.Depth, def->Depth) ("key", w.Key, def->Key) ("ceilpal", w.ceilpal, def->ceilpal) - ("ceilxpanfrac", w.ceilXPanFrac, def->ceilXPanFrac) - ("ceilypanfrac", w.ceilYPanFrac, def->ceilYPanFrac) - ("floorxpanfrac", w.floorXPanFrac, def->floorXPanFrac) - ("floorypanfrac", w.floorYPanFrac, def->floorYPanFrac) ("floorpal", w.floorpal, def->floorpal) ("damagetype", w.damageType, def->damageType) ("bobzrange", w.bobZRange, def->bobZRange) diff --git a/source/blood/src/nnexts.cpp b/source/blood/src/nnexts.cpp index c427a5139..dbc408fe5 100644 --- a/source/blood/src/nnexts.cpp +++ b/source/blood/src/nnexts.cpp @@ -1648,16 +1648,16 @@ void useObjResizer(XSPRITE* pXSource, short objType, int objIndex) { // for sectors case 6: if (valueIsBetween(pXSource->data1, -1, 32767)) - sector[objIndex].floorxpanning = ClipRange(pXSource->data1, 0, 255); + sector[objIndex].floorxpan_ = ClipRange(pXSource->data1, 0, 255); if (valueIsBetween(pXSource->data2, -1, 32767)) - sector[objIndex].floorypanning = ClipRange(pXSource->data2, 0, 255); + sector[objIndex].floorypan_ = ClipRange(pXSource->data2, 0, 255); if (valueIsBetween(pXSource->data3, -1, 32767)) - sector[objIndex].ceilingxpanning = ClipRange(pXSource->data3, 0, 255); + sector[objIndex].ceilingxpan_ = ClipRange(pXSource->data3, 0, 255); if (valueIsBetween(pXSource->data4, -1, 65535)) - sector[objIndex].ceilingypanning = ClipRange(pXSource->data4, 0, 255); + sector[objIndex].ceilingypan_ = ClipRange(pXSource->data4, 0, 255); break; // for sprites case 3: @@ -2627,10 +2627,10 @@ bool condCheckMixed(XSPRITE* pXCond, EVENT event, int cmpOp, bool PUSH) { } break; case 29: return (pObj->hitag & arg1); - case 30: return condCmp(pObj->floorxpanning, arg1, arg2, cmpOp); - case 31: return condCmp(pObj->ceilingxpanning, arg1, arg2, cmpOp); - case 32: return condCmp(pObj->floorypanning, arg1, arg2, cmpOp); - case 33: return condCmp(pObj->ceilingypanning, arg1, arg2, cmpOp); + case 30: return condCmp(pObj->floorxpan(), arg1, arg2, cmpOp); + case 31: return condCmp(pObj->ceilingxpan(), arg1, arg2, cmpOp); + case 32: return condCmp(pObj->floorypan(), arg1, arg2, cmpOp); + case 33: return condCmp(pObj->ceilingypan(), arg1, arg2, cmpOp); } break; } diff --git a/source/blood/src/sectorfx.cpp b/source/blood/src/sectorfx.cpp index 76bd71748..ffacb8f60 100644 --- a/source/blood/src/sectorfx.cpp +++ b/source/blood/src/sectorfx.cpp @@ -280,34 +280,26 @@ void DoSectorPanning(void) if (pXSector->panFloor) // Floor { int nTile = pSector->floorpicnum; - int px = (pSector->floorxpanning << 8) + pXSector->floorXPanFrac; - int py = (pSector->floorypanning << 8) + pXSector->floorYPanFrac; if (pSector->floorstat & 64) angle -= 512; int xBits = tileWidth(nTile) >> int((pSector->floorstat & 8) != 0); - px += mulscale30(speed << 2, Cos(angle)) / xBits; + int px = mulscale30(speed << 2, Cos(angle)) / xBits; int yBits = tileHeight(nTile) >> int((pSector->floorstat & 8) != 0); - py -= mulscale30(speed << 2, Sin(angle)) / yBits; - pSector->floorxpanning = px >> 8; - pSector->floorypanning = py >> 8; - pXSector->floorXPanFrac = px & 255; - pXSector->floorYPanFrac = py & 255; + int py = mulscale30(speed << 2, Sin(angle)) / yBits; + pSector->addfloorxpan(px * (1. / 256)); + pSector->addfloorypan(-py * (1. / 256)); } if (pXSector->panCeiling) // Ceiling { int nTile = pSector->ceilingpicnum; - int px = (pSector->ceilingxpanning << 8) + pXSector->ceilXPanFrac; - int py = (pSector->ceilingypanning << 8) + pXSector->ceilYPanFrac; if (pSector->ceilingstat & 64) angle -= 512; - int xBits = tileWidth(nTile) >> int((pSector->floorstat & 8) != 0); - px += mulscale30(speed << 2, Cos(angle)) / xBits; - int yBits = tileHeight(nTile) >> int((pSector->floorstat & 8) != 0); - py -= mulscale30(speed << 2, Sin(angle)) / yBits; - pSector->ceilingxpanning = px >> 8; - pSector->ceilingypanning = py >> 8; - pXSector->ceilXPanFrac = px & 255; - pXSector->ceilYPanFrac = py & 255; + int xBits = tileWidth(nTile) >> int((pSector->ceilingstat & 8) != 0); + int px = mulscale30(speed << 2, Cos(angle)) / xBits; + int yBits = tileHeight(nTile) >> int((pSector->ceilingstat & 8) != 0); + int py = mulscale30(speed << 2, Sin(angle)) / yBits; + pSector->addceilingxpan(px * (1. / 256)); + pSector->addceilingypan(-py * (1. / 256)); } } } diff --git a/source/build/include/buildtypes.h b/source/build/include/buildtypes.h index 34ad9e4e5..5c13c0d9d 100644 --- a/source/build/include/buildtypes.h +++ b/source/build/include/buildtypes.h @@ -29,16 +29,27 @@ struct sectortype uint16_t ceilingstat, floorstat; int16_t ceilingpicnum, ceilingheinum; int8_t ceilingshade; - uint8_t ceilingpal, /*CM_FLOORZ:*/ ceilingxpanning, ceilingypanning; + uint8_t ceilingpal; /*CM_FLOORZ:*/ int16_t floorpicnum, floorheinum; int8_t floorshade; - uint8_t floorpal, floorxpanning, floorypanning; + uint8_t floorpal;; uint8_t /*CM_CEILINGZ:*/ visibility, fogpal; union { int16_t lotag, type; }; int16_t hitag; int16_t extra; + + float ceilingxpan_, ceilingypan_, floorxpan_, floorypan_; + + int ceilingxpan() const { return int(ceilingxpan_); } + int ceilingypan() const { return int(ceilingypan_); } + int floorxpan() const { return int(floorxpan_); } + int floorypan() const { return int(floorypan_); } + void addfloorxpan(float add) { floorxpan_ = fmod(floorxpan_ + add + 512, 256); } // +512 is for handling negative offsets + void addfloorypan(float add) { floorypan_ = fmod(floorypan_ + add + 512, 256); } // +512 is for handling negative offsets + void addceilingxpan(float add) { ceilingxpan_ = fmod(ceilingxpan_ + add + 512, 256); } // +512 is for handling negative offsets + void addceilingypan(float add) { ceilingypan_ = fmod(ceilingypan_ + add + 512, 256); } // +512 is for handling negative offsets }; //cstat: diff --git a/source/build/src/engine.cpp b/source/build/src/engine.cpp index 2b65946e0..133b48168 100644 --- a/source/build/src/engine.cpp +++ b/source/build/src/engine.cpp @@ -1749,8 +1749,8 @@ void renderDrawMapView(int32_t dax, int32_t day, int32_t zoome, int16_t ang) asm2 = (globalx2<floorxpanning)<<24), - ((int64_t) globalposy<<(20+globalyshift))-(((uint32_t) sec->floorypanning)<<24), + set_globalpos(((int64_t) globalposx<<(20+globalxshift))+(((uint32_t) sec->floorxpan())<<24), + ((int64_t) globalposy<<(20+globalyshift))-(((uint32_t) sec->floorypan())<<24), globalposz); renderFillPolygon(npoints); } diff --git a/source/build/src/polymost.cpp b/source/build/src/polymost.cpp index 742c4ca3a..0eb8d19e9 100644 --- a/source/build/src/polymost.cpp +++ b/source/build/src/polymost.cpp @@ -1578,7 +1578,9 @@ static void polymost_drawalls(int32_t const bunch) global_cf_fogpal = sec->fogpal; global_cf_shade = sec->floorshade, global_cf_pal = sec->floorpal; global_cf_z = sec->floorz; // REFACT - global_cf_xpanning = sec->floorxpanning; global_cf_ypanning = sec->floorypanning, global_cf_heinum = sec->floorheinum; + global_cf_xpanning = sec->floorxpan_; + global_cf_ypanning = sec->floorypan_; + global_cf_heinum = sec->floorheinum; global_getzofslope_func = &fgetflorzofslope; if (globalpicnum >= r_rortexture && globalpicnum < r_rortexture + r_rortexturerange && r_rorphase == 0) @@ -1818,7 +1820,9 @@ static void polymost_drawalls(int32_t const bunch) global_cf_fogpal = sec->fogpal; global_cf_shade = sec->ceilingshade, global_cf_pal = sec->ceilingpal; global_cf_z = sec->ceilingz; // REFACT - global_cf_xpanning = sec->ceilingxpanning; global_cf_ypanning = sec->ceilingypanning, global_cf_heinum = sec->ceilingheinum; + global_cf_xpanning = sec->ceilingxpan_; + global_cf_ypanning = sec->ceilingypan_, + global_cf_heinum = sec->ceilingheinum; global_getzofslope_func = &fgetceilzofslope; if (globalpicnum >= r_rortexture && globalpicnum < r_rortexture + r_rortexturerange && r_rorphase == 0) diff --git a/source/core/maploader.cpp b/source/core/maploader.cpp index d1955707a..dc4f0fbbb 100644 --- a/source/core/maploader.cpp +++ b/source/core/maploader.cpp @@ -55,14 +55,14 @@ static void ReadSectorV7(FileReader& fr, sectortype& sect) sect.ceilingheinum = fr.ReadUInt16(); sect.ceilingshade = fr.ReadInt8(); sect.ceilingpal = fr.ReadUInt8(); - sect.ceilingxpanning = fr.ReadUInt8(); - sect.ceilingypanning = fr.ReadUInt8(); + sect.ceilingxpan_ = fr.ReadUInt8(); + sect.ceilingypan_ = fr.ReadUInt8(); sect.floorpicnum = fr.ReadUInt16(); sect.floorheinum = fr.ReadUInt16(); sect.floorshade = fr.ReadInt8(); sect.floorpal = fr.ReadUInt8(); - sect.floorxpanning = fr.ReadUInt8(); - sect.floorypanning = fr.ReadUInt8(); + sect.floorxpan_ = fr.ReadUInt8(); + sect.floorypan_ = fr.ReadUInt8(); sect.visibility = fr.ReadUInt8(); sect.fogpal = fr.ReadUInt8(); // note: currently unused, except for Blood. sect.lotag = fr.ReadInt16(); @@ -82,10 +82,10 @@ static void ReadSectorV6(FileReader& fr, sectortype& sect) sect.floorz = fr.ReadInt32(); sect.ceilingshade = fr.ReadInt8(); sect.floorshade = fr.ReadInt8(); - sect.ceilingxpanning = fr.ReadUInt8(); - sect.floorxpanning = fr.ReadUInt8(); - sect.ceilingypanning = fr.ReadUInt8(); - sect.floorypanning = fr.ReadUInt8(); + sect.ceilingxpan_ = fr.ReadUInt8(); + sect.floorxpan_ = fr.ReadUInt8(); + sect.ceilingypan_ = fr.ReadUInt8(); + sect.floorypan_ = fr.ReadUInt8(); sect.ceilingstat = fr.ReadUInt8(); sect.floorstat = fr.ReadUInt8(); sect.ceilingpal = fr.ReadUInt8(); @@ -109,10 +109,10 @@ static void ReadSectorV5(FileReader& fr, sectortype& sect) sect.floorz = fr.ReadInt32(); sect.ceilingshade = fr.ReadInt8(); sect.floorshade = fr.ReadInt8(); - sect.ceilingxpanning = fr.ReadUInt8(); - sect.floorxpanning = fr.ReadUInt8(); - sect.ceilingypanning = fr.ReadUInt8(); - sect.floorypanning = fr.ReadUInt8(); + sect.ceilingxpan_ = fr.ReadUInt8(); + sect.floorxpan_ = fr.ReadUInt8(); + sect.ceilingypan_ = fr.ReadUInt8(); + sect.floorypan_ = fr.ReadUInt8(); sect.ceilingstat = fr.ReadUInt8(); sect.floorstat = fr.ReadUInt8(); sect.ceilingpal = fr.ReadUInt8(); diff --git a/source/core/savegamehelp.cpp b/source/core/savegamehelp.cpp index 31f3568cc..1bbf2d087 100644 --- a/source/core/savegamehelp.cpp +++ b/source/core/savegamehelp.cpp @@ -539,14 +539,14 @@ FSerializer &Serialize(FSerializer &arc, const char *key, sectortype &c, sectort ("ceilingheinum", c.ceilingheinum, def->ceilingheinum) ("ceilingshade", c.ceilingshade, def->ceilingshade) ("ceilingpal", c.ceilingpal, def->ceilingpal) - ("ceilingxpanning", c.ceilingxpanning, def->ceilingxpanning) - ("ceilingypanning", c.ceilingypanning, def->ceilingypanning) + ("ceilingxpanning", c.ceilingxpan_, def->ceilingxpan_) + ("ceilingypanning", c.ceilingypan_, def->ceilingypan_) ("floorpicnum", c.floorpicnum, def->floorpicnum) ("floorheinum", c.floorheinum, def->floorheinum) ("floorshade", c.floorshade, def->floorshade) ("floorpal", c.floorpal, def->floorpal) - ("floorxpanning", c.floorxpanning, def->floorxpanning) - ("floorypanning", c.floorypanning, def->floorypanning) + ("floorxpanning", c.floorxpan_, def->floorxpan_) + ("floorypanning", c.floorypan_, def->floorypan_) ("visibility", c.visibility, def->visibility) ("fogpal", c.fogpal, def->fogpal) ("lotag", c.lotag, def->lotag) diff --git a/source/exhumed/src/lighting.cpp b/source/exhumed/src/lighting.cpp index 281fd86c8..5adae49a6 100644 --- a/source/exhumed/src/lighting.cpp +++ b/source/exhumed/src/lighting.cpp @@ -676,8 +676,8 @@ void DoFlows() sFlowInfo[i].field_8 &= sFlowInfo[i].field_18; short nSector = sFlowInfo[i].field_0; - sector[nSector].floorxpanning = sFlowInfo[i].field_4 >> 14; - sector[nSector].floorypanning = sFlowInfo[i].field_8 >> 14; + sector[nSector].addfloorxpan(sFlowInfo[i].field_4 / 16384.f); + sector[nSector].addfloorypan(sFlowInfo[i].field_8 / 16384.f); break; } @@ -685,8 +685,8 @@ void DoFlows() { short nSector = sFlowInfo[i].field_0; - sector[nSector].ceilingxpanning = sFlowInfo[i].field_4 >> 14; - sector[nSector].ceilingypanning = sFlowInfo[i].field_8 >> 14; + sector[nSector].addceilingxpan(sFlowInfo[i].field_4 / 16384.f); + sector[nSector].addceilingypan(sFlowInfo[i].field_8 / 16384.f); sFlowInfo[i].field_4 &= sFlowInfo[i].field_14; sFlowInfo[i].field_8 &= sFlowInfo[i].field_18; diff --git a/source/games/duke/src/actors.cpp b/source/games/duke/src/actors.cpp index e6bb8f7fc..9104b6f0b 100644 --- a/source/games/duke/src/actors.cpp +++ b/source/games/duke/src/actors.cpp @@ -4335,11 +4335,11 @@ void handle_se20(DDukeActor* actor) setsprite(ps[p].GetActor(), ps[p].posx, ps[p].posy, ps[p].posz + PHEIGHT); } - sc->floorxpanning -= x >> 3; - sc->floorypanning -= l >> 3; + sc->addfloorxpan(-x / 8.f); + sc->addfloorypan(-l / 8.f); - sc->ceilingxpanning -= x >> 3; - sc->ceilingypanning -= l >> 3; + sc->addceilingxpan(-x / 8.f); + sc->addceilingypan(-l / 8.f); } } @@ -4601,7 +4601,7 @@ void handle_se24(DDukeActor *actor, int16_t *list1, int16_t *list2, int TRIPBOMB } } } - sector[actor->s.sectnum].floorxpanning += actor->s.yvel >> 7; + sector[actor->s.sectnum].addfloorxpan(actor->s.yvel / 128.f); } //--------------------------------------------------------------------------- diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 3d10fffb1..19bd23a0f 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -4191,14 +4191,14 @@ void destroyit(DDukeActor *actor) sector[sectnum].ceilingheinum = sector[it_sect].ceilingheinum; sector[sectnum].ceilingshade = sector[it_sect].ceilingshade; sector[sectnum].ceilingpal = sector[it_sect].ceilingpal; - sector[sectnum].ceilingxpanning = sector[it_sect].ceilingxpanning; - sector[sectnum].ceilingypanning = sector[it_sect].ceilingypanning; + sector[sectnum].ceilingxpan_ = sector[it_sect].ceilingxpan_; + sector[sectnum].ceilingypan_ = sector[it_sect].ceilingypan_; sector[sectnum].floorpicnum = sector[it_sect].floorpicnum; sector[sectnum].floorheinum = sector[it_sect].floorheinum; sector[sectnum].floorshade = sector[it_sect].floorshade; sector[sectnum].floorpal = sector[it_sect].floorpal; - sector[sectnum].floorxpanning = sector[it_sect].floorxpanning; - sector[sectnum].floorypanning = sector[it_sect].floorypanning; + sector[sectnum].floorxpan_ = sector[it_sect].floorxpan_; + sector[sectnum].floorypan_ = sector[it_sect].floorypan_; sector[sectnum].visibility = sector[it_sect].visibility; sectorextra[sectnum] = sectorextra[it_sect]; // TRANSITIONAL: at least rename this. sector[sectnum].lotag = sector[it_sect].lotag; diff --git a/source/games/duke/src/gameexec.cpp b/source/games/duke/src/gameexec.cpp index ae426fa4f..8426567fd 100644 --- a/source/games/duke/src/gameexec.cpp +++ b/source/games/duke/src/gameexec.cpp @@ -1083,8 +1083,12 @@ void DoSector(char bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, else SetGameVarID((int)lVar2, sector[iSector].ceilingpal, sActor, sPlayer); break; case SECTOR_CEILINGXPANNING: - if (bSet) sector[iSector].ceilingxpanning = lValue; - else SetGameVarID((int)lVar2, sector[iSector].ceilingypanning, sActor, sPlayer); + if (bSet) sector[iSector].ceilingxpan_ = lValue; + else SetGameVarID((int)lVar2, sector[iSector].ceilingxpan(), sActor, sPlayer); + break; + case SECTOR_CEILINGYPANNING: + if (bSet) sector[iSector].ceilingypan_ = lValue; + else SetGameVarID((int)lVar2, sector[iSector].ceilingypan(), sActor, sPlayer); break; case SECTOR_FLOORPICNUM: if (bSet) sector[iSector].floorpicnum = lValue; @@ -1103,12 +1107,12 @@ void DoSector(char bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor, else SetGameVarID((int)lVar2, sector[iSector].floorpal, sActor, sPlayer); break; case SECTOR_FLOORXPANNING: - if (bSet) sector[iSector].floorxpanning = lValue; - else SetGameVarID((int)lVar2, sector[iSector].floorxpanning, sActor, sPlayer); + if (bSet) sector[iSector].floorxpan_ = lValue; + else SetGameVarID((int)lVar2, sector[iSector].floorxpan(), sActor, sPlayer); break; case SECTOR_FLOORYPANNING: - if (bSet) sector[iSector].floorypanning = lValue; - else SetGameVarID((int)lVar2, sector[iSector].floorypanning, sActor, sPlayer); + if (bSet) sector[iSector].floorypan_ = lValue; + else SetGameVarID((int)lVar2, sector[iSector].floorypan(), sActor, sPlayer); break; case SECTOR_VISIBILITY: if (bSet) sector[iSector].visibility = lValue; diff --git a/source/games/duke/src/sectors.cpp b/source/games/duke/src/sectors.cpp index 9ab647c4b..d3cb55672 100644 --- a/source/games/duke/src/sectors.cpp +++ b/source/games/duke/src/sectors.cpp @@ -1259,8 +1259,8 @@ void moveclouds(double smoothratio) cloudy += ps[screenpeek].angle.ang.bsin(-9); for (int i = 0; i < numclouds; i++) { - sector[clouds[i]].ceilingxpanning = cloudx >> 6; - sector[clouds[i]].ceilingypanning = cloudy >> 6; + sector[clouds[i]].addceilingxpan(cloudx / 64.f); + sector[clouds[i]].addceilingypan(cloudy / 64.f); } } } diff --git a/source/sw/src/copysect.cpp b/source/sw/src/copysect.cpp index 58ed3bc6b..9d2a9842f 100644 --- a/source/sw/src/copysect.cpp +++ b/source/sw/src/copysect.cpp @@ -233,11 +233,11 @@ void CopySectorMatch(short match) dsectp->floorpal = ssectp->floorpal; dsectp->ceilingpal = ssectp->ceilingpal; - dsectp->floorxpanning = ssectp->floorxpanning; - dsectp->ceilingxpanning = ssectp->ceilingxpanning; + dsectp->floorxpan_ = ssectp->floorxpan_; + dsectp->ceilingxpan_ = ssectp->ceilingxpan_; - dsectp->floorypanning = ssectp->floorypanning; - dsectp->ceilingypanning = ssectp->ceilingypanning; + dsectp->floorypan_ = ssectp->floorypan_; + dsectp->ceilingypan_ = ssectp->ceilingypan_; dsectp->floorstat = ssectp->floorstat; dsectp->ceilingstat = ssectp->ceilingstat; diff --git a/source/sw/src/sector.cpp b/source/sw/src/sector.cpp index 35ab79c68..76c23e1b7 100644 --- a/source/sw/src/sector.cpp +++ b/source/sw/src/sector.cpp @@ -3210,11 +3210,8 @@ DoPanning(void) nx = mulscale20(sp->xvel, bcos(sp->ang)); ny = mulscale20(sp->xvel, bsin(sp->ang)); - sectp->floorxpanning += nx; - sectp->floorypanning += ny; - - sectp->floorxpanning &= 255; - sectp->floorypanning &= 255; + sectp->addfloorxpan(nx); + sectp->addfloorypan(ny); } it.Reset(STAT_CEILING_PAN); @@ -3226,11 +3223,8 @@ DoPanning(void) nx = mulscale20(sp->xvel, bcos(sp->ang)); ny = mulscale20(sp->xvel, bsin(sp->ang)); - sectp->ceilingxpanning += nx; - sectp->ceilingypanning += ny; - - sectp->ceilingxpanning &= 255; - sectp->ceilingypanning &= 255; + sectp->addceilingxpan(nx); + sectp->addceilingypan(ny); } it.Reset(STAT_WALL_PAN);