1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
#ifndef POKEDIAMOND_PALETTE_H
#define POKEDIAMOND_PALETTE_H
#include "global.h"
#include "filesystem.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);
void PaletteData_CopyPalette(struct PaletteData *paletteData,
u32 srcIdx,
u16 srcOffset,
u32 destIdx,
u16 destOffset,
u16 size);
u16 *PaletteData_GetUnfadedBuf(struct PaletteData *paletteData, u32 index);
u16 *PaletteData_GetFadedBuf(struct PaletteData *paletteData, u32 index);
u32 FUN_02003210(struct PaletteData *paletteData,
u16 param1,
u16 param2,
s16 delay,
u8 startY,
u8 targetY,
u16 color);
u8 IsPaletteSelected(u16 selectedPalettes, u16 index);
void FUN_02003328(struct PaletteData *param0, u16 param1);
void FUN_02003368(s32 param0, struct Palette *param1, u16 *param2);
void FUN_020033A4(struct PaletteFadeControl *paletteFade,
u16 selectedPalettes,
s16 delay,
u8 startY,
u8 targetY,
u16 color);
void FUN_02003464(u32 param0, struct PaletteData *param1);
void FUN_02003500(struct PaletteData *param0);
void FUN_02003520(struct PaletteData *param0);
void FUN_02003540(struct PaletteData *paletteData, u8 index, u32 param2);
void FUN_0200359C(struct PaletteData *paletteData, u32 index, u32 param2);
void FUN_020035F8(u16 *src, u16 *dest, struct PaletteFadeControl *fadeCtrl, u32 numEntries);
void FUN_02003684(struct PaletteData *paletteData, u8 index, struct PaletteFadeControl *fadeCtrl);
void FUN_0200372C(struct PaletteData *paletteData);
u16 FUN_020038E4(struct PaletteData *paletteData);
void FUN_020038F0(struct PaletteData *paletteData, u32 param1);
void PaletteData_FillPalette(struct PaletteData *paletteData,
u32 index,
u32 selection,
u16 value,
u16 startOffset,
u16 endOffset);
void BlendPalette(u16 *src, u16 *dest, u16 numEntries, u8 coeff, u16 blendColor);
void BlendPaletteUnfaded(struct PaletteData *paletteData,
u32 index,
u16 offset,
u16 numEntries,
u8 coeff,
u16 blendColor);
void BlendPalettes(u16 *src, u16 *dest, u16 selectedPalettes, u8 coeff, u16 blendColor);
void BlendPalettesUnfaded(
struct PaletteData *paletteData, u32 index, u16 selectedPalettes, u8 coeff, u16 blendColor);
void TintPalette_CustomTone(u16 *palette, s32 count, s32 rTone, s32 gTone, s32 bTone);
void FUN_02003B40(struct PaletteData *paletteData,
NarcId narcId,
s32 memberId,
u32 heap_id,
u32 index,
u32 size,
u16 offset,
s32 rTone,
s32 gTone,
s32 bTone);
#endif // POKEDIAMOND_PALETTE_H
|