From fc011e847f883ef155d700ce6fa498047a8de336 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 25 Sep 2022 21:52:02 +0200 Subject: [PATCH] - Blood: floatified actCheckTraps --- source/games/blood/src/actor.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index b76d9cc65..78087a902 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -5902,28 +5902,22 @@ static void actCheckTraps() case kTrapFlame: if (actor->xspr.state && seqGetStatus(actor) < 0) { - int x = actor->int_pos().X; - int y = actor->int_pos().Y; - int z = actor->int_pos().Z; - int t = (actor->xspr.data1 << 23) / 120; - int dx = MulScale(t, Cos(actor->int_ang()), 30); - int dy = MulScale(t, Sin(actor->int_ang()), 30); + auto pos = actor->spr.pos; + double t = actor->xspr.data1 * (128. / 120.); + auto vec = actor->spr.angle.ToVector() * t; for (int i = 0; i < 2; i++) { - auto pFX = gFX.fxSpawnActor(FX_32, actor->sector(), x, y, z, 0); + auto pFX = gFX.fxSpawnActor(FX_32, actor->sector(), pos, 0); if (pFX) { - pFX->set_int_bvel_x(dx + Random2(0x8888)); - pFX->set_int_bvel_y(dy + Random2(0x8888)); + pFX->vel.X = vec.X + Random2F(0x8888); + pFX->vel.Y = vec.Y + Random2F(0x8888); pFX->vel.Z = Random2F(0x8888); } - x += (dx / 2) >> 12; - y += (dy / 2) >> 12; + pos += vec / 2; } - dy = bsin(actor->int_ang()); - dx = bcos(actor->int_ang()); gVectorData[kVectorTchernobogBurn].maxDist = actor->xspr.data1 << 9; - actFireVector(actor, 0, 0, dx, dy, Random2(0x8888), kVectorTchernobogBurn); + actFireVector(actor, 0., 0., DVector3(actor->spr.angle.ToVector(), Random2F(0x8888) * 4), kVectorTchernobogBurn); } break; }