From 52dc48d671c108ab62279e879f0f8064ce579d0d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 21 Oct 2022 22:08:25 +0200 Subject: [PATCH] - fixed spawn position calculation in shootflamethrowerflame. --- source/games/duke/src/player_d.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/games/duke/src/player_d.cpp b/source/games/duke/src/player_d.cpp index 2a452a831..ad4b35f11 100644 --- a/source/games/duke/src/player_d.cpp +++ b/source/games/duke/src/player_d.cpp @@ -200,7 +200,13 @@ static void shootflamethrowerflame(DDukeActor* actor, int p, DVector3 spos, DAng spawned->vel.Z = zvel; } - spawned->spr.pos = spos + (sang + mapangle(112)).ToVector() * 7; + + DVector3 offset; + offset.X = (sang + DAngle::fromBuild(118)).Cos() * (1024 / 448.); // Yes, these angles are really different! + offset.Y = (sang + DAngle::fromBuild(112)).Sin() * (1024 / 448.); + offset.Z = -1; + + spawned->spr.pos = spos + offset; spawned->spr.pos.Z--; spawned->setsector(actor->sector()); spawned->spr.cstat = CSTAT_SPRITE_YCENTER;