From 0f57685f487d6e51b8cb018ec6287e19983ac856 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 25 Oct 2022 23:16:25 +0200 Subject: [PATCH] - updatesector interface cleanup. --- source/build/src/clip.cpp | 4 ++-- source/core/updatesector.h | 28 ++++++---------------------- source/games/duke/src/actors_d.cpp | 4 ++-- 3 files changed, 10 insertions(+), 26 deletions(-) diff --git a/source/build/src/clip.cpp b/source/build/src/clip.cpp index 53579f681..5b60a98e3 100644 --- a/source/build/src/clip.cpp +++ b/source/build/src/clip.cpp @@ -586,9 +586,9 @@ CollisionBase clipmove_(vec3_t * const pos, int * const sectnum, int32_t xvect, if (enginecompatibility_mode == ENGINECOMPATIBILITY_NONE) { - DVector3 v(vec.X* inttoworld, vec.Y* inttoworld, 0); + DVector2 v(vec.X* inttoworld, vec.Y* inttoworld); sectortype* sect = §or[*sectnum]; - updatesectorneighbor(v, §, rad * inttoworld); + updatesector(v, §, rad * inttoworld); *sectnum = ::sectnum(sect); } diff --git a/source/core/updatesector.h b/source/core/updatesector.h index ac1064ff9..23f3b15e5 100644 --- a/source/core/updatesector.h +++ b/source/core/updatesector.h @@ -80,41 +80,25 @@ void DoUpdateSector(double x, double y, double z, int* sectnum, double maxDistan constexpr int MAXUPDATESECTORDIST = 96; -inline void updatesector(const DVector3& pos, sectortype** const sectp) +inline void updatesector(const DVector3& pos, sectortype** const sectp, double maxDistance = MAXUPDATESECTORDIST) { int sectno = *sectp ? sector.IndexOf(*sectp) : -1; - DoUpdateSector(pos.X, pos.Y, pos.Z, §no, MAXUPDATESECTORDIST, inside0); + DoUpdateSector(pos.X, pos.Y, pos.Z, §no, maxDistance, inside0); *sectp = sectno == -1 ? nullptr : §or[sectno]; } -inline void updatesector(const DVector2& pos, sectortype** const sectp) +inline void updatesector(const DVector2& pos, sectortype** const sectp, double maxDistance = MAXUPDATESECTORDIST) { int sectno = *sectp ? sector.IndexOf(*sectp) : -1; - DoUpdateSector(pos.X, pos.Y, 0, §no, MAXUPDATESECTORDIST, inside0); + DoUpdateSector(pos.X, pos.Y, 0, §no, maxDistance, inside0); *sectp = sectno == -1 ? nullptr : §or[sectno]; } -inline void updatesectorz(const DVector3& pos, sectortype** const sectp) +inline void updatesectorz(const DVector3& pos, sectortype** const sectp, double maxDistance = MAXUPDATESECTORDIST) { int sectno = *sectp ? sector.IndexOf(*sectp) : -1; - DoUpdateSector(pos.X, pos.Y, pos.Z, §no, MAXUPDATESECTORDIST, insideZ); + DoUpdateSector(pos.X, pos.Y, pos.Z, §no, maxDistance, insideZ); *sectp = sectno == -1 ? nullptr : §or[sectno]; } -inline void updatesectorneighbor(const DVector3& pos, sectortype** const sect, double maxDistance = MAXUPDATESECTORDIST) -{ - int sectno = *sect? sector.IndexOf(*sect) : -1; - DoUpdateSector(pos.X, pos.Y, 0, §no, maxDistance, inside0); - *sect = sectno < 0? nullptr : §or[sectno]; -} - -[[deprecated]] -inline void updatesector(int x_, int y_, int* sectnum) -{ - double x = x_ * inttoworld; - double y = y_ * inttoworld; - - DoUpdateSector(x, y, 0, sectnum, MAXUPDATESECTORDIST, inside0); -} - diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index d55665f74..dec09212d 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -878,7 +878,7 @@ static void movetripbomb(DDukeActor *actor) auto const oldSect = actor->sector(); auto curSect = actor->sector(); - updatesectorneighbor(actor->spr.pos, &curSect, 128); + updatesector(actor->spr.pos, &curSect, 128); ChangeActorSect(actor, curSect); DDukeActor* hit; @@ -908,7 +908,7 @@ static void movetripbomb(DDukeActor *actor) x -= 64; actor->spr.pos += actor->temp_angle.ToVector() * 64; - updatesectorneighbor(actor->spr.pos, &curSect, 128); + updatesector(actor->spr.pos, &curSect, 128); if (curSect == nullptr) break;