summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/battle_anim.h22
-rw-r--r--src/battle_anim.c4
-rw-r--r--src/battle_anim_effects_3.c2
-rw-r--r--src/battle_anim_mons.c114
-rw-r--r--src/battle_anim_status_effects.c14
-rw-r--r--src/battle_anim_utility_funcs.c10
-rw-r--r--src/dark.c2
-rw-r--r--src/fire.c22
-rw-r--r--src/flying.c2
-rw-r--r--src/ice.c6
-rw-r--r--src/water.c12
11 files changed, 109 insertions, 101 deletions
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 9c19b11c6..da4eb14ef 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -367,7 +367,7 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInEllipseOverDuration(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 TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateMonSpriteLinear(struct Sprite *sprite);
@@ -412,13 +412,13 @@ void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(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 PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void ResetSpriteRotScale(u8 spriteId);
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
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);
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
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 StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
void *LoadPointerFromVars(s16 lo, s16 hi);
-void sub_80765D4(struct Task *task, u8 spriteId, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
-u8 sub_8076640(struct Task *task);
+void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration);
+u8 BattleAnimHelper_RunSpriteSquash(struct Task *task);
void AnimTask_GetFrustrationPowerLevel(u8 taskId);
-void sub_80767F0(void);
+void ResetSpritePriorityOfAllVisibleBattlers(void);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
@@ -453,12 +453,12 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
-u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species);
-void sub_8076ED8(struct Sprite *sprite);
-void sub_8076F58(struct Sprite *sprite);
-void sub_8076FD0(struct Sprite *sprite);
+u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species);
+void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite);
+void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite);
+void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite);
void AnimTask_AttackerPunchWithTrace(u8 taskId);
-void sub_807729C(struct Sprite *sprite);
+void SpriteCB_WeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite);
// battle_anim_mon_movement.c
diff --git a/src/battle_anim.c b/src/battle_anim.c
index 0b011b0f3..ae4e6cf47 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -1823,7 +1823,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{
s32 i;
- sub_80767F0();
+ ResetSpritePriorityOfAllVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(0);
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
@@ -2128,7 +2128,7 @@ static void ScriptCmd_end(void)
if (!continuousAnim)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256);
- sub_80767F0();
+ ResetSpritePriorityOfAllVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(1);
gAnimScriptActive = FALSE;
}
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index f3450e521..fbead6a9a 100644
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -3172,7 +3172,7 @@ static void AnimTask_RolePlaySilhouetteStep2(u8 taskId)
TrySetSpriteRotScale(&gSprites[spriteId], TRUE, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
if (++gTasks[taskId].data[12] == 9)
{
- sub_8075AD8(&gSprites[spriteId]);
+ TryResetSpriteAffineState(&gSprites[spriteId]);
DestroySpriteAndFreeResources_(&gSprites[spriteId]);
gTasks[taskId].func = DestroyAnimVisualTaskAndDisableBlend;
}
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index cb1983b62..c47a29976 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -23,17 +23,17 @@ static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(stru
static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite);
static bool8 Dummy_ReturnFalse(void);
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_BlendMonInAndOutStep(u8 taskId);
static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
-static void sub_8077118(u8 taskId);
-static void sub_80771E4(struct Task *task, u8 taskId);
-static void sub_8077268(struct Sprite *sprite);
-static void sub_80772F4(struct Sprite *sprite);
+static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId);
+static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId);
+static void SpriteCB_PunchTrace(struct Sprite *sprite);
+static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite);
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] =
{
@@ -77,11 +77,11 @@ static const u8 sCastformBackSpriteYCoords[] =
0, // HAIL
};
-static const struct SpriteTemplate gUnknown_83AE054[] =
+static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] =
{
{
- .tileTag = 0xD755,
- .paletteTag = 0xD755,
+ .tileTag = 55125,
+ .paletteTag = 55125,
.oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
@@ -89,8 +89,8 @@ static const struct SpriteTemplate gUnknown_83AE054[] =
.callback = SpriteCallbackDummy,
},
{
- .tileTag = 0xD756,
- .paletteTag = 0xD756,
+ .tileTag = 55126,
+ .paletteTag = 55126,
.oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
@@ -390,6 +390,8 @@ static void SetCallbackToStoredInData6(struct Sprite *sprite)
sprite->callback = (SpriteCallback)callback;
}
+// x = a * sin(theta0 + dtheta * t)
+// y = a * cos(theta0 + dtheta * t)
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
{
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)
{
if (sprite->data[3])
@@ -430,7 +434,9 @@ void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
}
// 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])
{
@@ -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)
{
if (sprite->data[3])
@@ -484,14 +492,14 @@ void WaitAnimForDuration(struct Sprite *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(sprite);
}
-void sub_8074C80(struct Sprite *sprite)
+void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite)
{
s16 old;
s32 xDiff;
@@ -554,13 +562,13 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite)
}
// 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[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
- sprite->callback = sub_8074C64;
+ sprite->callback = SetupAndStartSpriteLinearTranslation;
}
void TranslateMonSpriteLinear(struct Sprite *sprite)
@@ -621,17 +629,17 @@ void DestroySpriteAndMatrix(struct Sprite *sprite)
}
// 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[3] = sprite->pos1.y + sprite->pos2.y;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
- sprite->callback = sub_8074C64;
+ sprite->callback = SetupAndStartSpriteLinearTranslation;
}
// not used
-static void sub_8074F38(struct Sprite *sprite)
+static void SpriteResetPaletteStructAndDestroy(struct Sprite *sprite)
{
ResetPaletteStructByUid(sprite->data[5]);
DestroySpriteAndMatrix(sprite);
@@ -1094,7 +1102,7 @@ void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
InitAnimFastLinearTranslation(sprite);
}
-void sub_8075830(struct Sprite *sprite)
+void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite)
{
sprite->data[1] = sprite->pos1.x;
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);
sprite->affineAnimPaused = FALSE;
@@ -1487,10 +1495,10 @@ void AnimTask_AlphaFadeIn(u8 taskId)
gTasks[taskId].data[7] = gBattleAnimArgs[2];
gTasks[taskId].data[8] = gBattleAnimArgs[3];
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];
@@ -1750,19 +1758,19 @@ void *LoadPointerFromVars(s16 lo, s16 hi)
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[9] = a3;
- task->data[10] = a4;
- task->data[13] = a5;
- task->data[14] = a6;
- task->data[11] = (a5 - a3) / a7;
- task->data[12] = (a6 - a4) / a7;
+ task->data[9] = xScale0;
+ task->data[10] = yScale0;
+ task->data[13] = xScale1;
+ task->data[14] = yScale1;
+ task->data[11] = (xScale1 - xScale0) / duration;
+ task->data[12] = (yScale1 - yScale0) / duration;
}
-u8 sub_8076640(struct Task *task)
+u8 BattleAnimHelper_RunSpriteSquash(struct Task *task)
{
if (!task->data[8])
return 0;
@@ -1801,7 +1809,7 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId)
}
// not used
-static void sub_80766EC(u8 priority)
+static void SetOamPriorityOfAllVisibleBattlers(u8 priority)
{
if (IsBattlerSpriteVisible(gBattleAnimTarget))
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority;
@@ -1813,7 +1821,7 @@ static void sub_80766EC(u8 priority)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority;
}
-void sub_80767F0(void)
+void ResetSpritePriorityOfAllVisibleBattlers(void)
{
s32 i;
@@ -1867,7 +1875,7 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
{
u8 spriteId;
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)
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);
FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer);
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
- 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;
}
@@ -2048,20 +2056,20 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x
*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);
gSprites[newSpriteId] = gSprites[spriteId];
gSprites[newSpriteId].usingSheet = TRUE;
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].callback = SpriteCallbackDummy;
return newSpriteId;
}
-void sub_8076ED8(struct Sprite *sprite)
+void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -2083,7 +2091,7 @@ void sub_8076ED8(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearAndFlicker;
}
-void sub_8076F58(struct Sprite *sprite)
+void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -2104,7 +2112,7 @@ void sub_8076F58(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearAndFlicker;
}
-void sub_8076FD0(struct Sprite *sprite)
+void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -2138,16 +2146,16 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId)
task->data[6] = 3;
CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20);
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];
switch (task->data[2])
{
case 0:
- sub_80771E4(task, taskId);
+ PunchAnim_CreateTraceSprite(task, taskId);
gSprites[task->data[0]].pos2.x += task->data[1];
if (++task->data[3] == 5)
{
@@ -2156,7 +2164,7 @@ static void sub_8077118(u8 taskId)
}
break;
case 1:
- sub_80771E4(task, taskId);
+ PunchAnim_CreateTraceSprite(task, taskId);
gSprites[task->data[0]].pos2.x -= task->data[1];
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);
@@ -2186,12 +2194,12 @@ static void sub_80771E4(struct Task *task, u8 taskId)
gSprites[spriteId].data[1] = taskId;
gSprites[spriteId].data[2] = spriteId;
gSprites[spriteId].pos2.x = gSprites[task->data[0]].pos2.x;
- gSprites[spriteId].callback = sub_8077268;
+ gSprites[spriteId].callback = SpriteCB_PunchTrace;
++task->data[5];
}
}
-static void sub_8077268(struct Sprite *sprite)
+static void SpriteCB_PunchTrace(struct Sprite *sprite)
{
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.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
@@ -2209,10 +2217,10 @@ void sub_807729C(struct Sprite *sprite)
else
sprite->data[0] = -10;
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[3] += sprite->data[1];
diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c
index 23dc0461e..4bae32599 100644
--- a/src/battle_anim_status_effects.c
+++ b/src/battle_anim_status_effects.c
@@ -43,7 +43,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 =
.anims = sSpriteAnimTable_83BF3F4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8076F58,
+ .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
};
const struct SpriteTemplate gSpriteTemplate_83BF410 =
@@ -54,7 +54,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
.anims = sSpriteAnimTable_83BF3F4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8076ED8,
+ .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
};
static const union AnimCmd sUnknown_83BF428[] =
@@ -76,7 +76,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
.anims = sSpriteAnimTable_83BF430,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_807729C,
+ .callback = SpriteCB_WeatherBallUp,
};
const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
@@ -113,7 +113,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
.anims = sSpriteAnimTable_83BF47C,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8076FD0,
+ .callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim,
};
const struct SpriteTemplate gSpriteTemplate_83BF498 =
@@ -124,7 +124,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8076F58,
+ .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
};
static const union AnimCmd sUnknown_83BF4B0[] =
@@ -160,7 +160,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
.anims = sSpriteAniimTable_83BF4C8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8076F58,
+ .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
};
static const union AnimCmd sUnknown_83BF4EC[] =
@@ -194,7 +194,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.anims = sSpriteAnimTable_83BF4F4,
.images = NULL,
.affineAnims = sSpriteAffineAnimTable_83BF510,
- .callback = sub_8076ED8,
+ .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
};
static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました");
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index ae2a4a407..6ac9b0fe7 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -330,7 +330,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
- newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
+ newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
@@ -446,11 +446,11 @@ static void sub_80BB2A0(u8 taskId)
u8 battlerSpriteId;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
- spriteId = sub_8076E34(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
+ spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3])
{
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
- newSpriteId = sub_8076E34(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
+ newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
GetBattleAnimBg1Data(&animBgData);
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);
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
- spriteId = sub_8076E34(battler1, gBattlerSpriteIds[battler1], species);
+ spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species);
if (arg4)
- newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species);
+ newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest())
diff --git a/src/dark.c b/src/dark.c
index 142366fea..e8b0b7e62 100644
--- a/src/dark.c
+++ b/src/dark.c
@@ -799,7 +799,7 @@ void AnimTask_MetallicShine(u8 taskId)
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
- newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
+ newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
diff --git a/src/fire.c b/src/fire.c
index 3a3e6be9b..938fb4796 100644
--- a/src/fire.c
+++ b/src/fire.c
@@ -29,7 +29,7 @@ static void AnimFireRing_Step3(struct Sprite *sprite);
static void UpdateFireRingCircleOffset(struct Sprite *sprite);
static void sub_80ACE28(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 u16 sub_80AD374(u8 spriteId);
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[6] = 0;
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];
switch (task->data[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];
// fall through
case 1:
@@ -771,7 +771,7 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
++gSprites[task->data[15]].pos1.y;
}
}
- if(!sub_8076640(task))
+ if(!BattleAnimHelper_RunSpriteSquash(task))
{
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
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[5])
- sub_80765D4(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6);
+ BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6);
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[0];
}
break;
case 3:
- if (!sub_8076640(task))
+ if (!BattleAnimHelper_RunSpriteSquash(task))
{
sub_80AD1F8(task->data[15], taskId, 6);
++task->data[0];
@@ -811,9 +811,9 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
if (++task->data[3] > 0x18)
{
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
- 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)
gSprites[task->data[15]].pos2.y -= 3;
task->data[1] = 0;
@@ -825,7 +825,7 @@ static void sub_80ACF14(u8 taskId) // animate Move_ERUPTION?
case 5:
if (task->data[5])
--gSprites[task->data[15]].pos1.y;
- if (!sub_8076640(task))
+ if (!BattleAnimHelper_RunSpriteSquash(task))
{
gSprites[task->data[15]].pos1.y = task->data[4];
ResetSpriteRotScale(task->data[15]);
diff --git a/src/flying.c b/src/flying.c
index 18cfa4e39..6a9ad4fb4 100644
--- a/src/flying.c
+++ b/src/flying.c
@@ -1158,7 +1158,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->pos2.y = t2;
if (sprite->data[2] == 24)
{
- sub_8075AD8(sprite);
+ TryResetSpriteAffineState(sprite);
DestroyAnimSprite(sprite);
}
break;
diff --git a/src/ice.c b/src/ice.c
index ed0c93430..e7ce83dae 100644
--- a/src/ice.c
+++ b/src/ice.c
@@ -533,7 +533,7 @@ static void sub_80AF108(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[2] + targetX;
sprite->data[3] = gBattleAnimArgs[1] + attackerY;
sprite->data[4] = gBattleAnimArgs[3] + targetY;
- sub_8074C80(sprite);
+ SetupLinearTranslationWithFixedDuration(sprite);
// won't match with while loop
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[3] = attackerY;
sprite->data[4] = targetY;
- sub_8074C80(sprite);
+ SetupLinearTranslationWithFixedDuration(sprite);
sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6];
sprite->callback = sub_80AF28C;
@@ -686,7 +686,7 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite)
sprite->pos2.x = sprite->pos2.y = 0;
for (i = 0; i < 8; ++i)
sprite->data[i] = tempDataHolder[i];
- sprite->callback = sub_8075830;
+ sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed;
StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2);
}
diff --git a/src/water.c b/src/water.c
index 8a1737e58..5f7fa4dc6 100644
--- a/src/water.c
+++ b/src/water.c
@@ -1058,7 +1058,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
switch (task->data[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]++;
case 1:
if (++task->data[3] > 1)
@@ -1074,7 +1074,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
gSprites[task->data[15]].pos2.x = -3;
}
}
- if (sub_8076640(task) == 0)
+ if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
gSprites[task->data[15]].pos2.x = 0;
@@ -1086,13 +1086,13 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
case 2:
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[0]++;
}
break;
case 3:
- if (sub_8076640(task) == 0)
+ if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{
task->data[3] = 0;
task->data[4] = 0;
@@ -1112,7 +1112,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
gSprites[task->data[15]].pos2.y -= 2;
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[4] = 0;
task->data[0]++;
@@ -1121,7 +1121,7 @@ static void AnimTask_WaterSpoutLaunch_Step(u8 taskId)
break;
case 6:
gSprites[task->data[15]].pos1.y--;
- if (sub_8076640(task) == 0)
+ if (BattleAnimHelper_RunSpriteSquash(task) == 0)
{
ResetSpriteRotScale(task->data[15]);
gSprites[task->data[15]].pos1.y = task->data[5];