From 742972a59c08b4cee10078a00328b868eaa3bb98 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Tue, 18 Jul 2023 12:47:46 -0400 Subject: [PATCH] Match MxVideoManager::RealizePalette --- LEGO1/mxunknown100dc768.h | 31 +++++++++++++++++++++++++++++++ LEGO1/mxvideomanager.cpp | 8 ++++---- LEGO1/mxvideomanager.h | 3 ++- 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 LEGO1/mxunknown100dc768.h diff --git a/LEGO1/mxunknown100dc768.h b/LEGO1/mxunknown100dc768.h new file mode 100644 index 00000000..d5fa3229 --- /dev/null +++ b/LEGO1/mxunknown100dc768.h @@ -0,0 +1,31 @@ +#ifndef MXUNKNOWN100DC768_H +#define MXUNKNOWN100DC768_H + +#include "mxcore.h" +#include "mxpalette.h" + +#include "decomp.h" + +// VTABLE 0x100dc768 +class MxUnknown100dc768 : public MxCore +{ +public: + MxUnknown100dc768(); + virtual ~MxUnknown100dc768() override; + + virtual undefined4 vtable14(undefined4, undefined4, undefined4, undefined4); + virtual undefined4 vtable18(undefined4); + virtual MxResult Reset(); + virtual void vtable20(MxPalette *p_palette); + virtual void vtable24(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); + virtual MxBool vtable28(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); + virtual MxBool vtable2c(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool); + virtual MxBool vtable30(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, undefined4, MxBool); + virtual undefined4 vtable34(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); + virtual void vtable38(undefined4, undefined4, undefined4, undefined4, undefined4, undefined4); + virtual undefined4 vtable3c(undefined4*); + virtual undefined4 vtable40(undefined4); + virtual undefined4 vtable44(undefined4, undefined4*, undefined4, undefined4); +}; + +#endif // MXUNKNOWN100DC768_H diff --git a/LEGO1/mxvideomanager.cpp b/LEGO1/mxvideomanager.cpp index af4995ae..7335766a 100644 --- a/LEGO1/mxvideomanager.cpp +++ b/LEGO1/mxvideomanager.cpp @@ -25,7 +25,7 @@ int MxVideoManager::Init() { this->m_pDirectDraw = NULL; this->m_unk54 = NULL; - this->m_unk58 = NULL; + this->m_100dc768 = NULL; this->m_unk5c = 0; this->m_videoParam.SetPalette(NULL); this->m_unk60 = FALSE; @@ -45,10 +45,10 @@ MxLong MxVideoManager::RealizePalette(MxPalette *p_palette) this->m_criticalSection.Enter(); - if (p_palette && this->m_videoParam.GetPalette()) - { + if (p_palette && this->m_videoParam.GetPalette()) { p_palette->GetEntries(paletteEntries); - // TODO + this->m_videoParam.GetPalette()->SetEntries(paletteEntries); + this->m_100dc768->vtable20(this->m_videoParam.GetPalette()); } this->m_criticalSection.Leave(); diff --git a/LEGO1/mxvideomanager.h b/LEGO1/mxvideomanager.h index 2061ec6b..8c827554 100644 --- a/LEGO1/mxvideomanager.h +++ b/LEGO1/mxvideomanager.h @@ -2,6 +2,7 @@ #define MXVIDEOMANAGER_H #include "mxunknown100dc6b0.h" +#include "mxunknown100dc768.h" #include "mxvideoparam.h" // VTABLE 0x100dc810 @@ -26,7 +27,7 @@ class MxVideoManager : public MxUnknown100dc6b0 MxVideoParam m_videoParam; LPDIRECTDRAW m_pDirectDraw; LPDIRECTDRAWSURFACE m_unk54; - void* m_unk58; + MxUnknown100dc768 *m_100dc768; int m_unk5c; MxBool m_unk60; };