Document fade pokemon sprite script func

This commit is contained in:
Fexty12573 2025-08-05 16:00:45 +02:00
parent 1b0c272b7b
commit cb2aad96fa
10 changed files with 142 additions and 138 deletions

View File

@ -4,7 +4,6 @@
#include "nitro/hw/common/lcd.h"
#include "overlay012/battle_anim_system.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "buffer_manager.h"
#include "palette.h"
@ -143,6 +142,22 @@ typedef struct SpriteShakeInfo {
int targets;
} SpriteShakeInfo;
typedef struct UnkStruct_ov12_022267D4_t {
BOOL active;
SysTask *task;
enum PaletteBufferID bufferID;
u16 index;
u16 count;
u16 color;
u8 startFrac;
u8 endFrac;
u8 fraction;
s8 step;
s8 stepFrames;
s8 timer;
PaletteData *paletteData;
} PaletteFadeContext;
void ov12_02225864(int param0, int param1, s16 *param2, s16 *param3);
void ov12_02225898(BattleAnimSystem *param0, int param1, s16 *param2, s16 *param3);
s16 BattleAnimUtil_GetBattlerPos(BattleAnimSystem *param0, int param1, enum BattleAnimPositionType param2);
@ -208,9 +223,9 @@ void ov12_02226728(s16 param0, s16 param1, s16 param2, s16 param3, s16 *param4,
void ov12_02226744(s16 param0, s16 param1, s16 param2, s16 param3, fx32 *param4);
void ov12_0222676C(s16 param0, s16 param1, s16 param2, s16 param3, u16 *param4);
BOOL ov12_022267A8(int *param0, int param1, s32 param2);
BOOL ov12_02226848(UnkStruct_ov12_022267D4 *param0);
void ov12_02226858(UnkStruct_ov12_022267D4 *param0);
UnkStruct_ov12_022267D4 *ov12_02226870(PaletteData *param0, int heapID, int param2, u16 param3, u16 param4, s8 param5, s8 param6, u8 param7, u8 param8, u16 param9, int param10);
BOOL PaletteFadeContext_IsActive(PaletteFadeContext *param0);
void PaletteFadeContext_Free(PaletteFadeContext *param0);
PaletteFadeContext *PaletteFadeContext_New(PaletteData *param0, enum HeapId heapID, enum PaletteBufferID param2, u16 param3, u16 param4, s8 param5, s8 param6, u8 param7, u8 param8, u16 param9, int param10);
void ov12_02226924(BattleAnimSystem *param0);
void ov12_02226954(BattleAnimSystem *param0);

View File

@ -28,7 +28,7 @@ void BattleAnimScriptFunc_RevolveBattler(BattleAnimSystem *param0);
void BattleAnimScriptFunc_MoveBattlerOffScreen(BattleAnimSystem *param0);
void ov12_02228FB4(BattleAnimSystem *param0);
void BattleAnimScriptFunc_MoveBattlerToDefaultPos(BattleAnimSystem *param0);
void ov12_022291AC(BattleAnimSystem *param0);
void BattleAnimScriptFunc_FadePokemonSprite(BattleAnimSystem *param0);
void ov12_02229304(BattleAnimSystem *param0);
void ov12_02229638(BattleAnimSystem *param0);
void ov12_02229810(BattleAnimSystem *param0);

View File

@ -1,6 +0,0 @@
#ifndef POKEPLATINUM_STRUCT_OV12_022267D4_DECL_H
#define POKEPLATINUM_STRUCT_OV12_022267D4_DECL_H
typedef struct UnkStruct_ov12_022267D4_t UnkStruct_ov12_022267D4;
#endif // POKEPLATINUM_STRUCT_OV12_022267D4_DECL_H

View File

@ -1,6 +1,7 @@
#include "overlay012/ov12_02225864.h"
#include "nitro/hw/common/lcd.h"
#include "nitro/types.h"
#include <nitro.h>
#include <string.h>
@ -26,22 +27,6 @@
#define MAX_CYCLES_PER_SHAKE 4
typedef struct UnkStruct_ov12_022267D4_t {
BOOL unk_00;
SysTask *unk_04;
int unk_08;
u16 unk_0C;
u16 unk_0E;
u16 unk_10;
u8 unk_12;
u8 unk_13;
u8 unk_14;
s8 unk_15;
s8 unk_16;
s8 unk_17;
PaletteData *unk_18;
} UnkStruct_ov12_022267D4;
static void ov12_022268DC(u16 *param0, u16 param1);
static const Point2D sBattleAnimBattlerPositions[][6] = {
@ -1041,83 +1026,80 @@ BOOL ov12_022267A8(int *param0, int param1, s32 param2)
return 1;
}
static void ov12_022267D4(SysTask *param0, void *param1)
static void PaletteFadeContext_FadeTask(SysTask *task, void *param)
{
UnkStruct_ov12_022267D4 *v0 = (UnkStruct_ov12_022267D4 *)param1;
PaletteFadeContext *ctx = param;
if (v0->unk_00 == 0) {
if (ctx->active == FALSE) {
return;
}
if ((++v0->unk_17) >= v0->unk_16) {
v0->unk_17 = 0;
PaletteData_Blend(v0->unk_18, v0->unk_08, v0->unk_0C, v0->unk_0E, v0->unk_14, v0->unk_10);
if (++ctx->timer >= ctx->stepFrames) {
ctx->timer = 0;
PaletteData_Blend(ctx->paletteData, ctx->bufferID, ctx->index, ctx->count, ctx->fraction, ctx->color);
if (v0->unk_14 == v0->unk_13) {
v0->unk_00 = 0;
if (ctx->fraction == ctx->endFrac) {
ctx->active = FALSE;
} else {
s8 v1 = v0->unk_14 + v0->unk_15;
s8 newFrac = ctx->fraction + ctx->step;
if (v0->unk_15 > 0) {
if (v1 > v0->unk_13) {
v0->unk_14 = v0->unk_13;
if (ctx->step > 0) {
if (newFrac > ctx->endFrac) {
ctx->fraction = ctx->endFrac;
} else {
v0->unk_14 += v0->unk_15;
ctx->fraction += ctx->step;
}
} else {
if (v1 < v0->unk_13) {
v0->unk_14 = v0->unk_13;
if (newFrac < ctx->endFrac) {
ctx->fraction = ctx->endFrac;
} else {
v0->unk_14 += v0->unk_15;
ctx->fraction += ctx->step;
}
}
}
}
}
BOOL ov12_02226848(UnkStruct_ov12_022267D4 *param0)
BOOL PaletteFadeContext_IsActive(PaletteFadeContext *ctx)
{
GF_ASSERT(param0 != NULL);
return param0->unk_00;
GF_ASSERT(ctx != NULL);
return ctx->active;
}
void ov12_02226858(UnkStruct_ov12_022267D4 *param0)
void PaletteFadeContext_Free(PaletteFadeContext *ctx)
{
GF_ASSERT(param0 != NULL);
GF_ASSERT(ctx != NULL);
SysTask_Done(param0->unk_04);
Heap_Free(param0);
SysTask_Done(ctx->task);
Heap_Free(ctx);
}
UnkStruct_ov12_022267D4 *ov12_02226870(PaletteData *param0, int heapID, int param2, u16 param3, u16 param4, s8 param5, s8 param6, u8 param7, u8 param8, u16 param9, int param10)
PaletteFadeContext *PaletteFadeContext_New(PaletteData *paletteData, enum HeapId heapID, enum PaletteBufferID bufferID, u16 index, u16 count, s8 stepFrames, s8 step, u8 startFrac, u8 endFrac, u16 color, int priority)
{
UnkStruct_ov12_022267D4 *v0 = NULL;
PaletteFadeContext *ctx = Heap_AllocFromHeap(heapID, sizeof(PaletteFadeContext));
GF_ASSERT(ctx != NULL);
v0 = Heap_AllocFromHeap(heapID, sizeof(UnkStruct_ov12_022267D4));
ctx->paletteData = paletteData;
ctx->bufferID = bufferID;
ctx->index = index;
ctx->count = count;
ctx->color = color;
ctx->startFrac = startFrac;
ctx->endFrac = endFrac;
ctx->fraction = startFrac;
ctx->stepFrames = stepFrames;
ctx->timer = stepFrames;
GF_ASSERT(v0 != NULL);
v0->unk_18 = param0;
v0->unk_08 = param2;
v0->unk_0C = param3;
v0->unk_0E = param4;
v0->unk_10 = param9;
v0->unk_12 = param7;
v0->unk_13 = param8;
v0->unk_14 = param7;
v0->unk_16 = param5;
v0->unk_17 = param5;
if (v0->unk_12 < v0->unk_13) {
v0->unk_15 = param6;
if (ctx->startFrac < ctx->endFrac) {
ctx->step = step;
} else {
v0->unk_15 = param6 * -1;
ctx->step = -step;
}
v0->unk_00 = 1;
v0->unk_04 = SysTask_Start(ov12_022267D4, v0, param10);
ctx->active = TRUE;
ctx->task = SysTask_Start(PaletteFadeContext_FadeTask, ctx, priority);
return v0;
return ctx;
}
static void ov12_022268DC(u16 *param0, u16 param1)

View File

@ -80,7 +80,7 @@ static const BattleAnimScriptFunc sBattleAnimScriptFuncs[] = {
BattleAnimScriptFunc_RevolveBattler,
BattleAnimScriptFunc_MoveBattlerOffScreen,
BattleAnimScriptFunc_MoveBattlerToDefaultPos,
ov12_022291AC,
BattleAnimScriptFunc_FadePokemonSprite,
ov12_02229304,
ov12_02229B28,
ov12_02229E54,

View File

@ -12,7 +12,6 @@
#include "overlay012/battle_anim_system.h"
#include "overlay012/ov12_02225864.h"
#include "overlay012/ov12_02235254.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "battle_script_battlers.h"
#include "bg_window.h"
@ -483,11 +482,22 @@ typedef struct MoveBattlerOffScreenContext {
#define MOVE_BATTLER_OFF_SCREEN_VAR_TARGET 0
#define MOVE_BATTLER_OFF_SCREEN_VAR_FRAMES 1
typedef struct {
BattleAnimScriptFuncCommon unk_00;
BattleAnimSpriteInfo unk_1C;
UnkStruct_ov12_022267D4 *unk_30;
} UnkStruct_ov12_02229184;
// -------------------------------------------------------------------
// Fade Pokemon Sprite
// -------------------------------------------------------------------
typedef struct FadePokemonSpriteContext {
BattleAnimScriptFuncCommon common;
BattleAnimSpriteInfo spriteInfo;
PaletteFadeContext *paletteFade;
} FadePokemonSpriteContext;
#define FADE_POKEMON_SPRITE_TASK_PRIORITY 1100
#define FADE_POKEMON_SPRITE_VAR_TARGET 0
#define FADE_POKEMON_SPRITE_VAR_STEP_FRAMES 1
#define FADE_POKEMON_SPRITE_VAR_STEP_SIZE 2
#define FADE_POKEMON_SPRITE_VAR_START_FRAC 3
#define FADE_POKEMON_SPRITE_VAR_END_FRAC 4
#define FADE_POKEMON_SPRITE_VAR_COLOR 5
typedef struct {
BattleAnimScriptFuncCommon unk_00;
@ -2648,40 +2658,47 @@ void BattleAnimScriptFunc_MoveBattlerToDefaultPos(BattleAnimSystem *system)
PokemonSprite_SetAttribute(spriteInfo.monSprite, MON_SPRITE_Y_CENTER, destPos.y + height);
}
static void ov12_02229184(SysTask *param0, void *param1)
static void BattleAnimTask_FadePokemonSprite(SysTask *task, void *param)
{
UnkStruct_ov12_02229184 *v0 = (UnkStruct_ov12_02229184 *)param1;
FadePokemonSpriteContext *ctx = param;
if (ov12_02226848(v0->unk_30) == 0) {
ov12_02226858(v0->unk_30);
BattleAnimSystem_EndAnimTask(v0->unk_00.battleAnimSystem, param0);
Heap_Free(v0);
if (PaletteFadeContext_IsActive(ctx->paletteFade) == FALSE) {
PaletteFadeContext_Free(ctx->paletteFade);
BattleAnimSystem_EndAnimTask(ctx->common.battleAnimSystem, task);
Heap_Free(ctx);
}
}
void ov12_022291AC(BattleAnimSystem *param0)
void BattleAnimScriptFunc_FadePokemonSprite(BattleAnimSystem *system)
{
int v0;
UnkStruct_ov12_02229184 *v1 = BattleAnimUtil_Alloc(param0, sizeof(UnkStruct_ov12_02229184));
FadePokemonSpriteContext *ctx = BattleAnimUtil_Alloc(system, sizeof(FadePokemonSpriteContext));
BattleAnimSystem_GetCommonData(system, &ctx->common);
BattleAnimSystem_GetCommonData(param0, &v1->unk_00);
int target = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_TARGET);
int stepFrames = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_STEP_FRAMES);
int step = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_STEP_SIZE);
int startFrac = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_START_FRAC);
int endFrac = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_END_FRAC);
int color = BattleAnimSystem_GetScriptVar(system, FADE_POKEMON_SPRITE_VAR_COLOR);
{
int v2;
int v3 = BattleAnimSystem_GetScriptVar(param0, 0);
int v4 = BattleAnimSystem_GetScriptVar(param0, 1);
int v5 = BattleAnimSystem_GetScriptVar(param0, 2);
int v6 = BattleAnimSystem_GetScriptVar(param0, 3);
int v7 = BattleAnimSystem_GetScriptVar(param0, 4);
int v8 = BattleAnimSystem_GetScriptVar(param0, 5);
int count;
BattleAnimUtil_GetPokemonSprites(system, target, &ctx->spriteInfo, &count);
BattleAnimUtil_GetPokemonSprites(param0, v3, &(v1->unk_1C), &v0);
int palDest = PlttTransfer_GetPlttOffset(Sprite_GetPaletteProxy(ctx->spriteInfo.hwSprite->sprite), NNS_G2D_VRAM_TYPE_2DMAIN);
ctx->paletteFade = PaletteFadeContext_New(
ctx->common.paletteData,
BattleAnimSystem_GetHeapID(system),
PLTTBUF_MAIN_OBJ,
PLTT_DEST(palDest),
PALETTE_SIZE,
stepFrames,
step,
startFrac,
endFrac,
color,
FADE_POKEMON_SPRITE_TASK_PRIORITY);
v2 = PlttTransfer_GetPlttOffset(Sprite_GetPaletteProxy(v1->unk_1C.hwSprite->sprite), NNS_G2D_VRAM_TYPE_2DMAIN);
v1->unk_30 = ov12_02226870(v1->unk_00.paletteData, BattleAnimSystem_GetHeapID(param0), 2, v2 * 16, 16, v4, v5, v6, v7, v8, 1100);
}
BattleAnimSystem_StartAnimTask(v1->unk_00.battleAnimSystem, ov12_02229184, v1);
BattleAnimSystem_StartAnimTask(ctx->common.battleAnimSystem, BattleAnimTask_FadePokemonSprite, ctx);
}
static void ov12_02229278(SysTask *param0, void *param1)

View File

@ -10,7 +10,6 @@
#include "overlay012/battle_anim_system.h"
#include "overlay012/ov12_02225864.h"
#include "overlay012/ov12_02235254.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "battle_script_battlers.h"
#include "bg_window.h"
@ -246,7 +245,7 @@ typedef struct FlashContext {
u8 delay;
PaletteData *paletteData;
BattleAnimSystem *battleAnimSys;
UnkStruct_ov12_022267D4 *unk_0C;
PaletteFadeContext *unk_0C;
PokemonSprite *attackerSprite;
} FlashContext;

View File

@ -8,7 +8,6 @@
#include "overlay012/battle_anim_system.h"
#include "overlay012/ov12_02225864.h"
#include "overlay012/ov12_02235254.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "bg_window.h"
#include "heap.h"
@ -117,7 +116,7 @@ typedef struct {
s16 unk_20;
s16 unk_22[4];
ManagedSprite *unk_2C[4];
UnkStruct_ov12_022267D4 *unk_3C[6];
PaletteFadeContext *unk_3C[6];
int unk_54;
int unk_58;
} UnkStruct_ov12_0222E390;
@ -915,27 +914,27 @@ static void ov12_0222E390(SysTask *param0, void *param1)
}
if (v0->unk_22[0] == 40 + 10) {
v0->unk_3C[0] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
v0->unk_3C[0] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 50 + 10) {
v0->unk_3C[1] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
v0->unk_3C[1] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 60 + 10) {
v0->unk_3C[2] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
v0->unk_3C[2] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 70 + 10) {
v0->unk_3C[3] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
v0->unk_3C[3] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 80 + 10) {
v0->unk_3C[4] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
v0->unk_3C[4] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 90 + 10) {
v0->unk_3C[5] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
v0->unk_3C[5] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v0->unk_1C * 16, 16, -2, 2, 14, 0, 0xFFFF, 1002);
}
if (v0->unk_22[0] == 110) {
@ -972,7 +971,7 @@ static void ov12_0222E390(SysTask *param0, void *param1)
}
for (v1 = 0; v1 < 6; v1++) {
ov12_02226858(v0->unk_3C[v1]);
PaletteFadeContext_Free(v0->unk_3C[v1]);
}
BattleAnimSystem_EndAnimTask(v0->unk_00.battleAnimSystem, param0);

View File

@ -11,7 +11,6 @@
#include "overlay012/ov12_0222D6B0.h"
#include "overlay012/ov12_02235254.h"
#include "overlay012/ov12_022380BC.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "overlay012/struct_ov12_022380DC.h"
#include "bg_window.h"
@ -84,7 +83,7 @@ typedef struct {
u8 unk_34;
u8 unk_35;
s8 unk_36;
UnkStruct_ov12_022267D4 *unk_38[2];
PaletteFadeContext *unk_38[2];
} UnkStruct_ov12_0222EE50;
typedef struct {
@ -427,23 +426,23 @@ static void ov12_0222EE50(SysTask *param0, void *param1)
}
break;
case 1:
if (ov12_02226848(v0->unk_38[1]) == 0) {
if (PaletteFadeContext_IsActive(v0->unk_38[1]) == 0) {
int v1;
ov12_02226858(v0->unk_38[0]);
ov12_02226858(v0->unk_38[1]);
PaletteFadeContext_Free(v0->unk_38[0]);
PaletteFadeContext_Free(v0->unk_38[1]);
v1 = PlttTransfer_GetPlttOffset(Sprite_GetPaletteProxy(v0->unk_1C[2]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN);
v0->unk_38[1] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v1 * 16, 16, 0, 1, 15, 0, 0xFFFFFF, 1100);
v0->unk_38[1] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(v0->unk_00.battleAnimSystem), 2, v1 * 16, 16, 0, 1, 15, 0, 0xFFFFFF, 1100);
v0->unk_00.state++;
}
break;
case 2:
default:
if (ov12_02226848(v0->unk_38[1]) == 0) {
if (PaletteFadeContext_IsActive(v0->unk_38[1]) == 0) {
ManagedSprite_TickFrame(v0->unk_1C[1]);
ov12_02226858(v0->unk_38[1]);
PaletteFadeContext_Free(v0->unk_38[1]);
BattleAnimSystem_EndAnimTask(v0->unk_00.battleAnimSystem, param0);
Heap_Free(v0);
return;
@ -497,10 +496,10 @@ void ov12_0222EFB0(BattleAnimSystem *param0)
int v6;
v6 = PlttTransfer_GetPlttOffset(Sprite_GetPaletteProxy(v0->unk_1C[0]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN);
v0->unk_38[0] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(param0), 2, v6 * 16, 16, 0, 1, 0, 15, 0xFFFFFF, 1100);
v0->unk_38[0] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(param0), 2, v6 * 16, 16, 0, 1, 0, 15, 0xFFFFFF, 1100);
v6 = PlttTransfer_GetPlttOffset(Sprite_GetPaletteProxy(v0->unk_1C[2]->sprite), NNS_G2D_VRAM_TYPE_2DMAIN);
v0->unk_38[1] = ov12_02226870(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(param0), 2, v6 * 16, 16, 0, 1, 0, 15, 0xFFFFFF, 1100);
v0->unk_38[1] = PaletteFadeContext_New(v0->unk_00.paletteData, BattleAnimSystem_GetHeapID(param0), 2, v6 * 16, 16, 0, 1, 0, 15, 0xFFFFFF, 1100);
}
{

View File

@ -11,7 +11,6 @@
#include "overlay012/ov12_02235254.h"
#include "overlay012/ov12_02237E54.h"
#include "overlay012/struct_ov12_02223764.h"
#include "overlay012/struct_ov12_022267D4_decl.h"
#include "overlay012/struct_ov12_02236030.h"
#include "overlay012/struct_ov12_02236690.h"
#include "overlay012/struct_ov12_02237728.h"
@ -100,7 +99,7 @@ typedef struct BallRotation {
UnkStruct_ov12_02237C54_sub1 unk_B8;
SysTask *unk_CC;
UnkStruct_ov12_02236648 *unk_D0;
UnkStruct_ov12_022267D4 *unk_D4;
PaletteFadeContext *unk_D4;
UnkStruct_ov12_02223764 *unk_D8;
int unk_DC;
} BallRotation;
@ -1620,7 +1619,7 @@ static BOOL ov12_02236F24(BallRotation *param0)
int v1;
v1 = ManagedSprite_GetExplicitPaletteOffset(param0->unk_30);
param0->unk_D4 = ov12_02226870(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v1 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
param0->unk_D4 = PaletteFadeContext_New(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v1 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
}
}
@ -1640,11 +1639,11 @@ static BOOL ov12_02236F24(BallRotation *param0)
break;
case 2:
if ((ov12_02235EF0(param0->unk_90.type) == 1) && (param0->unk_D4 != NULL)) {
if (ov12_02226848(param0->unk_D4) == 1) {
if (PaletteFadeContext_IsActive(param0->unk_D4) == 1) {
break;
}
ov12_02226858(param0->unk_D4);
PaletteFadeContext_Free(param0->unk_D4);
param0->unk_28 = 1;
return 0;
@ -1674,7 +1673,7 @@ static BOOL ov12_02236F24(BallRotation *param0)
if ((param0->unk_90.type != 12) && (param0->unk_90.type != 13)) {
v2 = ManagedSprite_GetExplicitPaletteOffset(param0->unk_30);
param0->unk_D4 = ov12_02226870(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v2 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
param0->unk_D4 = PaletteFadeContext_New(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v2 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
}
param0->unk_28 = 1;
@ -1685,11 +1684,11 @@ static BOOL ov12_02236F24(BallRotation *param0)
}
if ((param0->unk_90.type != 12) && (param0->unk_90.type != 13)) {
if (ov12_02226848(param0->unk_D4) == 1) {
if (PaletteFadeContext_IsActive(param0->unk_D4) == 1) {
break;
}
ov12_02226858(param0->unk_D4);
PaletteFadeContext_Free(param0->unk_D4);
}
return 0;
@ -1731,7 +1730,7 @@ static BOOL ov12_022371E4(BallRotation *param0)
int v1;
v1 = ManagedSprite_GetExplicitPaletteOffset(param0->unk_30);
param0->unk_D4 = ov12_02226870(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v1 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
param0->unk_D4 = PaletteFadeContext_New(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v1 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
}
}
@ -1751,11 +1750,11 @@ static BOOL ov12_022371E4(BallRotation *param0)
break;
case 2:
if ((ov12_02235EF0(param0->unk_90.type) == 1) && (param0->unk_D4 != NULL)) {
if (ov12_02226848(param0->unk_D4) == 1) {
if (PaletteFadeContext_IsActive(param0->unk_D4) == 1) {
break;
}
ov12_02226858(param0->unk_D4);
PaletteFadeContext_Free(param0->unk_D4);
param0->unk_28 = 1;
return 0;
@ -1783,7 +1782,7 @@ static BOOL ov12_022371E4(BallRotation *param0)
int v2;
v2 = ManagedSprite_GetExplicitPaletteOffset(param0->unk_30);
param0->unk_D4 = ov12_02226870(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v2 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
param0->unk_D4 = PaletteFadeContext_New(param0->unk_90.paletteSys, param0->unk_90.heapID, 2, v2 * 16, 16, -2, 2, 0, 14, 0xFFFF, 1002);
}
param0->unk_28 = 1;
@ -1793,11 +1792,11 @@ static BOOL ov12_022371E4(BallRotation *param0)
break;
}
if (ov12_02226848(param0->unk_D4) == 1) {
if (PaletteFadeContext_IsActive(param0->unk_D4) == 1) {
break;
}
ov12_02226858(param0->unk_D4);
PaletteFadeContext_Free(param0->unk_D4);
return 0;
}