From 7d9406bf01037612f206f5a084f00d85eea6d712 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 20 Aug 2022 16:26:01 +0200 Subject: [PATCH] - AngleDiff --- source/games/exhumed/src/anubis.cpp | 4 +--- source/games/exhumed/src/engine.h | 2 +- source/games/exhumed/src/lavadude.cpp | 4 ++-- source/games/exhumed/src/lion.cpp | 9 ++++----- source/games/exhumed/src/mummy.cpp | 4 ++-- source/games/exhumed/src/player.cpp | 2 +- source/games/exhumed/src/scorp.cpp | 4 ++-- source/games/exhumed/src/set.cpp | 6 +++--- source/games/exhumed/src/spider.cpp | 4 ++-- source/games/exhumed/src/trigdat.cpp | 4 ++-- 10 files changed, 20 insertions(+), 23 deletions(-) diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index e66d0017e..3c96f0718 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -180,9 +180,7 @@ void AIAnubis::Tick(RunListEvent* ev) { if (move.actor() == pTarget) { - int nAng = getangle(pTarget->spr.pos - ap->spr.pos); - int nAngDiff = AngleDiff(ap->int_ang(), nAng); - + auto nAngDiff = AngleDiff(ap->spr.angle, VecToAngle(pTarget->spr.pos - ap->spr.pos)); if (nAngDiff < 64) { ap->nAction = 2; diff --git a/source/games/exhumed/src/engine.h b/source/games/exhumed/src/engine.h index a81245b82..a4d7c7c28 100644 --- a/source/games/exhumed/src/engine.h +++ b/source/games/exhumed/src/engine.h @@ -125,7 +125,7 @@ int RandomSize(int nSize); int GetMyAngle(int x, int y); -int AngleDiff(int a, int b); +int AngleDiff(DAngle a, DAngle b); int AngleDelta(int a, int b, int c); END_PS_NS diff --git a/source/games/exhumed/src/lavadude.cpp b/source/games/exhumed/src/lavadude.cpp index 752927cd9..84b40265d 100644 --- a/source/games/exhumed/src/lavadude.cpp +++ b/source/games/exhumed/src/lavadude.cpp @@ -310,8 +310,8 @@ void AILavaDude::Tick(RunListEvent* ev) { if (coll.actor() == pTarget) { - int nAng = getangle(pTarget->spr.pos - pActor->spr.pos); - if (AngleDiff(pActor->int_ang(), nAng) < 64) + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) { pActor->nAction = 2; pActor->nFrame = 0; diff --git a/source/games/exhumed/src/lion.cpp b/source/games/exhumed/src/lion.cpp index 57ec01a35..8c98d9a10 100644 --- a/source/games/exhumed/src/lion.cpp +++ b/source/games/exhumed/src/lion.cpp @@ -309,9 +309,8 @@ void AILion::Tick(RunListEvent* ev) } else { - int nAng = getangle(pTarget->spr.pos - pActor->spr.pos); - - if (AngleDiff(pActor->int_ang(), nAng) < 64) + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) { pActor->nAction = 3; } @@ -442,8 +441,8 @@ void AILion::Tick(RunListEvent* ev) { if (nMov.actor() == pTarget) { - int nAng = getangle(pTarget->spr.pos - pActor->spr.pos); - if (AngleDiff(pActor->int_ang(), nAng) < 64) + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) { pActor->nAction = 3; pActor->nFrame = 0; diff --git a/source/games/exhumed/src/mummy.cpp b/source/games/exhumed/src/mummy.cpp index 44bfc6b9f..d13e8651c 100644 --- a/source/games/exhumed/src/mummy.cpp +++ b/source/games/exhumed/src/mummy.cpp @@ -270,8 +270,8 @@ void AIMummy::Tick(RunListEvent* ev) { if (nMov.actor() == pTarget) { - int nAngle = getangle(pTarget->spr.pos - pActor->spr.pos); - if (AngleDiff(pActor->int_ang(), nAngle) < 64) + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) { pActor->nAction = 2; pActor->nFrame = 0; diff --git a/source/games/exhumed/src/player.cpp b/source/games/exhumed/src/player.cpp index e59bfbf08..aba028f07 100644 --- a/source/games/exhumed/src/player.cpp +++ b/source/games/exhumed/src/player.cpp @@ -1014,7 +1014,7 @@ void AIPlayer::Tick(RunListEvent* ev) { if ((sect->hitag == 45) && bTouchFloor) { - int nDiff = AngleDiff(nNormal, (pPlayerActor->int_ang() + 1024) & kAngleMask); + int nDiff = AngleDiff(DAngle::fromBuild(nNormal), DAngle::fromBuild((pPlayerActor->int_ang() + 1024) & kAngleMask)); if (nDiff < 0) { nDiff = -nDiff; diff --git a/source/games/exhumed/src/scorp.cpp b/source/games/exhumed/src/scorp.cpp index 56159cf2a..687a1d69a 100644 --- a/source/games/exhumed/src/scorp.cpp +++ b/source/games/exhumed/src/scorp.cpp @@ -245,8 +245,8 @@ void AIScorp::Tick(RunListEvent* ev) { if (pTarget == nMov.actor()) { - int nAngle = getangle(pTarget->spr.pos - pActor->spr.pos); - if (AngleDiff(pActor->int_ang(), nAngle) < 64) + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) { pActor->nAction = 2; pActor->nFrame = 0; diff --git a/source/games/exhumed/src/set.cpp b/source/games/exhumed/src/set.cpp index 15cbea57c..c19322241 100644 --- a/source/games/exhumed/src/set.cpp +++ b/source/games/exhumed/src/set.cpp @@ -427,9 +427,9 @@ void AISet::Tick(RunListEvent* ev) { if (pTarget == nMov.actor()) { - int nAng = getangle(pTarget->spr.pos - pActor->spr.pos); - if (AngleDiff(pActor->int_ang(), nAng) < 64) - { + auto nAngDiff = AngleDiff(pActor->spr.angle, VecToAngle(pTarget->spr.pos - pActor->spr.pos)); + if (nAngDiff < 64) + { pActor->nAction = 4; pActor->nFrame = 0; } diff --git a/source/games/exhumed/src/spider.cpp b/source/games/exhumed/src/spider.cpp index b085d3117..428fc72ea 100644 --- a/source/games/exhumed/src/spider.cpp +++ b/source/games/exhumed/src/spider.cpp @@ -308,8 +308,8 @@ void AISpider::Tick(RunListEvent* ev) { if (nMov.actor() == pTarget) { - int nAng = getangle(pTarget->spr.pos - spp->spr.pos); - if (AngleDiff(spp->int_ang(), nAng) < 64) + auto nAngDiff = AngleDiff(spp->spr.angle, VecToAngle(pTarget->spr.pos - spp->spr.pos)); + if (nAngDiff < 64) { spp->nAction = 2; spp->nFrame = 0; diff --git a/source/games/exhumed/src/trigdat.cpp b/source/games/exhumed/src/trigdat.cpp index ff383f991..db065bd1d 100644 --- a/source/games/exhumed/src/trigdat.cpp +++ b/source/games/exhumed/src/trigdat.cpp @@ -120,9 +120,9 @@ int GetMyAngle(int x, int y) } // 100% done -int AngleDiff(int a, int b) +int AngleDiff(DAngle a, DAngle b) { - int diff = (b - a) & kAngleMask; + int diff = (b - a).Buildang(); if (diff > 1024) { diff = 2048 - diff;