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
|
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:
|
2023-12-13 05:48:14 -05:00
|
|
|
__declspec(dllexport) MxBool operator==(MxPalette& p_other);
|
2023-10-24 19:38:27 -04:00
|
|
|
__declspec(dllexport) void Detach();
|
|
|
|
|
|
|
|
MxPalette();
|
|
|
|
MxPalette(const RGBQUAD*);
|
|
|
|
virtual ~MxPalette();
|
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();
|
|
|
|
inline void SetOverrideSkyColor(MxBool p_value) { this->m_overrideSkyColor = p_value; }
|
2023-06-24 13:09:46 -04:00
|
|
|
|
|
|
|
private:
|
2023-10-24 19:38:27 -04:00
|
|
|
LPDIRECTDRAWPALETTE m_palette;
|
|
|
|
PALETTEENTRY m_entries[256]; // 0xc
|
|
|
|
MxBool m_overrideSkyColor; // 0x40c
|
|
|
|
PALETTEENTRY m_skyColor; // 0x40d
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MXPALETTE_H
|