- fixed some particle positioning errors.

This commit is contained in:
Christoph Oelckers 2016-04-10 10:57:48 +02:00
parent 9a48adf81a
commit d48c0ce25c
2 changed files with 10 additions and 11 deletions

View file

@ -589,7 +589,7 @@ void P_DrawSplash2 (int count, const DVector3 &pos, DAngle angle, int updown, in
zvel = -1./512.; zvel = -1./512.;
zspread = updown ? -6000 / 65536. : 6000 / 65536.; zspread = updown ? -6000 / 65536. : 6000 / 65536.;
zadd = (updown == 2) ? 128 : 0; zadd = (updown == 2) ? -128 : 0;
for (; count; count--) for (; count; count--)
{ {

View file

@ -5049,15 +5049,13 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position)
// P_SpawnPuff // P_SpawnPuff
// //
AActor *P_SpawnPuff (AActor *source, PClassActor *pufftype, const DVector3 &pos, DAngle hitdir, DAngle particledir, int updown, int flags, AActor *vict) AActor *P_SpawnPuff (AActor *source, PClassActor *pufftype, const DVector3 &pos1, DAngle hitdir, DAngle particledir, int updown, int flags, AActor *vict)
{ {
AActor *puff; AActor *puff;
double z = 0; DVector3 pos = pos1;
if (!(flags & PF_NORANDOMZ)) if (!(flags & PF_NORANDOMZ)) pos.Z += pr_spawnpuff.Random2() / 64.;
z = pr_spawnpuff.Random2() / 64.; puff = Spawn(pufftype, pos, ALLOW_REPLACE);
puff = Spawn(pufftype, pos + DVector3(0, 0, z), ALLOW_REPLACE);
if (puff == NULL) return NULL; if (puff == NULL) return NULL;
if ((puff->flags4 & MF4_RANDOMIZE) && puff->tics > 0) if ((puff->flags4 & MF4_RANDOMIZE) && puff->tics > 0)
@ -5275,13 +5273,14 @@ void P_BloodSplatter2 (const DVector3 &pos, AActor *originator, DAngle hitangle)
if (bloodcls != NULL && !(GetDefaultByType(bloodcls)->flags4 & MF4_ALLOWPARTICLES)) if (bloodcls != NULL && !(GetDefaultByType(bloodcls)->flags4 & MF4_ALLOWPARTICLES))
bloodtype = 0; bloodtype = 0;
DVector2 add;
add.X = (pr_splat() - 128) / 32.;
add.Y = (pr_splat() - 128) / 32.;
if (bloodcls != NULL) if (bloodcls != NULL)
{ {
AActor *mo; AActor *mo;
DVector2 add;
add.X = (pr_splat()-128) / 32.;
add.Y = (pr_splat()-128) / 32.;
mo = Spawn (bloodcls, pos + add, NO_REPLACE); // GetBloodType already performed the replacement mo = Spawn (bloodcls, pos + add, NO_REPLACE); // GetBloodType already performed the replacement
mo->target = originator; mo->target = originator;
@ -5296,7 +5295,7 @@ void P_BloodSplatter2 (const DVector3 &pos, AActor *originator, DAngle hitangle)
} }
if (bloodtype >= 1) if (bloodtype >= 1)
{ {
P_DrawSplash2(40, pos, hitangle - 180., 2, bloodcolor); P_DrawSplash2(40, pos + add, hitangle - 180., 2, bloodcolor);
} }
} }