From 89cfb87072c71995347fe98e5bcc35252e7a042e Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 27 Sep 2022 20:09:26 +0200 Subject: [PATCH] - floatified 2 functions in aigarg.cpp --- source/games/blood/src/aigarg.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/source/games/blood/src/aigarg.cpp b/source/games/blood/src/aigarg.cpp index 8338cf91e..addf51c85 100644 --- a/source/games/blood/src/aigarg.cpp +++ b/source/games/blood/src/aigarg.cpp @@ -81,18 +81,17 @@ void SlashFSeqCallback(int, DBloodActor* actor) auto target = actor->GetTarget(); DUDEINFO* pDudeInfo = getDudeInfo(actor->spr.type); DUDEINFO* pDudeInfoT = getDudeInfo(target->spr.type); - int height = (actor->spr.yrepeat * pDudeInfo->eyeHeight) << 2; - int height2 = (target->spr.yrepeat * pDudeInfoT->eyeHeight) << 2; - int dz = height - height2; - int dx = bcos(actor->int_ang()); - int dy = bsin(actor->int_ang()); - actFireVector(actor, 0, 0, dx, dy, dz, kVectorGargSlash); - int r1 = Random(50); - int r2 = Random(50); - actFireVector(actor, 0, 0, dx + r2, dy - r1, dz, kVectorGargSlash); - r1 = Random(50); - r2 = Random(50); - actFireVector(actor, 0, 0, dx - r2, dy + r1, dz, kVectorGargSlash); + double height = (actor->spr.yrepeat * pDudeInfo->eyeHeight) * REPEAT_SCALE; + double height2 = (target->spr.yrepeat * pDudeInfoT->eyeHeight) * REPEAT_SCALE; + DVector3 vec(actor->spr.angle.ToVector() * 64, height - height2); + + actFireVector(actor, 0, 0, vec, kVectorGargSlash); + double r1 = RandomF(50, 8); + double r2 = RandomF(50, 8); + actFireVector(actor, 0, 0, vec + DVector2(r1, r2), kVectorGargSlash); + r1 = RandomF(50, 8); + r2 = RandomF(50, 8); + actFireVector(actor, 0, 0, vec + DVector2(r1, r2), kVectorGargSlash); } void ThrowFSeqCallback(int, DBloodActor* actor) @@ -240,10 +239,10 @@ static void gargThinkGoto(DBloodActor* actor) } DUDEINFO* pDudeInfo = getDudeInfo(actor->spr.type); auto dvec = actor->xspr.TargetPos.XY() - actor->spr.pos.XY(); - int nAngle = getangle(dvec); + DAngle nAngle = VecToAngle(dvec); double nDist = dvec.Length(); - aiChooseDirection(actor, DAngle::fromBuild(nAngle)); - if (nDist < 32 && abs(actor->int_ang() - nAngle) < pDudeInfo->periphery) + aiChooseDirection(actor, nAngle); + if (nDist < 32 && absangle(actor->spr.angle, nAngle) < pDudeInfo->Periphery()) aiNewState(actor, &gargoyleFSearch); aiThinkTarget(actor); }