1#include "Game/System/GameSystemObjHolder.hpp"
2#include "Game/System/ErrorArchive.hpp"
3#include "Game/System/FileLoader.hpp"
4#include "Game/System/HeapMemoryWatcher.hpp"
5#include "Game/System/Language.hpp"
6#include "Game/System/ResourceHolderManager.hpp"
7#include "Game/System/NANDManager.hpp"
8#include "Game/SingletonHolder.hpp"
9#include "Game/Util/RenderMode.hpp"
10#include <JSystem/JUtility/JUTVideo.hpp>
13GameSystemObjHolder::GameSystemObjHolder() :
14 mObjHolder(nullptr), mParticleResHolder(nullptr), mRenderModeObj(nullptr),
15 mCaptureScreenDir(nullptr), mScreenPreserver(nullptr), mSysWrapper(nullptr),
16 mWPadHolder(nullptr), mAsyncExec(nullptr), mMsgHolder(nullptr), mStarPointerDir(nullptr),
19 mLanguage = MR::getDecidedLanguageFromIPL();
23 MR::createAndAddArchive((
void*)cErrorArchive, MR::getStationedHeapNapa(),
"ErrorMessageArchive.arc");
26void GameSystemObjHolder::initAfterStationedResourceLoaded() {
29 mMsgHolder->initGameData();
30 MR::createStarPointerLayout();
33void GameSystemObjHolder::initMessageResource() {
34 JKRArchive* archive =
nullptr;
35 JKRHeap* heap =
nullptr;
36 MR::getMountedArchiveAndHeap(
"ErrorMessageArchive.arc", &archive, &heap);
39 snprintf(buf,
sizeof(buf),
"/%s/MessageData/System.arc", MR::getCurrentLanguagePrefix());
40 void* systemFile = MR::decompressFileFromArchive(archive, buf,
nullptr, 0);
41 MR::createAndAddArchive(systemFile, heap,
"/Memory/SystemMessage.arc");
42 void* errorFile = MR::decompressFileFromArchive(archive,
"/LayoutData/ErrorMessageWindow.arc", heap, 0x20);
43 MR::createAndAddArchive(errorFile, heap,
"/Memory/ErrorMessageWindow.arc");
44 MR::createAndAddLayoutHolderRawData(
"/Memory/ErrorMessageWindow.arc");
46 mMsgHolder->initSystemData();
49void GameSystemObjHolder::init() {
52 initResourceHolderManager();
53 initMessageResource();
59void GameSystemObjHolder::createAudioSystem() {
60 if (mSysWrapper !=
nullptr) {
61 mSysWrapper->createAudioSystem();
65void GameSystemObjHolder::update() {
66 mSysWrapper->updateRhythm();
67 mWPadHolder->update();
69 mStarPointerDir->update();
72void GameSystemObjHolder::updateAudioSystem() {
73 if (mSysWrapper !=
nullptr) {
74 mSysWrapper->movement();
78void GameSystemObjHolder::clearRequestFileInfo(
bool unk) {
82void GameSystemObjHolder::drawStarPointer() {
83 mStarPointerDir->draw();
86void GameSystemObjHolder::drawBeforeEndRender() {
87 mScreenPreserver->
draw();
90void GameSystemObjHolder::captureIfAllowForScreenPreserver() {
91 mScreenPreserver->captureIfAllow();
94GXRenderModeObj* GameSystemObjHolder::getRenderModeObj()
const {
95 return JUTVideo::sManager->mRenderModeObj;
98void GameSystemObjHolder::initDvd() {
99 JKRMemArchive archive;
100 JKRFileLoader::initializeVolumeList();
107void GameSystemObjHolder::initNAND() {
113void GameSystemObjHolder::initAudio() {
114 mSysWrapper =
new AudSystemWrapper(MR::getAudHeap(), MR::getStationedHeapNapa());
115 mSysWrapper->requestResourceForInitialize();
118void GameSystemObjHolder::initRenderMode() {
119 mRenderModeObj =
new GXRenderModeObj();
122 mRenderModeObj->viTVmode = obj->mTVMode;
123 mRenderModeObj->fbWidth = obj->mFrameBufWidth;
124 mRenderModeObj->efbHeight = obj->mEFBHeight;
125 mRenderModeObj->xfbHeight = obj->mXFBHeight;
126 mRenderModeObj->viXOrigin = obj->mXOrigin;
127 mRenderModeObj->viYOrigin = obj->mYOrigin;
128 mRenderModeObj->viWidth = obj->mVIWidth;
129 mRenderModeObj->viHeight = obj->mVIHeight;
130 mRenderModeObj->xFBmode = obj->mMode;
131 mRenderModeObj->field_rendering = obj->mFieldRendering;
132 mRenderModeObj->aa = obj->mAA;
141 mRenderModeObj->vfilter[0] = obj->mFilter[0];
142 mRenderModeObj->vfilter[1] = obj->mFilter[1];
143 mRenderModeObj->vfilter[2] = obj->mFilter[2];
144 mRenderModeObj->vfilter[3] = obj->mFilter[3];
145 mRenderModeObj->vfilter[4] = obj->mFilter[4];
146 mRenderModeObj->vfilter[5] = obj->mFilter[5];
147 mRenderModeObj->vfilter[6] = obj->mFilter[6];
149 JUTVideo::createManager(mRenderModeObj);
152void GameSystemObjHolder::initNameObj() {
162void GameSystemObjHolder::initResourceHolderManager() {
168void GameSystemObjHolder::initGameController() {
Class that stores every NameObj instance in a scene.
virtual void draw() const
Draws the object. Does nothing until overridden.