mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-21 11:11:16 +00:00
- floatify angle stuff for bowling, henstand etc. in RR.
This commit is contained in:
parent
c30493c344
commit
fe7dfa1c53
2 changed files with 20 additions and 10 deletions
|
@ -247,4 +247,14 @@ inline ESpriteFlags randomXFlip()
|
|||
return CSTAT_SPRITE_XFLIP;
|
||||
}
|
||||
|
||||
inline DAngle randomAngle(double span)
|
||||
{
|
||||
return DAngle::fromDeg(krandf(span));
|
||||
}
|
||||
|
||||
inline DAngle randomAngle(DAngle span)
|
||||
{
|
||||
return DAngle::fromDeg(krandf(span.Degrees()));
|
||||
}
|
||||
|
||||
END_DUKE_NS
|
||||
|
|
|
@ -2076,31 +2076,31 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj)
|
|||
case HENSTAND + 1:
|
||||
if (proj->spr.picnum == QUEBALL || proj->spr.picnum == STRIPEBALL)
|
||||
{
|
||||
proj->set_int_xvel((targ->int_xvel() >> 1) + (targ->int_xvel() >> 2));
|
||||
proj->add_int_ang(-((targ->int_ang() << 1) + 1024));
|
||||
targ->set_int_ang(getangle(targ->int_pos().X - proj->int_pos().X, targ->int_pos().Y - proj->int_pos().Y) - 512);
|
||||
proj->vel.X *= 0.75;
|
||||
proj->spr.angle -= targ->spr.angle * 2 + DAngle180;
|
||||
targ->spr.angle = VecToAngle(targ->spr.pos.XY() - proj->spr.pos.XY()) - DAngle90;
|
||||
if (S_CheckSoundPlaying(POOLBALLHIT) < 2)
|
||||
S_PlayActorSound(POOLBALLHIT, targ);
|
||||
}
|
||||
else if (proj->spr.picnum == BOWLINGPIN || proj->spr.picnum == BOWLINGPIN + 1)
|
||||
{
|
||||
proj->set_int_xvel((targ->int_xvel() >> 1) + (targ->int_xvel() >> 2));
|
||||
proj->add_int_ang(-(((targ->int_ang() << 1) + krand()) & 64));
|
||||
targ->set_int_ang((targ->int_ang() + krand()) & 16);
|
||||
proj->vel.X *= 0.75;
|
||||
proj->spr.angle -= targ->spr.angle * 2 + randomAngle(11.25);
|
||||
targ->spr.angle += randomAngle(22.5 / 8);
|
||||
S_PlayActorSound(355, targ);
|
||||
}
|
||||
else if (proj->spr.picnum == HENSTAND || proj->spr.picnum == HENSTAND + 1)
|
||||
{
|
||||
proj->set_int_xvel((targ->int_xvel() >> 1) + (targ->int_xvel() >> 2));
|
||||
proj->add_int_ang(-(((targ->int_ang() << 1) + krand()) & 16));
|
||||
targ->set_int_ang((targ->int_ang() + krand()) & 16);
|
||||
proj->vel.X *= 0.75;
|
||||
proj->spr.angle -= targ->spr.angle * 2 + randomAngle(22.5 / 8);
|
||||
targ->spr.angle += randomAngle(22.5 / 8);
|
||||
S_PlayActorSound(355, targ);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (krand() & 3)
|
||||
{
|
||||
targ->set_int_xvel(164);
|
||||
targ->vel.X = 10.25;
|
||||
targ->spr.angle = proj->spr.angle;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue