- handle vel from angle assignments

This commit is contained in:
Christoph Oelckers 2022-09-09 19:10:40 +02:00
parent 44ff4a19c9
commit 39d8591ffc
6 changed files with 12 additions and 21 deletions

View file

@ -168,9 +168,7 @@ void AIAnubis::Tick(RunListEvent* ev)
{ {
PlotCourseToSprite(ap, pTarget); PlotCourseToSprite(ap, pTarget);
int nAngle = ap->int_ang() & 0xFFF8; ap->vel.XY() = ap->spr.angle.ToVector() * 256;
ap->set_int_xvel(bcos(nAngle, -2));
ap->set_int_yvel(bsin(nAngle, -2));
} }
switch (move.type) switch (move.type)
@ -192,7 +190,7 @@ void AIAnubis::Tick(RunListEvent* ev)
} }
case kHitWall: case kHitWall:
{ {
ap->set_int_ang((ap->int_ang() + 256) & kAngleMask); ap->spr.angle += DAngle45;
ap->VelFromAngle(-2); ap->VelFromAngle(-2);
break; break;
} }
@ -256,8 +254,7 @@ void AIAnubis::Tick(RunListEvent* ev)
{ {
ap->nAction = 1; ap->nAction = 1;
ap->set_int_xvel(bcos(ap->int_ang(), -2)); ap->vel.XY() = ap->spr.angle.ToVector() * 256;
ap->set_int_yvel(bsin(ap->int_ang(), -2));
ap->nFrame = 0; ap->nFrame = 0;
} }
else else

View file

@ -372,8 +372,7 @@ void AIFish::Tick(RunListEvent* ev)
if (z <= nHeight) if (z <= nHeight)
{ {
pActor->set_int_xvel(bcos(pActor->int_ang(), -5) - bcos(pActor->int_ang(), -7)); pActor->vel.XY() = pActor->spr.angle.ToVector() * (32 - 8);
pActor->set_int_yvel(bsin(pActor->int_ang(), -5) - bsin(pActor->int_ang(), -7));
} }
else else
{ {

View file

@ -405,9 +405,8 @@ void AILion::Tick(RunListEvent* ev)
pActor->set_int_ang(nAngle); pActor->set_int_ang(nAngle);
pActor->nAction = 6; pActor->nAction = 6;
pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); pActor->vel.XY() = pActor->spr.angle.ToVector() * (1024 - 128);
pActor->set_int_yvel(bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3)); D3PlayFX(StaticSound[kSound24], pActor);
D3PlayFX(StaticSound[kSound24], pActor);
} }
return; return;
@ -471,8 +470,7 @@ void AILion::Tick(RunListEvent* ev)
pActor->set_int_zvel(-1000); pActor->set_int_zvel(-1000);
pActor->nAction = 6; pActor->nAction = 6;
pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3)); pActor->vel.XY() = pActor->spr.angle.ToVector() * (1024 - 128);
pActor->set_int_yvel(bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3));
D3PlayFX(StaticSound[kSound24], pActor); D3PlayFX(StaticSound[kSound24], pActor);
} }

View file

@ -444,8 +444,7 @@ void BuildQueenEgg(int nQueen, int nVal)
{ {
pActor2->spr.xrepeat = 30; pActor2->spr.xrepeat = 30;
pActor2->spr.yrepeat = 30; pActor2->spr.yrepeat = 30;
pActor2->set_int_xvel(bcos(pActor2->int_ang())); pActor2->vel.XY() = pActor2->spr.angle.ToVector() * 1024;
pActor2->set_int_yvel(bsin(pActor2->int_ang()));
pActor2->set_int_zvel(-6000); pActor2->set_int_zvel(-6000);
pActor2->spr.cstat = 0; pActor2->spr.cstat = 0;
} }
@ -837,7 +836,7 @@ void AIQueenHead::Tick(RunListEvent* ev)
[[fallthrough]]; [[fallthrough]];
case 1: case 1:
if ((pTarget->int_pos().Z - 51200) > pActor->int_pos().Z) if ((pTarget->spr.pos.Z - 200) > pActor->spr.pos.Z)
{ {
QueenHead.nAction = 4; QueenHead.nAction = 4;
QueenHead.nFrame = 0; QueenHead.nFrame = 0;

View file

@ -91,8 +91,7 @@ void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortyp
void GoRoach(DExhumedActor* pActor) void GoRoach(DExhumedActor* pActor)
{ {
pActor->set_int_xvel(bcos(pActor->int_ang(), -1) - bcos(pActor->int_ang(), -3)); pActor->vel.XY() = pActor->spr.angle.ToVector() * (512 - 128);
pActor->set_int_yvel(bsin(pActor->int_ang(), -1) - bsin(pActor->int_ang(), -3));
} }
void AIRoach::Draw(RunListEvent* ev) void AIRoach::Draw(RunListEvent* ev)

View file

@ -369,9 +369,8 @@ void AIScorp::Tick(RunListEvent* ev)
int nVel = RandomSize(5) + 1; int nVel = RandomSize(5) + 1;
pSpiderActor->set_int_xvel(bcos(pSpiderActor->int_ang(), -8) * nVel); pSpiderActor->vel.XY() = pSpiderActor->spr.angle.ToVector() * 4 * nVel;
pSpiderActor->set_int_yvel(bsin(pSpiderActor->int_ang(), -8) * nVel); pSpiderActor->vel.Z = -(RandomSize(5) + 3);
pSpiderActor->set_int_zvel((-(RandomSize(5) + 3)) << 8);
} }
return; return;