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

Implement remaining CStateManager stubs

This commit is contained in:
Jack Andersen
2017-03-31 09:51:40 -10:00
parent 2530163a8c
commit 1731cae418
23 changed files with 317 additions and 90 deletions

View File

@@ -466,7 +466,7 @@ void CWorld::TravelToArea(TAreaId aid, CStateManager& mgr, bool skipLoadOther)
x70_24_ = true;
area->Validate(mgr);
MoveToChain(area, EChain::Alive);
area->SetOcclusionState(CGameArea::EOcclusionState::Occluded);
area->SetOcclusionState(CGameArea::EOcclusionState::Visible);
CGameArea* otherLoadArea = nullptr;
if (!skipLoadOther)
@@ -538,8 +538,16 @@ void CWorld::PropogateAreaChain(CGameArea::EOcclusionState occlusionState, CGame
if (!area->GetPostConstructed() || occlusionState == area->GetOcclusionState())
return;
if (occlusionState == CGameArea::EOcclusionState::Occluded)
area->SetOcclusionState(CGameArea::EOcclusionState::Occluded);
if (occlusionState == CGameArea::EOcclusionState::Visible)
area->SetOcclusionState(CGameArea::EOcclusionState::Visible);
for (CGameArea& areaItr : *world)
{
if (&areaItr == area)
continue;
if (areaItr.IsPostConstructed() && areaItr.GetOcclusionState() == CGameArea::EOcclusionState::Visible)
areaItr.PrepTokens();
}
for (CGameArea& areaItr : *world)
{
@@ -549,16 +557,8 @@ void CWorld::PropogateAreaChain(CGameArea::EOcclusionState occlusionState, CGame
areaItr.PrepTokens();
}
for (CGameArea& areaItr : *world)
{
if (&areaItr == area)
continue;
if (areaItr.IsPostConstructed() && areaItr.GetOcclusionState() == CGameArea::EOcclusionState::NotOccluded)
areaItr.PrepTokens();
}
if (occlusionState == CGameArea::EOcclusionState::NotOccluded)
area->SetOcclusionState(CGameArea::EOcclusionState::NotOccluded);
if (occlusionState == CGameArea::EOcclusionState::Occluded)
area->SetOcclusionState(CGameArea::EOcclusionState::Occluded);
}
void CWorld::Update(float dt)