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

Various bug fixes

This commit is contained in:
Jack Andersen
2018-10-26 20:16:12 -10:00
parent 29dad50cca
commit 427f5d8786
10 changed files with 28 additions and 19 deletions

View File

@@ -43,12 +43,19 @@ void CScriptDock::Think(float dt, CStateManager& mgr)
x268_24_dockReferenced = false;
}
if (x268_26_areaPostConstructed != mgr.WorldNC()->GetArea(x260_area)->IsPostConstructed())
const IGameArea::Dock* gameDock = mgr.WorldNC()->GetArea(x260_area)->GetDock(x25c_dock);
TAreaId connArea = gameDock->GetConnectedAreaId(gameDock->GetReferenceCount());
if (connArea != kInvalidAreaId)
{
if (mgr.WorldNC()->GetArea(x260_area)->IsPostConstructed())
CEntity::SendScriptMsgs(EScriptObjectState::MaxReached, mgr, EScriptObjectMessage::None);
else
CEntity::SendScriptMsgs(EScriptObjectState::Zero, mgr, EScriptObjectMessage::None);
bool connPostConstructed = mgr.WorldNC()->GetArea(connArea)->IsPostConstructed();
if (x268_26_areaPostConstructed != connPostConstructed)
{
x268_26_areaPostConstructed = connPostConstructed;
if (connPostConstructed)
CEntity::SendScriptMsgs(EScriptObjectState::MaxReached, mgr, EScriptObjectMessage::None);
else
CEntity::SendScriptMsgs(EScriptObjectState::Zero, mgr, EScriptObjectMessage::None);
}
}
if (mgr.GetNextAreaId() != x260_area)
@@ -69,8 +76,7 @@ void CScriptDock::Think(float dt, CStateManager& mgr)
mgr.SetCurrentAreaId(aid);
s32 otherDock = dock->GetOtherDockNumber(dock->GetReferenceCount());
CObjectList* objs = mgr.WorldNC()->GetArea(aid)->GetAreaObjects();
if (objs)
if (CObjectList* objs = mgr.WorldNC()->GetArea(aid)->GetAreaObjects())
{
for (CEntity* ent : *objs)
{