From f8c789fdcb4e4687905578acc5afbb36ed698ee1 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 10 Sep 2022 13:51:43 +0200 Subject: [PATCH] - floatified DExhumedActor::angle2 --- source/games/exhumed/src/exhumedactor.h | 2 +- source/games/exhumed/src/move.cpp | 8 ++++---- source/games/exhumed/src/queen.cpp | 6 +++--- source/games/exhumed/src/wasp.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/games/exhumed/src/exhumedactor.h b/source/games/exhumed/src/exhumedactor.h index dee95c412..08a45763a 100644 --- a/source/games/exhumed/src/exhumedactor.h +++ b/source/games/exhumed/src/exhumedactor.h @@ -32,7 +32,7 @@ public: union { int16_t nIndex2; int16_t nAngle2; }; // index2 is for scorpion, angle2 is for wasp. union { int16_t nChannel; int16_t nVel; }; // channel is for scorpion, vel is for wasp. union { int16_t nDamage; int16_t nAction2; }; // nAction2 is for the queen. - int/*DAngle*/ angle2; // used by the queen + DAngle angle2; // used by AngleChase // for the grenade. int nTurn; diff --git a/source/games/exhumed/src/move.cpp b/source/games/exhumed/src/move.cpp index 8a89e7ee1..261faa697 100644 --- a/source/games/exhumed/src/move.cpp +++ b/source/games/exhumed/src/move.cpp @@ -924,7 +924,7 @@ Collision AngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int ebx, int if (pActor2 == nullptr) { - pActor->angle2 = 0; + pActor->angle2 = nullAngle; nAngle = pActor->int_ang(); } else @@ -963,14 +963,14 @@ Collision AngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int ebx, int } nAngle = (nAngDelta + pActor->int_ang()) & kAngleMask; - int nAngDeltaD = AngleDelta(pActor->angle2, var_18, 24); + int nAngDeltaD = AngleDelta(pActor->angle2.Buildang(), var_18, 24); - pActor->angle2 = (pActor->angle2 + nAngDeltaD) & kAngleMask; + pActor->angle2 = DAngle::fromBuild((pActor->angle2.Buildang() + nAngDeltaD) & kAngleMask); } pActor->set_int_ang(nAngle); - int eax = abs(bcos(pActor->angle2)); + int eax = abs(bcos(pActor->angle2.Buildang())); int x = ((bcos(nAngle) * ebx) >> 14) * eax; int y = ((bsin(nAngle) * ebx) >> 14) * eax; diff --git a/source/games/exhumed/src/queen.cpp b/source/games/exhumed/src/queen.cpp index 523b4e21a..ce251dfbf 100644 --- a/source/games/exhumed/src/queen.cpp +++ b/source/games/exhumed/src/queen.cpp @@ -287,7 +287,7 @@ Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int val if (pActor2 == nullptr) { - pActor->angle2 = 0; + pActor->angle2 = nullAngle; nAngle = pActor->int_ang(); } else @@ -322,12 +322,12 @@ Collision QueenAngleChase(DExhumedActor* pActor, DExhumedActor* pActor2, int val nAngle = (nAngDelta + pActor->int_ang()) & kAngleMask; - pActor->angle2 = (AngleDelta(pActor->angle2, var_14, 24) + pActor->angle2) & kAngleMask; + pActor->angle2 = DAngle::fromBuild((AngleDelta(pActor->angle2.Buildang(), var_14, 24) + pActor->angle2.Buildang()) & kAngleMask); } pActor->set_int_ang(nAngle); - int da = pActor->angle2; + int da = pActor->angle2.Buildang(); int x = abs(bcos(da)); int v26 = x * ((val1 * bcos(nAngle)) >> 14); diff --git a/source/games/exhumed/src/wasp.cpp b/source/games/exhumed/src/wasp.cpp index c6484b77c..d23f3e129 100644 --- a/source/games/exhumed/src/wasp.cpp +++ b/source/games/exhumed/src/wasp.cpp @@ -241,7 +241,7 @@ void AIWasp::Tick(RunListEvent* ev) } else { - pActor->angle2 = 0; + pActor->angle2 = nullAngle; pActor->vel.Z = 0; pActor->nAction = 1; pActor->nFrame = 0;