Lego video manager constructor and deconstructor (#275)

* commit

* Update legovideomanager.cpp

* add offset comments

* Update legovideomanager.h

* Update legovideomanager.h
This commit is contained in:
Misha 2023-11-08 17:05:20 -05:00 committed by GitHub
parent bd85abaf2a
commit 1f6d1ddab0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 75 additions and 12 deletions

View file

@ -2,16 +2,57 @@
DECOMP_SIZE_ASSERT(LegoVideoManager, 0x590); DECOMP_SIZE_ASSERT(LegoVideoManager, 0x590);
// OFFSET: LEGO1 0x1007aa20 STUB // OFFSET: LEGO1 0x1007aa20
LegoVideoManager::LegoVideoManager() LegoVideoManager::LegoVideoManager()
{ {
// TODO m_unk64 = 0;
m_3dManager = NULL;
m_unk6c = 0;
m_direct3d = 0;
m_unk0xe6 = FALSE;
memset(m_unk0x78, 0, sizeof(m_unk0x78));
m_unk0x78[0] = 0x6c;
m_unk4e8 = 0;
m_isFullscreenMovie = FALSE;
m_palette = NULL;
m_prefCounter = NULL;
m_cursorMoved = FALSE;
m_cursorX = m_cursorY;
m_cursorYCopy = m_cursorY;
m_cursorXCopy = m_cursorY;
m_unk0x514 = 0;
m_unk0x500 = FALSE;
m_drawFPS = FALSE;
m_unk0x528 = 0;
m_arialFont = NULL;
m_unk0xe5 = FALSE;
m_unk0x554 = 0;
m_initialized = FALSE;
} }
// OFFSET: LEGO1 0x1007ab40 STUB // OFFSET: LEGO1 0x1007ab40
LegoVideoManager::~LegoVideoManager() LegoVideoManager::~LegoVideoManager()
{ {
// TODO Destroy();
delete m_palette;
}
// OFFSET: LEGO1 0x1007b5e0
void LegoVideoManager::Destroy()
{
// todo: delete m_unk0x512
// todo: delete m_unk0x258
if (m_arialFont != NULL) {
DeleteObject(m_arialFont);
m_arialFont = NULL;
}
// delete m_unk64; //TODO: delete d3drm
delete m_3dManager;
MxVideoManager::Destroy();
// todo: delete m_unk4e8
delete[] m_prefCounter;
} }
// OFFSET: LEGO1 0x1007c560 STUB // OFFSET: LEGO1 0x1007c560 STUB

View file

@ -33,20 +33,42 @@ class LegoVideoManager : public MxVideoManager {
this->m_videoParam.GetPalette()->SetOverrideSkyColor(p_shouldOverride); this->m_videoParam.GetPalette()->SetOverrideSkyColor(p_shouldOverride);
} }
virtual void Destroy() override; // vtable+0x18
private: private:
undefined4 m_unk64; undefined4 m_unk64;
Lego3DManager* m_3dManager; Lego3DManager* m_3dManager; // 0x68
undefined4 m_unk6c; undefined4 m_unk6c;
undefined4 m_unk70; undefined4 m_unk70;
MxDirect3D* m_direct3d; MxDirect3D* m_direct3d; // 0x74
undefined m_pad0x78[0x6c]; undefined4 m_unk0x78[27];
MxBool m_unk0xe4; MxBool m_unk0xe4;
undefined m_pad0xe8[0x41c]; MxBool m_unk0xe5;
MxBool m_unk0xe6;
PALETTEENTRY m_paletteEntries[256]; // 0xe7
undefined m_padding0x4e7;
undefined4 m_unk4e8;
MxBool m_isFullscreenMovie; // 0x4ec
MxPalette* m_palette; // 0x4f0
LARGE_INTEGER* m_prefCounter; // 0x4f4
undefined m_padding0x4f4[8];
MxBool m_unk0x500;
MxBool m_cursorMoved; // 0x501 MxBool m_cursorMoved; // 0x501
undefined m_pad0x502[0x8]; MxS32 m_cursorXCopy; // 0x504
MxS32 m_cursorYCopy; // 0x508
MxS32 m_cursorX; // 0x50c MxS32 m_cursorX; // 0x50c
MxS32 m_cursorY; // 0x510 MxS32 m_cursorY; // 0x510
undefined m_pad0x514[0x7c]; undefined4 m_unk0x514;
undefined m_pad0x518[0x10];
undefined4 m_unk0x528;
MxBool m_drawFPS; // 0x52c
RECT m_fpsRect; // 0x530
HFONT m_arialFont; // 0x540
SIZE m_fpsSize; // 0x544
undefined m_pad0x54c[8];
undefined m_unk0x554;
MxBool m_initialized; // 0x555
undefined m_pad0x556[0x39];
}; };
#endif // LEGOVIDEOMANAGER_H #endif // LEGOVIDEOMANAGER_H