summaryrefslogtreecommitdiff
path: root/include/palette.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/palette.h')
-rw-r--r--include/palette.h70
1 files changed, 69 insertions, 1 deletions
diff --git a/include/palette.h b/include/palette.h
index def12c70..7f14ddb4 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -3,8 +3,76 @@
#include "global.h"
#include "filesystem.h"
-#include "unk_02002F08.h"
+struct PlttData
+{
+ u16 r : 5; // red
+ u16 g : 5; // green
+ u16 b : 5; // blue
+ u16 unused_15 : 1;
+};
+
+struct PaletteFadeControl
+{
+ u16 selectedPalettes;
+
+ u16 delay : 6;
+ u16 y : 5;
+ u16 targetY : 5;
+
+ u16 blendColor : 15;
+ u16 yDec : 1;
+
+ u16 deltaY : 4;
+ u16 delayCounter : 6;
+ u16 unk06_a : 6;
+};
+
+struct Palette
+{
+ u16 *unfadedBuf;
+ u16 *fadedBuf;
+ u32 bufSize;
+ struct PaletteFadeControl fadeCtrl;
+};
+
+struct PaletteData
+{
+ struct Palette pltt[14];
+
+ u16 unk118_0 : 2;
+ u16 activeFadePalettes : 14;
+ u16 unk11a_0 : 14;
+ u16 unk11a_e : 1;
+ u16 unk11a_f : 1;
+ u8 unk11c;
+ u8 unk11d;
+ u16 unk11e;
+};
+
+struct PaletteData *FUN_02002FD0(u32 heap_id);
+void FUN_02002FEC(struct PaletteData *ptr);
+void PaletteData_SetBuffers(
+ struct PaletteData *paletteData, u32 index, void *unfadedBuf, void *fadedBuf, u32 size);
+void PaletteData_AllocBuffers(struct PaletteData *paletteData, u32 index, u32 size, u32 heap_id);
+void PaletteData_FreeBuffers(struct PaletteData *paletteData, u32 index);
+void PaletteData_LoadPalette(
+ struct PaletteData *paletteData, const void *src, u32 index, u32 offset, u16 size);
+void PaletteData_LoadFromNarc(struct PaletteData *paletteData,
+ NarcId narcId,
+ s32 memberId,
+ u32 heap_id,
+ u32 index,
+ u32 size,
+ u16 offset,
+ u16 param7);
+void PaletteData_LoadNarc(struct PaletteData *paletteData,
+ NarcId narcId,
+ s32 memberId,
+ u32 heap_id,
+ u32 index,
+ u32 size,
+ u16 offset);
void FUN_02003108(struct PaletteData *paletteData, u32 index, u16 offset, u32 size);
void CopyPaletteFromNarc(
NarcId narcId, s32 memberId, u32 heap_id, u32 size, u16 offset, void *dest);