From 3858e2cbd1451854301e1088e663509a43c2f3af Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sun, 18 Sep 2022 21:53:03 +1000 Subject: [PATCH] - Blood: Floatify `FlareBurst()`. --- source/games/blood/src/callback.cpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/source/games/blood/src/callback.cpp b/source/games/blood/src/callback.cpp index dc6ab6228..100c80732 100644 --- a/source/games/blood/src/callback.cpp +++ b/source/games/blood/src/callback.cpp @@ -87,8 +87,8 @@ void Remove(DBloodActor* actor, sectortype*) // 1 void FlareBurst(DBloodActor* actor, sectortype*) // 2 { if (!actor) return; - int nAngle = getangle(actor->int_vel().X, actor->int_vel().Y); - int nRadius = 0x55555; + auto nAngVec = actor->vel.XY().Angle().ToVector(); + double nRadius = FixedToFloat(0x55555); for (int i = 0; i < 8; i++) { auto spawnedactor = actSpawnSprite(actor, 5); @@ -98,19 +98,9 @@ void FlareBurst(DBloodActor* actor, sectortype*) // 2 spawnedactor->spr.type = kMissileFlareAlt; spawnedactor->set_const_clipdist(2); spawnedactor->SetOwner(actor); - int nAngle2 = (i << 11) / 8; - int dx = 0; - int dy = mulscale30r(nRadius, Sin(nAngle2)); - int dz = mulscale30r(nRadius, -Cos(nAngle2)); - if (i & 1) - { - dy >>= 1; - dz >>= 1; - } - RotateVector(&dx, &dy, nAngle); - spawnedactor->add_int_bvel_x(dx); - spawnedactor->add_int_bvel_y(dy); - spawnedactor->add_int_bvel_z(dz); + auto spAngVec = DAngle::fromBam(i << 29).ToVector().Rotated90CW() * nRadius; + if (i & 1) spAngVec *= 0.5; + spawnedactor->vel += DVector3(DVector2(0, spAngVec.X).Rotated(nAngVec.X, nAngVec.Y), spAngVec.Y); evPostActor(spawnedactor, 960, kCallbackRemove); } evPostActor(actor, 0, kCallbackRemove);