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);
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);
u8 sub_8075D80(u8 a1);
u8 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(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 gBasicHitSplatSpriteTemplate;
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
void sub_80B9BDC(u8 taskId);
void AnimTask_CurseBlendEffect(u8 taskId);
void sub_80B9CE4(u8 taskId);
void sub_80B9E58(u8 taskId);
void sub_80B9F6C(u8 taskId);
@@ -561,13 +561,13 @@ void AnimWaterPulseRing(struct Sprite *sprite);
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
// battle_anim_utility_funcs.c
void sub_80BA7F8(u8 taskId);
void sub_80BA83C(u8 taskId);
void AnimTask_BlendSelected(u8 taskId);
void AnimTask_BlendExcept(u8 taskId);
void AnimTask_SetCamouflageBlend(u8 taskId);
void AnimTask_BlendParticle(u8 taskId);
void sub_80BAB38(u8 taskId);
void sub_80BAB98(u8 taskId);
void sub_80BACEC(u8 taskId);
void AnimTask_HardwarePaletteFade(u8 taskId);
void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
void AnimTask_SetUpCurseBackground(u8 taskId);
void sub_80BB088(u8 taskId);
void sub_80BB660(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));
}
// 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)
{
s32 i;
+2 -2
View File
@@ -1325,13 +1325,13 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe
return var;
}
u8 sub_8075D80(u8 a1)
u8 GetSpritePalIdxByBattler(u8 a1)
{
return a1;
}
// not used
static u8 GetBattlerAtPosition_(u8 position)
static u8 GetSpritePalIdxByPosition(u8 position)
{
return GetBattlerAtPosition(position);
}
+25 -15
View File
@@ -22,9 +22,9 @@ struct AnimStatsChangeData
static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes);
static void AnimTask_BlendSpriteColor_Step2(u8 taskId);
static void sub_80BAB78(u8 taskId);
static void sub_80BABD0(u8 taskId);
static void sub_80BACA8(struct Sprite *sprite);
static void Task_WaitHardwarePaletteFade(u8 taskId);
static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId);
static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite);
static void sub_80BAF38(u8 taskId);
static void sub_80BB0D8(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
// 9: Enemy battler left
// 10: Enemy battler right
void sub_80BA7F8(u8 taskId)
void AnimTask_BlendSelected(u8 taskId)
{
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
@@ -66,7 +66,17 @@ void sub_80BA7F8(u8 taskId)
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;
u32 selectedPalettes;
@@ -109,7 +119,7 @@ void sub_80BA83C(u8 taskId)
if (battler != animBattlers[0]
&& battler != animBattlers[1]
&& IsBattlerSpriteVisible(battler))
selectedPalettes |= 0x10000 << sub_8075D80(battler);
selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler);
}
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],
gBattleAnimArgs[1],
gBattleAnimArgs[2],
gBattleAnimArgs[3],
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)
DestroyAnimVisualTask(taskId);
}
void sub_80BAB98(u8 taskId)
void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -230,9 +240,9 @@ void sub_80BAB98(u8 taskId)
task->data[3] = gBattleAnimArgs[2];
task->data[4] = gBattleAnimArgs[3];
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];
@@ -251,7 +261,7 @@ static void sub_80BABD0(u8 taskId)
gSprites[task->data[6]].data[0] = task->data[3];
gSprites[task->data[6]].data[1] = taskId;
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[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])
{
@@ -277,7 +287,7 @@ static void sub_80BACA8(struct Sprite *sprite)
}
}
void sub_80BACEC(u8 taskId)
void AnimTask_SetUpCurseBackground(u8 taskId)
{
u16 species;
s32 newSpriteId;
+1 -1
View File
@@ -406,7 +406,7 @@ static void sub_80B9B8C(struct Sprite *sprite)
sprite->callback(sprite);
}
void sub_80B9BDC(u8 taskId)
void AnimTask_CurseBlendEffect(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];