From 45f37525e0f3abb74fd52f9fa367b1e5eab23e30 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 21 Aug 2022 19:19:47 +0200 Subject: [PATCH] - minor angle stuff in Blood --- source/common/utility/vectors.h | 9 +++++---- source/core/coreactor.h | 2 -- source/games/blood/src/aibat.cpp | 4 ++-- source/games/blood/src/aibeast.cpp | 4 ++-- source/games/blood/src/aiboneel.cpp | 2 +- source/games/blood/src/aicaleb.cpp | 4 ++-- source/games/blood/src/aigarg.cpp | 4 ++-- source/games/blood/src/aighost.cpp | 4 ++-- source/games/blood/src/aigilbst.cpp | 4 ++-- source/games/blood/src/aiunicult.cpp | 2 +- 10 files changed, 19 insertions(+), 20 deletions(-) diff --git a/source/common/utility/vectors.h b/source/common/utility/vectors.h index 7a8ef5321..48bc6cfc6 100644 --- a/source/common/utility/vectors.h +++ b/source/common/utility/vectors.h @@ -1635,10 +1635,11 @@ typedef TAngle DAngle; constexpr DAngle nullAngle = DAngle::fromDeg(0.); constexpr FAngle nullFAngle = FAngle::fromDeg(0.); -constexpr DAngle DAngle90 = DAngle::fromBam(ANGLE_90); -constexpr DAngle DAngle180 = DAngle::fromBam(ANGLE_180); -constexpr DAngle DAngle270 = DAngle::fromBam(ANGLE_270); -constexpr DAngle DAngle360 = DAngle::fromBam(ANGLE_MAX); +constexpr DAngle DAngle45 = DAngle::fromDeg(45); +constexpr DAngle DAngle90 = DAngle::fromDeg(90); +constexpr DAngle DAngle180 = DAngle::fromDeg(180); +constexpr DAngle DAngle270 = DAngle::fromDeg(270); +constexpr DAngle DAngle360 = DAngle::fromDeg(360); class Plane { diff --git a/source/core/coreactor.h b/source/core/coreactor.h index b79c91ae0..354dc0254 100644 --- a/source/core/coreactor.h +++ b/source/core/coreactor.h @@ -555,8 +555,6 @@ inline void SetActorZ(DCoreActor* actor, const DVector3& newpos) SetActorZ(actor, &ipos); } - - inline int clipmove(vec3_t& pos, sectortype** const sect, int xvect, int yvect, int const walldist, int const ceildist, int const flordist, unsigned const cliptype, CollisionBase& result, int clipmoveboxtracenum = 3) { diff --git a/source/games/blood/src/aibat.cpp b/source/games/blood/src/aibat.cpp index af9f6975c..720ae4cb4 100644 --- a/source/games/blood/src/aibat.cpp +++ b/source/games/blood/src/aibat.cpp @@ -317,7 +317,7 @@ static void batMoveForward(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -377,7 +377,7 @@ static void batMoveFly(DBloodActor* actor) int nAccel = pDudeInfo->frontSpeed << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aibeast.cpp b/source/games/blood/src/aibeast.cpp index d62a7b558..738368392 100644 --- a/source/games/blood/src/aibeast.cpp +++ b/source/games/blood/src/aibeast.cpp @@ -420,7 +420,7 @@ static void sub_628A0(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -489,7 +489,7 @@ static void sub_62D7C(DBloodActor* actor) int nAccel = pDudeInfo->frontSpeed << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aiboneel.cpp b/source/games/blood/src/aiboneel.cpp index 6ba3ea8ab..b4b7caaed 100644 --- a/source/games/blood/src/aiboneel.cpp +++ b/source/games/blood/src/aiboneel.cpp @@ -327,7 +327,7 @@ static void eelMoveForward(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); diff --git a/source/games/blood/src/aicaleb.cpp b/source/games/blood/src/aicaleb.cpp index c558b5389..b9079fee5 100644 --- a/source/games/blood/src/aicaleb.cpp +++ b/source/games/blood/src/aicaleb.cpp @@ -283,7 +283,7 @@ static void sub_65D04(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -354,7 +354,7 @@ static void sub_661E0(DBloodActor* actor) int nAccel = pDudeInfo->frontSpeed << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aigarg.cpp b/source/games/blood/src/aigarg.cpp index 2075164c8..fee44e981 100644 --- a/source/games/blood/src/aigarg.cpp +++ b/source/games/blood/src/aigarg.cpp @@ -530,7 +530,7 @@ static void gargMoveForward(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -644,7 +644,7 @@ static void gargMoveFly(DBloodActor* actor) int nAccel = pDudeInfo->frontSpeed << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aighost.cpp b/source/games/blood/src/aighost.cpp index 66fc26ad4..64a217bda 100644 --- a/source/games/blood/src/aighost.cpp +++ b/source/games/blood/src/aighost.cpp @@ -426,7 +426,7 @@ static void ghostMoveForward(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -534,7 +534,7 @@ static void ghostMoveFly(DBloodActor* actor) int nAccel = pDudeInfo->frontSpeed << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aigilbst.cpp b/source/games/blood/src/aigilbst.cpp index 4ea968958..6ee5ceac1 100644 --- a/source/games/blood/src/aigilbst.cpp +++ b/source/games/blood/src/aigilbst.cpp @@ -273,7 +273,7 @@ static void sub_6CB00(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy); @@ -342,7 +342,7 @@ static void sub_6D03C(DBloodActor* actor) int nAccel = (pDudeInfo->frontSpeed - (((4 - gGameOptions.nDifficulty) << 27) / 120) / 120) << 2; if (abs(nAng) > 341) { - actor->set_int_ang((actor->int_ang() + 512) & 2047); + actor->spr.angle += DAngle90; return; } int dx = actor->xspr.TargetPos.X - actor->int_pos().X; diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index 76f72fde1..ab8aa5bd1 100644 --- a/source/games/blood/src/aiunicult.cpp +++ b/source/games/blood/src/aiunicult.cpp @@ -1121,7 +1121,7 @@ void aiGenDudeMoveForward(DBloodActor* actor) if (abs(nAng) > 341) return; if (actor->GetTarget() == nullptr) - actor->set_int_ang((actor->int_ang() + 256) & 2047); + actor->spr.angle += DAngle45; int dx = actor->xspr.TargetPos.X - actor->int_pos().X; int dy = actor->xspr.TargetPos.Y - actor->int_pos().Y; int nDist = approxDist(dx, dy);