2023-04-27 22:19:39 -04:00
|
|
|
#ifndef MXPALETTE_H
|
|
|
|
#define MXPALETTE_H
|
|
|
|
|
2023-06-24 13:09:46 -04:00
|
|
|
#include <ddraw.h>
|
|
|
|
|
|
|
|
#include "mxcore.h"
|
2023-06-29 04:10:08 -04:00
|
|
|
#include "mxtypes.h"
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2023-06-29 04:10:08 -04:00
|
|
|
// VTABLE 0x100dc848
|
|
|
|
// SIZE 0x414
|
2023-06-24 13:09:46 -04:00
|
|
|
class MxPalette : public MxCore
|
2023-04-27 22:19:39 -04:00
|
|
|
{
|
|
|
|
public:
|
2023-06-30 14:34:39 -04:00
|
|
|
__declspec(dllexport) MxBool operator==(MxPalette &);
|
2023-06-11 21:03:54 -04:00
|
|
|
__declspec(dllexport) void Detach();
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2023-07-16 01:51:24 -04:00
|
|
|
MxPalette();
|
|
|
|
MxPalette(const RGBQUAD *);
|
|
|
|
virtual ~MxPalette();
|
2023-06-24 13:09:46 -04:00
|
|
|
|
2023-07-16 01:51:24 -04:00
|
|
|
void ApplySystemEntriesToPalette(LPPALETTEENTRY p_entries);
|
|
|
|
MxPalette* Clone();
|
|
|
|
void GetDefaultPalette(LPPALETTEENTRY p_entries);
|
|
|
|
MxResult GetEntries(LPPALETTEENTRY p_entries);
|
|
|
|
MxResult SetEntries(LPPALETTEENTRY p_palette);
|
|
|
|
MxResult SetSkyColor(LPPALETTEENTRY p_sky_color);
|
|
|
|
void Reset(MxBool p_ignoreSkyColor);
|
|
|
|
LPDIRECTDRAWPALETTE CreateNativePalette();
|
2023-10-08 16:00:59 -04:00
|
|
|
inline void SetOverrideSkyColor(MxBool p_value) { this->m_overrideSkyColor = p_value; }
|
2023-06-24 13:09:46 -04:00
|
|
|
private:
|
2023-07-16 01:51:24 -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
|