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

Further CGameState imps

This commit is contained in:
Jack Andersen
2016-09-24 15:58:20 -10:00
parent b02b6a4d09
commit 7f987ab10e
23 changed files with 575 additions and 22 deletions

View File

@@ -29,11 +29,118 @@ CSlideShow::CSlideShow()
zeus::CColor::skWhite, 640, 480, g_SimplePool);
}
xf8_.reserve(18);
xf8_stickTextures.reserve(18);
x108_buttonTextures.reserve(8);
SObjectTag txtrTag(FOURCC('TXTR'), 0);
for (int i=0 ; i<9 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->x24_lStick[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
for (int i=0 ; i<9 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->x4c_cStick[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
for (int i=0 ; i<2 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->x74_lTrigger[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
for (int i=0 ; i<2 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->x80_rTrigger[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
for (int i=0 ; i<2 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->xa4_bButton[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
for (int i=0 ; i<2 ; ++i)
{
txtrTag.id = g_tweakPlayerRes->xbc_yButton[i];
xf8_stickTextures.push_back(g_SimplePool->GetObj(txtrTag));
}
}
bool CSlideShow::LoadTXTRDep(const std::string& name)
{
const SObjectTag* dgrpTag = g_ResFactory->GetResourceIdByName(name.c_str());
if (dgrpTag && dgrpTag->type == FOURCC('DGRP'))
{
x18_galleryTXTRDeps.push_back(g_SimplePool->GetObj(*dgrpTag));
return true;
}
return false;
}
bool CSlideShow::AreAllDepsLoaded(const std::vector<TLockedToken<CDependencyGroup>>& deps)
{
for (const TLockedToken<CDependencyGroup>& token : deps)
{
if (!token.IsLoaded())
return false;
}
return true;
}
CIOWin::EMessageReturn CSlideShow::OnMessage(const CArchitectureMessage& msg, CArchitectureQueue& queue)
{
switch (msg.GetType())
{
case EArchMsgType::TimerTick:
{
if (x134_29_)
return EMessageReturn::RemoveIOWinAndExit;
float dt = MakeMsg::GetParmTimerTick(msg).x4_parm;
switch (x14_phase)
{
case Phase::Zero:
{
//if (!g_resLoader->AreAllPaksLoaded())
//{
// g_resLoader->AsyncIdlePakLoading();
// return EMessageReturn::Exit;
//}
x14_phase = Phase::One;
}
case Phase::One:
{
if (x18_galleryTXTRDeps.empty())
{
x18_galleryTXTRDeps.reserve(5);
for (int i=1 ; true ; ++i)
{
std::string depResName = hecl::Format("Gallery%02d_DGRP", i);
if (!LoadTXTRDep(depResName))
break;
}
LoadTXTRDep("GalleryAssets_DGRP");
}
if (!AreAllDepsLoaded(x18_galleryTXTRDeps))
return EMessageReturn::Exit;
x14_phase = Phase::Three;
}
case Phase::Two:
case Phase::Three:
{
}
case Phase::Four:
case Phase::Five:
default: break;
}
break;
}
case EArchMsgType::UserInput:
default: break;
}
return EMessageReturn::Exit;
}