Name all syms in battle_anim_mons

This commit is contained in:
PikalaxALT
2021-03-18 20:32:20 -04:00
parent d95cdf42f5
commit bf69c79b12
11 changed files with 109 additions and 101 deletions
+11 -11
View File
@@ -367,7 +367,7 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite); void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
void WaitAnimForDuration(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite);
void sub_8074C80(struct Sprite *sprite); void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite);
void TranslateSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite);
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateMonSpriteLinear(struct Sprite *sprite); void TranslateMonSpriteLinear(struct Sprite *sprite);
@@ -412,13 +412,13 @@ void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
void sub_8075830(struct Sprite *sprite); void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void ResetSpriteRotScale(u8 spriteId); void ResetSpriteRotScale(u8 spriteId);
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId); void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation); void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation);
void sub_8075AD8(struct Sprite *sprite); void TryResetSpriteAffineState(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b); 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);
@@ -439,10 +439,10 @@ void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId); void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId);
void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr); void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
void *LoadPointerFromVars(s16 lo, s16 hi); void *LoadPointerFromVars(s16 lo, s16 hi);
void sub_80765D4(struct Task *task, u8 spriteId, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7); void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration);
u8 sub_8076640(struct Task *task); u8 BattleAnimHelper_RunSpriteSquash(struct Task *task);
void AnimTask_GetFrustrationPowerLevel(u8 taskId); void AnimTask_GetFrustrationPowerLevel(u8 taskId);
void sub_80767F0(void); void ResetSpritePriorityOfAllVisibleBattlers(void);
u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId);
@@ -453,12 +453,12 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
void DestroySpriteAndFreeResources_(struct Sprite *sprite); void DestroySpriteAndFreeResources_(struct Sprite *sprite);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species); u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species);
void sub_8076ED8(struct Sprite *sprite); void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite);
void sub_8076F58(struct Sprite *sprite); void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite);
void sub_8076FD0(struct Sprite *sprite); void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite);
void AnimTask_AttackerPunchWithTrace(u8 taskId); void AnimTask_AttackerPunchWithTrace(u8 taskId);
void sub_807729C(struct Sprite *sprite); void SpriteCB_WeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite);
// battle_anim_mon_movement.c // battle_anim_mon_movement.c
+2 -2
View File
@@ -1823,7 +1823,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{ {
s32 i; s32 i;
sub_80767F0(); ResetSpritePriorityOfAllVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(0); UpdateOamPriorityInAllHealthboxes(0);
for (i = 0; i < MAX_BATTLERS_COUNT; i++) for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{ {
@@ -2128,7 +2128,7 @@ static void ScriptCmd_end(void)
if (!continuousAnim) if (!continuousAnim)
{ {
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
sub_80767F0(); ResetSpritePriorityOfAllVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(1); UpdateOamPriorityInAllHealthboxes(1);
gAnimScriptActive = FALSE; gAnimScriptActive = FALSE;
} }
+1 -1
View File
@@ -3172,7 +3172,7 @@ static void AnimTask_RolePlaySilhouetteStep2(u8 taskId)
TrySetSpriteRotScale(&gSprites[spriteId], TRUE, gTasks[taskId].data[10], gTasks[taskId].data[11], 0); TrySetSpriteRotScale(&gSprites[spriteId], TRUE, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
if (++gTasks[taskId].data[12] == 9) if (++gTasks[taskId].data[12] == 9)
{ {
sub_8075AD8(&gSprites[spriteId]); TryResetSpriteAffineState(&gSprites[spriteId]);
DestroySpriteAndFreeResources_(&gSprites[spriteId]); DestroySpriteAndFreeResources_(&gSprites[spriteId]);
gTasks[taskId].func = DestroyAnimVisualTaskAndDisableBlend; gTasks[taskId].func = DestroyAnimVisualTaskAndDisableBlend;
} }
+61 -53
View File
@@ -23,17 +23,17 @@ static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(stru
static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite); static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite);
static bool8 Dummy_ReturnFalse(void); static bool8 Dummy_ReturnFalse(void);
static void AnimThrowProjectile_Step(struct Sprite *sprite); static void AnimThrowProjectile_Step(struct Sprite *sprite);
static void sub_80760D0(u8 taskId); static void AnimTask_AlphaFadeIn_Step(u8 taskId);
static void AnimTask_BlendMonInAndOutSetup(struct Task *task); static void AnimTask_BlendMonInAndOutSetup(struct Task *task);
static void AnimTask_BlendMonInAndOutStep(u8 taskId); static void AnimTask_BlendMonInAndOutStep(u8 taskId);
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
static void sub_8077118(u8 taskId); static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId);
static void sub_80771E4(struct Task *task, u8 taskId); static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId);
static void sub_8077268(struct Sprite *sprite); static void SpriteCB_PunchTrace(struct Sprite *sprite);
static void sub_80772F4(struct Sprite *sprite); static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite);
static EWRAM_DATA union AffineAnimCmd *sAnimTaskAffineAnim = NULL; static EWRAM_DATA union AffineAnimCmd *sAnimTaskAffineAnim = NULL;
static EWRAM_DATA u32 gUnknown_2037F2C = 0; // not used UNUSED static EWRAM_DATA u32 gUnknown_2037F2C = 0; // not used
static const struct UCoords8 sBattlerCoords[][4] = static const struct UCoords8 sBattlerCoords[][4] =
{ {
@@ -77,11 +77,11 @@ static const u8 sCastformBackSpriteYCoords[] =
0, // HAIL 0, // HAIL
}; };
static const struct SpriteTemplate gUnknown_83AE054[] = static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] =
{ {
{ {
.tileTag = 0xD755, .tileTag = 55125,
.paletteTag = 0xD755, .paletteTag = 55125,
.oam = &gOamData_AffineNormal_ObjNormal_64x64, .oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
@@ -89,8 +89,8 @@ static const struct SpriteTemplate gUnknown_83AE054[] =
.callback = SpriteCallbackDummy, .callback = SpriteCallbackDummy,
}, },
{ {
.tileTag = 0xD756, .tileTag = 55126,
.paletteTag = 0xD756, .paletteTag = 55126,
.oam = &gOamData_AffineNormal_ObjNormal_64x64, .oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
@@ -390,6 +390,8 @@ static void SetCallbackToStoredInData6(struct Sprite *sprite)
sprite->callback = (SpriteCallback)callback; sprite->callback = (SpriteCallback)callback;
} }
// x = a * sin(theta0 + dtheta * t)
// y = a * cos(theta0 + dtheta * t)
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->data[3])
@@ -409,6 +411,8 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
} }
} }
// x = (a0 + da * t) * sin(theta0 + dtheta * t)
// y = (a0 + da * t) * cos(theta0 + dtheta * t)
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->data[3])
@@ -430,7 +434,9 @@ void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
} }
// not used // not used
static void sub_8074B5C(struct Sprite *sprite) // x = alpl * sin(alpha0 + dalpha * t)
// y = ampl * cos(beta0 + dbeta * t)
static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->data[3])
{ {
@@ -454,6 +460,8 @@ static void sub_8074B5C(struct Sprite *sprite)
} }
} }
// x = a * sin(theta0 + dtheta * t)
// y = b * cos(theta0 + dtheta * t)
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite)
{ {
if (sprite->data[3]) if (sprite->data[3])
@@ -484,14 +492,14 @@ void WaitAnimForDuration(struct Sprite *sprite)
SetCallbackToStoredInData6(sprite); SetCallbackToStoredInData6(sprite);
} }
static void sub_8074C64(struct Sprite *sprite) static void SetupAndStartSpriteLinearTranslation(struct Sprite *sprite)
{ {
sub_8074C80(sprite); SetupLinearTranslationWithFixedDuration(sprite);
sprite->callback = TranslateSpriteLinear; sprite->callback = TranslateSpriteLinear;
sprite->callback(sprite); sprite->callback(sprite);
} }
void sub_8074C80(struct Sprite *sprite) void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite)
{ {
s16 old; s16 old;
s32 xDiff; s32 xDiff;
@@ -554,13 +562,13 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite)
} }
// not used // not used
static void sub_8074D80(struct Sprite *sprite) static void SetupAndStartSpriteLinearTranslationToTarget(struct Sprite *sprite)
{ {
sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y; sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = sub_8074C64; sprite->callback = SetupAndStartSpriteLinearTranslation;
} }
void TranslateMonSpriteLinear(struct Sprite *sprite) void TranslateMonSpriteLinear(struct Sprite *sprite)
@@ -621,17 +629,17 @@ void DestroySpriteAndMatrix(struct Sprite *sprite)
} }
// not used // not used
static void sub_8074EF4(struct Sprite *sprite) static void SetupAndStartSpriteLinearTranslationToAttacker(struct Sprite *sprite)
{ {
sprite->data[1] = sprite->pos1.x + sprite->pos2.x; sprite->data[1] = sprite->pos1.x + sprite->pos2.x;
sprite->data[3] = sprite->pos1.y + sprite->pos2.y; sprite->data[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->callback = sub_8074C64; sprite->callback = SetupAndStartSpriteLinearTranslation;
} }
// not used // not used
static void sub_8074F38(struct Sprite *sprite) static void SpriteResetPaletteStructAndDestroy(struct Sprite *sprite)
{ {
ResetPaletteStructByUid(sprite->data[5]); ResetPaletteStructByUid(sprite->data[5]);
DestroySpriteAndMatrix(sprite); DestroySpriteAndMatrix(sprite);
@@ -1094,7 +1102,7 @@ void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
InitAnimFastLinearTranslation(sprite); InitAnimFastLinearTranslation(sprite);
} }
void sub_8075830(struct Sprite *sprite) void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
{ {
sprite->data[1] = sprite->pos1.x; sprite->data[1] = sprite->pos1.x;
sprite->data[3] = sprite->pos1.y; sprite->data[3] = sprite->pos1.y;
@@ -1188,7 +1196,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x
} }
} }
void sub_8075AD8(struct Sprite *sprite) void TryResetSpriteAffineState(struct Sprite *sprite)
{ {
TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0); TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0);
sprite->affineAnimPaused = FALSE; sprite->affineAnimPaused = FALSE;
@@ -1487,10 +1495,10 @@ void AnimTask_AlphaFadeIn(u8 taskId)
gTasks[taskId].data[7] = gBattleAnimArgs[2]; gTasks[taskId].data[7] = gBattleAnimArgs[2];
gTasks[taskId].data[8] = gBattleAnimArgs[3]; gTasks[taskId].data[8] = gBattleAnimArgs[3];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1])); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gBattleAnimArgs[0], gBattleAnimArgs[1]));
gTasks[taskId].func = sub_80760D0; gTasks[taskId].func = AnimTask_AlphaFadeIn_Step;
} }
static void sub_80760D0(u8 taskId) static void AnimTask_AlphaFadeIn_Step(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
@@ -1750,19 +1758,19 @@ void *LoadPointerFromVars(s16 lo, s16 hi)
return (void *)((u16)lo | ((u16)hi << 16)); return (void *)((u16)lo | ((u16)hi << 16));
} }
void sub_80765D4(struct Task *task, u8 spriteId, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7) void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration)
{ {
task->data[8] = a7; task->data[8] = duration;
task->data[15] = spriteId; task->data[15] = spriteId;
task->data[9] = a3; task->data[9] = xScale0;
task->data[10] = a4; task->data[10] = yScale0;
task->data[13] = a5; task->data[13] = xScale1;
task->data[14] = a6; task->data[14] = yScale1;
task->data[11] = (a5 - a3) / a7; task->data[11] = (xScale1 - xScale0) / duration;
task->data[12] = (a6 - a4) / a7; task->data[12] = (yScale1 - yScale0) / duration;
} }
u8 sub_8076640(struct Task *task) u8 BattleAnimHelper_RunSpriteSquash(struct Task *task)
{ {
if (!task->data[8]) if (!task->data[8])
return 0; return 0;
@@ -1801,7 +1809,7 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId)
} }
// not used // not used
static void sub_80766EC(u8 priority) static void SetOamPriorityOfAllVisibleBattlers(u8 priority)
{ {
if (IsBattlerSpriteVisible(gBattleAnimTarget)) if (IsBattlerSpriteVisible(gBattleAnimTarget))
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority; gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority;
@@ -1813,7 +1821,7 @@ static void sub_80766EC(u8 priority)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority; gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority;
} }
void sub_80767F0(void) void ResetSpritePriorityOfAllVisibleBattlers(void)
{ {
s32 i; s32 i;
@@ -1867,7 +1875,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
{ {
u8 spriteId; u8 spriteId;
u16 sheet = LoadSpriteSheet(&sMoveAnimAdtlSprSheets[templateId]); u16 sheet = LoadSpriteSheet(&sMoveAnimAdtlSprSheets[templateId]);
u16 palette = AllocSpritePalette(gUnknown_83AE054[templateId].paletteTag); u16 palette = AllocSpritePalette(sSpriteTemplates_AdditionalForAnim[templateId].paletteTag);
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL) if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL)
gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000);
@@ -1906,9 +1914,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1);
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer); FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
if (!isBackpic) if (!isBackpic)
spriteId = CreateSprite(&gUnknown_83AE054[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority); spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
else else
spriteId = CreateSprite(&gUnknown_83AE054[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority); spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority);
return spriteId; return spriteId;
} }
@@ -2048,20 +2056,20 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x
*y = (battlerY + partnerY) / 2; *y = (battlerY + partnerY) / 2;
} }
u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species) u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species)
{ {
u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[newSpriteId] = gSprites[spriteId]; gSprites[newSpriteId] = gSprites[spriteId];
gSprites[newSpriteId].usingSheet = TRUE; gSprites[newSpriteId].usingSheet = TRUE;
gSprites[newSpriteId].oam.priority = 0; gSprites[newSpriteId].oam.priority = 0;
gSprites[newSpriteId].oam.objMode = 2; gSprites[newSpriteId].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum; gSprites[newSpriteId].oam.tileNum = gSprites[spriteId].oam.tileNum;
gSprites[newSpriteId].callback = SpriteCallbackDummy; gSprites[newSpriteId].callback = SpriteCallbackDummy;
return newSpriteId; return newSpriteId;
} }
void sub_8076ED8(struct Sprite *sprite) void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite)
{ {
SetSpriteCoordsToAnimAttackerCoords(sprite); SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -2083,7 +2091,7 @@ void sub_8076ED8(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearAndFlicker; sprite->callback = TranslateSpriteLinearAndFlicker;
} }
void sub_8076F58(struct Sprite *sprite) void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite)
{ {
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
@@ -2104,7 +2112,7 @@ void sub_8076F58(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearAndFlicker; sprite->callback = TranslateSpriteLinearAndFlicker;
} }
void sub_8076FD0(struct Sprite *sprite) void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite)
{ {
SetSpriteCoordsToAnimAttackerCoords(sprite); SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -2138,16 +2146,16 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
task->data[6] = 3; task->data[6] = 3;
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]);
task->func = sub_8077118; task->func = AnimTask_AttackerPunchWithTrace_Step;
} }
static void sub_8077118(u8 taskId) static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
switch (task->data[2]) switch (task->data[2])
{ {
case 0: case 0:
sub_80771E4(task, taskId); PunchAnim_CreateTraceSprite(task, taskId);
gSprites[task->data[0]].pos2.x += task->data[1]; gSprites[task->data[0]].pos2.x += task->data[1];
if (++task->data[3] == 5) if (++task->data[3] == 5)
{ {
@@ -2156,7 +2164,7 @@ static void sub_8077118(u8 taskId)
} }
break; break;
case 1: case 1:
sub_80771E4(task, taskId); PunchAnim_CreateTraceSprite(task, taskId);
gSprites[task->data[0]].pos2.x -= task->data[1]; gSprites[task->data[0]].pos2.x -= task->data[1];
if (--task->data[3] == 0) if (--task->data[3] == 0)
{ {
@@ -2174,7 +2182,7 @@ static void sub_8077118(u8 taskId)
} }
} }
static void sub_80771E4(struct Task *task, u8 taskId) static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId)
{ {
s16 spriteId = CloneBattlerSpriteWithBlend(0); s16 spriteId = CloneBattlerSpriteWithBlend(0);
@@ -2186,12 +2194,12 @@ static void sub_80771E4(struct Task *task, u8 taskId)
gSprites[spriteId].data[1] = taskId; gSprites[spriteId].data[1] = taskId;
gSprites[spriteId].data[2] = spriteId; gSprites[spriteId].data[2] = spriteId;
gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x; gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x;
gSprites[spriteId].callback = sub_8077268; gSprites[spriteId].callback = SpriteCB_PunchTrace;
++task->data[5]; ++task->data[5];
} }
} }
static void sub_8077268(struct Sprite *sprite) static void SpriteCB_PunchTrace(struct Sprite *sprite)
{ {
if (--sprite->data[0] == 0) if (--sprite->data[0] == 0)
{ {
@@ -2200,7 +2208,7 @@ static void sub_8077268(struct Sprite *sprite)
} }
} }
void sub_807729C(struct Sprite *sprite) void SpriteCB_WeatherBallUp(struct Sprite *sprite)
{ {
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
@@ -2209,10 +2217,10 @@ void sub_807729C(struct Sprite *sprite)
else else
sprite->data[0] = -10; sprite->data[0] = -10;
sprite->data[1] = -40; sprite->data[1] = -40;
sprite->callback = sub_80772F4; sprite->callback = SpriteCB_WeatherBallUp_Step;
} }
static void sub_80772F4(struct Sprite *sprite) static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite)
{ {
sprite->data[2] += sprite->data[0]; sprite->data[2] += sprite->data[0];
sprite->data[3] += sprite->data[1]; sprite->data[3] += sprite->data[1];
+7 -7
View File
@@ -43,7 +43,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 =
.anims = sSpriteAnimTable_83BF3F4, .anims = sSpriteAnimTable_83BF3F4,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8076F58, .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF410 = const struct SpriteTemplate gSpriteTemplate_83BF410 =
@@ -54,7 +54,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
.anims = sSpriteAnimTable_83BF3F4, .anims = sSpriteAnimTable_83BF3F4,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8076ED8, .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
}; };
static const union AnimCmd sUnknown_83BF428[] = static const union AnimCmd sUnknown_83BF428[] =
@@ -76,7 +76,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
.anims = sSpriteAnimTable_83BF430, .anims = sSpriteAnimTable_83BF430,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_807729C, .callback = SpriteCB_WeatherBallUp,
}; };
const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
@@ -113,7 +113,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
.anims = sSpriteAnimTable_83BF47C, .anims = sSpriteAnimTable_83BF47C,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8076FD0, .callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF498 = const struct SpriteTemplate gSpriteTemplate_83BF498 =
@@ -124,7 +124,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8076F58, .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
}; };
static const union AnimCmd sUnknown_83BF4B0[] = static const union AnimCmd sUnknown_83BF4B0[] =
@@ -160,7 +160,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
.anims = sSpriteAniimTable_83BF4C8, .anims = sSpriteAniimTable_83BF4C8,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8076F58, .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
}; };
static const union AnimCmd sUnknown_83BF4EC[] = static const union AnimCmd sUnknown_83BF4EC[] =
@@ -194,7 +194,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.anims = sSpriteAnimTable_83BF4F4, .anims = sSpriteAnimTable_83BF4F4,
.images = NULL, .images = NULL,
.affineAnims = sSpriteAffineAnimTable_83BF510, .affineAnims = sSpriteAffineAnimTable_83BF510,
.callback = sub_8076ED8, .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
}; };
static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました"); static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました");
+5 -5
View File
@@ -330,7 +330,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species); newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap); AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest()) if (IsContest())
@@ -446,11 +446,11 @@ static void sub_80BB2A0(u8 taskId)
u8 battlerSpriteId; u8 battlerSpriteId;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1]; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
spriteId = sub_8076E34(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3]) if (sAnimStatsChangeData->data[3])
{ {
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = sub_8076E34(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
} }
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0) if (sAnimStatsChangeData->data[0] == 0)
@@ -752,9 +752,9 @@ void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
spriteId = sub_8076E34(battler1, gBattlerSpriteIds[battler1], species); spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species);
if (arg4) if (arg4)
newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species); newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species);
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap); AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest()) if (IsContest())
+1 -1
View File
@@ -799,7 +799,7 @@ void AnimTask_MetallicShine(u8 taskId)
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species); newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
+11 -11
View File
@@ -29,7 +29,7 @@ static void AnimFireRing_Step3(struct Sprite *sprite);
static void UpdateFireRingCircleOffset(struct Sprite *sprite); static void UpdateFireRingCircleOffset(struct Sprite *sprite);
static void sub_80ACE28(struct Sprite *sprite); static void sub_80ACE28(struct Sprite *sprite);
static void sub_80ACE50(struct Sprite *sprite); static void sub_80ACE50(struct Sprite *sprite);
static void sub_80ACF14(u8 taskId); static void AnimTask_EruptionLaunchRocks_Step(u8 taskId);
static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3); static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3);
static u16 sub_80AD374(u8 spriteId); static u16 sub_80AD374(u8 spriteId);
static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y); static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y);
@@ -741,17 +741,17 @@ void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Mo
task->data[5] = GetBattlerSide(gBattleAnimAttacker); task->data[5] = GetBattlerSide(gBattleAnimAttacker);
task->data[6] = 0; task->data[6] = 0;
PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
task->func = sub_80ACF14; task->func = AnimTask_EruptionLaunchRocks_Step;
} }
static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION? static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTION?
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
switch (task->data[0]) switch (task->data[0])
{ {
case 0: case 0:
sub_80765D4(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20);
++task->data[0]; ++task->data[0];
// fall through // fall through
case 1: case 1:
@@ -771,7 +771,7 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
++gSprites[task->data[15]].pos1.y; ++gSprites[task->data[15]].pos1.y;
} }
} }
if(!sub_8076640(task)) if(!BattleAnimHelper_RunSpriteSquash(task))
{ {
SetBattlerSpriteYOffsetFromYScale(task->data[15]); SetBattlerSpriteYOffsetFromYScale(task->data[15]);
gSprites[task->data[15]].pos2.x = 0; gSprites[task->data[15]].pos2.x = 0;
@@ -785,15 +785,15 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
if (++task->data[1] > 4) if (++task->data[1] > 4)
{ {
if (task->data[5]) if (task->data[5])
sub_80765D4(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6);
else else
sub_80765D4(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6);
task->data[1] = 0; task->data[1] = 0;
++task->data[0]; ++task->data[0];
} }
break; break;
case 3: case 3:
if (!sub_8076640(task)) if (!BattleAnimHelper_RunSpriteSquash(task))
{ {
sub_80AD1F8(task->data[15], taskId, 6); sub_80AD1F8(task->data[15], taskId, 6);
++task->data[0]; ++task->data[0];
@@ -811,9 +811,9 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
if (++task->data[3] > 0x18) if (++task->data[3] > 0x18)
{ {
if (task->data[5]) if (task->data[5])
sub_80765D4(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8);
else else
sub_80765D4(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8);
if (task->data[2] & 1) if (task->data[2] & 1)
gSprites[task->data[15]].pos2.y -= 3; gSprites[task->data[15]].pos2.y -= 3;
task->data[1] = 0; task->data[1] = 0;
@@ -825,7 +825,7 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
case 5: case 5:
if (task->data[5]) if (task->data[5])
--gSprites[task->data[15]].pos1.y; --gSprites[task->data[15]].pos1.y;
if (!sub_8076640(task)) if (!BattleAnimHelper_RunSpriteSquash(task))
{ {
gSprites[task->data[15]].pos1.y = task->data[4]; gSprites[task->data[15]].pos1.y = task->data[4];
ResetSpriteRotScale(task->data[15]); ResetSpriteRotScale(task->data[15]);
+1 -1
View File
@@ -1158,7 +1158,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->pos2.y = t2; sprite->pos2.y = t2;
if (sprite->data[2] == 24) if (sprite->data[2] == 24)
{ {
sub_8075AD8(sprite); TryResetSpriteAffineState(sprite);
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
break; break;
+3 -3
View File
@@ -533,7 +533,7 @@ static void sub_80AF108(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[2] + targetX; sprite->data[2] = gBattleAnimArgs[2] + targetX;
sprite->data[3] = gBattleAnimArgs[1] + attackerY; sprite->data[3] = gBattleAnimArgs[1] + attackerY;
sprite->data[4] = gBattleAnimArgs[3] + targetY; sprite->data[4] = gBattleAnimArgs[3] + targetY;
sub_8074C80(sprite); SetupLinearTranslationWithFixedDuration(sprite);
// won't match with while loop // won't match with while loop
for (; (targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192); targetX += sprite->data[1], targetY += sprite->data[2]) for (; (targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192); targetX += sprite->data[1], targetY += sprite->data[2])
; ;
@@ -548,7 +548,7 @@ static void sub_80AF108(struct Sprite *sprite)
sprite->data[2] = targetX; sprite->data[2] = targetX;
sprite->data[3] = attackerY; sprite->data[3] = attackerY;
sprite->data[4] = targetY; sprite->data[4] = targetY;
sub_8074C80(sprite); SetupLinearTranslationWithFixedDuration(sprite);
sprite->data[3] = gBattleAnimArgs[5]; sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6]; sprite->data[4] = gBattleAnimArgs[6];
sprite->callback = sub_80AF28C; sprite->callback = sub_80AF28C;
@@ -686,7 +686,7 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite)
sprite->pos2.x = sprite->pos2.y = 0; sprite->pos2.x = sprite->pos2.y = 0;
for (i = 0; i < 8; ++i) for (i = 0; i < 8; ++i)
sprite->data[i] = tempDataHolder[i]; sprite->data[i] = tempDataHolder[i];
sprite->callback = sub_8075830; sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed;
StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2); StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2);
} }
+6 -6
View File
@@ -1058,7 +1058,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
switch (task->data[0]) switch (task->data[0])
{ {
case 0: case 0:
sub_80765D4(task, task->data[15], 0x100, 0x100, 224, 0x200, 32); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x100, 0x100, 224, 0x200, 32);
task->data[0]++; task->data[0]++;
case 1: case 1:
if (++task->data[3] > 1) if (++task->data[3] > 1)
@@ -1074,7 +1074,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
gSprites[task->data[15]].pos2.x = -3; gSprites[task->data[15]].pos2.x = -3;
} }
} }
if (sub_8076640(task) == 0) if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{ {
SetBattlerSpriteYOffsetFromYScale(task->data[15]); SetBattlerSpriteYOffsetFromYScale(task->data[15]);
gSprites[task->data[15]].pos2.x = 0; gSprites[task->data[15]].pos2.x = 0;
@@ -1086,13 +1086,13 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
case 2: case 2:
if (++task->data[3] > 4) if (++task->data[3] > 4)
{ {
sub_80765D4(task, task->data[15], 224, 0x200, 384, 224, 8); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 224, 0x200, 384, 224, 8);
task->data[3] = 0; task->data[3] = 0;
task->data[0]++; task->data[0]++;
} }
break; break;
case 3: case 3:
if (sub_8076640(task) == 0) if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{ {
task->data[3] = 0; task->data[3] = 0;
task->data[4] = 0; task->data[4] = 0;
@@ -1112,7 +1112,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
gSprites[task->data[15]].pos2.y -= 2; gSprites[task->data[15]].pos2.y -= 2;
if (task->data[4] == 10) if (task->data[4] == 10)
{ {
sub_80765D4(task, task->data[15], 384, 224, 0x100, 0x100, 8); BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 384, 224, 0x100, 0x100, 8);
task->data[3] = 0; task->data[3] = 0;
task->data[4] = 0; task->data[4] = 0;
task->data[0]++; task->data[0]++;
@@ -1121,7 +1121,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
break; break;
case 6: case 6:
gSprites[task->data[15]].pos1.y--; gSprites[task->data[15]].pos1.y--;
if (sub_8076640(task) == 0) if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{ {
ResetSpriteRotScale(task->data[15]); ResetSpriteRotScale(task->data[15]);
gSprites[task->data[15]].pos1.y = task->data[5]; gSprites[task->data[15]].pos1.y = task->data[5];