diff --git a/LEGO1/mxpalette.cpp b/LEGO1/mxpalette.cpp index d7063778..08e78c82 100644 --- a/LEGO1/mxpalette.cpp +++ b/LEGO1/mxpalette.cpp @@ -4,16 +4,17 @@ MxPalette::MxPalette() { this->m_overrideSkyColor = FALSE; - this->m_attached = NULL; + this->m_palette = NULL; GetDefaultPalette(this->m_entries); this->m_skyColor = this->m_entries[141]; - // FIXME: Incomplete } // OFFSET: LEGO1 100bef90 MxPalette::~MxPalette() { - delete m_attached; // yes this matches more + if (m_palette) { + m_palette->Release(); + } } // OFFSET: LEGO1 100bf0b0 @@ -55,5 +56,5 @@ void MxPalette::GetDefaultPalette(LPPALETTEENTRY p_entries) // OFFSET: LEGO1 0x100bf330 void MxPalette::Detach() { - this->m_attached = NULL; + this->m_palette = NULL; } \ No newline at end of file diff --git a/LEGO1/mxpalette.h b/LEGO1/mxpalette.h index 17c48794..83591627 100644 --- a/LEGO1/mxpalette.h +++ b/LEGO1/mxpalette.h @@ -15,13 +15,13 @@ class MxPalette : public MxCore __declspec(dllexport) void Detach(); MxPalette(); - ~MxPalette(); + virtual ~MxPalette(); + MxPalette* Clone(); void GetDefaultPalette(LPPALETTEENTRY p_entries); MxResult GetEntries(LPPALETTEENTRY p_entries); private: - MxCore *m_attached; LPDIRECTDRAWPALETTE m_palette; PALETTEENTRY m_entries[256]; MxBool m_overrideSkyColor;