summaryrefslogtreecommitdiff
path: root/include/palette.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/palette.h')
-rw-r--r--include/palette.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/include/palette.h b/include/palette.h
new file mode 100644
index 000000000..de2cf0083
--- /dev/null
+++ b/include/palette.h
@@ -0,0 +1,68 @@
+#ifndef GUARD_PALETTE_H
+#define GUARD_PALETTE_H
+
+#include "global.h"
+
+#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
+#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
+#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
+#define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade
+
+enum
+{
+ FAST_FADE_IN_FROM_WHITE,
+ FAST_FADE_OUT_TO_WHTIE,
+ FAST_FADE_IN_FROM_BLACK,
+ FAST_FADE_OUT_TO_BLACK,
+};
+
+struct PaletteFadeControl
+{
+ u32 multipurpose1;
+ u8 delayCounter:6;
+ u16 y:5; // blend coefficient
+ u16 targetY:5; // target blend coefficient
+ u16 blendColor:15;
+ u16 active:1;
+ u16 multipurpose2:6;
+ u16 yDec:1; // whether blend coefficient is decreasing
+ u16 bufferTransferDisabled:1;
+ u16 mode:2;
+ u16 shouldResetBlendRegisters:1;
+ u16 hardwareFadeFinishing:1;
+ u16 softwareFadeFinishingCounter:5;
+ u16 softwareFadeFinishing:1;
+ u16 objPaletteToggle:1;
+ u8 deltaY:4; // rate of change of blend coefficient
+};
+
+extern struct PaletteFadeControl gPaletteFade;
+extern u32 gPlttBufferTransferPending;
+extern u8 gPaletteDecompressionBuffer[];
+extern u16 gPlttBufferUnfaded[];
+extern u16 gPlttBufferFaded[];
+
+void LoadCompressedPalette(const void *, u16, u16);
+void LoadPalette(const void *, u16, u16);
+void FillPalette(u16, u16, u16);
+void TransferPlttBuffer(void);
+u8 UpdatePaletteFade(void);
+void ResetPaletteFade(void);
+void ReadPlttIntoBuffers(void);
+bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
+bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
+void unref_sub_8073D84(u8, u32 *);
+void ResetPaletteStructByUid(u16);
+void ResetPaletteStruct(u8);
+void ResetPaletteFadeControl();
+void unref_sub_8074168(u16);
+void unref_sub_8074194(u16);
+void InvertPlttBuffer(u32);
+void TintPlttBuffer(u32, s8, s8, s8);
+void UnfadePlttBuffer(u32);
+void BeginFastPaletteFade(u8);
+void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
+void BlendPalettes(u32, u8, u16);
+void BlendPalettesUnfaded(u32, u8, u16);
+
+#endif // GUARD_PALETTE_H