From fd7c47ce2bc08d6108de18dddc70000deed3a079 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 27 Sep 2022 09:24:59 +0200 Subject: [PATCH] - Blood: floatified cultThrowSeqCallback --- source/games/blood/src/aicult.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/source/games/blood/src/aicult.cpp b/source/games/blood/src/aicult.cpp index cdb8d6ba5..4ebd47fa2 100644 --- a/source/games/blood/src/aicult.cpp +++ b/source/games/blood/src/aicult.cpp @@ -131,14 +131,12 @@ void cultThrowSeqCallback(int, DBloodActor* actor) if (!actor->ValidateTarget(__FUNCTION__)) return; auto target = actor->GetTarget(); assert(actor->spr.type >= kDudeBase && actor->spr.type < kDudeMax); - int dx = target->int_pos().X - actor->int_pos().X; - int dy = target->int_pos().Y - actor->int_pos().Y; - int dz = target->int_pos().Z - actor->int_pos().Z; - int nDist = approxDist(dx, dy); - int nDist2 = nDist / 540; - if (nDist > 0x1e00) + auto dv = target->spr.pos - actor->spr.pos; + double nDist = dv.XY().Length(); + if (nDist > 0x1e0) v4 = 0; - auto* pMissile = actFireThing(actor, 0, 0, dz / 128 - 14500, nMissile, (nDist2 << 23) / 120); + + auto* pMissile = actFireThing(actor, 0., 0., dv.Z / 32768 - FixedToFloat(14500), nMissile, nDist * (2048. / 64800)); if (v4) pMissile->xspr.Impact = 1; else