mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-09 11:47:43 +00:00
Various movement and HUD bug fixes
This commit is contained in:
@@ -317,7 +317,7 @@ bool CActorLights::BuildAreaLightList(const CStateManager& mgr, const CGameArea&
|
||||
std::sort(valList.begin(), valList.end(),
|
||||
[](const SLightValue& a, const SLightValue& b)
|
||||
{
|
||||
return a.x10_colorMag >= b.x10_colorMag;
|
||||
return a.x10_colorMag > b.x10_colorMag;
|
||||
});
|
||||
|
||||
if (x298_27_findShadowLight)
|
||||
@@ -333,12 +333,12 @@ bool CActorLights::BuildAreaLightList(const CStateManager& mgr, const CGameArea&
|
||||
}
|
||||
|
||||
/* Ambient color for overflow area lights */
|
||||
zeus::CColor overflowAmbColor;
|
||||
zeus::CColor overflowAmbColor = zeus::CColor::skClear;
|
||||
|
||||
/* Averaged light for overflow area lights */
|
||||
CLight overflowLight = CLight::BuildCustom(zeus::CVector3f::skZero, zeus::CVector3f::skZero, zeus::CColor::skBlack,
|
||||
0.f, 0.f, 0.f, 0.f, 0.f, 0.f);
|
||||
zeus::CColor overflowLightColor;
|
||||
zeus::CColor overflowLightColor = zeus::CColor::skClear;
|
||||
float overflowMag = 0.f;
|
||||
|
||||
/* Max significant lights */
|
||||
|
||||
@@ -18,7 +18,7 @@ class CActorLights
|
||||
static s32 sFrameSchedulerCount;
|
||||
std::vector<CLight> x0_areaLights;
|
||||
std::vector<CLight> x144_dynamicLights;
|
||||
zeus::CColor x288_ambientColor;
|
||||
zeus::CColor x288_ambientColor = zeus::CColor::skBlack;
|
||||
TAreaId x294_aid = kInvalidAreaId;
|
||||
|
||||
union
|
||||
|
||||
@@ -398,7 +398,7 @@ void CGroundMovement::MoveGroundCollider_New(CStateManager& mgr, CPhysicsActor&
|
||||
float stepUp = player.GetStepUpHeight();
|
||||
|
||||
bool doStepDown = true;
|
||||
CMaterialList material(EMaterialTypes::Unknown);
|
||||
CMaterialList material(EMaterialTypes::NoStepLogic);
|
||||
SMoveObjectResult result;
|
||||
|
||||
if (!startingJump)
|
||||
@@ -437,7 +437,8 @@ void CGroundMovement::MoveGroundCollider_New(CStateManager& mgr, CPhysicsActor&
|
||||
CMaterialList material2 = MoveObjectAnalytical(mgr, actor, dt, useNearList, cache, opts, result);
|
||||
CPhysicsState physStatePost = actor.GetPhysicsState();
|
||||
|
||||
if (material2.XOR({EMaterialTypes::Unknown}))
|
||||
/* NoStepLogic must be the only set material bit to bypass step logic */
|
||||
if (material2.XOR({EMaterialTypes::NoStepLogic}))
|
||||
{
|
||||
SMovementOptions optsCopy = opts;
|
||||
zeus::CVector3f postToPre = physStatePre.GetTranslation() - physStatePost.GetTranslation();
|
||||
@@ -802,11 +803,10 @@ CMaterialList CGroundMovement::MoveObjectAnalytical(CStateManager& mgr, CPhysics
|
||||
{
|
||||
if (actor.x15c_force.canBeNormalized())
|
||||
{
|
||||
zeus::CVector3f prevForce = actor.x15c_force;
|
||||
actor.x15c_force = CGroundMovement::CollisionDamping(actor.x15c_force,
|
||||
actor.x15c_force.normalized(),
|
||||
collisionNorm, 0.f, 1.f);
|
||||
if (actor.x15c_force.z < -1000000.f)
|
||||
printf("");
|
||||
}
|
||||
if (actor.x150_momentum.canBeNormalized())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user