- floatified shootmortar

This commit is contained in:
Christoph Oelckers 2022-09-13 23:14:20 +02:00
parent 840d1f4793
commit 0b58f2ea3c

View file

@ -1006,26 +1006,22 @@ static void shootgrowspark(DDukeActor* actor, int p, DVector3 pos, DAngle ang)
// //
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
static void shootmortar(DDukeActor* actor, int p, int sx, int sy, int sz, int sa, int atwith) static void shootmortar(DDukeActor* actor, int p, const DVector3& pos, DAngle ang, int atwith)
{ {
auto sect = actor->sector(); auto sect = actor->sector();
int zvel;
if (actor->spr.extra >= 0) actor->spr.shade = -96; if (actor->spr.extra >= 0) actor->spr.shade = -96;
int x; double x;
auto plActor = ps[findplayer(actor, &x)].GetActor(); auto plActor = ps[findplayer(actor, &x)].GetActor();
x = ldist(plActor, actor); x = (plActor->spr.pos.XY() - actor->spr.pos.XY()).Length();
zvel = -x >> 1; double zvel = -x * 0.5;
if (zvel < -4096) if (zvel < -8)
zvel = -2048; zvel = -4;
int vel = x >> 4; double vel = x / 16.;
EGS(sect, CreateActor(sect, pos.plusZ(-6) + ang.ToVector() * 4, atwith, -64, 32, 32, ang.Buildang(), vel * worldtoint, zvel * zworldtoint, actor, 1);
sx - bsin(sa, -8),
sy + bcos(sa, -8),
sz + (6 << 8), atwith, -64, 32, 32, sa, vel, zvel, actor, 1);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -1196,7 +1192,7 @@ void shoot_d(DDukeActor* actor, int atwith)
case BOUNCEMINE: case BOUNCEMINE:
case MORTER: case MORTER:
shootmortar(actor, p, sx, sy, sz, sa, atwith); shootmortar(actor, p, spos, sang, atwith);
return; return;
case GROWSPARK: case GROWSPARK: