2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-10 02:27:42 +00:00

SIMD refactor

This commit is contained in:
Jack Andersen
2018-12-07 15:49:15 -10:00
parent e1fa938127
commit 7c7da6671a
201 changed files with 2475 additions and 1906 deletions

View File

@@ -269,7 +269,7 @@ void CPatterned::Think(float dt, CStateManager& mgr)
zeus::CVector3f diffVec = x4e4_latestPredictedTranslation - GetTranslation();
if (!x328_25_verticalMovement)
diffVec.z = 0.f;
diffVec.z() = 0.f;
if (diffVec.magSquared() > (0.1f * dt))
x4f0_predictedLeashTime += dt;
@@ -713,9 +713,9 @@ bool CPatterned::PlayerSpot(CStateManager& mgr, float arg)
zeus::CVector3f aimToCenterNorm = aimToCenter * (1.f / aimToCenterMag);
zeus::CVector3f screenSpace = mgr.GetCameraManager()->
GetFirstPersonCamera()->ConvertToScreenSpace(center);
if (screenSpace.z > 0.f &&
screenSpace.x * screenSpace.x < 1.f &&
screenSpace.y * screenSpace.y < 1.f)
if (screenSpace.z() > 0.f &&
screenSpace.x() * screenSpace.x() < 1.f &&
screenSpace.y() * screenSpace.y() < 1.f)
{
CRayCastResult res =
mgr.RayStaticIntersection(aimPosition, aimToCenterNorm, aimToCenterMag,
@@ -753,7 +753,7 @@ bool CPatterned::InDetectionRange(CStateManager& mgr, float arg)
if (delta.magSquared() < x3bc_detectionRange * x3bc_detectionRange)
{
if (x3c0_detectionHeightRange > 0.f)
return delta.z * delta.z < x3c0_detectionHeightRange * x3c0_detectionHeightRange;
return delta.z() * delta.z() < x3c0_detectionHeightRange * x3c0_detectionHeightRange;
return true;
}
return false;
@@ -830,8 +830,8 @@ void CPatterned::PathFind(CStateManager& mgr, EStateMsg msg, float dt)
zeus::CVector3f biasedPos = GetTranslation() + 0.3f * zeus::CVector3f::skUp;
x2ec_reflectedDestPos = biasedPos - (x2e0_destPos - biasedPos);
ApproachDest(mgr);
zeus::CVector3f biasedForward = x34_transform.basis[1] * x64_modelData->GetScale().y + biasedPos;
search->GetSplinePointWithLookahead(biasedForward, biasedPos, 3.f * x64_modelData->GetScale().y);
zeus::CVector3f biasedForward = x34_transform.basis[1] * x64_modelData->GetScale().y() + biasedPos;
search->GetSplinePointWithLookahead(biasedForward, biasedPos, 3.f * x64_modelData->GetScale().y());
SetDestPos(biasedForward);
if (search->SegmentOver(biasedPos))
search->SetCurrentWaypoint(search->GetCurrentWaypoint() + 1);
@@ -1174,7 +1174,7 @@ zeus::CVector3f CPatterned::GetGunEyePos() const
{
zeus::CVector3f origin = GetTranslation();
zeus::CAABox baseBox = GetBaseBoundingBox();
origin.z = 0.6f * (baseBox.max.z - baseBox.min.z) + origin.z;
origin.z() = 0.6f * (baseBox.max.z() - baseBox.min.z()) + origin.z();
return origin;
}
@@ -1284,7 +1284,7 @@ void CPatterned::UpdateAlphaDelta(float dt, CStateManager& mgr)
if (x3e8_alphaDelta == 0.f)
return;
float alpha = dt * x3e8_alphaDelta + x42c_color.a;
float alpha = dt * x3e8_alphaDelta + x42c_color.a();
if (alpha > 1.f)
{
alpha = 1.f;
@@ -1314,10 +1314,10 @@ void CPatterned::UpdateDamageColor(float dt)
if (x428_damageCooldownTimer > 0.f)
{
x428_damageCooldownTimer = std::max(0.f, x428_damageCooldownTimer - dt);
float alpha = x42c_color.a;
float alpha = x42c_color.a();
x42c_color = zeus::CColor::lerp(zeus::CColor::skBlack, x430_damageColor,
std::min(x428_damageCooldownTimer / 0.33f, 1.f));
x42c_color.a = alpha;
x42c_color.a() = alpha;
if (!x450_bodyController->IsFrozen())
xd0_damageMag = x50c_baseDamageMag + x428_damageCooldownTimer;
}
@@ -1439,7 +1439,7 @@ void CPatterned::ApproachDest(CStateManager& mgr)
zeus::CVector3f faceVec = mgr.GetPlayer().GetTranslation() - GetTranslation();
zeus::CVector3f moveVec = x2e0_destPos - GetTranslation();
if (!x328_25_verticalMovement)
moveVec.z = 0.f;
moveVec.z() = 0.f;
zeus::CVector3f pathLine = x2e0_destPos - x2ec_reflectedDestPos;
if (pathLine.dot(moveVec) <= 0.f)
x328_24_inPosition = true;
@@ -1516,10 +1516,10 @@ std::pair<CScriptWaypoint*, CScriptWaypoint*> CPatterned::GetDestWaypoints(CStat
zeus::CQuaternion CPatterned::FindPatternRotation(const zeus::CVector3f& dir) const
{
zeus::CVector3f wpDeltaFlat = x368_destWPDelta;
wpDeltaFlat.z = 0.f;
wpDeltaFlat.z() = 0.f;
wpDeltaFlat.normalize();
zeus::CVector3f dirFlat = dir;
dirFlat.z = 0.f;
dirFlat.z() = 0.f;
dirFlat.normalize();
zeus::CQuaternion q;
@@ -1719,7 +1719,7 @@ void CPatterned::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum)
if (alpha < 255)
{
if (col.r == 0.f && col.g == 0.f && col.b == 0.f)
if (col.r() == 0.f && col.g() == 0.f && col.b() == 0.f)
col = zeus::CColor::skWhite; /* Not being damaged */
if (x401_29_laggedBurnDeath)
@@ -1736,17 +1736,17 @@ void CPatterned::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum)
else
{
zeus::CColor col2 = col;
col2.a = alpha / 255.f;
col2.a() = alpha / 255.f;
xb4_drawFlags = CModelFlags(5, 0, 3, col2);
}
}
else
{
if (col.r != 0.f || col.g != 0.f || col.b != 0.f)
if (col.r() != 0.f || col.g() != 0.f || col.b() != 0.f)
{
/* Being damaged */
zeus::CColor col2 = col;
col2.a = alpha / 255.f;
col2.a() = alpha / 255.f;
xb4_drawFlags = CModelFlags(2, 0, 3, col2);
}
else