summaryrefslogtreecommitdiff
path: root/include/palette.h
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-17 13:22:46 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-17 13:22:46 -0800
commitb849ce93dbafac8e4961b531ab40585c0fdd103a (patch)
tree1cfd5cf3b7223a8e91dd0a0d4e6e112bd3458d8b /include/palette.h
parent3ddda066d91cbbd377584acacaea62a9deba8873 (diff)
decompile main
Diffstat (limited to 'include/palette.h')
-rw-r--r--include/palette.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/include/palette.h b/include/palette.h
new file mode 100644
index 000000000..d3bcd2271
--- /dev/null
+++ b/include/palette.h
@@ -0,0 +1,71 @@
+#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
+
+#define PLTT_BUFFER_SIZE 0x200
+#define PLTT_DECOMP_BUFFER_SIZE (PLTT_BUFFER_SIZE * 2)
+
+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