Add mxrender manager class stub

This commit is contained in:
Misha 2023-12-21 09:51:06 -05:00
parent afadca953b
commit aa23332ff7
No known key found for this signature in database
GPG Key ID: 8441D12AEF33FED8
5 changed files with 39 additions and 7 deletions

View File

@ -161,6 +161,7 @@ add_library(lego1 SHARED
LEGO1/mxramstreamcontroller.cpp LEGO1/mxramstreamcontroller.cpp
LEGO1/mxramstreamprovider.cpp LEGO1/mxramstreamprovider.cpp
LEGO1/mxregion.cpp LEGO1/mxregion.cpp
LEGO1/mxrendermanager.cpp
LEGO1/mxscheduler.cpp LEGO1/mxscheduler.cpp
LEGO1/mxsemaphore.cpp LEGO1/mxsemaphore.cpp
LEGO1/mxsmack.cpp LEGO1/mxsmack.cpp

View File

@ -19,6 +19,7 @@
#include "mxdsfile.h" #include "mxdsfile.h"
#include "mxomnicreateflags.h" #include "mxomnicreateflags.h"
#include "mxomnicreateparam.h" #include "mxomnicreateparam.h"
#include "mxrendermanager.h"
#include "mxticklemanager.h" #include "mxticklemanager.h"
#include "mxtransitionmanager.h" #include "mxtransitionmanager.h"
@ -385,7 +386,7 @@ void LegoOmni::Init()
MxOmni::Init(); MxOmni::Init();
m_unk0x68 = 0; m_unk0x68 = 0;
m_inputMgr = NULL; m_inputMgr = NULL;
m_unk0x6c = 0; m_renderMgr = 0;
m_gifManager = NULL; m_gifManager = NULL;
m_worldList = NULL; m_worldList = NULL;
m_currentWorld = NULL; m_currentWorld = NULL;
@ -443,9 +444,9 @@ void LegoOmni::Destroy()
m_gifManager = NULL; m_gifManager = NULL;
} }
if (m_unk0x6c) { if (m_renderMgr) {
// delete m_unk0x6c; // TODO delete m_renderMgr;
m_unk0x6c = NULL; m_renderMgr = NULL;
} }
if (m_inputMgr) { if (m_inputMgr) {
@ -503,6 +504,7 @@ MxResult LegoOmni::Create(MxOmniCreateParam& p_param)
if (m_soundManager = new LegoSoundManager()) { if (m_soundManager = new LegoSoundManager()) {
if (m_soundManager->Create(10, 0) != SUCCESS) { if (m_soundManager->Create(10, 0) != SUCCESS) {
OutputDebugStringA("lego sound fail\n");
delete m_soundManager; delete m_soundManager;
m_soundManager = NULL; m_soundManager = NULL;
return FAILURE; return FAILURE;
@ -511,6 +513,7 @@ MxResult LegoOmni::Create(MxOmniCreateParam& p_param)
if (m_videoManager = new LegoVideoManager()) { if (m_videoManager = new LegoVideoManager()) {
if (m_videoManager->Create(p_param.GetVideoParam(), 100, 0) != SUCCESS) { if (m_videoManager->Create(p_param.GetVideoParam(), 100, 0) != SUCCESS) {
OutputDebugStringA("lego vid failure\n");
delete m_videoManager; delete m_videoManager;
m_videoManager = NULL; m_videoManager = NULL;
} }
@ -523,15 +526,16 @@ MxResult LegoOmni::Create(MxOmniCreateParam& p_param)
} }
} }
// TODO: there are a few more classes here m_renderMgr = new MxRenderManager();
m_gifManager = new GifManager(); m_gifManager = new GifManager();
// TODO: there is another class here
m_plantManager = new LegoPlantManager(); m_plantManager = new LegoPlantManager();
m_animationManager = new LegoAnimationManager(); m_animationManager = new LegoAnimationManager();
m_buildingManager = new LegoBuildingManager(); m_buildingManager = new LegoBuildingManager();
m_gameState = new LegoGameState(); m_gameState = new LegoGameState();
m_worldList = new LegoWorldList(TRUE); m_worldList = new LegoWorldList(TRUE);
if (m_unk0x6c && m_gifManager && m_worldList && m_plantManager && m_animationManager && m_buildingManager) { if (m_renderMgr && m_gifManager && m_worldList && m_plantManager && m_animationManager && m_buildingManager) {
// TODO: initialize a bunch of MxVariables // TODO: initialize a bunch of MxVariables
RegisterScripts(); RegisterScripts();
FUN_1001a700(); FUN_1001a700();

View File

@ -27,6 +27,7 @@ class MxAtomId;
class MxBackgroundAudioManager; class MxBackgroundAudioManager;
class MxDSFile; class MxDSFile;
class MxTransitionManager; class MxTransitionManager;
class MxRenderManager;
extern MxAtomId* g_copterScript; extern MxAtomId* g_copterScript;
extern MxAtomId* g_dunecarScript; extern MxAtomId* g_dunecarScript;
@ -116,7 +117,7 @@ class LegoOmni : public MxOmni {
private: private:
undefined4* m_unk0x68; // 0x68 undefined4* m_unk0x68; // 0x68
undefined4 m_unk0x6c; // 0x6c MxRenderManager* m_renderMgr; // 0x6c
LegoInputManager* m_inputMgr; // 0x70 LegoInputManager* m_inputMgr; // 0x70
GifManager* m_gifManager; // 0x74 GifManager* m_gifManager; // 0x74
LegoWorldList* m_worldList; // 0x78 LegoWorldList* m_worldList; // 0x78

11
LEGO1/mxrendermanager.cpp Normal file
View File

@ -0,0 +1,11 @@
#include "mxrendermanager.h"
#include "decomp.h"
DECOMP_SIZE_ASSERT(MxRenderManager, 0x14)
// STUB: LEGO1 0x100a6fd0
MxRenderManager::MxRenderManager()
{
// TODO
}

15
LEGO1/mxrendermanager.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef MXRENDERMANAGER_H
#define MXRENDERMANAGER_H
#include "mxtypes.h"
// VTABLE: LEGO1 0x100dbdbc
// SIZE 0x14
class MxRenderManager {
public:
MxRenderManager();
private:
char m_unk0x4[0x14]; // TODO: change to 0x10 once scalar deconstructor is added
};
#endif // MXRENDERMANAGER_H