mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 19:44:55 +00:00
Fix actor physics move
This commit is contained in:
@@ -1913,7 +1913,7 @@ void CStateManager::Update(float dt)
|
||||
if (!dying)
|
||||
{
|
||||
MovePlatforms(dt);
|
||||
MoveDoors(dt);
|
||||
MoveActors(dt);
|
||||
}
|
||||
ProcessPlayerInput();
|
||||
if (x904_gameState != EGameState::SoftPaused)
|
||||
@@ -2064,7 +2064,7 @@ void CStateManager::MovePlatforms(float dt)
|
||||
}
|
||||
}
|
||||
|
||||
void CStateManager::MoveDoors(float dt)
|
||||
void CStateManager::MoveActors(float dt)
|
||||
{
|
||||
for (CEntity* ent : GetPhysicsActorObjectList())
|
||||
{
|
||||
@@ -2073,6 +2073,7 @@ void CStateManager::MoveDoors(float dt)
|
||||
CPhysicsActor& physActor = static_cast<CPhysicsActor&>(*ent);
|
||||
if (physActor.GetMass() == 0.f)
|
||||
continue;
|
||||
|
||||
if (TCastToPtr<CAi> ai = physActor)
|
||||
{
|
||||
bool doThink = !xf94_29_cinematicPause;
|
||||
@@ -2088,12 +2089,16 @@ void CStateManager::MoveDoors(float dt)
|
||||
doThink = false;
|
||||
}
|
||||
if (!doThink)
|
||||
{
|
||||
SendScriptMsgAlways(ai->GetUniqueId(), kInvalidUniqueId,
|
||||
EScriptObjectMessage::SuspendedMove);
|
||||
else if (x84c_player.get() != ent)
|
||||
if (!GetPlatformAndDoorObjectList().IsPlatform(*ent))
|
||||
CGameCollision::Move(*this, physActor, dt, nullptr);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (x84c_player.get() != ent)
|
||||
if (!GetPlatformAndDoorObjectList().IsPlatform(*ent))
|
||||
CGameCollision::Move(*this, physActor, dt, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -345,7 +345,7 @@ public:
|
||||
void UpdateHintState(float dt);
|
||||
void PreThinkObjects(float dt);
|
||||
void MovePlatforms(float dt);
|
||||
void MoveDoors(float dt);
|
||||
void MoveActors(float dt);
|
||||
void CrossTouchActors();
|
||||
void Think(float dt);
|
||||
void PostUpdatePlayer(float dt);
|
||||
|
||||
2
hecl
2
hecl
Submodule hecl updated: d2c2ef61db...fced7add60
Reference in New Issue
Block a user