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