mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 21:07:42 +00:00
Various level streaming fixes, remove support for uncooked rep
This commit is contained in:
@@ -132,42 +132,12 @@ makeProj:
|
||||
else
|
||||
m_vm.SetupEditorView();
|
||||
|
||||
bool runFromPaks = hecl::StringUtils::BeginsWith(subPath, _S("out"));
|
||||
if (runFromPaks)
|
||||
bool doRun = hecl::StringUtils::BeginsWith(subPath, _S("out"));
|
||||
if (doRun)
|
||||
{
|
||||
m_mainMP1.emplace(nullptr, nullptr, m_vm.m_mainBooFactory,
|
||||
m_vm.m_mainCommandQueue, m_vm.m_renderTex);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_factoryMP1.IndexMP1Resources(*m_proj, m_objStore);
|
||||
m_mainMP1.emplace(&m_factoryMP1, &m_objStore, m_vm.m_mainBooFactory,
|
||||
m_vm.m_mainCommandQueue, m_vm.m_renderTex);
|
||||
}
|
||||
|
||||
m_vm.InitMP1(*m_mainMP1);
|
||||
|
||||
// precook
|
||||
if (!runFromPaks)
|
||||
{
|
||||
m_precooking = true;
|
||||
std::vector<SObjectTag> nonMlvls;
|
||||
std::vector<SObjectTag> mlvls;
|
||||
mlvls.reserve(8);
|
||||
m_factoryMP1.EnumerateResources([this, &nonMlvls, &mlvls](const SObjectTag& tag)
|
||||
{
|
||||
if (tag.type == FOURCC('CMDL') || tag.type == FOURCC('MREA'))
|
||||
m_factoryMP1.CookResourceAsync(tag);
|
||||
else if (tag.type != FOURCC('MLVL'))
|
||||
nonMlvls.push_back(tag);
|
||||
else // (tag.type == FOURCC('MLVL'))
|
||||
mlvls.push_back(tag);
|
||||
return true;
|
||||
});
|
||||
for (const SObjectTag& tag : nonMlvls)
|
||||
m_factoryMP1.CookResourceAsync(tag);
|
||||
for (const SObjectTag& tag : mlvls)
|
||||
m_factoryMP1.CookResourceAsync(tag);
|
||||
m_vm.InitMP1(*m_mainMP1);
|
||||
}
|
||||
|
||||
if (needsSave)
|
||||
|
||||
Reference in New Issue
Block a user