Label unknown palette functions
This commit is contained in:
+1
-7
@@ -58,15 +58,9 @@ void FillPalette(u16, u16, u16);
|
|||||||
void TransferPlttBuffer(void);
|
void TransferPlttBuffer(void);
|
||||||
u8 UpdatePaletteFade(void);
|
u8 UpdatePaletteFade(void);
|
||||||
void ResetPaletteFade(void);
|
void ResetPaletteFade(void);
|
||||||
void ReadPlttIntoBuffers(void);
|
|
||||||
bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
|
bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
|
||||||
bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
|
void PaletteStruct_ResetById(u16);
|
||||||
void unref_sub_8073D84(u8, u32 *);
|
|
||||||
void ResetPaletteStructByUid(u16);
|
|
||||||
void ResetPaletteStruct(u8);
|
|
||||||
void ResetPaletteFadeControl(void);
|
void ResetPaletteFadeControl(void);
|
||||||
void unref_sub_8074168(u16);
|
|
||||||
void unref_sub_8074194(u16);
|
|
||||||
void InvertPlttBuffer(u32);
|
void InvertPlttBuffer(u32);
|
||||||
void TintPlttBuffer(u32, s8, s8, s8);
|
void TintPlttBuffer(u32, s8, s8, s8);
|
||||||
void UnfadePlttBuffer(u32);
|
void UnfadePlttBuffer(u32);
|
||||||
|
|||||||
@@ -665,9 +665,10 @@ void sub_80A6760(struct Sprite *sprite)
|
|||||||
sprite->callback = sub_80A64D0;
|
sprite->callback = sub_80A64D0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sub_80A67A4(struct Sprite *sprite)
|
// Unused
|
||||||
|
static void EndUnkPaletteAnim(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
ResetPaletteStructByUid(sprite->data[5]);
|
PaletteStruct_ResetById(sprite->data[5]);
|
||||||
DestroySpriteAndMatrix(sprite);
|
DestroySpriteAndMatrix(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+123
-121
@@ -16,36 +16,38 @@ enum
|
|||||||
// These are structs for some unused palette system.
|
// These are structs for some unused palette system.
|
||||||
// The full functionality of this system is unknown.
|
// The full functionality of this system is unknown.
|
||||||
|
|
||||||
|
#define NUM_PALETTE_STRUCTS 16
|
||||||
|
|
||||||
struct PaletteStructTemplate
|
struct PaletteStructTemplate
|
||||||
{
|
{
|
||||||
u16 uid;
|
u16 id;
|
||||||
u16 *src;
|
u16 *src;
|
||||||
u16 pst_field_8_0:1;
|
bool16 pst_field_8_0:1;
|
||||||
u16 pst_field_8_1:9;
|
u16 unused:9;
|
||||||
u16 size:5;
|
u16 size:5;
|
||||||
u16 pst_field_9_7:1;
|
u8 time1;
|
||||||
u8 pst_field_A;
|
|
||||||
u8 srcCount:5;
|
u8 srcCount:5;
|
||||||
u8 pst_field_B_5:3;
|
u8 state:3;
|
||||||
u8 pst_field_C;
|
u8 time2;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct PaletteStruct
|
struct PaletteStruct
|
||||||
{
|
{
|
||||||
const struct PaletteStructTemplate *base;
|
const struct PaletteStructTemplate *template;
|
||||||
u32 ps_field_4_0:1;
|
bool32 active:1;
|
||||||
u16 ps_field_4_1:1;
|
bool32 flag:1;
|
||||||
u32 baseDestOffset:9;
|
u32 baseDestOffset:9;
|
||||||
u16 destOffset:10;
|
u32 destOffset:10;
|
||||||
u16 srcIndex:7;
|
u32 srcIndex:7;
|
||||||
u8 ps_field_8;
|
u8 countdown1;
|
||||||
u8 ps_field_9;
|
u8 countdown2;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void unused_sub_80A1CDC(struct PaletteStruct *, u32 *);
|
static void PaletteStruct_Copy(struct PaletteStruct *, u32 *);
|
||||||
static void unused_sub_80A1E40(struct PaletteStruct *, u32 *);
|
static void PaletteStruct_Blend(struct PaletteStruct *, u32 *);
|
||||||
static void unused_sub_80A1F00(struct PaletteStruct *);
|
static void PaletteStruct_TryEnd(struct PaletteStruct *);
|
||||||
static u8 GetPaletteNumByUid(u16);
|
static void PaletteStruct_Reset(u8);
|
||||||
|
static u8 PaletteStruct_GetPalNum(u16);
|
||||||
static u8 UpdateNormalPaletteFade(void);
|
static u8 UpdateNormalPaletteFade(void);
|
||||||
static void BeginFastPaletteFadeInternal(u8);
|
static void BeginFastPaletteFadeInternal(u8);
|
||||||
static u8 UpdateFastPaletteFade(void);
|
static u8 UpdateFastPaletteFade(void);
|
||||||
@@ -58,15 +60,15 @@ static void Task_BlendPalettesGradually(u8 taskId);
|
|||||||
// unaligned word reads are issued in BlendPalette otherwise
|
// unaligned word reads are issued in BlendPalette otherwise
|
||||||
ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0};
|
ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0};
|
||||||
ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
|
ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0};
|
||||||
EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0};
|
EWRAM_DATA struct PaletteStruct sPaletteStructs[NUM_PALETTE_STRUCTS] = {0};
|
||||||
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
|
EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0};
|
||||||
static EWRAM_DATA u32 sFiller = 0;
|
static EWRAM_DATA u32 sFiller = 0;
|
||||||
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
|
static EWRAM_DATA u32 sPlttBufferTransferPending = 0;
|
||||||
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
|
EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0};
|
||||||
|
|
||||||
static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
|
static const struct PaletteStructTemplate gDummyPaletteStructTemplate = {
|
||||||
.uid = 0xFFFF,
|
.id = 0xFFFF,
|
||||||
.pst_field_B_5 = 1
|
.state = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
static const u8 sRoundedDownGrayscaleMap[] = {
|
static const u8 sRoundedDownGrayscaleMap[] = {
|
||||||
@@ -82,20 +84,20 @@ static const u8 sRoundedDownGrayscaleMap[] = {
|
|||||||
void LoadCompressedPalette(const u32 *src, u16 offset, u16 size)
|
void LoadCompressedPalette(const u32 *src, u16 offset, u16 size)
|
||||||
{
|
{
|
||||||
LZDecompressWram(src, gPaletteDecompressionBuffer);
|
LZDecompressWram(src, gPaletteDecompressionBuffer);
|
||||||
CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size);
|
CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferUnfaded[offset], size);
|
||||||
CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size);
|
CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferFaded[offset], size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadPalette(const void *src, u16 offset, u16 size)
|
void LoadPalette(const void *src, u16 offset, u16 size)
|
||||||
{
|
{
|
||||||
CpuCopy16(src, gPlttBufferUnfaded + offset, size);
|
CpuCopy16(src, &gPlttBufferUnfaded[offset], size);
|
||||||
CpuCopy16(src, gPlttBufferFaded + offset, size);
|
CpuCopy16(src, &gPlttBufferFaded[offset], size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FillPalette(u16 value, u16 offset, u16 size)
|
void FillPalette(u16 value, u16 offset, u16 size)
|
||||||
{
|
{
|
||||||
CpuFill16(value, gPlttBufferUnfaded + offset, size);
|
CpuFill16(value, &gPlttBufferUnfaded[offset], size);
|
||||||
CpuFill16(value, gPlttBufferFaded + offset, size);
|
CpuFill16(value, &gPlttBufferFaded[offset], size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransferPlttBuffer(void)
|
void TransferPlttBuffer(void)
|
||||||
@@ -105,7 +107,7 @@ void TransferPlttBuffer(void)
|
|||||||
void *src = gPlttBufferFaded;
|
void *src = gPlttBufferFaded;
|
||||||
void *dest = (void *)PLTT;
|
void *dest = (void *)PLTT;
|
||||||
DmaCopy16(3, src, dest, PLTT_SIZE);
|
DmaCopy16(3, src, dest, PLTT_SIZE);
|
||||||
sPlttBufferTransferPending = 0;
|
sPlttBufferTransferPending = FALSE;
|
||||||
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
|
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
|
||||||
UpdateBlendRegisters();
|
UpdateBlendRegisters();
|
||||||
}
|
}
|
||||||
@@ -135,13 +137,13 @@ void ResetPaletteFade(void)
|
|||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
|
||||||
ResetPaletteStruct(i);
|
PaletteStruct_Reset(i);
|
||||||
|
|
||||||
ResetPaletteFadeControl();
|
ResetPaletteFadeControl();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadPlttIntoBuffers(void)
|
static void ReadPlttIntoBuffers(void)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 *pltt = (u16 *)PLTT;
|
u16 *pltt = (u16 *)PLTT;
|
||||||
@@ -178,7 +180,7 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
|
|||||||
gPaletteFade.y = startY;
|
gPaletteFade.y = startY;
|
||||||
gPaletteFade.targetY = targetY;
|
gPaletteFade.targetY = targetY;
|
||||||
gPaletteFade.blendColor = color;
|
gPaletteFade.blendColor = color;
|
||||||
gPaletteFade.active = 1;
|
gPaletteFade.active = TRUE;
|
||||||
gPaletteFade.mode = NORMAL_FADE;
|
gPaletteFade.mode = NORMAL_FADE;
|
||||||
|
|
||||||
if (startY < targetY)
|
if (startY < targetY)
|
||||||
@@ -189,9 +191,9 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
|
|||||||
UpdatePaletteFade();
|
UpdatePaletteFade();
|
||||||
|
|
||||||
temp = gPaletteFade.bufferTransferDisabled;
|
temp = gPaletteFade.bufferTransferDisabled;
|
||||||
gPaletteFade.bufferTransferDisabled = 0;
|
gPaletteFade.bufferTransferDisabled = FALSE;
|
||||||
CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE);
|
CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE);
|
||||||
sPlttBufferTransferPending = 0;
|
sPlttBufferTransferPending = FALSE;
|
||||||
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
|
if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active)
|
||||||
UpdateBlendRegisters();
|
UpdateBlendRegisters();
|
||||||
gPaletteFade.bufferTransferDisabled = temp;
|
gPaletteFade.bufferTransferDisabled = temp;
|
||||||
@@ -199,55 +201,55 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 unref_sub_80A1C1C(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5)
|
// Unused
|
||||||
|
static bool8 BeginPlttFade(u32 selectedPalettes, u8 delay, u8 startY, u8 targetY, u16 blendColor)
|
||||||
{
|
{
|
||||||
ReadPlttIntoBuffers();
|
ReadPlttIntoBuffers();
|
||||||
return BeginNormalPaletteFade(a1, a2, a3, a4, a5);
|
return BeginNormalPaletteFade(selectedPalettes, delay, startY, targetY, blendColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void unref_sub_80A1C64(u8 a1, u32 *a2)
|
// Unused
|
||||||
|
static void PaletteStruct_Run(u8 a1, u32 *unkFlags)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
|
||||||
{
|
{
|
||||||
struct PaletteStruct *palstruct = &sPaletteStructs[i];
|
struct PaletteStruct *palstruct = &sPaletteStructs[i];
|
||||||
if (palstruct->ps_field_4_0)
|
if (palstruct->active)
|
||||||
{
|
{
|
||||||
if (palstruct->base->pst_field_8_0 == a1)
|
if (palstruct->template->pst_field_8_0 == a1)
|
||||||
{
|
{
|
||||||
u8 val1 = palstruct->srcIndex;
|
if (palstruct->srcIndex == palstruct->template->srcCount)
|
||||||
u8 val2 = palstruct->base->srcCount;
|
|
||||||
if (val1 == val2)
|
|
||||||
{
|
{
|
||||||
unused_sub_80A1F00(palstruct);
|
PaletteStruct_TryEnd(palstruct);
|
||||||
if (!palstruct->ps_field_4_0)
|
if (!palstruct->active)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (palstruct->ps_field_8 == 0)
|
if (palstruct->countdown1 == 0)
|
||||||
unused_sub_80A1CDC(palstruct, a2);
|
PaletteStruct_Copy(palstruct, unkFlags);
|
||||||
else
|
else
|
||||||
palstruct->ps_field_8--;
|
palstruct->countdown1--;
|
||||||
|
|
||||||
unused_sub_80A1E40(palstruct, a2);
|
PaletteStruct_Blend(palstruct, unkFlags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
|
static void PaletteStruct_Copy(struct PaletteStruct *a1, u32 *unkFlags)
|
||||||
{
|
{
|
||||||
s32 srcIndex;
|
s32 srcIndex;
|
||||||
s32 srcCount;
|
s32 srcCount;
|
||||||
u8 i = 0;
|
u8 i = 0;
|
||||||
u16 srcOffset = a1->srcIndex * a1->base->size;
|
u16 srcOffset = a1->srcIndex * a1->template->size;
|
||||||
|
|
||||||
if (!a1->base->pst_field_8_0)
|
if (!a1->template->pst_field_8_0)
|
||||||
{
|
{
|
||||||
while (i < a1->base->size)
|
while (i < a1->template->size)
|
||||||
{
|
{
|
||||||
gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset];
|
gPlttBufferUnfaded[a1->destOffset] = a1->template->src[srcOffset];
|
||||||
gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
|
gPlttBufferFaded[a1->destOffset] = a1->template->src[srcOffset];
|
||||||
i++;
|
i++;
|
||||||
a1->destOffset++;
|
a1->destOffset++;
|
||||||
srcOffset++;
|
srcOffset++;
|
||||||
@@ -255,9 +257,9 @@ static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
while (i < a1->base->size)
|
while (i < a1->template->size)
|
||||||
{
|
{
|
||||||
gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset];
|
gPlttBufferFaded[a1->destOffset] = a1->template->src[srcOffset];
|
||||||
i++;
|
i++;
|
||||||
a1->destOffset++;
|
a1->destOffset++;
|
||||||
srcOffset++;
|
srcOffset++;
|
||||||
@@ -265,33 +267,33 @@ static void unused_sub_80A1CDC(struct PaletteStruct *a1, u32 *a2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
a1->destOffset = a1->baseDestOffset;
|
a1->destOffset = a1->baseDestOffset;
|
||||||
a1->ps_field_8 = a1->base->pst_field_A;
|
a1->countdown1 = a1->template->time1;
|
||||||
a1->srcIndex++;
|
a1->srcIndex++;
|
||||||
|
|
||||||
srcIndex = a1->srcIndex;
|
srcIndex = a1->srcIndex;
|
||||||
srcCount = a1->base->srcCount;
|
srcCount = a1->template->srcCount;
|
||||||
|
|
||||||
if (srcIndex >= srcCount)
|
if (srcIndex >= srcCount)
|
||||||
{
|
{
|
||||||
if (a1->ps_field_9)
|
if (a1->countdown2)
|
||||||
a1->ps_field_9--;
|
a1->countdown2--;
|
||||||
a1->srcIndex = 0;
|
a1->srcIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
*a2 |= 1 << (a1->baseDestOffset >> 4);
|
*unkFlags |= 1 << (a1->baseDestOffset >> 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unused_sub_80A1E40(struct PaletteStruct *a1, u32 *a2)
|
static void PaletteStruct_Blend(struct PaletteStruct *a1, u32 *unkFlags)
|
||||||
{
|
{
|
||||||
if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes))
|
if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes))
|
||||||
{
|
{
|
||||||
if (!a1->base->pst_field_8_0)
|
if (!a1->template->pst_field_8_0)
|
||||||
{
|
{
|
||||||
if (gPaletteFade.delayCounter != gPaletteFade_delay)
|
if (gPaletteFade.delayCounter != gPaletteFade_delay)
|
||||||
{
|
{
|
||||||
BlendPalette(
|
BlendPalette(
|
||||||
a1->baseDestOffset,
|
a1->baseDestOffset,
|
||||||
a1->base->size,
|
a1->template->size,
|
||||||
gPaletteFade.y,
|
gPaletteFade.y,
|
||||||
gPaletteFade.blendColor);
|
gPaletteFade.blendColor);
|
||||||
}
|
}
|
||||||
@@ -300,64 +302,64 @@ static void unused_sub_80A1E40(struct PaletteStruct *a1, u32 *a2)
|
|||||||
{
|
{
|
||||||
if (!gPaletteFade.delayCounter)
|
if (!gPaletteFade.delayCounter)
|
||||||
{
|
{
|
||||||
if (a1->ps_field_8 != a1->base->pst_field_A)
|
if (a1->countdown1 != a1->template->time1)
|
||||||
{
|
{
|
||||||
u32 srcOffset = a1->srcIndex * a1->base->size;
|
u32 srcOffset = a1->srcIndex * a1->template->size;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < a1->base->size; i++)
|
for (i = 0; i < a1->template->size; i++)
|
||||||
gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i];
|
gPlttBufferFaded[a1->baseDestOffset + i] = a1->template->src[srcOffset + i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void unused_sub_80A1F00(struct PaletteStruct *a1)
|
static void PaletteStruct_TryEnd(struct PaletteStruct *pal)
|
||||||
{
|
{
|
||||||
if (!a1->ps_field_9)
|
if (pal->countdown2 == 0)
|
||||||
{
|
{
|
||||||
s32 val = a1->base->pst_field_B_5;
|
s32 state = pal->template->state;
|
||||||
|
|
||||||
if (!val)
|
if (state == 0)
|
||||||
{
|
{
|
||||||
a1->srcIndex = 0;
|
pal->srcIndex = 0;
|
||||||
a1->ps_field_8 = a1->base->pst_field_A;
|
pal->countdown1 = pal->template->time1;
|
||||||
a1->ps_field_9 = a1->base->pst_field_C;
|
pal->countdown2 = pal->template->time2;
|
||||||
a1->destOffset = a1->baseDestOffset;
|
pal->destOffset = pal->baseDestOffset;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (val < 0)
|
if (state < 0)
|
||||||
return;
|
return;
|
||||||
if (val > 2)
|
if (state > 2)
|
||||||
return;
|
return;
|
||||||
ResetPaletteStructByUid(a1->base->uid);
|
PaletteStruct_ResetById(pal->template->id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
a1->ps_field_9--;
|
pal->countdown2--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResetPaletteStructByUid(u16 a1)
|
void PaletteStruct_ResetById(u16 id)
|
||||||
{
|
{
|
||||||
u8 paletteNum = GetPaletteNumByUid(a1);
|
u8 paletteNum = PaletteStruct_GetPalNum(id);
|
||||||
if (paletteNum != 16)
|
if (paletteNum != NUM_PALETTE_STRUCTS)
|
||||||
ResetPaletteStruct(paletteNum);
|
PaletteStruct_Reset(paletteNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResetPaletteStruct(u8 paletteNum)
|
static void PaletteStruct_Reset(u8 paletteNum)
|
||||||
{
|
{
|
||||||
sPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate;
|
sPaletteStructs[paletteNum].template = &gDummyPaletteStructTemplate;
|
||||||
sPaletteStructs[paletteNum].ps_field_4_0 = 0;
|
sPaletteStructs[paletteNum].active = FALSE;
|
||||||
sPaletteStructs[paletteNum].baseDestOffset = 0;
|
sPaletteStructs[paletteNum].baseDestOffset = 0;
|
||||||
sPaletteStructs[paletteNum].destOffset = 0;
|
sPaletteStructs[paletteNum].destOffset = 0;
|
||||||
sPaletteStructs[paletteNum].srcIndex = 0;
|
sPaletteStructs[paletteNum].srcIndex = 0;
|
||||||
sPaletteStructs[paletteNum].ps_field_4_1 = 0;
|
sPaletteStructs[paletteNum].flag = 0;
|
||||||
sPaletteStructs[paletteNum].ps_field_8 = 0;
|
sPaletteStructs[paletteNum].countdown1 = 0;
|
||||||
sPaletteStructs[paletteNum].ps_field_9 = 0;
|
sPaletteStructs[paletteNum].countdown2 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResetPaletteFadeControl(void)
|
void ResetPaletteFadeControl(void)
|
||||||
@@ -368,41 +370,41 @@ void ResetPaletteFadeControl(void)
|
|||||||
gPaletteFade.y = 0;
|
gPaletteFade.y = 0;
|
||||||
gPaletteFade.targetY = 0;
|
gPaletteFade.targetY = 0;
|
||||||
gPaletteFade.blendColor = 0;
|
gPaletteFade.blendColor = 0;
|
||||||
gPaletteFade.active = 0;
|
gPaletteFade.active = FALSE;
|
||||||
gPaletteFade.multipurpose2 = 0; // assign same value twice
|
gPaletteFade.multipurpose2 = 0; // assign same value twice
|
||||||
gPaletteFade.yDec = 0;
|
gPaletteFade.yDec = 0;
|
||||||
gPaletteFade.bufferTransferDisabled = 0;
|
gPaletteFade.bufferTransferDisabled = FALSE;
|
||||||
gPaletteFade.shouldResetBlendRegisters = 0;
|
gPaletteFade.shouldResetBlendRegisters = FALSE;
|
||||||
gPaletteFade.hardwareFadeFinishing = 0;
|
gPaletteFade.hardwareFadeFinishing = FALSE;
|
||||||
gPaletteFade.softwareFadeFinishing = 0;
|
gPaletteFade.softwareFadeFinishing = FALSE;
|
||||||
gPaletteFade.softwareFadeFinishingCounter = 0;
|
gPaletteFade.softwareFadeFinishingCounter = 0;
|
||||||
gPaletteFade.objPaletteToggle = 0;
|
gPaletteFade.objPaletteToggle = 0;
|
||||||
gPaletteFade.deltaY = 2;
|
gPaletteFade.deltaY = 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void unref_sub_80A2048(u16 uid)
|
static void PaletteStruct_SetUnusedFlag(u16 id)
|
||||||
{
|
{
|
||||||
u8 paletteNum = GetPaletteNumByUid(uid);
|
u8 paletteNum = PaletteStruct_GetPalNum(id);
|
||||||
if (paletteNum != 16)
|
if (paletteNum != NUM_PALETTE_STRUCTS)
|
||||||
sPaletteStructs[paletteNum].ps_field_4_1 = 1;
|
sPaletteStructs[paletteNum].flag = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void unref_sub_80A2074(u16 uid)
|
static void PaletteStruct_ClearUnusedFlag(u16 id)
|
||||||
{
|
{
|
||||||
u8 paletteNum = GetPaletteNumByUid(uid);
|
u8 paletteNum = PaletteStruct_GetPalNum(id);
|
||||||
if (paletteNum != 16)
|
if (paletteNum != NUM_PALETTE_STRUCTS)
|
||||||
sPaletteStructs[paletteNum].ps_field_4_1 = 0;
|
sPaletteStructs[paletteNum].flag = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 GetPaletteNumByUid(u16 uid)
|
static u8 PaletteStruct_GetPalNum(u16 id)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < NUM_PALETTE_STRUCTS; i++)
|
||||||
if (sPaletteStructs[i].base->uid == uid)
|
if (sPaletteStructs[i].template->id == id)
|
||||||
return i;
|
return i;
|
||||||
|
|
||||||
return 16;
|
return NUM_PALETTE_STRUCTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 UpdateNormalPaletteFade(void)
|
static u8 UpdateNormalPaletteFade(void)
|
||||||
@@ -460,7 +462,7 @@ static u8 UpdateNormalPaletteFade(void)
|
|||||||
if (gPaletteFade.y == gPaletteFade.targetY)
|
if (gPaletteFade.y == gPaletteFade.targetY)
|
||||||
{
|
{
|
||||||
gPaletteFade_selectedPalettes = 0;
|
gPaletteFade_selectedPalettes = 0;
|
||||||
gPaletteFade.softwareFadeFinishing = 1;
|
gPaletteFade.softwareFadeFinishing = TRUE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -557,7 +559,7 @@ static void BeginFastPaletteFadeInternal(u8 submode)
|
|||||||
{
|
{
|
||||||
gPaletteFade.y = 31;
|
gPaletteFade.y = 31;
|
||||||
gPaletteFade_submode = submode & 0x3F;
|
gPaletteFade_submode = submode & 0x3F;
|
||||||
gPaletteFade.active = 1;
|
gPaletteFade.active = TRUE;
|
||||||
gPaletteFade.mode = FAST_FADE;
|
gPaletteFade.mode = FAST_FADE;
|
||||||
|
|
||||||
if (submode == FAST_FADE_IN_FROM_BLACK)
|
if (submode == FAST_FADE_IN_FROM_BLACK)
|
||||||
@@ -719,7 +721,7 @@ static u8 UpdateFastPaletteFade(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gPaletteFade.mode = NORMAL_FADE;
|
gPaletteFade.mode = NORMAL_FADE;
|
||||||
gPaletteFade.softwareFadeFinishing = 1;
|
gPaletteFade.softwareFadeFinishing = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// gPaletteFade.active cannot change since the last time it was checked. So this
|
// gPaletteFade.active cannot change since the last time it was checked. So this
|
||||||
@@ -734,10 +736,10 @@ void BeginHardwarePaletteFade(u8 blendCnt, u8 delay, u8 y, u8 targetY, u8 should
|
|||||||
gPaletteFade_delay = delay;
|
gPaletteFade_delay = delay;
|
||||||
gPaletteFade.y = y;
|
gPaletteFade.y = y;
|
||||||
gPaletteFade.targetY = targetY;
|
gPaletteFade.targetY = targetY;
|
||||||
gPaletteFade.active = 1;
|
gPaletteFade.active = TRUE;
|
||||||
gPaletteFade.mode = HARDWARE_FADE;
|
gPaletteFade.mode = HARDWARE_FADE;
|
||||||
gPaletteFade.shouldResetBlendRegisters = shouldResetBlendRegisters & 1;
|
gPaletteFade.shouldResetBlendRegisters = shouldResetBlendRegisters & 1;
|
||||||
gPaletteFade.hardwareFadeFinishing = 0;
|
gPaletteFade.hardwareFadeFinishing = FALSE;
|
||||||
|
|
||||||
if (y < targetY)
|
if (y < targetY)
|
||||||
gPaletteFade.yDec = 0;
|
gPaletteFade.yDec = 0;
|
||||||
@@ -784,7 +786,7 @@ static u8 UpdateHardwarePaletteFade(void)
|
|||||||
gPaletteFade_blendCnt = 0;
|
gPaletteFade_blendCnt = 0;
|
||||||
gPaletteFade.y = 0;
|
gPaletteFade.y = 0;
|
||||||
}
|
}
|
||||||
gPaletteFade.shouldResetBlendRegisters = 0;
|
gPaletteFade.shouldResetBlendRegisters = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// gPaletteFade.active cannot change since the last time it was checked. So this
|
// gPaletteFade.active cannot change since the last time it was checked. So this
|
||||||
@@ -798,11 +800,11 @@ static void UpdateBlendRegisters(void)
|
|||||||
SetGpuReg(REG_OFFSET_BLDY, gPaletteFade.y);
|
SetGpuReg(REG_OFFSET_BLDY, gPaletteFade.y);
|
||||||
if (gPaletteFade.hardwareFadeFinishing)
|
if (gPaletteFade.hardwareFadeFinishing)
|
||||||
{
|
{
|
||||||
gPaletteFade.hardwareFadeFinishing = 0;
|
gPaletteFade.hardwareFadeFinishing = FALSE;
|
||||||
gPaletteFade.mode = 0;
|
gPaletteFade.mode = 0;
|
||||||
gPaletteFade_blendCnt = 0;
|
gPaletteFade_blendCnt = 0;
|
||||||
gPaletteFade.y = 0;
|
gPaletteFade.y = 0;
|
||||||
gPaletteFade.active = 0;
|
gPaletteFade.active = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -812,8 +814,8 @@ static bool8 IsSoftwarePaletteFadeFinishing(void)
|
|||||||
{
|
{
|
||||||
if (gPaletteFade.softwareFadeFinishingCounter == 4)
|
if (gPaletteFade.softwareFadeFinishingCounter == 4)
|
||||||
{
|
{
|
||||||
gPaletteFade.active = 0;
|
gPaletteFade.active = FALSE;
|
||||||
gPaletteFade.softwareFadeFinishing = 0;
|
gPaletteFade.softwareFadeFinishing = FALSE;
|
||||||
gPaletteFade.softwareFadeFinishingCounter = 0;
|
gPaletteFade.softwareFadeFinishingCounter = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -950,7 +952,7 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b
|
|||||||
#define tId data[8]
|
#define tId data[8]
|
||||||
|
|
||||||
// Blend the selected palettes in a series of steps toward or away from the color.
|
// Blend the selected palettes in a series of steps toward or away from the color.
|
||||||
// Only used by the Groudon/Kyogre fight scene to flash the screen for lightning
|
// Only used by the Groudon/Kyogre fight scene to flash the screen for lightning.
|
||||||
// One call is used to fade the bg from white, while another fades the duo from black
|
// One call is used to fade the bg from white, while another fades the duo from black
|
||||||
void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id)
|
void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id)
|
||||||
{
|
{
|
||||||
@@ -987,8 +989,8 @@ static bool32 IsBlendPalettesGraduallyTaskActive(u8 id)
|
|||||||
|
|
||||||
for (i = 0; i < NUM_TASKS; i++)
|
for (i = 0; i < NUM_TASKS; i++)
|
||||||
if ((gTasks[i].isActive == TRUE)
|
if ((gTasks[i].isActive == TRUE)
|
||||||
&& (gTasks[i].func == Task_BlendPalettesGradually)
|
&& (gTasks[i].func == Task_BlendPalettesGradually)
|
||||||
&& (gTasks[i].tId == id))
|
&& (gTasks[i].tId == id))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
Reference in New Issue
Block a user