2023-04-27 22:19:39 -04:00
|
|
|
#ifndef MXPALETTE_H
|
|
|
|
#define MXPALETTE_H
|
|
|
|
|
2023-06-24 13:09:46 -04:00
|
|
|
#include "mxcore.h"
|
2023-06-29 04:10:08 -04:00
|
|
|
#include "mxtypes.h"
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2023-10-24 19:38:27 -04:00
|
|
|
#include <ddraw.h>
|
|
|
|
|
2023-12-06 07:10:45 -05:00
|
|
|
// VTABLE: LEGO1 0x100dc848
|
2024-05-29 16:52:45 -04:00
|
|
|
// VTABLE: BETA10 0x101c2300
|
2023-06-29 04:10:08 -04:00
|
|
|
// SIZE 0x414
|
2023-10-24 19:38:27 -04:00
|
|
|
class MxPalette : public MxCore {
|
2023-04-27 22:19:39 -04:00
|
|
|
public:
|
2024-01-24 21:16:29 -05:00
|
|
|
MxBool operator==(MxPalette& p_other);
|
|
|
|
void Detach();
|
2023-10-24 19:38:27 -04:00
|
|
|
|
|
|
|
MxPalette();
|
|
|
|
MxPalette(const RGBQUAD*);
|
2024-02-01 15:42:10 -05:00
|
|
|
~MxPalette() override;
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2023-10-24 19:38:27 -04:00
|
|
|
void ApplySystemEntriesToPalette(LPPALETTEENTRY p_entries);
|
|
|
|
MxPalette* Clone();
|
|
|
|
void GetDefaultPalette(LPPALETTEENTRY p_entries);
|
|
|
|
MxResult GetEntries(LPPALETTEENTRY p_entries);
|
|
|
|
MxResult SetEntries(LPPALETTEENTRY p_palette);
|
2023-12-13 05:48:14 -05:00
|
|
|
MxResult SetSkyColor(LPPALETTEENTRY p_skyColor);
|
2023-10-24 19:38:27 -04:00
|
|
|
void Reset(MxBool p_ignoreSkyColor);
|
|
|
|
LPDIRECTDRAWPALETTE CreateNativePalette();
|
2023-12-21 10:44:54 -05:00
|
|
|
|
2024-05-29 16:52:45 -04:00
|
|
|
void SetPalette(LPDIRECTDRAWPALETTE p_palette);
|
|
|
|
|
|
|
|
// FUNCTION: BETA10 0x100d92c0
|
2024-07-04 19:06:32 -04:00
|
|
|
void SetOverrideSkyColor(MxBool p_value) { m_overrideSkyColor = p_value; }
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2024-01-18 08:34:14 -05:00
|
|
|
// SYNTHETIC: LEGO1 0x100beeb0
|
2024-05-29 16:52:45 -04:00
|
|
|
// SYNTHETIC: BETA10 0x10144640
|
2024-01-18 08:34:14 -05:00
|
|
|
// MxPalette::`scalar deleting destructor'
|
|
|
|
|
2023-06-24 13:09:46 -04:00
|
|
|
private:
|
2023-10-24 19:38:27 -04:00
|
|
|
LPDIRECTDRAWPALETTE m_palette;
|
2024-01-29 16:17:17 -05:00
|
|
|
PALETTEENTRY m_entries[256]; // 0x0c
|
2023-10-24 19:38:27 -04:00
|
|
|
MxBool m_overrideSkyColor; // 0x40c
|
|
|
|
PALETTEENTRY m_skyColor; // 0x40d
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MXPALETTE_H
|