Files
Petari/source/Game/Scene/SceneDataInitializer.cpp

57 lines
1.6 KiB
C++

#include "Game/Scene/SceneDataInitializer.hpp"
#include "Game/Scene/SceneObjHolder.hpp"
#include "Game/Screen/LuigiLetter.hpp"
SceneDataInitializer::SceneDataInitializer() : NameObj("SceneDataInitializer") {
mFileLoader = nullptr;
mDataHolder = nullptr;
}
void SceneDataInitializer::startStageFileLoad() {
mFileLoader = new StageFileLoader(MR::getCurrentStageName());
mFileLoader->startLoadingStageFile();
if (!MR::isStageDisablePauseMenu()) {
MR::mountAsyncArchive("/LayoutData/PauseMenu.arc", MR::getAproposHeapForSceneArchive(0.029999999f));
}
}
void SceneDataInitializer::startStageFileLoadAfterScenarioSelected() {
NameObjArchiveListCollector collector;
JMapInfoIter iter;
iter.mInfo = nullptr;
iter._4 = -1;
LuigiLetter::makeArchiveListForMenu(&collector, iter);
s32 curArchive = 0;
while (curArchive < collector.mCount) {
MR::mountAsyncArchiveByObjectOrLayoutName(collector.getArchive(curArchive), nullptr);
curArchive++;
}
}
void SceneDataInitializer::waitDoneStageFileLoad() {
mFileLoader->waitLoadedStageFile();
mDataHolder = reinterpret_cast<StageDataHolder*>(MR::createSceneObj(SceneObj_StageDataHolder));
}
void SceneDataInitializer::startActorFileLoadCommon() {
mDataHolder->requestFileLoadCommon();
}
void SceneDataInitializer::startActorFileLoadScenario() {
mDataHolder->requestFileLoadScenario();
}
void SceneDataInitializer::startActorPlacement() {
mDataHolder->initPlacement();
}
void SceneDataInitializer::initAfterScenarioSelected() {
mDataHolder->initAfterScenarioSelected();
}
SceneDataInitializer::~SceneDataInitializer() {
}