- fixed issues with Duke's poolballs.

This commit is contained in:
Christoph Oelckers 2022-10-25 21:55:23 +02:00
parent 09df4da241
commit c5523a99ee
3 changed files with 6 additions and 6 deletions

View file

@ -1474,7 +1474,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball)
if (actor->spr.picnum == stripeball)
{
actor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL;
actor->spr.cstat |= (CSTAT_SPRITE_XFLIP | CSTAT_SPRITE_YFLIP) & ESpriteFlags::FromInt(int(actor->vel.X / 16.)); // special hack edition...
actor->spr.cstat |= (CSTAT_SPRITE_XFLIP | CSTAT_SPRITE_YFLIP) & ESpriteFlags::FromInt(int(actor->vel.X * 16.)); // special hack edition...
}
}
else
@ -1509,7 +1509,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball)
{
if (actor->spr.pal == 12)
actor->vel.X = 10.25;
else actor->vel.Z = 8.75;
else actor->vel.X = 8.75;
actor->spr.angle = ps[p].angle.ang;
ps[p].toggle_key_flag = 2;
}

View file

@ -1037,8 +1037,8 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
case STRIPEBALL:
if (proj->spr.picnum == QUEBALL || proj->spr.picnum == STRIPEBALL)
{
proj->vel.X *= 0.75;
proj->spr.angle -= targ->spr.angle * 2 + DAngle180;
proj->vel.X = targ->vel.X * 0.75;
proj->spr.angle -= targ->spr.angle.Normalized180() * 2 + DAngle180;
targ->spr.angle = (targ->spr.pos.XY() - proj->spr.pos.XY()).Angle() - DAngle90;
if (S_CheckSoundPlaying(POOLBALLHIT) < 2)
S_PlayActorSound(POOLBALLHIT, targ);

View file

@ -2072,8 +2072,8 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj)
case HENSTAND + 1:
if (proj->spr.picnum == QUEBALL || proj->spr.picnum == STRIPEBALL)
{
proj->vel.X *= 0.75;
proj->spr.angle -= targ->spr.angle * 2 + DAngle180;
proj->vel.X = targ->vel.X * 0.75;
proj->spr.angle -= targ->spr.angle.Normalized180() * 2 + DAngle180;
targ->spr.angle = (targ->spr.pos.XY() - proj->spr.pos.XY()).Angle() - DAngle90;
if (S_CheckSoundPlaying(POOLBALLHIT) < 2)
S_PlayActorSound(POOLBALLHIT, targ);