diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index 475443c55..569851ce2 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -168,9 +168,7 @@ void AIAnubis::Tick(RunListEvent* ev) { PlotCourseToSprite(ap, pTarget); - int nAngle = ap->int_ang() & 0xFFF8; - ap->set_int_xvel(bcos(nAngle, -2)); - ap->set_int_yvel(bsin(nAngle, -2)); + ap->vel.XY() = ap->spr.angle.ToVector() * 256; } switch (move.type) @@ -192,7 +190,7 @@ void AIAnubis::Tick(RunListEvent* ev) } case kHitWall: { - ap->set_int_ang((ap->int_ang() + 256) & kAngleMask); + ap->spr.angle += DAngle45; ap->VelFromAngle(-2); break; } @@ -256,8 +254,7 @@ void AIAnubis::Tick(RunListEvent* ev) { ap->nAction = 1; - ap->set_int_xvel(bcos(ap->int_ang(), -2)); - ap->set_int_yvel(bsin(ap->int_ang(), -2)); + ap->vel.XY() = ap->spr.angle.ToVector() * 256; ap->nFrame = 0; } else diff --git a/source/games/exhumed/src/fish.cpp b/source/games/exhumed/src/fish.cpp index b95079d7c..b4998b68d 100644 --- a/source/games/exhumed/src/fish.cpp +++ b/source/games/exhumed/src/fish.cpp @@ -372,8 +372,7 @@ void AIFish::Tick(RunListEvent* ev) if (z <= nHeight) { - pActor->set_int_xvel(bcos(pActor->int_ang(), -5) - bcos(pActor->int_ang(), -7)); - pActor->set_int_yvel(bsin(pActor->int_ang(), -5) - bsin(pActor->int_ang(), -7)); + pActor->vel.XY() = pActor->spr.angle.ToVector() * (32 - 8); } else { diff --git a/source/games/exhumed/src/lion.cpp b/source/games/exhumed/src/lion.cpp index c592e2f50..5dde4707f 100644 --- a/source/games/exhumed/src/lion.cpp +++ b/source/games/exhumed/src/lion.cpp @@ -405,9 +405,8 @@ void AILion::Tick(RunListEvent* ev) pActor->set_int_ang(nAngle); pActor->nAction = 6; - pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); - pActor->set_int_yvel(bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3)); - D3PlayFX(StaticSound[kSound24], pActor); + pActor->vel.XY() = pActor->spr.angle.ToVector() * (1024 - 128); + D3PlayFX(StaticSound[kSound24], pActor); } return; @@ -471,8 +470,7 @@ void AILion::Tick(RunListEvent* ev) pActor->set_int_zvel(-1000); pActor->nAction = 6; - pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); - pActor->set_int_yvel(bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3)); + pActor->vel.XY() = pActor->spr.angle.ToVector() * (1024 - 128); D3PlayFX(StaticSound[kSound24], pActor); } diff --git a/source/games/exhumed/src/queen.cpp b/source/games/exhumed/src/queen.cpp index 978251b15..c047b923e 100644 --- a/source/games/exhumed/src/queen.cpp +++ b/source/games/exhumed/src/queen.cpp @@ -444,8 +444,7 @@ void BuildQueenEgg(int nQueen, int nVal) { pActor2->spr.xrepeat = 30; pActor2->spr.yrepeat = 30; - pActor2->set_int_xvel(bcos(pActor2->int_ang())); - pActor2->set_int_yvel(bsin(pActor2->int_ang())); + pActor2->vel.XY() = pActor2->spr.angle.ToVector() * 1024; pActor2->set_int_zvel(-6000); pActor2->spr.cstat = 0; } @@ -837,7 +836,7 @@ void AIQueenHead::Tick(RunListEvent* ev) [[fallthrough]]; case 1: - if ((pTarget->int_pos().Z - 51200) > pActor->int_pos().Z) + if ((pTarget->spr.pos.Z - 200) > pActor->spr.pos.Z) { QueenHead.nAction = 4; QueenHead.nFrame = 0; diff --git a/source/games/exhumed/src/roach.cpp b/source/games/exhumed/src/roach.cpp index 7676fbc7b..94408f9ac 100644 --- a/source/games/exhumed/src/roach.cpp +++ b/source/games/exhumed/src/roach.cpp @@ -91,8 +91,7 @@ void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortyp void GoRoach(DExhumedActor* pActor) { - pActor->set_int_xvel(bcos(pActor->int_ang(), -1) - bcos(pActor->int_ang(), -3)); - pActor->set_int_yvel(bsin(pActor->int_ang(), -1) - bsin(pActor->int_ang(), -3)); + pActor->vel.XY() = pActor->spr.angle.ToVector() * (512 - 128); } void AIRoach::Draw(RunListEvent* ev) diff --git a/source/games/exhumed/src/scorp.cpp b/source/games/exhumed/src/scorp.cpp index 34902ad89..53a68c5d5 100644 --- a/source/games/exhumed/src/scorp.cpp +++ b/source/games/exhumed/src/scorp.cpp @@ -369,9 +369,8 @@ void AIScorp::Tick(RunListEvent* ev) int nVel = RandomSize(5) + 1; - pSpiderActor->set_int_xvel(bcos(pSpiderActor->int_ang(), -8) * nVel); - pSpiderActor->set_int_yvel(bsin(pSpiderActor->int_ang(), -8) * nVel); - pSpiderActor->set_int_zvel((-(RandomSize(5) + 3)) << 8); + pSpiderActor->vel.XY() = pSpiderActor->spr.angle.ToVector() * 4 * nVel; + pSpiderActor->vel.Z = -(RandomSize(5) + 3); } return;