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

Initial collision testing and CStateManager work

This commit is contained in:
Jack Andersen
2017-03-30 12:36:18 -10:00
parent a0549cd82b
commit 2530163a8c
38 changed files with 1056 additions and 263 deletions

View File

@@ -520,8 +520,8 @@ void CWorld::TravelToArea(TAreaId aid, CStateManager& mgr, bool skipLoadOther)
void CWorld::SetPauseState(bool paused)
{
for (CGameArea* headArea = x4c_chainHeads[2] ; headArea != skGlobalEnd ; headArea = headArea->x130_next)
headArea->SetPauseState(paused);
for (auto it = GetChainHead(EChain::Two) ; it != AliveAreasEnd() ; ++it)
it->SetPauseState(paused);
x70_25_paused = paused;
}
@@ -541,24 +541,20 @@ void CWorld::PropogateAreaChain(CGameArea::EOcclusionState occlusionState, CGame
if (occlusionState == CGameArea::EOcclusionState::Occluded)
area->SetOcclusionState(CGameArea::EOcclusionState::Occluded);
for (CGameArea* areaItr = world->GetChainHead(EChain::Alive);
areaItr != skGlobalNonConstEnd;
areaItr = areaItr->x130_next)
for (CGameArea& areaItr : *world)
{
if (areaItr == area)
if (&areaItr == area)
continue;
if (areaItr->IsPostConstructed() && areaItr->GetOcclusionState() == CGameArea::EOcclusionState::Occluded)
areaItr->PrepTokens();
if (areaItr.IsPostConstructed() && areaItr.GetOcclusionState() == CGameArea::EOcclusionState::Occluded)
areaItr.PrepTokens();
}
for (CGameArea* areaItr = world->GetChainHead(EChain::Alive);
areaItr != skGlobalNonConstEnd;
areaItr = areaItr->x130_next)
for (CGameArea& areaItr : *world)
{
if (areaItr == area)
if (&areaItr == area)
continue;
if (area->IsPostConstructed() && areaItr->GetOcclusionState() == CGameArea::EOcclusionState::NotOccluded)
areaItr->PrepTokens();
if (areaItr.IsPostConstructed() && areaItr.GetOcclusionState() == CGameArea::EOcclusionState::NotOccluded)
areaItr.PrepTokens();
}
if (occlusionState == CGameArea::EOcclusionState::NotOccluded)