mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-08-26 03:15:39 -05:00
Document fade bg script func
This commit is contained in:
@@ -49,7 +49,10 @@
|
||||
#define BATTLE_BG_PRIORITY_BASE 1
|
||||
#define BATTLE_BG_PRIORITY_EFFECT 3
|
||||
|
||||
#define BATTLE_BG_PALETTE_EFFECT (1 << 9)
|
||||
#define BATTLE_BG_PALETTE_EFFECT 9
|
||||
#define BATTLE_BG_PALETTE_MON_SPRITE 8
|
||||
#define BATTLE_BG_PALETTE_FLAG_EFFECT (1 << BATTLE_BG_PALETTE_EFFECT)
|
||||
#define BATTLE_BG_PALETTE_FLAG_MON_SPRITE (1 << BATTLE_BG_PALETTE_MON_SPRITE)
|
||||
|
||||
#define BATTLE_BG_ANIM_REVERSE_NEVER 0 //< Don't reverse BG anims
|
||||
#define BATTLE_BG_ANIM_REVERSE_ENEMY_ONLY 1 //< Reverse BG anims only for enemy attacking player
|
||||
@@ -80,5 +83,9 @@
|
||||
#define FLAIL_MODE_ATTACKER 0
|
||||
#define FLAIL_MODE_DEFENDER 1
|
||||
|
||||
#define FADE_BG_TYPE_BASE 0
|
||||
#define FADE_BG_TYPE_MON_SPRITE 1
|
||||
#define FADE_BG_TYPE_EFFECT 2
|
||||
|
||||
// clang-format on
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_ANIM_H
|
||||
|
||||
@@ -11,7 +11,7 @@ void ov12_022271D8(BattleAnimSystem *param0);
|
||||
void BattleAnimScriptFunc_RotateMon(BattleAnimSystem *param0);
|
||||
void BattleAnimScriptFunc_Submission(BattleAnimSystem *param0);
|
||||
void ov12_0222777C(BattleAnimSystem *param0, SpriteSystem *param1, SpriteManager *param2, ManagedSprite *param3);
|
||||
void ov12_02227828(BattleAnimSystem *param0);
|
||||
void BattleAnimScriptFunc_FadeBg(BattleAnimSystem *param0);
|
||||
void ov12_0222797C(BattleAnimSystem *param0);
|
||||
void ov12_02227CBC(BattleAnimSystem *param0);
|
||||
void ov12_02227F30(BattleAnimSystem *param0);
|
||||
|
||||
@@ -1812,7 +1812,7 @@ static void BattleAnimScriptCmd_LoadPokemonSpriteIntoBg(BattleAnimSystem *system
|
||||
system->heapID,
|
||||
PLTTBUF_MAIN_BG,
|
||||
0,
|
||||
PLTT_DEST(8));
|
||||
PLTT_DEST(BATTLE_BG_PALETTE_MON_SPRITE));
|
||||
|
||||
Graphics_LoadTilemapToBgLayerFromOpenNARC(
|
||||
system->arcs[BATTLE_ANIM_SYSTEM_ARC_BATT_BG],
|
||||
@@ -2305,7 +2305,7 @@ static void BattleBgSwitch_SetBg(BattleBgSwitch *bgSwitch, BattleAnimSystem *sys
|
||||
system->heapID,
|
||||
0,
|
||||
PALETTE_SIZE_BYTES,
|
||||
PLTT_DEST(9));
|
||||
PLTT_DEST(BATTLE_BG_PALETTE_EFFECT));
|
||||
|
||||
Bg_ClearTilemap(system->bgConfig, bgLayer);
|
||||
|
||||
@@ -2582,10 +2582,10 @@ static BOOL BattleBgSwitch_Fade(SysTask *task, BattleBgSwitch *bgSwitch)
|
||||
// set effect BG palette to black/white immediately
|
||||
if (bgSwitch->fadeType == BATTLE_BG_FADE_TO_BLACK) {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, bgSwitch->battleAnimSystem->baseBgPalettes, 0, 0, 16, GX_RGBA(0, 0, 0, 0));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, BATTLE_BG_PALETTE_EFFECT, 16, GX_RGBA(0, 0, 0, 0));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, BATTLE_BG_PALETTE_FLAG_EFFECT, 16, GX_RGBA(0, 0, 0, 0));
|
||||
} else {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, bgSwitch->battleAnimSystem->baseBgPalettes, 0, 0, 16, GX_RGBA(31, 31, 31, 1));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, BATTLE_BG_PALETTE_EFFECT, 16, GX_RGBA(31, 31, 31, 1));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, BATTLE_BG_PALETTE_FLAG_EFFECT, 16, GX_RGBA(31, 31, 31, 1));
|
||||
}
|
||||
|
||||
bgSwitch->state++;
|
||||
@@ -2603,9 +2603,9 @@ static BOOL BattleBgSwitch_Fade(SysTask *task, BattleBgSwitch *bgSwitch)
|
||||
|
||||
// Fade effect BG palette back to normal
|
||||
if (bgSwitch->fadeType == BATTLE_BG_FADE_TO_BLACK) {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_EFFECT, 0, 16, 0, GX_RGBA(0, 0, 0, 0));
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_FLAG_EFFECT, 0, 16, 0, GX_RGBA(0, 0, 0, 0));
|
||||
} else {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_EFFECT, 0, 16, 0, GX_RGBA(31, 31, 31, 1));
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_FLAG_EFFECT, 0, 16, 0, GX_RGBA(31, 31, 31, 1));
|
||||
}
|
||||
|
||||
BattleBgSwitch_ApplyFlags(bgSwitch);
|
||||
@@ -2638,10 +2638,10 @@ static BOOL BattleBgRestore_Fade(SysTask *task, BattleBgSwitch *bgSwitch)
|
||||
// Fade effect BG palette to black/white and
|
||||
// set normal battle/contest BG palettes to black/white
|
||||
if (bgSwitch->fadeType == BATTLE_BG_FADE_TO_BLACK) {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_EFFECT, 0, 0, 16, GX_RGBA(0, 0, 0, 0));
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_FLAG_EFFECT, 0, 0, 16, GX_RGBA(0, 0, 0, 0));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, bgSwitch->battleAnimSystem->baseBgPalettes, 16, GX_RGBA(0, 0, 0, 0));
|
||||
} else {
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_EFFECT, 0, 0, 16, GX_RGBA(31, 31, 31, 1));
|
||||
PaletteData_StartFade(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG_F, BATTLE_BG_PALETTE_FLAG_EFFECT, 0, 0, 16, GX_RGBA(31, 31, 31, 1));
|
||||
PaletteData_BlendMulti(bgSwitch->battleAnimSystem->paletteData, PLTTBUF_MAIN_BG, bgSwitch->battleAnimSystem->baseBgPalettes, 16, GX_RGBA(31, 31, 31, 1));
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ static const BattleAnimScriptFunc sBattleAnimScriptFuncs[] = {
|
||||
BattleAnimScriptFunc_VitalThrow,
|
||||
BattleAnimScriptFunc_Swagger,
|
||||
BattleAnimScriptFunc_Memento,
|
||||
ov12_02227828,
|
||||
BattleAnimScriptFunc_FadeBg,
|
||||
ov12_0222797C,
|
||||
ov12_02227CBC,
|
||||
ov12_02226CB0,
|
||||
|
||||
@@ -93,10 +93,19 @@ typedef struct {
|
||||
s16 unk_4E;
|
||||
} UnkStruct_ov12_02227620;
|
||||
|
||||
typedef struct {
|
||||
BattleAnimSystem *unk_00;
|
||||
PaletteData *unk_04;
|
||||
} UnkStruct_ov12_02227808;
|
||||
// -------------------------------------------------------------------
|
||||
// Fade BG
|
||||
// -------------------------------------------------------------------
|
||||
typedef struct FadeBgContext {
|
||||
BattleAnimSystem *battleAnimSys;
|
||||
PaletteData *paletteData;
|
||||
} FadeBgContext;
|
||||
|
||||
#define FADE_BG_VAR_BG_TYPE 0
|
||||
#define FADE_BG_VAR_DELAY 1
|
||||
#define FADE_BG_VAR_START_VALUE 2
|
||||
#define FADE_BG_VAR_END_VALUE 3
|
||||
#define FADE_BG_VAR_COLOR 4
|
||||
|
||||
typedef struct {
|
||||
BattleAnimSystem *unk_00;
|
||||
@@ -1046,43 +1055,49 @@ void ov12_0222777C(BattleAnimSystem *param0, SpriteSystem *param1, SpriteManager
|
||||
BattleAnimSystem_StartAnimTask(v0->unk_00, ov12_02227738, v0);
|
||||
}
|
||||
|
||||
static void ov12_02227808(SysTask *param0, void *param1)
|
||||
static void BattleAnimTask_FadeBg(SysTask *task, void *param)
|
||||
{
|
||||
UnkStruct_ov12_02227808 *v0 = param1;
|
||||
FadeBgContext *ctx = param;
|
||||
|
||||
if (PaletteData_GetSelectedBuffersMask(v0->unk_04) == 0) {
|
||||
Heap_Free(v0);
|
||||
BattleAnimSystem_EndAnimTask(v0->unk_00, param0);
|
||||
if (PaletteData_GetSelectedBuffersMask(ctx->paletteData) == 0) {
|
||||
Heap_Free(ctx);
|
||||
BattleAnimSystem_EndAnimTask(ctx->battleAnimSys, task);
|
||||
}
|
||||
}
|
||||
|
||||
void ov12_02227828(BattleAnimSystem *param0)
|
||||
void BattleAnimScriptFunc_FadeBg(BattleAnimSystem *system)
|
||||
{
|
||||
UnkStruct_ov12_02227808 *v0;
|
||||
u16 v1;
|
||||
FadeBgContext *ctx = BattleAnimUtil_Alloc(system, sizeof(FadeBgContext));
|
||||
|
||||
v0 = BattleAnimUtil_Alloc(param0, sizeof(UnkStruct_ov12_02227808));
|
||||
ctx->battleAnimSys = system;
|
||||
ctx->paletteData = BattleAnimSystem_GetPaletteData(ctx->battleAnimSys);
|
||||
|
||||
v0->unk_00 = param0;
|
||||
v0->unk_04 = BattleAnimSystem_GetPaletteData(v0->unk_00);
|
||||
|
||||
switch (BattleAnimSystem_GetScriptVar(param0, 0)) {
|
||||
case 0:
|
||||
v1 = BattleAnimSystem_GetBaseBgPalettes(param0);
|
||||
u16 paletteToFade;
|
||||
switch (BattleAnimSystem_GetScriptVar(system, FADE_BG_VAR_BG_TYPE)) {
|
||||
case FADE_BG_TYPE_BASE:
|
||||
paletteToFade = BattleAnimSystem_GetBaseBgPalettes(system);
|
||||
break;
|
||||
case 1:
|
||||
v1 = (1 << 8);
|
||||
case FADE_BG_TYPE_MON_SPRITE:
|
||||
paletteToFade = BATTLE_BG_PALETTE_FLAG_MON_SPRITE;
|
||||
break;
|
||||
case 2:
|
||||
v1 = (1 << 9);
|
||||
case FADE_BG_TYPE_EFFECT:
|
||||
paletteToFade = BATTLE_BG_PALETTE_FLAG_EFFECT;
|
||||
break;
|
||||
default:
|
||||
GF_ASSERT(0);
|
||||
GF_ASSERT(FALSE);
|
||||
break;
|
||||
}
|
||||
|
||||
PaletteData_StartFade(v0->unk_04, 0x1, v1, BattleAnimSystem_GetScriptVar(param0, 1), BattleAnimSystem_GetScriptVar(param0, 2), BattleAnimSystem_GetScriptVar(param0, 3), BattleAnimSystem_GetScriptVar(param0, 4));
|
||||
BattleAnimSystem_StartAnimTask(v0->unk_00, ov12_02227808, v0);
|
||||
PaletteData_StartFade(
|
||||
ctx->paletteData,
|
||||
PLTTBUF_MAIN_BG_F,
|
||||
paletteToFade,
|
||||
BattleAnimSystem_GetScriptVar(system, FADE_BG_VAR_DELAY),
|
||||
BattleAnimSystem_GetScriptVar(system, FADE_BG_VAR_START_VALUE),
|
||||
BattleAnimSystem_GetScriptVar(system, FADE_BG_VAR_END_VALUE),
|
||||
BattleAnimSystem_GetScriptVar(system, FADE_BG_VAR_COLOR));
|
||||
|
||||
BattleAnimSystem_StartAnimTask(ctx->battleAnimSys, BattleAnimTask_FadeBg, ctx);
|
||||
}
|
||||
|
||||
static void ov12_022278D0(SysTask *param0, void *param1)
|
||||
|
||||
Reference in New Issue
Block a user