Some more docs in battle anims

This commit is contained in:
PikalaxALT
2020-03-30 20:48:09 -04:00
parent 24ae03ff30
commit 4134baf3eb
6 changed files with 837 additions and 795 deletions
+797 -770
View File
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -414,7 +414,7 @@ u16 ArcTan2Neg(s16 a, s16 b);
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7);
u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight);
u8 sub_8075D80(u8 a1); u8 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void AnimThrowProjectile(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite);
@@ -468,7 +468,7 @@ void sub_8099BD4(u8 taskId);
extern const struct SpriteTemplate gUnknown_83E7C98; extern const struct SpriteTemplate gUnknown_83E7C98;
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
u32 UnpackSelectedBattleAnimPalettes(s16 selector); u32 UnpackSelectedBattleAnimPalettes(s16 selector);
void sub_80B9BDC(u8 taskId); void AnimTask_CurseBlendEffect(u8 taskId);
void sub_80B9CE4(u8 taskId); void sub_80B9CE4(u8 taskId);
void sub_80B9E58(u8 taskId); void sub_80B9E58(u8 taskId);
void sub_80B9F6C(u8 taskId); void sub_80B9F6C(u8 taskId);
@@ -561,13 +561,13 @@ void AnimWaterPulseRing(struct Sprite *sprite);
u8 SmokescreenImpact(s16 x, s16 y, u8 a3); u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
// battle_anim_utility_funcs.c // battle_anim_utility_funcs.c
void sub_80BA7F8(u8 taskId); void AnimTask_BlendSelected(u8 taskId);
void sub_80BA83C(u8 taskId); void AnimTask_BlendExcept(u8 taskId);
void AnimTask_SetCamouflageBlend(u8 taskId); void AnimTask_SetCamouflageBlend(u8 taskId);
void AnimTask_BlendParticle(u8 taskId); void AnimTask_BlendParticle(u8 taskId);
void sub_80BAB38(u8 taskId); void AnimTask_HardwarePaletteFade(u8 taskId);
void sub_80BAB98(u8 taskId); void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
void sub_80BACEC(u8 taskId); void AnimTask_SetUpCurseBackground(u8 taskId);
void sub_80BB088(u8 taskId); void sub_80BB088(u8 taskId);
void sub_80BB660(u8 taskId); void sub_80BB660(u8 taskId);
void sub_80BB7DC(u8 taskId); void sub_80BB7DC(u8 taskId);
+5
View File
@@ -1970,6 +1970,11 @@ static void ScriptCmd_unloadspritegfx(void)
ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index)); ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
} }
// Create sprite from template and init data array with varargs
// args: template, flags, va_args
// flags:
// - bits 0-6: subpriority mod (signed)
// - bit 7: target if set else attacker
static void ScriptCmd_createsprite(void) static void ScriptCmd_createsprite(void)
{ {
s32 i; s32 i;
+2 -2
View File
@@ -1325,13 +1325,13 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe
return var; return var;
} }
u8 sub_8075D80(u8 a1) u8 GetSpritePalIdxByBattler(u8 a1)
{ {
return a1; return a1;
} }
// not used // not used
static u8 GetBattlerAtPosition_(u8 position) static u8 GetSpritePalIdxByPosition(u8 position)
{ {
return GetBattlerAtPosition(position); return GetBattlerAtPosition(position);
} }
+25 -15
View File
@@ -22,9 +22,9 @@ struct AnimStatsChangeData
static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes); static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes);
static void AnimTask_BlendSpriteColor_Step2(u8 taskId); static void AnimTask_BlendSpriteColor_Step2(u8 taskId);
static void sub_80BAB78(u8 taskId); static void Task_WaitHardwarePaletteFade(u8 taskId);
static void sub_80BABD0(u8 taskId); static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId);
static void sub_80BACA8(struct Sprite *sprite); static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite);
static void sub_80BAF38(u8 taskId); static void sub_80BAF38(u8 taskId);
static void sub_80BB0D8(u8 taskId); static void sub_80BB0D8(u8 taskId);
static void sub_80BB2A0(u8 taskId); static void sub_80BB2A0(u8 taskId);
@@ -54,7 +54,7 @@ const u8 gUnknown_83E7CCE[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET
// 8: Player battler right // 8: Player battler right
// 9: Enemy battler left // 9: Enemy battler left
// 10: Enemy battler right // 10: Enemy battler right
void sub_80BA7F8(u8 taskId) void AnimTask_BlendSelected(u8 taskId)
{ {
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
@@ -66,7 +66,17 @@ void sub_80BA7F8(u8 taskId)
StartBlendAnimSpriteColor(taskId, selectedPalettes); StartBlendAnimSpriteColor(taskId, selectedPalettes);
} }
void sub_80BA83C(u8 taskId) // gBattleAnimArgs[0] is a command ID
// This command will blend bg and battlers except as commanded:
// 0: Not attacker
// 1: Not target
// 2: Not attacker nor bg
// 3: Not target nor bg
// 4: Neither attacker nor target
// 5: Blend all
// 6: Neither bg nor attacker's partner
// 7: Neither bg nor target's partner
void AnimTask_BlendExcept(u8 taskId)
{ {
u8 battler; u8 battler;
u32 selectedPalettes; u32 selectedPalettes;
@@ -109,7 +119,7 @@ void sub_80BA83C(u8 taskId)
if (battler != animBattlers[0] if (battler != animBattlers[0]
&& battler != animBattlers[1] && battler != animBattlers[1]
&& IsBattlerSpriteVisible(battler)) && IsBattlerSpriteVisible(battler))
selectedPalettes |= 0x10000 << sub_8075D80(battler); selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler);
} }
StartBlendAnimSpriteColor(taskId, selectedPalettes); StartBlendAnimSpriteColor(taskId, selectedPalettes);
} }
@@ -204,23 +214,23 @@ static void AnimTask_BlendSpriteColor_Step2(u8 taskId)
} }
} }
void sub_80BAB38(u8 taskId) void AnimTask_HardwarePaletteFade(u8 taskId)
{ {
BeginHardwarePaletteFade(gBattleAnimArgs[0], BeginHardwarePaletteFade(gBattleAnimArgs[0],
gBattleAnimArgs[1], gBattleAnimArgs[1],
gBattleAnimArgs[2], gBattleAnimArgs[2],
gBattleAnimArgs[3], gBattleAnimArgs[3],
gBattleAnimArgs[4]); gBattleAnimArgs[4]);
gTasks[taskId].func = sub_80BAB78; gTasks[taskId].func = Task_WaitHardwarePaletteFade;
} }
static void sub_80BAB78(u8 taskId) static void Task_WaitHardwarePaletteFade(u8 taskId)
{ {
if (!gPaletteFade.active) if (!gPaletteFade.active)
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
void sub_80BAB98(u8 taskId) void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
@@ -230,9 +240,9 @@ void sub_80BAB98(u8 taskId)
task->data[3] = gBattleAnimArgs[2]; task->data[3] = gBattleAnimArgs[2];
task->data[4] = gBattleAnimArgs[3]; task->data[4] = gBattleAnimArgs[3];
task->data[5] = 0; task->data[5] = 0;
task->func = sub_80BABD0; task->func = Task_DoCloneBattlerSpriteWithBlend;
} }
static void sub_80BABD0(u8 taskId) static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
@@ -251,7 +261,7 @@ static void sub_80BABD0(u8 taskId)
gSprites[task->data[6]].data[0] = task->data[3]; gSprites[task->data[6]].data[0] = task->data[3];
gSprites[task->data[6]].data[1] = taskId; gSprites[task->data[6]].data[1] = taskId;
gSprites[task->data[6]].data[2] = 5; gSprites[task->data[6]].data[2] = 5;
gSprites[task->data[6]].callback = sub_80BACA8; gSprites[task->data[6]].callback = Task_FinishCloneBattlerSpriteWithBlend;
++task->data[5]; ++task->data[5];
} }
--task->data[4]; --task->data[4];
@@ -264,7 +274,7 @@ static void sub_80BABD0(u8 taskId)
} }
} }
static void sub_80BACA8(struct Sprite *sprite) static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite)
{ {
if (sprite->data[0]) if (sprite->data[0])
{ {
@@ -277,7 +287,7 @@ static void sub_80BACA8(struct Sprite *sprite)
} }
} }
void sub_80BACEC(u8 taskId) void AnimTask_SetUpCurseBackground(u8 taskId)
{ {
u16 species; u16 species;
s32 newSpriteId; s32 newSpriteId;
+1 -1
View File
@@ -406,7 +406,7 @@ static void sub_80B9B8C(struct Sprite *sprite)
sprite->callback(sprite); sprite->callback(sprite);
} }
void sub_80B9BDC(u8 taskId) void AnimTask_CurseBlendEffect(u8 taskId)
{ {
gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[1];