Sync battle anim - effects 1

This commit is contained in:
GriffinR
2022-08-14 18:56:23 -04:00
parent 102dc65fd1
commit b15305378a
10 changed files with 394 additions and 386 deletions
+2 -3
View File
@@ -215,7 +215,6 @@ void AnimMoon(struct Sprite *);
void AnimMoonlightSparkle(struct Sprite *);
void AnimHornHit(struct Sprite *);
void AnimSuperFang(struct Sprite *);
void AnimWavyMusicNotes(struct Sprite *);
void AnimFlyingMusicNotes(struct Sprite *);
void AnimBellyDrumHand(struct Sprite *);
void AnimSlowFlyingMusicNotes(struct Sprite *);
@@ -421,7 +420,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x
void TryResetSpriteAffineState(struct Sprite *sprite);
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 GetBattlePalettesMask(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 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite);
@@ -429,7 +428,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void AnimThrowProjectile(struct Sprite *sprite);
void AnimSnoreZ(struct Sprite *sprite);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
void DestroySpriteWithActiveSheet(struct Sprite *sprite);
void AnimTask_AlphaFadeIn(u8 taskId);
void AnimTask_BlendMonInAndOut(u8 task);
void AnimTask_BlendPalInAndOutByTag(u8 taskId);
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -2072,7 +2072,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId)
{
if ((matrixNum = AllocOamMatrix()) == 0xFF)
{
obj_delete_but_dont_free_vram(&gSprites[spriteId]);
DestroySpriteWithActiveSheet(&gSprites[spriteId]);
}
else
{
@@ -2100,7 +2100,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite)
{
gTasks[sprite->data[1]].data[sprite->data[2]]--;
FreeOamMatrix(sprite->oam.matrixNum);
obj_delete_but_dont_free_vram(sprite);
DestroySpriteWithActiveSheet(sprite);
}
}
@@ -3082,7 +3082,7 @@ static void FakeOutStep2(u8 taskId)
{
gTasks[taskId].data[11] = 0x88;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN);
BlendPalettes(SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE);
BlendPalettes(GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE);
}
else if (gTasks[taskId].data[10] > 4)
{
+2 -2
View File
@@ -4743,7 +4743,7 @@ void AnimTask_OdorSleuthMovement(u8 taskId)
spriteId2 = CloneBattlerSpriteWithBlend(ANIM_TARGET);
if (spriteId2 < 0)
{
obj_delete_but_dont_free_vram(&gSprites[spriteId1]);
DestroySpriteWithActiveSheet(&gSprites[spriteId1]);
DestroyAnimVisualTask(taskId);
return;
}
@@ -4823,7 +4823,7 @@ static void MoveOdorSleuthClone(struct Sprite *sprite)
if (sprite->data[5] < 0)
{
gTasks[sprite->data[6]].data[sprite->data[7]]--;
obj_delete_but_dont_free_vram(sprite);
DestroySpriteWithActiveSheet(sprite);
}
}
break;
+3 -3
View File
@@ -563,7 +563,7 @@ static void sub_80B59D4(u8 taskId)
break;
if (task->data[1] <= 80)
break;
obj_delete_but_dont_free_vram(&gSprites[task->data[0]]);
DestroySpriteWithActiveSheet(&gSprites[task->data[0]]);
task->data[4] = 1;
break;
case 1:
@@ -718,7 +718,7 @@ static void sub_80B5DCC(u8 taskId)
break;
case 2:
gSprites[task->data[14]].invisible = TRUE;
obj_delete_but_dont_free_vram(&gSprites[task->data[0]]);
DestroySpriteWithActiveSheet(&gSprites[task->data[0]]);
FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@@ -980,7 +980,7 @@ static void sub_80B6468(u8 taskId)
right = 240;
top = 0;
bottom = 112;
selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0));
gTasks[taskId].func = sub_80B65F0;
}
+3 -3
View File
@@ -1242,7 +1242,7 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
}
}
u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7)
u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7)
{
u32 selectedPalettes = 0;
u32 shift;
@@ -1467,7 +1467,7 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler)
return -1;
}
void obj_delete_but_dont_free_vram(struct Sprite *sprite)
void DestroySpriteWithActiveSheet(struct Sprite *sprite)
{
sprite->usingSheet = TRUE;
DestroySprite(sprite);
@@ -2204,7 +2204,7 @@ static void SpriteCB_PunchTrace(struct Sprite *sprite)
if (--sprite->data[0] == 0)
{
--gTasks[sprite->data[1]].data[5];
obj_delete_but_dont_free_vram(sprite);
DestroySpriteWithActiveSheet(sprite);
}
}
+2 -2
View File
@@ -326,7 +326,7 @@ u32 UnpackSelectedBattleAnimPalettes(s16 selector)
u8 arg5 = (selector >> 5) & 1;
u8 arg6 = (selector >> 6) & 1;
return SelectBattleAnimSpriteAndBgPalettes(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6);
}
static void AnimSimplePaletteBlendStep(struct Sprite *sprite)
@@ -659,7 +659,7 @@ void AnimTask_InvertScreenColor(u8 taskId)
u8 targetBattler = gBattleAnimTarget;
if (gBattleAnimArgs[0] & 0x100)
selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
if (gBattleAnimArgs[1] & 0x100)
selectedPalettes |= (0x10000 << attackerBattler);
if (gBattleAnimArgs[2] & 0x100)
+1 -1
View File
@@ -1024,7 +1024,7 @@ static void sub_80B3D78(u8 taskId)
++task->data[0];
break;
case 2:
obj_delete_but_dont_free_vram(&gSprites[task->data[15]]);
DestroySpriteWithActiveSheet(&gSprites[task->data[15]]);
++task->data[0];
break;
case 3:
+1 -1
View File
@@ -660,7 +660,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
priority = gSprites[spriteId].oam.priority;
subpriority = gSprites[spriteId].subpriority;
gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId);
selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId);
gTasks[taskId].data[0]++;
break;
+5 -5
View File
@@ -279,7 +279,7 @@ static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite)
else
{
--gTasks[sprite->data[1]].data[sprite->data[2]];
obj_delete_but_dont_free_vram(sprite);
DestroySpriteWithActiveSheet(sprite);
}
}
@@ -584,7 +584,7 @@ void AnimTask_Flash(u8 taskId)
sub_80BB790(selectedPalettes, 0);
gTasks[taskId].data[14] = selectedPalettes >> 16;
selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF;
sub_80BB790(selectedPalettes, 0xFFFF);
gTasks[taskId].data[15] = selectedPalettes;
gTasks[taskId].data[0] = 0;
@@ -856,7 +856,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;
@@ -874,7 +874,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;
@@ -892,7 +892,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
s32 paletteIndex = 0;
if (gBattleAnimArgs[0] == 0)
for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0);
for (selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0);
(selectedPalettes & 1) == 0;
++paletteIndex)
selectedPalettes >>= 1;