diff --git a/src/gl/data/gl_vertexbuffer.cpp b/src/gl/data/gl_vertexbuffer.cpp index 957884bb0..4973ad39d 100644 --- a/src/gl/data/gl_vertexbuffer.cpp +++ b/src/gl/data/gl_vertexbuffer.cpp @@ -397,9 +397,7 @@ void FFlatVertexBuffer::CreateFlatVBO() { for(auto &sec : level.sectors) { - secplane_t& plane = sec.GetSecPlane(h); - CreateVertices(h, &sec, plane, h == sector_t::floor); - plane.vbonormal = plane.normal; + CreateVertices(h, &sec, sec.GetSecPlane(h), h == sector_t::floor); } } @@ -466,21 +464,15 @@ void FFlatVertexBuffer::CreateVBO() void FFlatVertexBuffer::CheckPlanes(sector_t *sector) { - for (int i = sector_t::floor; i <= sector_t::ceiling; i++) + if (sector->GetPlaneTexZ(sector_t::ceiling) != sector->vboheight[sector_t::ceiling]) { - if (sector->GetPlaneTexZ(i) != sector->vboheight[i]) - { - UpdatePlaneVertices(sector, i); - sector->vboheight[i] = sector->GetPlaneTexZ(i); - continue; - } - - secplane_t &splane = sector->GetSecPlane(i); - if (splane.normal != splane.vbonormal) - { - UpdatePlaneVertices(sector, i); - splane.vbonormal = splane.normal; - } + UpdatePlaneVertices(sector, sector_t::ceiling); + sector->vboheight[sector_t::ceiling] = sector->GetPlaneTexZ(sector_t::ceiling); + } + if (sector->GetPlaneTexZ(sector_t::floor) != sector->vboheight[sector_t::floor]) + { + UpdatePlaneVertices(sector, sector_t::floor); + sector->vboheight[sector_t::floor] = sector->GetPlaneTexZ(sector_t::floor); } } diff --git a/src/p_map.cpp b/src/p_map.cpp index 6767c2f5f..50397d852 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -6757,21 +6757,6 @@ void PIT_CeilingRaise(AActor *thing, FChangePosition *cpos) // //============================================================================= -// -DEFINE_ACTION_FUNCTION(_Sector, ChangeSector) -{ - PARAM_SELF_STRUCT_PROLOGUE(sector_t); - PARAM_INT(crunch); - PARAM_FLOAT(amt); - PARAM_INT(floorOrCeil); - PARAM_BOOL(isreset); - PARAM_BOOL(instant); - - bool b = P_ChangeSector(self, crunch, amt, floorOrCeil, isreset, instant); - - ACTION_RETURN_BOOL(b); -} - bool P_ChangeSector(sector_t *sector, int crunch, double amt, int floorOrCeil, bool isreset, bool instant) { FChangePosition cpos; diff --git a/src/r_defs.h b/src/r_defs.h index 910025d33..6a3dfac76 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -288,7 +288,6 @@ struct secplane_t //private: DVector3 normal; double D, negiC; // negative iC because that also saves a negation in all methods using this. - DVector3 vbonormal; // [ZZ] for opengl update. it's critical that this member is the last one, so that {{x,y,z},...} works properly public: friend FSerializer &Serialize(FSerializer &arc, const char *key, secplane_t &p, secplane_t *def); diff --git a/wadsrc/static/zscript/mapdata.txt b/wadsrc/static/zscript/mapdata.txt index 38fa8d0a3..e219e835a 100644 --- a/wadsrc/static/zscript/mapdata.txt +++ b/wadsrc/static/zscript/mapdata.txt @@ -314,7 +314,7 @@ struct Sector native play SECF_NOMODIFY = SECF_SECRET|SECF_WASSECRET, // not modifiable by Sector_ChangeFlags SECF_SPECIALFLAGS = SECF_DAMAGEFLAGS|SECF_FRICTION|SECF_PUSH, // these flags originate from 'special and must be transferrable by floor thinkers } - + enum EMoveResult { MOVE_OK, @@ -333,15 +333,6 @@ struct Sector native play native int Index(); - enum EChangeSectorMode - { - CS_Floor = 0, - CS_Ceiling = 1, - CS_3DMidTex = 2 - }; - - native bool ChangeSector(int crunch, double amt, EChangeSectorMode mode/*floorOrCeiling*/, bool isreset, bool instant); - native double, Sector, F3DFloor NextHighestCeilingAt(double x, double y, double bottomz, double topz, int flags = 0); native double, Sector, F3DFloor NextLowestFloorAt(double x, double y, double z, int flags = 0, double steph = 0);