mirror of
https://github.com/ZDoom/Raze.git
synced 2025-03-13 20:42:11 +00:00
- consolidated Exhumed’s velocity setters
This commit is contained in:
parent
6eb18eb3f6
commit
b462c3d998
16 changed files with 47 additions and 68 deletions
|
@ -157,8 +157,7 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
ap->nFrame = 0;
|
||||
ap->pTarget = pTarget;
|
||||
|
||||
ap->set_int_xvel(bcos(ap->int_ang(), -2));
|
||||
ap->set_int_yvel(bsin(ap->int_ang(), -2));
|
||||
ap->VelFromAngle(-2);
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
@ -194,8 +193,7 @@ void AIAnubis::Tick(RunListEvent* ev)
|
|||
case kHitWall:
|
||||
{
|
||||
ap->set_int_ang((ap->int_ang() + 256) & kAngleMask);
|
||||
ap->set_int_xvel(bcos(ap->int_ang(), -2));
|
||||
ap->set_int_yvel(bsin(ap->int_ang(), -2));
|
||||
ap->VelFromAngle(-2);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -238,8 +238,7 @@ void BulletHitsSprite(Bullet *pBullet, DExhumedActor* pBulletActor, DExhumedActo
|
|||
int xVel = pHitActor->int_xvel();
|
||||
int yVel = pHitActor->int_yvel();
|
||||
|
||||
pHitActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pHitActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pHitActor->VelFromAngle(-2);
|
||||
|
||||
MoveCreature(pHitActor);
|
||||
|
||||
|
|
|
@ -608,6 +608,18 @@ std::pair<DVector3, DAngle> GameInterface::GetCoordinates()
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
void DExhumedActor::VelFromAngle(int shift = 0)
|
||||
{
|
||||
vel.XY() = spr.angle.ToVector() * (1 << (14 + shift));
|
||||
}
|
||||
*/
|
||||
void DExhumedActor::VelFromAngle(int shift)
|
||||
{
|
||||
set_int_xvel(bcos(int_ang(), shift));
|
||||
set_int_yvel(bsin(int_ang(), shift));
|
||||
}
|
||||
|
||||
void DExhumedActor::Serialize(FSerializer& arc)
|
||||
{
|
||||
Super::Serialize(arc);
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
DExhumedActor() = default;
|
||||
|
||||
void Serialize(FSerializer& arc) override;
|
||||
|
||||
void VelFromAngle(int shift = 0);
|
||||
};
|
||||
|
||||
// subclassed to add a game specific actor() method
|
||||
|
|
|
@ -187,8 +187,7 @@ void IdleFish(DExhumedActor* pActor, int edx)
|
|||
pActor->add_int_ang((256 - RandomSize(9)) + 1024);
|
||||
pActor->norm_ang();
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -8));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -8));
|
||||
pActor->VelFromAngle(-8);
|
||||
|
||||
pActor->nAction = 0;
|
||||
pActor->nFrame = 0;
|
||||
|
|
|
@ -264,8 +264,7 @@ void AILavaDude::Tick(RunListEvent* ev)
|
|||
|
||||
PlotCourseToSprite(pActor, pTarget);
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
|
||||
if (pTarget && !RandomSize(1))
|
||||
{
|
||||
|
@ -288,8 +287,7 @@ void AILavaDude::Tick(RunListEvent* ev)
|
|||
pActor->spr.pos = pos;
|
||||
|
||||
pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -300,8 +298,7 @@ void AILavaDude::Tick(RunListEvent* ev)
|
|||
if (coll.type == kHitWall)
|
||||
{
|
||||
pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
break;
|
||||
}
|
||||
else if (coll.type == kHitSprite)
|
||||
|
|
|
@ -236,8 +236,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
pActor->nAction = 2;
|
||||
pActor->nFrame = 0;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
pActor->pTarget = pTarget;
|
||||
return;
|
||||
}
|
||||
|
@ -252,8 +251,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
if (RandomBit())
|
||||
{
|
||||
pActor->set_int_ang(RandomWord() & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -292,8 +290,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
{
|
||||
// loc_378FA:
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
break;
|
||||
}
|
||||
else if (nMov.type == kHitSprite)
|
||||
|
@ -323,8 +320,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
{
|
||||
// loc_378FA:
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -448,8 +444,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
{
|
||||
// loc_378FA:
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -476,7 +471,7 @@ void AILion::Tick(RunListEvent* ev)
|
|||
pActor->set_int_zvel(-1000);
|
||||
|
||||
pActor->nAction = 6;
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3));
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()) - bcos(pActor->int_ang(), -3));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()) - bsin(pActor->int_ang(), -3));
|
||||
D3PlayFX(StaticSound[kSound24], pActor);
|
||||
}
|
||||
|
|
|
@ -638,8 +638,7 @@ Collision MoveCreatureWithCaution(DExhumedActor* pActor)
|
|||
ChangeActorSect(pActor, pSectorPre);
|
||||
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
Collision c;
|
||||
c.setNone();
|
||||
return c;
|
||||
|
|
|
@ -176,8 +176,7 @@ void AIMummy::Tick(RunListEvent* ev)
|
|||
pActor->nAction = 1;
|
||||
pActor->nCount = 90;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -218,8 +217,7 @@ void AIMummy::Tick(RunListEvent* ev)
|
|||
// loc_2B5A8
|
||||
if (!pActor->nFrame)
|
||||
{
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
}
|
||||
|
||||
if (pActor->vel.X != 0 || pActor->vel.Y != 0)
|
||||
|
@ -260,8 +258,7 @@ void AIMummy::Tick(RunListEvent* ev)
|
|||
case kHitWall:
|
||||
{
|
||||
pActor->set_int_ang((pActor->int_ang() + ((RandomWord() & 0x3FF) + 1024)) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -604,8 +604,7 @@ void AIQueenEgg::Tick(RunListEvent* ev)
|
|||
case kHitWall:
|
||||
pActor->set_int_ang((RandomSize(9) + 768));
|
||||
pActor->norm_ang();
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -3));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -3));
|
||||
pActor->VelFromAngle(-3);
|
||||
pActor->set_int_zvel(-RandomSize(5));
|
||||
break;
|
||||
}
|
||||
|
@ -1128,8 +1127,7 @@ void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector,
|
|||
|
||||
void SetQueenSpeed(DExhumedActor* pActor, int nSpeed)
|
||||
{
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -(2 - nSpeed)));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -(2 - nSpeed)));
|
||||
pActor->VelFromAngle(-(2 - nSpeed));
|
||||
}
|
||||
|
||||
void AIQueen::Tick(RunListEvent* ev)
|
||||
|
|
|
@ -69,8 +69,7 @@ void InitRats()
|
|||
|
||||
void SetRatVel(DExhumedActor* pActor)
|
||||
{
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
}
|
||||
|
||||
void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle)
|
||||
|
|
|
@ -221,8 +221,7 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
pActor->nAction = 1;
|
||||
pActor->nFrame = 0;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
|
||||
D3PlayFX(StaticSound[kSound48], pActor);
|
||||
|
||||
|
@ -287,8 +286,7 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
case kHitWall:
|
||||
{
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
pActor->nAction = 1;
|
||||
pActor->nFrame = 0;
|
||||
nAction = 1;
|
||||
|
@ -306,8 +304,7 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
{
|
||||
PlotCourseToSprite(pActor, pTarget);
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
|
||||
auto nMov = MoveCreatureWithCaution(pActor);
|
||||
|
||||
|
@ -319,8 +316,7 @@ void AIRex::Tick(RunListEvent* ev)
|
|||
pActor->nCount = 60;
|
||||
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -2));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -2));
|
||||
pActor->VelFromAngle(-2);
|
||||
pActor->nAction = 1;
|
||||
pActor->nFrame = 0;
|
||||
nAction = 1;
|
||||
|
|
|
@ -217,8 +217,7 @@ void AIScorp::Tick(RunListEvent* ev)
|
|||
D3PlayFX(StaticSound[kSound41], pActor);
|
||||
|
||||
pActor->nFrame = 0;
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
|
||||
pActor->nAction = 1;
|
||||
pActor->pTarget = pTarget;
|
||||
|
@ -302,8 +301,7 @@ void AIScorp::Tick(RunListEvent* ev)
|
|||
{
|
||||
pActor->nAction = 1;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
|
||||
pActor->nFrame = 0;
|
||||
return;
|
||||
|
@ -410,8 +408,7 @@ void AIScorp::Effect(RunListEvent* ev, DExhumedActor* pTarget, int mode)
|
|||
pActor->add_int_ang(RandomSize(7) - 63);
|
||||
pActor->norm_ang();
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
}
|
||||
if (mode <= 1)
|
||||
{
|
||||
|
|
|
@ -295,8 +295,7 @@ void AISet::Tick(RunListEvent* ev)
|
|||
pActor->nFrame = 0;
|
||||
pActor->pTarget = pTarget;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -419,8 +418,7 @@ void AISet::Tick(RunListEvent* ev)
|
|||
}
|
||||
|
||||
pActor->set_int_ang((pActor->int_ang() + 256) & kAngleMask);
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang(), -1));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang(), -1));
|
||||
pActor->VelFromAngle(-1);
|
||||
break;
|
||||
}
|
||||
else if (nMov.type == kHitSprite)
|
||||
|
@ -522,8 +520,7 @@ void AISet::Tick(RunListEvent* ev)
|
|||
pActor->nAction = 8;
|
||||
pActor->nFrame = 0;
|
||||
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -142,8 +142,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
spp->nFrame = 0;
|
||||
spp->pTarget = pTarget;
|
||||
|
||||
spp->set_int_xvel(bcos(spp->int_ang()));
|
||||
spp->set_int_yvel(bsin(spp->int_ang()));
|
||||
spp->VelFromAngle();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -193,8 +192,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
|
||||
if (RandomSize(3))
|
||||
{
|
||||
spp->set_int_xvel(bcos(spp->int_ang()));
|
||||
spp->set_int_yvel(bsin(spp->int_ang()));
|
||||
spp->VelFromAngle();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -300,8 +298,7 @@ void AISpider::Tick(RunListEvent* ev)
|
|||
case kHitWall:
|
||||
{
|
||||
spp->set_int_ang((spp->int_ang() + 256) & 0x7EF);
|
||||
spp->set_int_xvel(bcos(spp->int_ang()));
|
||||
spp->set_int_yvel(bsin(spp->int_ang()));
|
||||
spp->VelFromAngle();
|
||||
return;
|
||||
}
|
||||
case kHitSprite:
|
||||
|
|
|
@ -36,8 +36,7 @@ static actionSeq WaspSeq[] = {
|
|||
|
||||
void SetWaspVel(DExhumedActor* pActor)
|
||||
{
|
||||
pActor->set_int_xvel(bcos(pActor->int_ang()));
|
||||
pActor->set_int_yvel(bsin(pActor->int_ang()));
|
||||
pActor->VelFromAngle();
|
||||
}
|
||||
|
||||
DExhumedActor* BuildWasp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, bool bEggWasp)
|
||||
|
|
Loading…
Reference in a new issue