2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 09:47:43 +00:00

Additional CPlayer implementations

This commit is contained in:
Jack Andersen
2017-08-15 19:34:02 -10:00
parent 086ff76474
commit 8e8ce66799
26 changed files with 1684 additions and 668 deletions

View File

@@ -1314,7 +1314,7 @@ void CStateManager::KnockBackPlayer(CPlayer& player, const zeus::CVector3f& pos,
{
usePower = power * 1000.f;
CPlayer::ESurfaceRestraints surface =
player.x2b0_ == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Four;
player.x2b0_outOfWaterTicks == 2 ? player.x2ac_surfaceRestraint : CPlayer::ESurfaceRestraints::Water;
if (surface != CPlayer::ESurfaceRestraints::Normal &&
player.GetOrbitState() == CPlayer::EPlayerOrbitState::Zero)
usePower /= 7.f;
@@ -1331,7 +1331,7 @@ void CStateManager::KnockBackPlayer(CPlayer& player, const zeus::CVector3f& pos,
usePower *= (1.f - 0.5f * zeus::CVector3f::getAngleDiff(pos, negVel) / M_PIF);
player.ApplyImpulseWR(pos * usePower, zeus::CAxisAngle::sIdentity);
player.UseCollisionImpulses();
player.x2d4_ = 0.25f;
player.x2d4_accelerationChangeTimer = 0.25f;
float newVel = player.x138_velocity.magnitude();
if (newVel > maxVel)
@@ -2229,16 +2229,16 @@ void CStateManager::CreateStandardGameObjects()
{
float height = g_tweakPlayer->GetPlayerHeight();
float xyHe = g_tweakPlayer->GetPlayerXYHalfExtent();
float unk1 = g_tweakPlayer->GetX274();
float unk2 = g_tweakPlayer->GetX278();
float unk3 = g_tweakPlayer->GetPlayerBallHalfExtent();
float stepUp = g_tweakPlayer->GetStepUpHeight();
float stepDown = g_tweakPlayer->GetStepDownHeight();
float ballRadius = g_tweakPlayer->GetPlayerBallHalfExtent();
zeus::CAABox pBounds = {{-xyHe, -xyHe, 0.f}, {xyHe, xyHe, height}};
auto q = zeus::CQuaternion::fromAxisAngle(zeus::CVector3f{0.f, 0.f, 1.f}, zeus::degToRad(129.6f));
x84c_player.reset(new CPlayer(
AllocateUniqueId(), zeus::CTransform(q), pBounds,
g_tweakPlayerRes->xc4_ballTransitionsANCS,
zeus::CVector3f{1.65f, 1.65f, 1.65f}, 200.f, unk1, unk2,
unk3, CMaterialList(EMaterialTypes::Player,
zeus::CVector3f{1.65f, 1.65f, 1.65f}, 200.f, stepUp, stepDown,
ballRadius, CMaterialList(EMaterialTypes::Player,
EMaterialTypes::Solid, EMaterialTypes::GroundCollider)));
AddObject(*x84c_player);
x870_cameraManager->CreateStandardCameras(*this);