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/mxramstreamprovider.cpp
LEGO1/mxregion.cpp
LEGO1/mxrendermanager.cpp
LEGO1/mxscheduler.cpp
LEGO1/mxsemaphore.cpp
LEGO1/mxsmack.cpp

View File

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

View File

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