- always use FrontSpeed() access function for nAccel.

This gets rid of a large amount of FixedToFloat calls.
This commit is contained in:
Christoph Oelckers 2022-09-27 00:28:50 +02:00
parent 8b96a93e80
commit 9927d5e25d
8 changed files with 50 additions and 50 deletions

View file

@ -301,7 +301,7 @@ static void batMoveForward(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -313,9 +313,9 @@ static void batMoveForward(DBloodActor* actor)
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
}
@ -326,7 +326,7 @@ static void batMoveSwoop(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -338,7 +338,7 @@ static void batMoveSwoop(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel) * 0.5;
t1 += nAccel * 0.5;
});
actor->vel.Z = 4.26666;
}
@ -350,7 +350,7 @@ static void batMoveFly(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->spr.angle += DAngle90;
@ -361,7 +361,7 @@ static void batMoveFly(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x200)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel) * 0.5;
t1 += nAccel * 0.5;
});
actor->vel.Z = FixedToFloat(-0x2d555);
}

View file

@ -412,7 +412,7 @@ static void sub_628A0(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -423,9 +423,9 @@ static void sub_628A0(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.25);
t1 += nAccel * 0.25;
});
}
@ -440,7 +440,7 @@ static void sub_62AE0(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -452,7 +452,7 @@ static void sub_62AE0(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel);
t1 += nAccel;
});
actor->set_int_bvel_z(-dz);
@ -469,7 +469,7 @@ static void sub_62D7C(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->spr.angle += DAngle90;
@ -481,7 +481,7 @@ static void sub_62D7C(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
actor->set_int_bvel_z(dz);

View file

@ -321,9 +321,9 @@ static void eelMoveForward(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
}
@ -343,7 +343,7 @@ static void eelMoveSwoop(DBloodActor* actor)
if (Chance(0x8000) && nDist <= 0x399)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
actor->vel.Z = FixedToFloat(0x22222);
@ -364,7 +364,7 @@ static void eelMoveAscend(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x399)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
actor->vel.Z = FixedToFloat(-0x8000);

View file

@ -281,7 +281,7 @@ static void sub_65D04(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -292,9 +292,9 @@ static void sub_65D04(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.25);
t1 += nAccel * 0.25;
});
}
@ -311,7 +311,7 @@ static void sub_65F44(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -323,7 +323,7 @@ static void sub_65F44(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel);
t1 += nAccel;
});
actor->set_int_bvel_z(-dz);
@ -341,7 +341,7 @@ static void sub_661E0(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->spr.angle += DAngle90;
@ -353,7 +353,7 @@ static void sub_661E0(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
actor->set_int_bvel_z(dz);

View file

@ -514,7 +514,7 @@ static void gargMoveForward(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -525,9 +525,9 @@ static void gargMoveForward(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
}
@ -542,7 +542,7 @@ static void gargMoveSlow(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -553,7 +553,7 @@ static void gargMoveSlow(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
t2 *= 0.5;
});
@ -577,7 +577,7 @@ static void gargMoveSwoop(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -589,7 +589,7 @@ static void gargMoveSwoop(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
switch (actor->spr.type) {
case kDudeGargoyleFlesh:
actor->vel.Z = t1;
@ -612,7 +612,7 @@ static void gargMoveFly(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->spr.angle += DAngle90;
@ -624,7 +624,7 @@ static void gargMoveFly(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
switch (actor->spr.type) {
case kDudeGargoyleFlesh:
actor->vel.Z = -t1;

View file

@ -409,7 +409,7 @@ static void ghostMoveForward(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -420,9 +420,9 @@ static void ghostMoveForward(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
}
@ -436,7 +436,7 @@ static void ghostMoveSlow(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -447,7 +447,7 @@ static void ghostMoveSlow(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
t2 *= 0.5;
});
switch (actor->spr.type) {
@ -467,7 +467,7 @@ static void ghostMoveSwoop(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->xspr.goalAng += DAngle90;
@ -478,7 +478,7 @@ static void ghostMoveSwoop(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
switch (actor->spr.type) {
case kDudePhantasm:
actor->vel.Z = t1;
@ -497,7 +497,7 @@ static void ghostMoveFly(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
{
actor->spr.angle += DAngle90;
@ -508,7 +508,7 @@ static void ghostMoveFly(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
switch (actor->spr.type) {
case kDudePhantasm:
actor->vel.Z = -t1;

View file

@ -279,9 +279,9 @@ static void sub_6CB00(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.25);
t1 += nAccel * 0.25;
});
}
@ -309,7 +309,7 @@ static void sub_6CD74(DBloodActor* actor)
if (Chance(0x600) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel);
t1 += nAccel;
});
actor->set_int_bvel_z(-dz);
@ -338,7 +338,7 @@ static void sub_6D03C(DBloodActor* actor)
if (Chance(0x4000) && nDist <= 0x400)
return;
AdjustVelocity(actor, ADJUSTER{
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
actor->set_int_bvel_z(dz);

View file

@ -1116,7 +1116,7 @@ void aiGenDudeMoveForward(DBloodActor* actor)
auto nAng = deltaangle(actor->spr.angle, actor->xspr.goalAng);
auto nTurnRange = pDudeInfo->TurnRange();
actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange);
int nAccel = pDudeInfo->frontSpeed << 2;
double nAccel = pDudeInfo->FrontSpeed() * 4;
if (abs(nAng) > DAngle60)
return;
if (actor->GetTarget() == nullptr)
@ -1127,9 +1127,9 @@ void aiGenDudeMoveForward(DBloodActor* actor)
return;
AdjustVelocity(actor, ADJUSTER{
if (actor->GetTarget() == nullptr)
t1 += FixedToFloat(nAccel);
t1 += nAccel;
else
t1 += FixedToFloat(nAccel * 0.5);
t1 += nAccel * 0.5;
});
}