summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_dark.c46
-rw-r--r--src/battle_anim_effects_1.c252
-rwxr-xr-xsrc/battle_anim_effects_2.c108
-rwxr-xr-xsrc/battle_anim_effects_3.c26
-rw-r--r--src/battle_anim_electric.c38
-rw-r--r--src/battle_anim_fight.c8
-rw-r--r--src/battle_anim_fire.c34
-rw-r--r--src/battle_anim_flying.c31
-rw-r--r--src/battle_anim_ghost.c20
-rw-r--r--src/battle_anim_ice.c32
-rw-r--r--src/battle_anim_normal.c16
-rw-r--r--src/battle_anim_status_effects.c50
-rw-r--r--src/battle_main.c36
-rw-r--r--src/pokeball.c2
-rw-r--r--src/pokemon.c910
-rw-r--r--src/pokemon_animation.c3728
-rw-r--r--src/pokemon_summary_screen.c23
17 files changed, 2658 insertions, 2702 deletions
diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c
index 19e8c9523..c2bfe269b 100644
--- a/src/battle_anim_dark.c
+++ b/src/battle_anim_dark.c
@@ -9,24 +9,24 @@
#include "util.h"
#include "constants/rgb.h"
-static void sub_81138D4(struct Sprite *);
+static void AnimUnusedBagSteal(struct Sprite *);
+static void AnimUnusedBagSteal_Step(struct Sprite *);
static void AnimBite(struct Sprite *);
static void AnimTearDrop(struct Sprite *);
static void AnimClawSlash(struct Sprite *);
static void AnimTask_AttackerFadeToInvisible_Step(u8);
static void AnimTask_AttackerFadeFromInvisible_Step(u8);
-static void sub_8113950(struct Sprite *);
static void AnimBite_Step1(struct Sprite *);
static void AnimBite_Step2(struct Sprite *);
static void AnimTearDrop_Step(struct Sprite *);
static void AnimTask_MoveAttackerMementoShadow_Step(u8);
static void AnimTask_MoveTargetMementoShadow_Step(u8);
-static void sub_8114244(struct Task *);
-static void sub_8114374(u8);
+static void DoMementoShadowEffect(struct Task *);
+static void SetAllBattlersSpritePriority(u8);
static void AnimTask_MetallicShine_Step(u8);
// Unused
-const struct SpriteTemplate gUnknown_08596FC8 =
+static const struct SpriteTemplate sUnusedBagStealSpriteTemplate =
{
.tileTag = ANIM_TAG_TIED_BAG,
.paletteTag = ANIM_TAG_TIED_BAG,
@@ -34,7 +34,7 @@ const struct SpriteTemplate gUnknown_08596FC8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81138D4,
+ .callback = AnimUnusedBagSteal,
};
static const union AffineAnimCmd sAffineAnim_Bite_0[] =
@@ -268,7 +268,7 @@ void AnimTask_InitAttackerFadeFromInvisible(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-static void sub_81138D4(struct Sprite *sprite)
+static void AnimUnusedBagSteal(struct Sprite *sprite)
{
sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
@@ -279,11 +279,11 @@ static void sub_81138D4(struct Sprite *sprite)
sprite->data[3] = -sprite->data[1];
sprite->data[4] = -sprite->data[2];
sprite->data[6] = 0xFFD8;
- sprite->callback = sub_8113950;
+ sprite->callback = AnimUnusedBagSteal_Step;
sprite->callback(sprite);
}
-static void sub_8113950(struct Sprite *sprite)
+static void AnimUnusedBagSteal_Step(struct Sprite *sprite)
{
sprite->data[3] += sprite->data[1];
sprite->data[4] += sprite->data[2];
@@ -430,7 +430,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
scanlineParams.dmaDest = &REG_BG1VOFS;
var0 = WINOUT_WIN01_BG1;
if (!IsContest())
- gBattle_BG2_X += 240;
+ gBattle_BG2_X += DISPLAY_WIDTH;
}
else
{
@@ -440,7 +440,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
scanlineParams.dmaDest = &REG_BG2VOFS;
var0 = WINOUT_WIN01_BG2;
if (!IsContest())
- gBattle_BG1_X += 240;
+ gBattle_BG1_X += DISPLAY_WIDTH;
}
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
@@ -451,7 +451,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
task->data[0] = 0;
task->data[1] = 0;
task->data[2] = 0;
- sub_8114374(3);
+ SetAllBattlersSpritePriority(3);
for (i = 0; i < 112; i++)
{
gScanlineEffectRegBuffers[0][i] = task->data[10];
@@ -462,7 +462,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | (var0 ^ (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR)));
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
- gBattle_WIN0V = 160;
+ gBattle_WIN0V = DISPLAY_HEIGHT;
task->func = AnimTask_MoveAttackerMementoShadow_Step;
}
@@ -496,14 +496,14 @@ static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId)
break;
case 1:
task->data[4] -= 8;
- sub_8114244(task);
+ DoMementoShadowEffect(task);
if (task->data[4] < task->data[8])
task->data[0]++;
break;
case 2:
task->data[4] -= 8;
- sub_8114244(task);
+ DoMementoShadowEffect(task);
task->data[14] += 4;
task->data[15] -= 4;
@@ -550,12 +550,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
if (task->data[3] == 1)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
- gBattle_BG2_X += 240;
+ gBattle_BG2_X += DISPLAY_WIDTH;
}
else
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
- gBattle_BG1_X += 240;
+ gBattle_BG1_X += DISPLAY_WIDTH;
}
task->data[0]++;
@@ -574,7 +574,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
FillPalette(0, 9 * 16, 32);
}
- sub_8114374(3);
+ SetAllBattlersSpritePriority(3);
task->data[0]++;
break;
case 2:
@@ -622,7 +622,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
gBattle_WIN0H = (task->data[14] << 8) | task->data[15];
- gBattle_WIN0V = 160;
+ gBattle_WIN0V = DISPLAY_HEIGHT;
task->data[0] = 0;
task->data[1] = 0;
@@ -644,7 +644,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId)
if (task->data[5] >= task->data[7])
task->data[5] = task->data[7];
- sub_8114244(task);
+ DoMementoShadowEffect(task);
if (task->data[5] == task->data[7])
task->data[0]++;
break;
@@ -664,7 +664,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId)
if (task->data[4] >= task->data[6])
task->data[4] = task->data[6];
- sub_8114244(task);
+ DoMementoShadowEffect(task);
if (task->data[4] == task->data[6] && task->data[1])
{
task->data[1] = 0;
@@ -706,7 +706,7 @@ static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId)
}
}
-static void sub_8114244(struct Task *task)
+static void DoMementoShadowEffect(struct Task *task)
{
int var0, var1;
s16 var2;
@@ -757,7 +757,7 @@ static void sub_8114244(struct Task *task)
}
}
-static void sub_8114374(u8 priority)
+static void SetAllBattlersSpritePriority(u8 priority)
{
u16 i;
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index 03dc75daf..9901aa5dd 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -16,7 +16,12 @@
#include "constants/rgb.h"
#include "constants/songs.h"
-EWRAM_DATA s16 gUnknown_0203A0F8[4] = {0};
+struct {
+ s16 startX;
+ s16 startY;
+ s16 targetX;
+ s16 targetY;
+} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read.
static void AnimMovePowderParticle(struct Sprite *);
static void AnimMovePowderParticle_Step(struct Sprite *);
@@ -65,14 +70,14 @@ static void AnimFlyingParticle(struct Sprite *);
static void AnimFlyingParticle_Step(struct Sprite *);
static void AnimNeedleArmSpike(struct Sprite *);
static void AnimNeedleArmSpike_Step(struct Sprite *);
-static void sub_81009F8(struct Sprite *);
+static void AnimSlidingHit(struct Sprite *);
static void AnimWhipHit(struct Sprite *);
-static void sub_8100A94(struct Sprite *);
+static void AnimFlickeringPunch(struct Sprite *);
static void AnimCuttingSlice(struct Sprite *);
static void AnimAirCutterSlice(struct Sprite *);
static void AnimSlice_Step(struct Sprite *);
-static void sub_8100E1C(struct Sprite *);
-static void sub_8100E80(struct Sprite *);
+static void AnimCirclingMusicNote(struct Sprite *);
+static void AnimCirclingMusicNote_Step(struct Sprite *);
static void AnimProtect(struct Sprite *);
static void AnimProtect_Step(struct Sprite *);
static void AnimMilkBottle(struct Sprite *);
@@ -80,8 +85,8 @@ static void AnimMilkBottle_Step1(struct Sprite *);
static void AnimMilkBottle_Step2(struct Sprite *, int, int);
static void AnimGrantingStars(struct Sprite *);
static void AnimSparkingStars(struct Sprite *);
-static void sub_8101440(struct Sprite *);
-static void sub_81014A0(struct Sprite *);
+static void AnimBubbleBurst(struct Sprite *);
+static void AnimBubbleBurst_Step(struct Sprite *);
static void AnimSleepLetterZ(struct Sprite *);
static void AnimSleepLetterZ_Step(struct Sprite *);
static void AnimLockOnTarget(struct Sprite *);
@@ -99,8 +104,8 @@ static void AnimBowMon_Step2(struct Sprite *);
static void AnimBowMon_Step3(struct Sprite *);
static void AnimBowMon_Step4(struct Sprite *);
static void AnimBowMon_Step3_Callback(struct Sprite *);
-static void sub_8101B90(struct Sprite *);
-static void sub_8101BA0(struct Sprite *);
+static void AnimTipMon(struct Sprite *);
+static void AnimTipMon_Step(struct Sprite *);
static void AnimSlashSlice(struct Sprite *);
static void AnimFalseSwipeSlice(struct Sprite *);
static void AnimFalseSwipeSlice_Step1(struct Sprite *);
@@ -571,7 +576,7 @@ const struct SpriteTemplate gSwiftStarSpriteTemplate =
.callback = AnimTranslateLinearSingleSineWave,
};
-const union AnimCmd gConstrictBindingAnimCmds1[] =
+static const union AnimCmd sAnim_ConstrictBinding[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(32, 4),
@@ -580,7 +585,7 @@ const union AnimCmd gConstrictBindingAnimCmds1[] =
ANIMCMD_END,
};
-const union AnimCmd gConstrictBindingAnimCmds2[] =
+static const union AnimCmd sAnim_ConstrictBinding_Flipped[] =
{
ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
ANIMCMD_FRAME(32, 4, .hFlip = TRUE),
@@ -589,29 +594,29 @@ const union AnimCmd gConstrictBindingAnimCmds2[] =
ANIMCMD_END,
};
-const union AnimCmd *const gConstrictBindingAnimTable[] =
+static const union AnimCmd *const sAnims_ConstrictBinding[] =
{
- gConstrictBindingAnimCmds1,
- gConstrictBindingAnimCmds2,
+ sAnim_ConstrictBinding,
+ sAnim_ConstrictBinding_Flipped,
};
-const union AffineAnimCmd gConstrictBindingAffineAnimCmds1[] = {
+static const union AffineAnimCmd sAffineAnim_ConstrictBinding[] = {
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(-11, 0, 0, 6),
AFFINEANIMCMD_FRAME(11, 0, 0, 6),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gConstrictBindingAffineAnimCmds2[] = {
+static const union AffineAnimCmd sAffineAnim_ConstrictBinding_Flipped[] = {
AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(11, 0, 0, 6),
AFFINEANIMCMD_FRAME(-11, 0, 0, 6),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd *const gConstrictBindingAffineAnimTable[] = {
- gConstrictBindingAffineAnimCmds1,
- gConstrictBindingAffineAnimCmds2,
+static const union AffineAnimCmd *const sAffineAnims_ConstrictBinding[] = {
+ sAffineAnim_ConstrictBinding,
+ sAffineAnim_ConstrictBinding_Flipped,
};
const struct SpriteTemplate gConstrictBindingSpriteTemplate =
@@ -619,9 +624,9 @@ const struct SpriteTemplate gConstrictBindingSpriteTemplate =
.tileTag = ANIM_TAG_TENDRILS,
.paletteTag = ANIM_TAG_TENDRILS,
.oam = &gOamData_AffineNormal_ObjNormal_64x32,
- .anims = gConstrictBindingAnimTable,
+ .anims = sAnims_ConstrictBinding,
.images = NULL,
- .affineAnims = gConstrictBindingAffineAnimTable,
+ .affineAnims = sAffineAnims_ConstrictBinding,
.callback = AnimConstrictBinding,
};
@@ -1060,7 +1065,7 @@ const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate =
.callback = AnimNeedleArmSpike,
};
-const union AnimCmd gWhipAnimCmds1[] =
+static const union AnimCmd sAnim_Whip[] =
{
ANIMCMD_FRAME(64, 3),
ANIMCMD_FRAME(80, 3),
@@ -1069,7 +1074,7 @@ const union AnimCmd gWhipAnimCmds1[] =
ANIMCMD_END,
};
-const union AnimCmd gWhipAnimCmds2[] =
+static const union AnimCmd sAnim_Whip_Flipped[] =
{
ANIMCMD_FRAME(64, 3, .hFlip = TRUE),
ANIMCMD_FRAME(80, 3, .hFlip = TRUE),
@@ -1078,10 +1083,10 @@ const union AnimCmd gWhipAnimCmds2[] =
ANIMCMD_END,
};
-const union AnimCmd *const gWhipAnimTable[] =
+static const union AnimCmd *const sAnims_Whip[] =
{
- gWhipAnimCmds1,
- gWhipAnimCmds2,
+ sAnim_Whip,
+ sAnim_Whip_Flipped,
};
const struct SpriteTemplate gSlamHitSpriteTemplate =
@@ -1089,7 +1094,7 @@ const struct SpriteTemplate gSlamHitSpriteTemplate =
.tileTag = ANIM_TAG_SLAM_HIT,
.paletteTag = ANIM_TAG_SLAM_HIT,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gWhipAnimTable,
+ .anims = sAnims_Whip,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWhipHit,
@@ -1100,13 +1105,13 @@ const struct SpriteTemplate gVineWhipSpriteTemplate =
.tileTag = ANIM_TAG_WHIP_HIT,
.paletteTag = ANIM_TAG_WHIP_HIT,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gWhipAnimTable,
+ .anims = sAnims_Whip,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWhipHit,
};
-const union AnimCmd gUnknown_08592900[] =
+static const union AnimCmd sAnim_SlidingHit[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
@@ -1116,96 +1121,96 @@ const union AnimCmd gUnknown_08592900[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_08592918[] =
+static const union AnimCmd *const sAnims_SlidingHit[] =
{
- gUnknown_08592900,
+ sAnim_SlidingHit,
};
// Unused
-const struct SpriteTemplate gUnknown_0859291C =
+static const struct SpriteTemplate sSlidingHit1SpriteTemplate =
{
.tileTag = ANIM_TAG_HIT,
.paletteTag = ANIM_TAG_HIT,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gUnknown_08592918,
+ .anims = sAnims_SlidingHit,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81009F8,
+ .callback = AnimSlidingHit,
};
// Unused
-const struct SpriteTemplate gUnknown_08592934 =
+static const struct SpriteTemplate sSlidingHit2SpriteTemplate =
{
.tileTag = ANIM_TAG_HIT_2,
.paletteTag = ANIM_TAG_HIT_2,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gUnknown_08592918,
+ .anims = sAnims_SlidingHit,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81009F8,
+ .callback = AnimSlidingHit,
};
-const union AffineAnimCmd gUnknown_0859294C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_Normal[] = {
AFFINEANIMCMD_FRAME(256, 256, 0, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_0859295C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopLeft[] = {
AFFINEANIMCMD_FRAME(256, 256, 32, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_0859296C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedLeft[] = {
AFFINEANIMCMD_FRAME(256, 256, 64, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_0859297C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomLeft[] = {
AFFINEANIMCMD_FRAME(256, 256, 96, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_0859298C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_UpsideDown[] = {
AFFINEANIMCMD_FRAME(256, 256, -128, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_0859299C[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomRight[] = {
AFFINEANIMCMD_FRAME(256, 256, -96, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_085929AC[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedRight[] = {
AFFINEANIMCMD_FRAME(256, 256, -64, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd gUnknown_085929BC[] = {
+static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopRight[] = {
AFFINEANIMCMD_FRAME(256, 256, -32, 0),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd *const gUnknown_085929CC[] = {
- gUnknown_0859294C,
- gUnknown_0859295C,
- gUnknown_0859296C,
- gUnknown_0859297C,
- gUnknown_0859298C,
- gUnknown_0859299C,
- gUnknown_085929AC,
- gUnknown_085929BC,
+static const union AffineAnimCmd *const sAffineAnims_FlickeringPunch[] = {
+ sAffineAnim_FlickeringPunch_Normal,
+ sAffineAnim_FlickeringPunch_TurnedTopLeft,
+ sAffineAnim_FlickeringPunch_TurnedLeft,
+ sAffineAnim_FlickeringPunch_TurnedBottomLeft,
+ sAffineAnim_FlickeringPunch_UpsideDown,
+ sAffineAnim_FlickeringPunch_TurnedBottomRight,
+ sAffineAnim_FlickeringPunch_TurnedRight,
+ sAffineAnim_FlickeringPunch_TurnedTopRight,
};
// Unused
-const struct SpriteTemplate gUnknown_085929EC =
+static const struct SpriteTemplate sFlickeringPunchSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
- .affineAnims = gUnknown_085929CC,
- .callback = sub_8100A94,
+ .affineAnims = sAffineAnims_FlickeringPunch,
+ .callback = AnimFlickeringPunch,
};
const union AnimCmd gCuttingSliceAnimCmds[] =
@@ -1244,90 +1249,90 @@ const struct SpriteTemplate gAirCutterSliceSpriteTemplate =
.callback = AnimAirCutterSlice,
};
-const union AnimCmd gUnknown_08592A4C[] =
+static const union AnimCmd sAnim_CirclingMusicNote_Eighth[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A54[] =
+static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A5C[] =
+static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth[] =
{
ANIMCMD_FRAME(8, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A64[] =
+static const union AnimCmd sAnim_CirclingMusicNote_Quarter[] =
{
ANIMCMD_FRAME(12, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A6C[] =
+static const union AnimCmd sAnim_CirclingMusicNote_QuarterRest[] =
{
ANIMCMD_FRAME(16, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A74[] =
+static const union AnimCmd sAnim_CirclingMusicNote_EighthRest[] =
{
ANIMCMD_FRAME(20, 1),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A7C[] =
+static const union AnimCmd sAnim_CirclingMusicNote_Eighth_Flipped[] =
{
ANIMCMD_FRAME(0, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A84[] =
+static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth_Flipped[] =
{
ANIMCMD_FRAME(4, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A8C[] =
+static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped[] =
{
ANIMCMD_FRAME(8, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592A94[] =
+static const union AnimCmd sAnim_CirclingMusicNote_Quarter_Flipped[] =
{
ANIMCMD_FRAME(12, 1, .vFlip = TRUE),
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_08592A9C[] =
+static const union AnimCmd *const sAnims_CirclingMusicNote[] =
{
- gUnknown_08592A4C,
- gUnknown_08592A54,
- gUnknown_08592A5C,
- gUnknown_08592A64,
- gUnknown_08592A6C,
- gUnknown_08592A74,
- gUnknown_08592A7C,
- gUnknown_08592A84,
- gUnknown_08592A8C,
- gUnknown_08592A94,
+ sAnim_CirclingMusicNote_Eighth,
+ sAnim_CirclingMusicNote_BeamedEighth,
+ sAnim_CirclingMusicNote_SlantedBeamedEighth,
+ sAnim_CirclingMusicNote_Quarter,
+ sAnim_CirclingMusicNote_QuarterRest,
+ sAnim_CirclingMusicNote_EighthRest,
+ sAnim_CirclingMusicNote_Eighth_Flipped,
+ sAnim_CirclingMusicNote_BeamedEighth_Flipped,
+ sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped,
+ sAnim_CirclingMusicNote_Quarter_Flipped,
};
// Unused
-const struct SpriteTemplate gUnknown_08592AC4 =
+static const struct SpriteTemplate sCirclingMusicNoteSpriteTemplate =
{
.tileTag = ANIM_TAG_MUSIC_NOTES,
.paletteTag = ANIM_TAG_MUSIC_NOTES,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
- .anims = gUnknown_08592A9C,
+ .anims = sAnims_CirclingMusicNote,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8100E1C,
+ .callback = AnimCirclingMusicNote,
};
const struct SpriteTemplate gProtectSpriteTemplate =
@@ -1414,7 +1419,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate =
.callback = AnimSparkingStars,
};
-const union AnimCmd gUnknown_08592BAC[] =
+static const union AnimCmd sAnim_BubbleBurst[] =
{
ANIMCMD_FRAME(0, 10),
ANIMCMD_FRAME(4, 10),
@@ -1427,7 +1432,7 @@ const union AnimCmd gUnknown_08592BAC[] =
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08592BD0[] =
+static const union AnimCmd sAnim_BubbleBurst_Flipped[] =
{
ANIMCMD_FRAME(0, 10, .hFlip = TRUE),
ANIMCMD_FRAME(4, 10, .hFlip = TRUE),
@@ -1440,22 +1445,22 @@ const union AnimCmd gUnknown_08592BD0[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_08592BF4[] =
+static const union AnimCmd *const sAnims_BubbleBurst[] =
{
- gUnknown_08592BAC,
- gUnknown_08592BD0,
+ sAnim_BubbleBurst,
+ sAnim_BubbleBurst_Flipped,
};
// Unused
-const struct SpriteTemplate gUnknown_08592BFC =
+static const struct SpriteTemplate sBubbleBurstSpriteTemplate =
{
.tileTag = ANIM_TAG_BUBBLE_BURST,
.paletteTag = ANIM_TAG_BUBBLE_BURST,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
- .anims = gUnknown_08592BF4,
+ .anims = sAnims_BubbleBurst,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8101440,
+ .callback = AnimBubbleBurst,
};
const union AnimCmd gSleepLetterZAnimCmds[] =
@@ -1556,7 +1561,8 @@ const struct SpriteTemplate gBowMonSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnknown_08592CF0 =
+// Same as BowMon above but without backing up
+static const struct SpriteTemplate sTipMonSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -1564,7 +1570,7 @@ const struct SpriteTemplate gUnknown_08592CF0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8101B90,
+ .callback = AnimTipMon,
};
const union AnimCmd gSlashSliceAnimCmds1[] =
@@ -2684,9 +2690,9 @@ static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite)
destroy = TRUE;
}
- if (sprite->pos1.x + sprite->pos2.x > 256
+ if (sprite->pos1.x + sprite->pos2.x > DISPLAY_WIDTH + 16
|| sprite->pos1.x + sprite->pos2.x < -16
- || sprite->pos1.y + sprite->pos2.y > 160
+ || sprite->pos1.y + sprite->pos2.y > DISPLAY_HEIGHT
|| sprite->pos1.y + sprite->pos2.y < -16)
destroy = TRUE;
@@ -2940,10 +2946,10 @@ static void AnimFrenzyPlantRoot(struct Sprite *sprite)
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
sprite->data[2] = gBattleAnimArgs[5];
sprite->callback = AnimRootFlickerOut;
- gUnknown_0203A0F8[0] = sprite->pos1.x;
- gUnknown_0203A0F8[1] = sprite->pos1.y;
- gUnknown_0203A0F8[2] = targetX;
- gUnknown_0203A0F8[3] = targetY;
+ sFrenzyPlantRootData.startX = sprite->pos1.x;
+ sFrenzyPlantRootData.startY = sprite->pos1.y;
+ sFrenzyPlantRootData.targetX = targetX;
+ sFrenzyPlantRootData.targetY = targetY;
}
static void AnimRootFlickerOut(struct Sprite* sprite)
@@ -2979,7 +2985,7 @@ static void AnimIngrainOrb(struct Sprite* sprite)
DestroyAnimSprite(sprite);
}
-static void sub_80FF9B8(struct Sprite* sprite, s16 c)
+static void InitItemBagData(struct Sprite* sprite, s16 c)
{
int a = (sprite->pos1.x << 8) | sprite->pos1.y;
int b = (sprite->data[6] << 8) | sprite->data[7];
@@ -3005,7 +3011,7 @@ bool8 moveAlongLinearPath(struct Sprite* sprite)
if (xEndPos == 0)
xEndPos = -32;
else if (xEndPos == 255)
- xEndPos = 272;
+ xEndPos = DISPLAY_WIDTH + 32;
yEndPos_2 = yEndPos - yStartPos;
r0 = xEndPos - xStartPos;
@@ -3059,14 +3065,14 @@ static void AnimPresent(struct Sprite* sprite)
{
sprite->data[6] = targetX;
sprite->data[7] = targetY + 10;
- sub_80FF9B8(sprite, 60);
+ InitItemBagData(sprite, 60);
sprite->data[3] = 1;
}
else
{
sprite->data[6] = targetX;
sprite->data[7] = targetY + 10;
- sub_80FF9B8(sprite, 60);
+ InitItemBagData(sprite, 60);
sprite->data[3] = 3;
}
@@ -3101,7 +3107,7 @@ static void AnimKnockOffItem(struct Sprite* sprite)
{
sprite->data[6] = 0;
sprite->data[7] = targetY + 10;
- sub_80FF9B8(sprite, 40);
+ InitItemBagData(sprite, 40);
sprite->data[3] = 3;
sprite->data[4] = 60;
sprite->callback = AnimItemSteal_Step1;
@@ -3113,7 +3119,7 @@ static void AnimKnockOffItem(struct Sprite* sprite)
if (IsContest())
sprite->data[6] = 0;
- sub_80FF9B8(sprite, 40);
+ InitItemBagData(sprite, 40);
sprite->data[3] = 3;
sprite->data[4] = 60;
sprite->callback = AnimKnockOffOpponentsItem;
@@ -3150,14 +3156,14 @@ static void AnimItemSteal(struct Sprite* sprite)
{
sprite->data[6] = attackerX;
sprite->data[7] = attackerY + 10;
- sub_80FF9B8(sprite, 60);
+ InitItemBagData(sprite, 60);
sprite->data[3] = 1;
}
else
{
sprite->data[6] = attackerX;
sprite->data[7] = attackerY + 10;
- sub_80FF9B8(sprite, 60);
+ InitItemBagData(sprite, 60);
sprite->data[3] = 3;
}
@@ -3737,7 +3743,7 @@ static void AnimWhipHit_WaitEnd(struct Sprite* sprite)
DestroyAnimSprite(sprite);
}
-static void sub_81009F8(struct Sprite* sprite)
+static void AnimSlidingHit(struct Sprite* sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -3764,7 +3770,7 @@ static void AnimWhipHit(struct Sprite* sprite)
sprite->pos1.y += gBattleAnimArgs[1];
}
-static void sub_8100A94(struct Sprite* sprite)
+static void AnimFlickeringPunch(struct Sprite* sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
@@ -3879,7 +3885,7 @@ static void AnimSlice_Step(struct Sprite* sprite)
}
}
-void unref_sub_8100D38(struct Sprite* sprite)
+static void UnusedFlickerAnim(struct Sprite* sprite)
{
if (sprite->data[2] > 1)
{
@@ -3912,7 +3918,7 @@ void unref_sub_8100D38(struct Sprite* sprite)
}
}
-static void sub_8100E1C(struct Sprite* sprite)
+static void AnimCirclingMusicNote(struct Sprite* sprite)
{
sprite->data[0] = gBattleAnimArgs[2];
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -3924,11 +3930,11 @@ static void sub_8100E1C(struct Sprite* sprite)
sprite->data[1] = -gBattleAnimArgs[3];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->data[3] = gBattleAnimArgs[4];
- sprite->callback = sub_8100E80;
+ sprite->callback = AnimCirclingMusicNote_Step;
sprite->callback(sprite);
}
-static void sub_8100E80(struct Sprite* sprite)
+static void AnimCirclingMusicNote_Step(struct Sprite* sprite)
{
sprite->pos2.x = Cos(sprite->data[0], 100);
sprite->pos2.y = Sin(sprite->data[0], 20);
@@ -3938,7 +3944,7 @@ static void sub_8100E80(struct Sprite* sprite)
sprite->subpriority = 14;
sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF;
- sprite->data[5] += 0x82;
+ sprite->data[5] += 130;
sprite->pos2.y += sprite->data[5] >> 8;
sprite->data[2]++;
if (sprite->data[2] == sprite->data[3])
@@ -4169,7 +4175,7 @@ static void AnimSparkingStars(struct Sprite* sprite)
sprite->callback = TranslateSpriteLinearFixedPoint;
}
-static void sub_8101440(struct Sprite* sprite)
+static void AnimBubbleBurst(struct Sprite* sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
@@ -4184,10 +4190,10 @@ static void sub_8101440(struct Sprite* sprite)
StartSpriteAnim(sprite, 1);
}
- sprite->callback = sub_81014A0;
+ sprite->callback = AnimBubbleBurst_Step;
}
-static void sub_81014A0(struct Sprite* sprite)
+static void AnimBubbleBurst_Step(struct Sprite* sprite)
{
if (++sprite->data[0] > 30)
{
@@ -4511,13 +4517,13 @@ static void AnimBowMon_Step4(struct Sprite* sprite)
DestroyAnimSprite(sprite);
}
-static void sub_8101B90(struct Sprite *sprite)
+static void AnimTipMon(struct Sprite *sprite)
{
sprite->data[0] = 0;
- sprite->callback = sub_8101BA0;
+ sprite->callback = AnimTipMon_Step;
}
-static void sub_8101BA0(struct Sprite *sprite)
+static void AnimTipMon_Step(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -4912,22 +4918,24 @@ void AnimTask_Conversion2AlphaBlend(u8 taskId)
}
}
-void unref_sub_8102434(u8 taskId)
+// Unused
+static void AnimTask_HideBattlersHealthbox(u8 taskId)
{
u8 i;
for (i = 0; i < gBattlersCount; i++)
{
- if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER)
+ if (gBattleAnimArgs[0] == TRUE && GetBattlerSide(i) == B_SIDE_PLAYER)
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]);
- if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == B_SIDE_OPPONENT)
+ if (gBattleAnimArgs[1] == TRUE && GetBattlerSide(i) == B_SIDE_OPPONENT)
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]);
}
DestroyAnimVisualTask(taskId);
}
-void unref_sub_81024A8(u8 taskId)
+// Unused
+static void AnimTask_ShowBattlersHealthbox(u8 taskId)
{
u8 i;
for (i = 0; i < gBattlersCount; i++)
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index 8142624a2..3a04c8c46 100755
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -16,13 +16,13 @@
#include "constants/rgb.h"
#include "constants/songs.h"
-static void sub_8103448(struct Sprite *);
-static void sub_8103498(struct Sprite *);
-static void sub_81034D8(struct Sprite *);
-static void sub_810358C(struct Sprite *);
-static void sub_8103620(struct Sprite *);
-static void sub_8103658(struct Sprite *);
-static void sub_8103680(struct Sprite *);
+static void AnimCirclingFinger(struct Sprite *);
+static void AnimBouncingMusicNote(struct Sprite *);
+static void AnimBouncingMusicNote_Step(struct Sprite *);
+static void AnimVibrateBattlerBack(struct Sprite *);
+static void AnimMovingClamp(struct Sprite *);
+static void AnimMovingClamp_Step(struct Sprite *);
+static void AnimMovingClamp_End(struct Sprite *);
static void AnimKinesisZapEnergy(struct Sprite *);
static void AnimSwordsDanceBlade(struct Sprite *);
static void AnimSwordsDanceBlade_Step(struct Sprite *);
@@ -30,8 +30,8 @@ static void AnimSonicBoomProjectile(struct Sprite *);
static void AnimAirWaveProjectile(struct Sprite *);
static void AnimAirWaveProjectile_Step1(struct Sprite *sprite);
static void AnimAirWaveProjectile_Step2(struct Sprite *sprite);
-static void sub_8103FE8(struct Sprite *);
-static void sub_8104018(struct Sprite *);
+static void AnimVoidLines(struct Sprite *);
+static void AnimVoidLines_Step(struct Sprite *);
static void AnimCoinThrow(struct Sprite *);
static void AnimFallingCoin(struct Sprite *);
static void AnimFallingCoin_Step(struct Sprite *);
@@ -109,7 +109,7 @@ static void AnimTask_ScaryFace_Step(u8);
static void AnimTask_UproarDistortion_Step(u8);
// Unused
-const struct SpriteTemplate gUnknown_08593264 =
+static const struct SpriteTemplate sCirclingFingerSpriteTemplate =
{
.tileTag = ANIM_TAG_FINGER,
.paletteTag = ANIM_TAG_FINGER,
@@ -117,23 +117,23 @@ const struct SpriteTemplate gUnknown_08593264 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8103448,
+ .callback = AnimCirclingFinger,
};
-const union AnimCmd gUnknown_0859327C[] =
+static const union AnimCmd sAnim_BouncingMusicNote[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
-// Unused
-const union AnimCmd *const gUnknown_08593284[] =
+// Unused (association assumed)
+static const union AnimCmd *const sAnims_BouncingMusicNote[] =
{
- gUnknown_0859327C,
+ sAnim_BouncingMusicNote,
};
// Unused
-const struct SpriteTemplate gUnknown_08593288 =
+static const struct SpriteTemplate sBouncingMusicNoteSpriteTemplate =
{
.tileTag = ANIM_TAG_MUSIC_NOTES,
.paletteTag = ANIM_TAG_MUSIC_NOTES,
@@ -141,11 +141,11 @@ const struct SpriteTemplate gUnknown_08593288 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8103498,
+ .callback = AnimBouncingMusicNote,
};
// Unused
-const struct SpriteTemplate gUnknown_085932A0 =
+static const struct SpriteTemplate sVibrateBattlerBackSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -153,11 +153,11 @@ const struct SpriteTemplate gUnknown_085932A0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_810358C,
+ .callback = AnimVibrateBattlerBack,
};
// Unused
-const struct SpriteTemplate gUnknown_085932B8 =
+static const struct SpriteTemplate sMovingClampSpriteTemplate =
{
.tileTag = ANIM_TAG_CLAMP,
.paletteTag = ANIM_TAG_CLAMP,
@@ -165,10 +165,10 @@ const struct SpriteTemplate gUnknown_085932B8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gAffineAnims_Bite,
- .callback = sub_8103620,
+ .callback = AnimMovingClamp,
};
-const union AnimCmd gUnknown_085932D0[] =
+static const union AnimCmd sAnim_SmallExplosion[] =
{
ANIMCMD_FRAME(0, 9),
ANIMCMD_FRAME(16, 3),
@@ -177,32 +177,32 @@ const union AnimCmd gUnknown_085932D0[] =
ANIMCMD_END,
};
-const union AnimCmd *const gUnknown_085932E4[] =
+static const union AnimCmd *const sAnims_SmallExplosion[] =
{
- gUnknown_085932D0,
+ sAnim_SmallExplosion,
};
-const union AffineAnimCmd gUnknown_085932E8[] =
+static const union AffineAnimCmd sAffineAnim_SmallExplosion[] =
{
AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0),
AFFINEANIMCMD_FRAME(0x9, 0x9, 0, 18),
AFFINEANIMCMD_END,
};
-const union AffineAnimCmd *const gUnknown_08593300[] =
+static const union AffineAnimCmd *const sAffineAnims_SmallExplosion[] =
{
- gUnknown_085932E8,
+ sAffineAnim_SmallExplosion,
};
// Unused
-const struct SpriteTemplate gUnknown_08593304 =
+static const struct SpriteTemplate sSmallExplosionSpriteTemplate =
{
.tileTag = ANIM_TAG_EXPLOSION_6,
.paletteTag = ANIM_TAG_EXPLOSION_6,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
- .anims = gUnknown_085932E4,
+ .anims = sAnims_SmallExplosion,
.images = NULL,
- .affineAnims = gUnknown_08593300,
+ .affineAnims = sAffineAnims_SmallExplosion,
.callback = AnimSpriteOnMonPos,
};
@@ -366,7 +366,7 @@ const struct SpriteTemplate gEggThrowSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnknown_085934A0 =
+static const struct SpriteTemplate sVoidLinesSpriteTemplate =
{
.tileTag = ANIM_TAG_VOID_LINES,
.paletteTag = ANIM_TAG_VOID_LINES,
@@ -374,7 +374,7 @@ const struct SpriteTemplate gUnknown_085934A0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_8103FE8,
+ .callback = AnimVoidLines,
};
const union AnimCmd gCoinAnimCmds[] =
@@ -1096,7 +1096,7 @@ const struct SpriteTemplate gDevilSpriteTemplate =
.callback = AnimDevil,
};
-const union AnimCmd gUnknown_08593B08[] =
+static const union AnimCmd sAnim_FurySwipes[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
@@ -1105,7 +1105,7 @@ const union AnimCmd gUnknown_08593B08[] =
ANIMCMD_END,
};
-const union AnimCmd gUnknown_08593B1C[] =
+static const union AnimCmd sAnim_FurySwipes_Flipped[] =
{
ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
ANIMCMD_FRAME(16, 4, .hFlip = TRUE),
@@ -1114,10 +1114,10 @@ const union AnimCmd gUnknown_08593B1C[] =
ANIMCMD_END,
};
-const union AnimCmd *const gFurySwipesAnimTable[] =
+static const union AnimCmd *const sAnims_FurySwipes[] =
{
- gUnknown_08593B08,
- gUnknown_08593B1C,
+ sAnim_FurySwipes,
+ sAnim_FurySwipes_Flipped,
};
const struct SpriteTemplate gFurySwipesSpriteTemplate =
@@ -1125,7 +1125,7 @@ const struct SpriteTemplate gFurySwipesSpriteTemplate =
.tileTag = ANIM_TAG_SWIPE,
.paletteTag = ANIM_TAG_SWIPE,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = gFurySwipesAnimTable,
+ .anims = sAnims_FurySwipes,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFurySwipes,
@@ -1262,7 +1262,7 @@ const struct SpriteTemplate gGuardRingSpriteTemplate =
.callback = AnimGuardRing,
};
-static void sub_8103448(struct Sprite *sprite)
+static void AnimCirclingFinger(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
@@ -1276,7 +1276,7 @@ static void sub_8103448(struct Sprite *sprite)
sprite->callback(sprite);
}
-static void sub_8103498(struct Sprite *sprite)
+static void AnimBouncingMusicNote(struct Sprite *sprite)
{
u8 battler;
if (gBattleAnimArgs[0] == 0)
@@ -1287,10 +1287,10 @@ static void sub_8103498(struct Sprite *sprite)
SetSpriteNextToMonHead(battler, sprite);
sprite->data[0] = 0;
sprite->data[1] = 0;
- sprite->callback = sub_81034D8;
+ sprite->callback = AnimBouncingMusicNote_Step;
}
-static void sub_81034D8(struct Sprite *sprite)
+static void AnimBouncingMusicNote_Step(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1311,7 +1311,7 @@ static void sub_81034D8(struct Sprite *sprite)
}
}
-static void sub_810353C(struct Sprite *sprite)
+static void AnimVibrateBattlerBack_Step(struct Sprite *sprite)
{
s16 temp;
gSprites[sprite->data[2]].pos2.x += sprite->data[1];
@@ -1326,7 +1326,7 @@ static void sub_810353C(struct Sprite *sprite)
sprite->data[0]--;
}
-static void sub_810358C(struct Sprite *sprite)
+static void AnimVibrateBattlerBack(struct Sprite *sprite)
{
u8 spriteId;
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
@@ -1341,30 +1341,30 @@ static void sub_810358C(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[2] = spriteId;
- sprite->callback = sub_810353C;
+ sprite->callback = AnimVibrateBattlerBack_Step;
sprite->invisible = TRUE;
}
-static void sub_8103620(struct Sprite *sprite)
+static void AnimMovingClamp(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[4];
sprite->callback = WaitAnimForDuration;
- StoreSpriteCallbackInData6(sprite, sub_8103658);
+ StoreSpriteCallbackInData6(sprite, AnimMovingClamp_Step);
}
-static void sub_8103658(struct Sprite *sprite)
+static void AnimMovingClamp_Step(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[1];
sprite->data[2] = sprite->pos1.x;
sprite->data[4] = sprite->pos1.y + 15;
sprite->callback = StartAnimLinearTranslation;
- StoreSpriteCallbackInData6(sprite, sub_8103680);
+ StoreSpriteCallbackInData6(sprite, AnimMovingClamp_End);
}
-static void sub_8103680(struct Sprite *sprite)
+static void AnimMovingClamp_End(struct Sprite *sprite)
{
if (sprite->data[5] == 0)
DestroyAnimSprite(sprite);
@@ -1738,14 +1738,14 @@ void AnimTask_AirCutterProjectile(u8 taskId)
gTasks[taskId].func = AirCutterProjectileStep1;
}
-static void sub_8103FE8(struct Sprite *sprite)
+static void AnimVoidLines(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, FALSE);
- sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(gUnknown_085934A0.paletteTag) << 4);
- sprite->callback = sub_8104018;
+ sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4);
+ sprite->callback = AnimVoidLines_Step;
}
-static void sub_8104018(struct Sprite *sprite)
+static void AnimVoidLines_Step(struct Sprite *sprite)
{
u16 id, val;
int i;
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index 0c56c6bca..67452fe90 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -91,7 +91,7 @@ static void AnimMeteorMashStar(struct Sprite *);
static void AnimMeteorMashStar_Step(struct Sprite *sprite);
static void AnimBlockX(struct Sprite *);
static void AnimBlockX_Step(struct Sprite *);
-static void sub_815FE80(struct Sprite *);
+static void AnimUnusedItemBagSteal(struct Sprite *);
static void AnimKnockOffStrike(struct Sprite *);
static void AnimKnockOffStrike_Step(struct Sprite *sprite);
static void AnimRecycle(struct Sprite *);
@@ -432,7 +432,7 @@ const struct SpriteTemplate gRapidSpinSpriteTemplate =
.callback = AnimRapidSpin,
};
-const union AffineAnimCmd gUnknown_085CE2A0[] =
+static const union AffineAnimCmd sAffineAnims_Torment[] =
{
AFFINEANIMCMD_FRAME(-12, 8, 0, 4),
AFFINEANIMCMD_FRAME(20, -20, 0, 4),
@@ -718,7 +718,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate =
.callback = AnimSweetScentPetal,
};
-const u16 gUnknown_085CE55C[] = INCBIN_U16("graphics/unknown/unknown_85CE55C.gbapal");
+static const u16 sUnusedPalette[] = INCBIN_U16("graphics/battle_anims/unused.gbapal");
const union AnimCmd gPainSplitAnimCmds[] =
{
@@ -1071,7 +1071,7 @@ const struct SpriteTemplate gMeteorMashStarSpriteTemplate =
.callback = AnimMeteorMashStar,
};
-const struct SpriteTemplate gUnknown_085CE8F4 =
+static const struct SpriteTemplate sUnusedStarBurstSpriteTemplate =
{
.tileTag = ANIM_TAG_GOLD_STARS,
.paletteTag = ANIM_TAG_GOLD_STARS,
@@ -1093,7 +1093,7 @@ const struct SpriteTemplate gBlockXSpriteTemplate =
.callback = AnimBlockX,
};
-const struct SpriteTemplate gUnknown_085CE924 =
+static const struct SpriteTemplate sUnusedItemBagStealSpriteTemplate =
{
.tileTag = ANIM_TAG_ITEM_BAG,
.paletteTag = ANIM_TAG_ITEM_BAG,
@@ -1101,7 +1101,7 @@ const struct SpriteTemplate gUnknown_085CE924 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_815FE80,
+ .callback = AnimUnusedItemBagSteal,
};
const union AnimCmd gKnockOffStrikeAnimCmds[] =
@@ -1944,7 +1944,7 @@ static void TormentAttacker_Step(u8 taskId)
task->data[5] -= 6;
}
- PrepareAffineAnimInTaskData(task, task->data[15], gUnknown_085CE2A0);
+ PrepareAffineAnimInTaskData(task, task->data[15], sAffineAnims_Torment);
task->data[1]++;
task->data[0] = 1;
break;
@@ -3580,7 +3580,7 @@ static void AnimSmokeBallEscapeCloud(struct Sprite *sprite)
sprite->callback = DestroyAnimSpriteAfterTimer;
}
-static void sub_815D8D8(u8 taskId)
+static void AnimTask_SlideMonForFocusBand_Step2(u8 taskId)
{
u16 var0 = 0;
u16 var1 = 0;
@@ -3630,7 +3630,7 @@ static void sub_815D8D8(u8 taskId)
}
}
-static void sub_815DA20(u8 taskId)
+static void AnimTask_SlideMonForFocusBand_Step1(u8 taskId)
{
u16 var0 = 0;
u16 var1 = 0;
@@ -3679,7 +3679,7 @@ static void sub_815DA20(u8 taskId)
{
gTasks[taskId].data[0] = 30;
gTasks[taskId].data[13] = 0;
- gTasks[taskId].func = sub_815D8D8;
+ gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step2;
}
}
@@ -3714,7 +3714,7 @@ void AnimTask_SlideMonForFocusBand(u8 taskId)
gTasks[taskId].data[7] = 0;
gTasks[taskId].data[4] = gBattleAnimArgs[4];
gTasks[taskId].data[5] = gBattleAnimArgs[5];
- gTasks[taskId].func = sub_815DA20;
+ gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1;
}
// Squishes the mon vertically and emits sweat droplets a few times.
@@ -4737,7 +4737,7 @@ void AnimTask_MonToSubstitute(u8 taskId)
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimAttacker]], 0);
}
- for (i = 0; i < 16; i++)
+ for (i = 0; i < NUM_TASK_DATA; i++)
gTasks[taskId].data[i] = 0;
gTasks[taskId].func = AnimTask_MonToSubstituteDoll;
@@ -5143,7 +5143,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
}
}
-static void sub_815FE80(struct Sprite *sprite)
+static void AnimUnusedItemBagSteal(struct Sprite *sprite)
{
switch (sprite->data[7])
{
diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c
index 1e24f8a16..2c5c7e0f1 100644
--- a/src/battle_anim_electric.c
+++ b/src/battle_anim_electric.c
@@ -7,9 +7,9 @@
static void AnimLightning(struct Sprite *);
static void AnimLightning_Step(struct Sprite *);
-static void AnimUnused_0810A214(struct Sprite *);
-static void AnimUnused_0810A214_Step(struct Sprite *);
-static void AnimUnused_0810A274(struct Sprite *);
+static void AnimUnusedSpinningFist(struct Sprite *);
+static void AnimUnusedSpinningFist_Step(struct Sprite *);
+static void AnimUnusedCirclingShock(struct Sprite *);
static void AnimSparkElectricity(struct Sprite *);
static void AnimZapCannonSpark(struct Sprite *);
static void AnimZapCannonSpark_Step(struct Sprite *);
@@ -63,7 +63,7 @@ const struct SpriteTemplate gLightningSpriteTemplate =
.callback = AnimLightning,
};
-static const union AffineAnimCmd sAnim_Unused_085956D8[] =
+static const union AffineAnimCmd sAffineAnim_UnusedSpinningFist[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20),
@@ -71,24 +71,24 @@ static const union AffineAnimCmd sAnim_Unused_085956D8[] =
AFFINEANIMCMD_END,
};
-static const union AffineAnimCmd *const sAnims_Unused_085956F8[] =
+static const union AffineAnimCmd *const sAffineAnims_UnusedSpinningFist[] =
{
- sAnim_Unused_085956D8,
+ sAffineAnim_UnusedSpinningFist,
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_085956FC =
+static const struct SpriteTemplate sUnusedSpinningFistSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
- .affineAnims = sAnims_Unused_085956F8,
- .callback = AnimUnused_0810A214,
+ .affineAnims = sAffineAnims_UnusedSpinningFist,
+ .callback = AnimUnusedSpinningFist,
};
-static const union AnimCmd sAnim_Unused_08595714[] =
+static const union AnimCmd sAnim_UnusedCirclingShock[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(16, 5),
@@ -99,21 +99,21 @@ static const union AnimCmd sAnim_Unused_08595714[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const sAnims_Unused_08595730[] =
+static const union AnimCmd *const sAnims_UnusedCirclingShock[] =
{
- sAnim_Unused_08595714,
+ sAnim_UnusedCirclingShock,
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_08595734 =
+static const struct SpriteTemplate sUnusedCirclingShockSpriteTemplate =
{
.tileTag = ANIM_TAG_SHOCK,
.paletteTag = ANIM_TAG_SHOCK,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sAnims_Unused_08595730,
+ .anims = sAnims_UnusedCirclingShock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_0810A274,
+ .callback = AnimUnusedCirclingShock,
};
const struct SpriteTemplate gSparkElectricitySpriteTemplate =
@@ -473,23 +473,23 @@ static void AnimLightning_Step(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
-static void AnimUnused_0810A214(struct Sprite *sprite)
+static void AnimUnusedSpinningFist(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->pos1.x -= gBattleAnimArgs[0];
else
sprite->pos1.x += gBattleAnimArgs[0];
- sprite->callback = AnimUnused_0810A214_Step;
+ sprite->callback = AnimUnusedSpinningFist_Step;
}
-static void AnimUnused_0810A214_Step(struct Sprite *sprite)
+static void AnimUnusedSpinningFist_Step(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
DestroySpriteAndMatrix(sprite);
}
-static void AnimUnused_0810A274(struct Sprite *sprite)
+static void AnimUnusedCirclingShock(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c
index 328f178ae..b3399901e 100644
--- a/src/battle_anim_fight.c
+++ b/src/battle_anim_fight.c
@@ -6,7 +6,7 @@
#include "trig.h"
#include "constants/rgb.h"
-static void AnimUnused_080B08A0(struct Sprite *);
+static void AnimUnusedHumanoidFoot(struct Sprite *);
static void AnimSlideHandOrFootToTarget(struct Sprite *);
static void AnimJumpKick(struct Sprite *);
static void AnimBasicFistOrFoot(struct Sprite *);
@@ -40,7 +40,7 @@ static void AnimSpinningKickOrPunchFinish(struct Sprite *);
extern struct SpriteTemplate gBasicHitSplatSpriteTemplate;
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_08595E14 =
+static const struct SpriteTemplate sUnusedHumanoidFootSpriteTemplate =
{
.tileTag = ANIM_TAG_HUMANOID_FOOT,
.paletteTag = ANIM_TAG_HUMANOID_FOOT,
@@ -48,7 +48,7 @@ const struct SpriteTemplate gUnusedSpriteTemplate_08595E14 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_080B08A0,
+ .callback = AnimUnusedHumanoidFoot,
};
static const union AnimCmd sAnim_Fist[] =
@@ -409,7 +409,7 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate =
.callback = AnimFocusPunchFist,
};
-static void AnimUnused_080B08A0(struct Sprite *sprite)
+static void AnimUnusedHumanoidFoot(struct Sprite *sprite)
{
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
diff --git a/src/battle_anim_fire.c b/src/battle_anim_fire.c
index 5b43f4276..e18d72c31 100644
--- a/src/battle_anim_fire.c
+++ b/src/battle_anim_fire.c
@@ -12,8 +12,8 @@ static void AnimFireSpread(struct Sprite *);
static void AnimFirePlume(struct Sprite *);
static void AnimLargeFlame(struct Sprite *);
static void AnimLargeFlame_Step(struct Sprite *);
-static void AnimUnused_8109064(struct Sprite *);
-static void AnimUnused_8109064_Step(struct Sprite *);
+static void AnimUnusedSmallEmber(struct Sprite *);
+static void AnimUnusedSmallEmber_Step(struct Sprite *);
static void AnimSunlight(struct Sprite *);
static void AnimEmberFlare(struct Sprite *);
static void AnimBurnFlame(struct Sprite *);
@@ -162,7 +162,7 @@ const struct SpriteTemplate gFirePlumeSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_08595440 =
+static const struct SpriteTemplate sUnusedEmberFirePlumeSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
@@ -173,7 +173,7 @@ const struct SpriteTemplate gUnusedSpriteTemplate_08595440 =
.callback = AnimFirePlume,
};
-static const union AnimCmd sAnim_Unused_08595458[] =
+static const union AnimCmd sAnim_UnusedSmallEmber[] =
{
ANIMCMD_FRAME(16, 6),
ANIMCMD_FRAME(32, 6),
@@ -181,21 +181,21 @@ static const union AnimCmd sAnim_Unused_08595458[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const sAnims_Unused_08595468[] =
+static const union AnimCmd *const sAnims_UnusedSmallEmber[] =
{
- sAnim_Unused_08595458,
+ sAnim_UnusedSmallEmber,
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_0859546C =
+static const struct SpriteTemplate sUnusedSmallEmberSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sAnims_Unused_08595468,
+ .anims = sAnims_UnusedSmallEmber,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_8109064,
+ .callback = AnimUnusedSmallEmber,
};
static const union AffineAnimCmd sAffineAnim_SunlightRay[] =
@@ -292,23 +292,23 @@ static const union AnimCmd *const sAnims_FireBlastCross[] =
sAnim_FireBlastCross,
};
-static const union AffineAnimCmd sAnim_Unused_08595544[] =
+static const union AffineAnimCmd sAffineAnim_Unused_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
AFFINEANIMCMD_END,
};
-static const union AffineAnimCmd sAnim_Unused_08595554[] =
+static const union AffineAnimCmd sAffineAnim_Unused_1[] =
{
AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0),
AFFINEANIMCMD_END,
};
// Unused
-static const union AffineAnimCmd *const sAnims_Unused_08595564[] =
+static const union AffineAnimCmd *const sAffineAnims_Unused[] =
{
- sAnim_Unused_08595544,
- sAnim_Unused_08595554,
+ sAffineAnim_Unused_0,
+ sAffineAnim_Unused_1,
};
const struct SpriteTemplate gFireBlastCrossSpriteTemplate =
@@ -548,7 +548,7 @@ static void AnimLargeFlame_Step(struct Sprite *sprite)
DestroySpriteAndMatrix(sprite);
}
-static void AnimUnused_8109064(struct Sprite *sprite)
+static void AnimUnusedSmallEmber(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
@@ -570,10 +570,10 @@ static void AnimUnused_8109064(struct Sprite *sprite)
sprite->data[4] = gBattleAnimArgs[6];
sprite->data[5] = 0;
- sprite->callback = AnimUnused_8109064_Step;
+ sprite->callback = AnimUnusedSmallEmber_Step;
}
-static void AnimUnused_8109064_Step(struct Sprite *sprite)
+static void AnimUnusedSmallEmber_Step(struct Sprite *sprite)
{
if (sprite->data[3])
{
diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c
index 060149a9e..5955d203e 100644
--- a/src/battle_anim_flying.c
+++ b/src/battle_anim_flying.c
@@ -20,7 +20,7 @@ static void AnimFlyBallAttack_Step(struct Sprite *);
static void AnimFallingFeather(struct Sprite *);
static void AnimFallingFeather_Step(struct Sprite *);
static void AnimWhirlwindLine_Step(struct Sprite *);
-static void AnimUnused_810EA4C(struct Sprite *);
+static void AnimUnusedBubbleThrow(struct Sprite *);
static void AnimWhirlwindLine(struct Sprite *);
static void AnimBounceBallShrink(struct Sprite *);
static void AnimBounceBallLand(struct Sprite *);
@@ -30,8 +30,8 @@ static void AnimDiveBall_Step2(struct Sprite *);
static void AnimDiveWaterSplash(struct Sprite *);
static void AnimSprayWaterDroplet(struct Sprite *);
static void AnimSprayWaterDroplet_Step(struct Sprite *);
-static void AnimUnused_810F004(struct Sprite *);
-static void AnimUnused_810F004_Step(struct Sprite *);
+static void AnimUnusedFlashingLight(struct Sprite *);
+static void AnimUnusedFlashingLight_Step(struct Sprite *);
static void AnimSkyAttackBird(struct Sprite *);
static void AnimSkyAttackBird_Step(struct Sprite *);
static void AnimTask_AnimateGustTornadoPalette_Step(u8);
@@ -180,7 +180,7 @@ const struct SpriteTemplate gFallingFeatherSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_085963A0 =
+static const struct SpriteTemplate sUnusedBubbleThrowSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES,
@@ -188,7 +188,7 @@ const struct SpriteTemplate gUnusedSpriteTemplate_085963A0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_810EA4C,
+ .callback = AnimUnusedBubbleThrow,
};
static const union AnimCmd sAnim_WhirlwindLines[] =
@@ -290,7 +290,7 @@ const struct SpriteTemplate gDiveBallSpriteTemplate =
.callback = AnimDiveBall,
};
-static const union AffineAnimCmd sAnim_Unused_085964A8[] =
+static const union AffineAnimCmd sAnim_Unused[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0),
AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12),
@@ -299,9 +299,9 @@ static const union AffineAnimCmd sAnim_Unused_085964A8[] =
};
// Unused
-static const union AffineAnimCmd *const sAnims_Unused_085964C8[] =
+static const union AffineAnimCmd *const sAnims_Unused[] =
{
- sAnim_Unused_085964A8,
+ sAnim_Unused,
};
const struct SpriteTemplate gDiveWaterSplashSpriteTemplate =
@@ -327,7 +327,7 @@ const struct SpriteTemplate gSprayWaterDropletSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_085964FC =
+static const struct SpriteTemplate sUnusedFlashingLightSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
@@ -335,7 +335,7 @@ const struct SpriteTemplate gUnusedSpriteTemplate_085964FC =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_810F004,
+ .callback = AnimUnusedFlashingLight,
};
const struct SpriteTemplate gSkyAttackBirdSpriteTemplate =
@@ -892,7 +892,7 @@ static void AnimFallingFeather_Step(struct Sprite *sprite)
}
}
-static void AnimUnused_810EA4C(struct Sprite *sprite)
+static void AnimUnusedBubbleThrow(struct Sprite *sprite)
{
sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
@@ -1158,14 +1158,14 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
-static void AnimUnused_810F004(struct Sprite *sprite)
+static void AnimUnusedFlashingLight(struct Sprite *sprite)
{
sprite->data[6] = 0;
sprite->data[7] = 64;
- sprite->callback = AnimUnused_810F004_Step;
+ sprite->callback = AnimUnusedFlashingLight_Step;
}
-static void AnimUnused_810F004_Step(struct Sprite *sprite)
+static void AnimUnusedFlashingLight_Step(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1220,7 +1220,8 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite)
DestroySpriteAndMatrix(sprite);
}
-void AnimTask_Unused_810F184(u8 taskId)
+// Unused
+static void AnimTask_SetAttackerVisibility(u8 taskId)
{
if (gBattleAnimArgs[0] == 0)
{
diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c
index 2e4a2318d..4b253a7ec 100644
--- a/src/battle_anim_ghost.c
+++ b/src/battle_anim_ghost.c
@@ -39,8 +39,8 @@ static void AnimGhostStatusSprite(struct Sprite *);
static void AnimGhostStatusSprite_Step(struct Sprite *);
static void AnimTask_GrudgeFlames_Step(u8 taskId);
static void AnimGrudgeFlame(struct Sprite *);
-static void AnimUnused_8112F60(struct Sprite *);
-static void AnimUnused_8112F60_Step(struct Sprite *);
+static void AnimMonMoveCircular(struct Sprite *);
+static void AnimMonMoveCircular_Step(struct Sprite *);
static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] =
{
@@ -124,16 +124,16 @@ const struct SpriteTemplate gLickSpriteTemplate =
.callback = AnimLick,
};
-static const union AffineAnimCmd sAnim_Unused_08596DA4[] =
+static const union AffineAnimCmd sAffineAnim_Unused[] =
{
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_END,
};
// Unused
-static const union AffineAnimCmd *const gAnims_Unused_08596DB4[] =
+static const union AffineAnimCmd *const sAffineAnims_Unused[] =
{
- sAnim_Unused_08596DA4,
+ sAffineAnim_Unused,
};
const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate =
@@ -206,7 +206,7 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate =
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_08596E48 =
+static const struct SpriteTemplate sMonMoveCircularSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -214,7 +214,7 @@ const struct SpriteTemplate gUnusedSpriteTemplate_08596E48 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_8112F60,
+ .callback = AnimMonMoveCircular,
};
static void AnimConfuseRayBallBounce(struct Sprite *sprite)
@@ -1302,7 +1302,7 @@ static void AnimGrudgeFlame(struct Sprite *sprite)
}
}
-static void AnimUnused_8112F60(struct Sprite *sprite)
+static void AnimMonMoveCircular(struct Sprite *sprite)
{
sprite->invisible = TRUE;
sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker];
@@ -1310,12 +1310,12 @@ static void AnimUnused_8112F60(struct Sprite *sprite)
sprite->data[1] = 10;
sprite->data[2] = gBattleAnimArgs[0];
sprite->data[3] = gBattleAnimArgs[1];
- sprite->callback = AnimUnused_8112F60_Step;
+ sprite->callback = AnimMonMoveCircular_Step;
gSprites[sprite->data[5]].pos1.y += 8;
}
-static void AnimUnused_8112F60_Step(struct Sprite *sprite)
+static void AnimMonMoveCircular_Step(struct Sprite *sprite)
{
if (sprite->data[3])
{
diff --git a/src/battle_anim_ice.c b/src/battle_anim_ice.c
index 53aa14cff..b97ccf9cd 100644
--- a/src/battle_anim_ice.c
+++ b/src/battle_anim_ice.c
@@ -20,8 +20,8 @@ struct HailStruct {
s32 unk3:4;
};
-static void AnimUnused_810B6C4(struct Sprite *);
-static void AnimUnused_810B6C4_Step(struct Sprite *);
+static void AnimUnusedIceCrystalThrow(struct Sprite *);
+static void AnimUnusedIceCrystalThrow_Step(struct Sprite *);
static void AnimIcePunchSwirlingParticle(struct Sprite *);
static void AnimIceBeamParticle(struct Sprite *);
static void AnimIceEffectParticle(struct Sprite *);
@@ -49,20 +49,20 @@ static void AnimTask_LoadMistTiles_Step(u8);
static void AnimTask_Hail2(u8);
static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
-static const union AnimCmd sAnim_Unused_08595A48[] =
+static const union AnimCmd sAnim_Unused[] =
{
ANIMCMD_FRAME(0, 5, .hFlip = TRUE),
ANIMCMD_FRAME(1, 5, .hFlip = TRUE),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const sAnims_Unused_08595A54[] =
+static const union AnimCmd *const sAnims_Unused[] =
{
- sAnim_Unused_08595A48,
+ sAnim_Unused,
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_08595A58 =
+static const struct SpriteTemplate sUnusedIceCrystalThrowSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
@@ -70,10 +70,10 @@ const struct SpriteTemplate gUnusedSpriteTemplate_08595A58 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_810B6C4,
+ .callback = AnimUnusedIceCrystalThrow,
};
-static const union AnimCmd sAnim_Unused_08595A70[] =
+static const union AnimCmd sAnim_IceCrystalLargeChunk[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
@@ -110,10 +110,10 @@ static const union AnimCmd sAnim_SmallBubblePair[] =
ANIMCMD_JUMP(0),
};
-// Unused
-static const union AnimCmd *const sAnims_Unused_08595AA4[] =
+// Unused, contains just the top left corner of the large ice crystal
+static const union AnimCmd *const sAnims_IceCrystalLargeChunk[] =
{
- sAnim_Unused_08595A70,
+ sAnim_IceCrystalLargeChunk,
};
static const union AnimCmd *const sAnims_IceCrystalLarge[] =
@@ -524,7 +524,7 @@ const struct SpriteTemplate gIceBallImpactShardSpriteTemplate =
};
// Unused
-static void AnimUnused_810B6C4(struct Sprite *sprite)
+static void AnimUnusedIceCrystalThrow(struct Sprite *sprite)
{
s16 targetX, targetY, attackerX, attackerY;
@@ -540,13 +540,13 @@ static void AnimUnused_810B6C4(struct Sprite *sprite)
sprite->data[4] = gBattleAnimArgs[3] + targetY;
sub_80A64EC(sprite);
- for (;(targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192);
+ for (;(targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32);
targetX += sprite->data[1], targetY += sprite->data[2])
;
sprite->data[1] = -sprite->data[1];
sprite->data[2] = -sprite->data[2];
- for (;(attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192);
+ for (;(attackerX >= -32 && attackerX <= DISPLAY_WIDTH + 32) && (attackerY >= -32 && attackerY <= DISPLAY_HEIGHT + 32);
attackerX += sprite->data[1], attackerY += sprite->data[2])
;
@@ -560,10 +560,10 @@ static void AnimUnused_810B6C4(struct Sprite *sprite)
sub_80A64EC(sprite);
sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6];
- sprite->callback = AnimUnused_810B6C4_Step;
+ sprite->callback = AnimUnusedIceCrystalThrow_Step;
}
-static void AnimUnused_810B6C4_Step(struct Sprite *sprite)
+static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite)
{
if (sprite->data[0] != 0)
{
diff --git a/src/battle_anim_normal.c b/src/battle_anim_normal.c
index 60ec5b083..9be56880a 100644
--- a/src/battle_anim_normal.c
+++ b/src/battle_anim_normal.c
@@ -12,7 +12,7 @@ static void AnimSimplePaletteBlend_Step(struct Sprite *);
static void AnimComplexPaletteBlend(struct Sprite *);
static void AnimComplexPaletteBlend_Step1(struct Sprite *);
static void AnimComplexPaletteBlend_Step2(struct Sprite *);
-static void AnimUnused_81159B4(struct Sprite *);
+static void AnimCirclingSparkle(struct Sprite *);
static void AnimShakeMonOrBattleTerrain(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *);
static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void);
@@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate =
.callback = AnimComplexPaletteBlend,
};
-static const union AnimCmd sAnim_Unused_085972A4[] =
+static const union AnimCmd sAnim_CirclingSparkle[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -102,21 +102,21 @@ static const union AnimCmd sAnim_Unused_085972A4[] =
ANIMCMD_JUMP(0),
};
-static const union AnimCmd *const sAnims_Unused_085972BC[] =
+static const union AnimCmd *const sAnims_CirclingSparkle[] =
{
- sAnim_Unused_085972A4,
+ sAnim_CirclingSparkle,
};
// Unused
-const struct SpriteTemplate gUnusedSpriteTemplate_085972C0 =
+static const struct SpriteTemplate sCirclingSparkleSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARKLE_4,
.paletteTag = ANIM_TAG_SPARKLE_4,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sAnims_Unused_085972BC,
+ .anims = sAnims_CirclingSparkle,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_81159B4,
+ .callback = AnimCirclingSparkle,
};
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
@@ -398,7 +398,7 @@ static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite)
}
}
-static void AnimUnused_81159B4(struct Sprite *sprite)
+static void AnimCirclingSparkle(struct Sprite *sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c
index 9221116ba..e7ef05673 100644
--- a/src/battle_anim_status_effects.c
+++ b/src/battle_anim_status_effects.c
@@ -17,14 +17,14 @@ extern const u8 *const gBattleAnims_StatusConditions[];
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
extern const struct OamData gOamData_AffineOff_ObjBlend_64x64;
-static void UnusedTask_80A9DB4(u8 taskId);
+static void Task_UpdateFlashingCircleImpacts(u8 taskId);
static void AnimTask_FrozenIceCube_Step1(u8 taskId);
static void AnimTask_FrozenIceCube_Step2(u8 taskId);
static void AnimTask_FrozenIceCube_Step3(u8 taskId);
static void AnimTask_FrozenIceCube_Step4(u8 taskId);
static void Task_DoStatusAnimation(u8 taskId);
-static void AnimUnused_80A9E44(struct Sprite *sprite);
-static void AnimUnused_80A9E44_Step(struct Sprite *sprite);
+static void AnimFlashingCircleImpact(struct Sprite *sprite);
+static void AnimFlashingCircleImpact_Step(struct Sprite *sprite);
static const union AnimCmd sAnim_Unused_853EDE4[] =
{
@@ -259,7 +259,7 @@ static const struct SpriteTemplate gFrozenIceCubeSpriteTemplate =
.callback = SpriteCallbackDummy,
};
-static const struct SpriteTemplate gUnusedSpriteTemplate_0853EF60 =
+static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_IMPACT,
.paletteTag = ANIM_TAG_CIRCLE_IMPACT,
@@ -267,31 +267,31 @@ static const struct SpriteTemplate gUnusedSpriteTemplate_0853EF60 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = AnimUnused_80A9E44,
+ .callback = AnimFlashingCircleImpact,
};
// Unused
-u8 Unused_80A9C70(u8 battlerId, bool8 b)
+static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 red)
{
u8 battlerSpriteId = gBattlerSpriteIds[battlerId];
- u8 taskId = CreateTask(UnusedTask_80A9DB4, 10);
- u8 spriteId2;
+ u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10);
+ u8 spriteId;
u8 i;
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(ANIM_TAG_CIRCLE_IMPACT)]);
gTasks[taskId].data[0] = battlerId;
- if (b)
+ if (red)
{
gTasks[taskId].data[1] = RGB_RED;
for (i = 0; i < 10; i++)
{
- spriteId2 = CreateSprite(&gUnusedSpriteTemplate_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0);
- gSprites[spriteId2].data[0] = i * 51;
- gSprites[spriteId2].data[1] = -256;
- gSprites[spriteId2].invisible = TRUE;
+ spriteId = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y + 32, 0);
+ gSprites[spriteId].data[0] = i * 51;
+ gSprites[spriteId].data[1] = -256;
+ gSprites[spriteId].invisible = TRUE;
if (i > 4)
- gSprites[spriteId2].data[6] = 21;
+ gSprites[spriteId].data[6] = 21;
}
}
else
@@ -299,19 +299,19 @@ u8 Unused_80A9C70(u8 battlerId, bool8 b)
gTasks[taskId].data[1] = RGB_BLUE;
for (i = 0; i < 10; i++)
{
- spriteId2 = CreateSprite(&gUnusedSpriteTemplate_0853EF60, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0);
- gSprites[spriteId2].data[0] = i * 51;
- gSprites[spriteId2].data[1] = 256;
- gSprites[spriteId2].invisible = TRUE;
+ spriteId = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].pos1.x, gSprites[battlerSpriteId].pos1.y - 32, 0);
+ gSprites[spriteId].data[0] = i * 51;
+ gSprites[spriteId].data[1] = 256;
+ gSprites[spriteId].invisible = TRUE;
if (i > 4)
- gSprites[spriteId2].data[6] = 21;
+ gSprites[spriteId].data[6] = 21;
}
}
- gSprites[spriteId2].data[7] = 1;
+ gSprites[spriteId].data[7] = 1;
return taskId;
}
-static void UnusedTask_80A9DB4(u8 taskId)
+static void Task_UpdateFlashingCircleImpacts(u8 taskId)
{
if (gTasks[taskId].data[2] == 2)
{
@@ -344,13 +344,13 @@ static void UnusedTask_80A9DB4(u8 taskId)
}
}
-static void AnimUnused_80A9E44(struct Sprite *sprite)
+static void AnimFlashingCircleImpact(struct Sprite *sprite)
{
if (sprite->data[6] == 0)
{
sprite->invisible = FALSE;
- sprite->callback = AnimUnused_80A9E44_Step;
- AnimUnused_80A9E44_Step(sprite);
+ sprite->callback = AnimFlashingCircleImpact_Step;
+ AnimFlashingCircleImpact_Step(sprite);
}
else
{
@@ -358,7 +358,7 @@ static void AnimUnused_80A9E44(struct Sprite *sprite)
}
}
-static void AnimUnused_80A9E44_Step(struct Sprite *sprite)
+static void AnimFlashingCircleImpact_Step(struct Sprite *sprite)
{
sprite->pos2.x = Cos(sprite->data[0], 32);
sprite->pos2.y = Sin(sprite->data[0], 8);
diff --git a/src/battle_main.c b/src/battle_main.c
index 8a85c27f5..c30c92929 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -434,24 +434,24 @@ const u8 gTypeEffectiveness[336] =
const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1] =
{
- _("NORMAL"),
- _("FIGHT"),
- _("FLYING"),
- _("POISON"),
- _("GROUND"),
- _("ROCK"),
- _("BUG"),
- _("GHOST"),
- _("STEEL"),
- _("???"),
- _("FIRE"),
- _("WATER"),
- _("GRASS"),
- _("ELECTR"),
- _("PSYCHC"),
- _("ICE"),
- _("DRAGON"),
- _("DARK"),
+ [TYPE_NORMAL] = _("NORMAL"),
+ [TYPE_FIGHTING] = _("FIGHT"),
+ [TYPE_FLYING] = _("FLYING"),
+ [TYPE_POISON] = _("POISON"),
+ [TYPE_GROUND] = _("GROUND"),
+ [TYPE_ROCK] = _("ROCK"),
+ [TYPE_BUG] = _("BUG"),
+ [TYPE_GHOST] = _("GHOST"),
+ [TYPE_STEEL] = _("STEEL"),
+ [TYPE_MYSTERY] = _("???"),
+ [TYPE_FIRE] = _("FIRE"),
+ [TYPE_WATER] = _("WATER"),
+ [TYPE_GRASS] = _("GRASS"),
+ [TYPE_ELECTRIC] = _("ELECTR"),
+ [TYPE_PSYCHIC] = _("PSYCHC"),
+ [TYPE_ICE] = _("ICE"),
+ [TYPE_DRAGON] = _("DRAGON"),
+ [TYPE_DARK] = _("DARK"),
};
// This is a factor in how much money you get for beating a trainer.
diff --git a/src/pokeball.c b/src/pokeball.c
index 678b9da33..77d2b119c 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -791,7 +791,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
gTasks[taskId].tCryTaskBattler = battlerId;
gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBattler];
- gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10;
+ gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 16;
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
gTasks[taskId].tCryTaskState = 0;
}
diff --git a/src/pokemon.c b/src/pokemon.c
index 9fe008d56..0b50a72f3 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1391,476 +1391,450 @@ const s8 gNatureStatTable[NUM_NATURES][NUM_NATURE_STATS] =
static const u8 sMonFrontAnimIdsTable[] =
{
- [SPECIES_BULBASAUR - 1] = 0x06,
- [SPECIES_IVYSAUR - 1] = 0x17,
- [SPECIES_VENUSAUR - 1] = 0x2f,
- [SPECIES_CHARMANDER - 1] = 0x52,
- [SPECIES_CHARMELEON - 1] = 0x25,
- [SPECIES_CHARIZARD - 1] = 0x10,
- [SPECIES_SQUIRTLE - 1] = 0x0b,
- [SPECIES_WARTORTLE - 1] = 0x13,
- [SPECIES_BLASTOISE - 1] = 0x19,
- [SPECIES_CATERPIE - 1] = 0x0b,
- [SPECIES_METAPOD - 1] = 0x0b,
- [SPECIES_BUTTERFREE - 1] = 0x1d,
- [SPECIES_WEEDLE - 1] = 0x46,
- [SPECIES_KAKUNA - 1] = 0x20,
- [SPECIES_BEEDRILL - 1] = 0x02,
- [SPECIES_PIDGEY - 1] = 0x47,
- [SPECIES_PIDGEOTTO - 1] = 0x17,
- [SPECIES_PIDGEOT - 1] = 0x29,
- [SPECIES_RATTATA - 1] = 0x43,
- [SPECIES_RATICATE - 1] = 0x2b,
- [SPECIES_SPEAROW - 1] = 0x18,
- [SPECIES_FEAROW - 1] = 0x2b,
- [SPECIES_EKANS - 1] = 0x16,
- [SPECIES_ARBOK - 1] = 0x17,
- [SPECIES_PIKACHU - 1] = 0x2c,
- [SPECIES_RAICHU - 1] = 0x17,
- [SPECIES_SANDSHREW - 1] = 0x2d,
- [SPECIES_SANDSLASH - 1] = 0x17,
- [SPECIES_NIDORAN_F - 1] = 0x00,
- [SPECIES_NIDORINA - 1] = 0x17,
- [SPECIES_NIDOQUEEN - 1] = 0x0f,
- [SPECIES_NIDORAN_M - 1] = 0x09,
- [SPECIES_NIDORINO - 1] = 0x13,
- [SPECIES_NIDOKING - 1] = 0x0f,
- [SPECIES_CLEFAIRY - 1] = 0x00,
- [SPECIES_CLEFABLE - 1] = 0x4a,
- [SPECIES_VULPIX - 1] = 0x17,
- [SPECIES_NINETALES - 1] = 0x10,
- [SPECIES_JIGGLYPUFF - 1] = 0x48,
- [SPECIES_WIGGLYTUFF - 1] = 0x31,
- [SPECIES_ZUBAT - 1] = 0x00,
- [SPECIES_GOLBAT - 1] = 0x1d,
- [SPECIES_ODDISH - 1] = 0x00,
- [SPECIES_GLOOM - 1] = 0x45,
- [SPECIES_VILEPLUME - 1] = 0x49,
- [SPECIES_PARAS - 1] = 0x46,
- [SPECIES_PARASECT - 1] = 0x0f,
- [SPECIES_VENONAT - 1] = 0x06,
- [SPECIES_VENOMOTH - 1] = 0x4b,
- [SPECIES_DIGLETT - 1] = 0x10,
- [SPECIES_DUGTRIO - 1] = 0x4c,
- [SPECIES_MEOWTH - 1] = 0x52,
- [SPECIES_PERSIAN - 1] = 0x17,
- [SPECIES_PSYDUCK - 1] = 0x06,
- [SPECIES_GOLDUCK - 1] = 0x4c,
- [SPECIES_MANKEY - 1] = 0x32,
- [SPECIES_PRIMEAPE - 1] = 0x48,
- [SPECIES_GROWLITHE - 1] = 0x25,
- [SPECIES_ARCANINE - 1] = 0x02,
- [SPECIES_POLIWAG - 1] = 0x00,
- [SPECIES_POLIWHIRL - 1] = 0x32,
- [SPECIES_POLIWRATH - 1] = 0x19,
- [SPECIES_ABRA - 1] = 0x31,
- [SPECIES_KADABRA - 1] = 0x09,
- [SPECIES_ALAKAZAM - 1] = 0x17,
- [SPECIES_MACHOP - 1] = 0x00,
- [SPECIES_MACHOKE - 1] = 0x10,
- [SPECIES_MACHAMP - 1] = 0x31,
- [SPECIES_BELLSPROUT - 1] = 0x17,
- [SPECIES_WEEPINBELL - 1] = 0x0d,
- [SPECIES_VICTREEBEL - 1] = 0x32,
- [SPECIES_TENTACOOL - 1] = 0x00,
- [SPECIES_TENTACRUEL - 1] = 0x00,
- [SPECIES_GEODUDE - 1] = 0x48,
- [SPECIES_GRAVELER - 1] = 0x48,
- [SPECIES_GOLEM - 1] = 0x2f,
- [SPECIES_PONYTA - 1] = 0x20,
- [SPECIES_RAPIDASH - 1] = 0x11,
- [SPECIES_SLOWPOKE - 1] = 0x45,
- [SPECIES_SLOWBRO - 1] = 0x0b,
- [SPECIES_MAGNEMITE - 1] = 0x54,
- [SPECIES_MAGNETON - 1] = 0x2c,
- [SPECIES_FARFETCHD - 1] = 0x48,
- [SPECIES_DODUO - 1] = 0x4c,
- [SPECIES_DODRIO - 1] = 0x41,
- [SPECIES_SEEL - 1] = 0x0b,
- [SPECIES_DEWGONG - 1] = 0x45,
- [SPECIES_GRIMER - 1] = 0x46,
- [SPECIES_MUK - 1] = 0x30,
- [SPECIES_SHELLDER - 1] = 0x12,
- [SPECIES_CLOYSTER - 1] = 0x1d,
- [SPECIES_GASTLY - 1] = 0x15,
- [SPECIES_HAUNTER - 1] = 0x35,
- [SPECIES_GENGAR - 1] = 0x3a,
- [SPECIES_ONIX - 1] = 0x43,
- [SPECIES_DROWZEE - 1] = 0x4f,
- [SPECIES_HYPNO - 1] = 0x09,
- [SPECIES_KRABBY - 1] = 0x03,
- [SPECIES_KINGLER - 1] = 0x4b,
- [SPECIES_VOLTORB - 1] = 0x00,
- [SPECIES_ELECTRODE - 1] = 0x00,
- [SPECIES_EXEGGCUTE - 1] = 0x46,
- [SPECIES_EXEGGUTOR - 1] = 0x32,
- [SPECIES_CUBONE - 1] = 0x48,
- [SPECIES_MAROWAK - 1] = 0x05,
- [SPECIES_HITMONLEE - 1] = 0x16,
- [SPECIES_HITMONCHAN - 1] = 0x09,
- [SPECIES_LICKITUNG - 1] = 0x45,
- [SPECIES_KOFFING - 1] = 0x13,
- [SPECIES_WEEZING - 1] = 0x04,
- [SPECIES_RHYHORN - 1] = 0x10,
- [SPECIES_RHYDON - 1] = 0x13,
- [SPECIES_CHANSEY - 1] = 0x45,
- [SPECIES_TANGELA - 1] = 0x48,
- [SPECIES_KANGASKHAN - 1] = 0x17,
- [SPECIES_HORSEA - 1] = 0x12,
- [SPECIES_SEADRA - 1] = 0x04,
- [SPECIES_GOLDEEN - 1] = 0x0d,
- [SPECIES_SEAKING - 1] = 0x1c,
- [SPECIES_STARYU - 1] = 0x4e,
- [SPECIES_STARMIE - 1] = 0x12,
- [SPECIES_MR_MIME - 1] = 0x46,
- [SPECIES_SCYTHER - 1] = 0x02,
- [SPECIES_JYNX - 1] = 0x17,
- [SPECIES_ELECTABUZZ - 1] = 0x2c,
- [SPECIES_MAGMAR - 1] = 0x0f,
- [SPECIES_PINSIR - 1] = 0x09,
- [SPECIES_TAUROS - 1] = 0x19,
- [SPECIES_MAGIKARP - 1] = 0x05,
- [SPECIES_GYARADOS - 1] = 0x48,
- [SPECIES_LAPRAS - 1] = 0x17,
- [SPECIES_DITTO - 1] = 0x01,
- [SPECIES_EEVEE - 1] = 0x17,
- [SPECIES_VAPOREON - 1] = 0x17,
- [SPECIES_JOLTEON - 1] = 0x00,
- [SPECIES_FLAREON - 1] = 0x17,
- [SPECIES_PORYGON - 1] = 0x52,
- [SPECIES_OMANYTE - 1] = 0x51,
- [SPECIES_OMASTAR - 1] = 0x09,
- [SPECIES_KABUTO - 1] = 0x1d,
- [SPECIES_KABUTOPS - 1] = 0x0f,
- [SPECIES_AERODACTYL - 1] = 0x47,
- [SPECIES_SNORLAX - 1] = 0x0b,
- [SPECIES_ARTICUNO - 1] = 0x09,
- [SPECIES_ZAPDOS - 1] = 0x2c,
- [SPECIES_MOLTRES - 1] = 0x45,
- [SPECIES_DRATINI - 1] = 0x00,
- [SPECIES_DRAGONAIR - 1] = 0x10,
- [SPECIES_DRAGONITE - 1] = 0x47,
- [SPECIES_MEWTWO - 1] = 0x09,
- [SPECIES_MEW - 1] = 0x0d,
- [SPECIES_CHIKORITA - 1] = 0x00,
- [SPECIES_BAYLEEF - 1] = 0x00,
- [SPECIES_MEGANIUM - 1] = 0x17,
- [SPECIES_CYNDAQUIL - 1] = 0x52,
- [SPECIES_QUILAVA - 1] = 0x17,
- [SPECIES_TYPHLOSION - 1] = 0x10,
- [SPECIES_TOTODILE - 1] = 0x31,
- [SPECIES_CROCONAW - 1] = 0x0f,
- [SPECIES_FERALIGATR - 1] = 0x0f,
- [SPECIES_SENTRET - 1] = 0x00,
- [SPECIES_FURRET - 1] = 0x32,
- [SPECIES_HOOTHOOT - 1] = 0x47,
- [SPECIES_NOCTOWL - 1] = 0x17,
- [SPECIES_LEDYBA - 1] = 0x52,
- [SPECIES_LEDIAN - 1] = 0x47,
- [SPECIES_SPINARAK - 1] = 0x4f,
- [SPECIES_ARIADOS - 1] = 0x0f,
- [SPECIES_CROBAT - 1] = 0x00,
- [SPECIES_CHINCHOU - 1] = 0x45,
- [SPECIES_LANTURN - 1] = 0x51,
- [SPECIES_PICHU - 1] = 0x1e,
- [SPECIES_CLEFFA - 1] = 0x52,
- [SPECIES_IGGLYBUFF - 1] = 0x0c,
- [SPECIES_TOGEPI - 1] = 0x0b,
- [SPECIES_TOGETIC - 1] = 0x00,
- [SPECIES_NATU - 1] = 0x31,
- [SPECIES_XATU - 1] = 0x09,
- [SPECIES_MAREEP - 1] = 0x00,
- [SPECIES_FLAAFFY - 1] = 0x1e,
- [SPECIES_AMPHAROS - 1] = 0x2c,
- [SPECIES_BELLOSSOM - 1] = 0x0b,
- [SPECIES_MARILL - 1] = 0x00,
- [SPECIES_AZUMARILL - 1] = 0x4a,
- [SPECIES_SUDOWOODO - 1] = 0x46,
- [SPECIES_POLITOED - 1] = 0x32,
- [SPECIES_HOPPIP - 1] = 0x1c,
- [SPECIES_SKIPLOOM - 1] = 0x18,
- [SPECIES_JUMPLUFF - 1] = 0x51,
- [SPECIES_AIPOM - 1] = 0x32,
- [SPECIES_SUNKERN - 1] = 0x52,
- [SPECIES_SUNFLORA - 1] = 0x00,
- [SPECIES_YANMA - 1] = 0x2b,
- [SPECIES_WOOPER - 1] = 0x00,
- [SPECIES_QUAGSIRE - 1] = 0x16,
- [SPECIES_ESPEON - 1] = 0x09,
- [SPECIES_UMBREON - 1] = 0x10,
- [SPECIES_MURKROW - 1] = 0x00,
- [SPECIES_SLOWKING - 1] = 0x13,
- [SPECIES_MISDREAVUS - 1] = 0x1c,
- [SPECIES_UNOWN - 1] = 0x0a,
- [SPECIES_WOBBUFFET - 1] = 0x30,
- [SPECIES_GIRAFARIG - 1] = 0x1e,
- [SPECIES_PINECO - 1] = 0x0b,
- [SPECIES_FORRETRESS - 1] = 0x10,
- [SPECIES_DUNSPARCE - 1] = 0x00,
- [SPECIES_GLIGAR - 1] = 0x13,
- [SPECIES_STEELIX - 1] = 0x0f,
- [SPECIES_SNUBBULL - 1] = 0x17,
- [SPECIES_GRANBULL - 1] = 0x10,
- [SPECIES_QWILFISH - 1] = 0x3a,
- [SPECIES_SCIZOR - 1] = 0x02,
- [SPECIES_SHUCKLE - 1] = 0x0b,
- [SPECIES_HERACROSS - 1] = 0x41,
- [SPECIES_SNEASEL - 1] = 0x16,
- [SPECIES_TEDDIURSA - 1] = 0x17,
- [SPECIES_URSARING - 1] = 0x10,
- [SPECIES_SLUGMA - 1] = 0x17,
- [SPECIES_MAGCARGO - 1] = 0x17,
- [SPECIES_SWINUB - 1] = 0x00,
- [SPECIES_PILOSWINE - 1] = 0x0f,
- [SPECIES_CORSOLA - 1] = 0x03,
- [SPECIES_REMORAID - 1] = 0x52,
- [SPECIES_OCTILLERY - 1] = 0x17,
- [SPECIES_DELIBIRD - 1] = 0x52,
- [SPECIES_MANTINE - 1] = 0x0d,
- [SPECIES_SKARMORY - 1] = 0x17,
- [SPECIES_HOUNDOUR - 1] = 0x17,
- [SPECIES_HOUNDOOM - 1] = 0x10,
- [SPECIES_KINGDRA - 1] = 0x42,
- [SPECIES_PHANPY - 1] = 0x32,
- [SPECIES_DONPHAN - 1] = 0x19,
- [SPECIES_PORYGON2 - 1] = 0x00,
- [SPECIES_STANTLER - 1] = 0x00,
- [SPECIES_SMEARGLE - 1] = 0x31,
- [SPECIES_TYROGUE - 1] = 0x16,
- [SPECIES_HITMONTOP - 1] = 0x02,
- [SPECIES_SMOOCHUM - 1] = 0x09,
- [SPECIES_ELEKID - 1] = 0x2c,
- [SPECIES_MAGBY - 1] = 0x00,
- [SPECIES_MILTANK - 1] = 0x45,
- [SPECIES_BLISSEY - 1] = 0x00,
- [SPECIES_RAIKOU - 1] = 0x2c,
- [SPECIES_ENTEI - 1] = 0x09,
- [SPECIES_SUICUNE - 1] = 0x10,
- [SPECIES_LARVITAR - 1] = 0x52,
- [SPECIES_PUPITAR - 1] = 0x10,
- [SPECIES_TYRANITAR - 1] = 0x0f,
- [SPECIES_LUGIA - 1] = 0x3a,
- [SPECIES_HO_OH - 1] = 0x09,
- [SPECIES_CELEBI - 1] = 0x18,
- [SPECIES_OLD_UNOWN_B - 1] = 0x00,
- [SPECIES_OLD_UNOWN_C - 1] = 0x00,
- [SPECIES_OLD_UNOWN_D - 1] = 0x00,
- [SPECIES_OLD_UNOWN_E - 1] = 0x00,
- [SPECIES_OLD_UNOWN_F - 1] = 0x00,
- [SPECIES_OLD_UNOWN_G - 1] = 0x00,
- [SPECIES_OLD_UNOWN_H - 1] = 0x00,
- [SPECIES_OLD_UNOWN_I - 1] = 0x00,
- [SPECIES_OLD_UNOWN_J - 1] = 0x00,
- [SPECIES_OLD_UNOWN_K - 1] = 0x00,
- [SPECIES_OLD_UNOWN_L - 1] = 0x00,
- [SPECIES_OLD_UNOWN_M - 1] = 0x00,
- [SPECIES_OLD_UNOWN_N - 1] = 0x00,
- [SPECIES_OLD_UNOWN_O - 1] = 0x00,
- [SPECIES_OLD_UNOWN_P - 1] = 0x00,
- [SPECIES_OLD_UNOWN_Q - 1] = 0x00,
- [SPECIES_OLD_UNOWN_R - 1] = 0x00,
- [SPECIES_OLD_UNOWN_S - 1] = 0x00,
- [SPECIES_OLD_UNOWN_T - 1] = 0x00,
- [SPECIES_OLD_UNOWN_U - 1] = 0x00,
- [SPECIES_OLD_UNOWN_V - 1] = 0x00,
- [SPECIES_OLD_UNOWN_W - 1] = 0x00,
- [SPECIES_OLD_UNOWN_X - 1] = 0x00,
- [SPECIES_OLD_UNOWN_Y - 1] = 0x00,
- [SPECIES_OLD_UNOWN_Z - 1] = 0x00,
- [SPECIES_TREECKO - 1] = 0x00,
- [SPECIES_GROVYLE - 1] = 0x17,
- [SPECIES_SCEPTILE - 1] = 0x10,
- [SPECIES_TORCHIC - 1] = 0x16,
- [SPECIES_COMBUSKEN - 1] = 0x06,
- [SPECIES_BLAZIKEN - 1] = 0x0f,
- [SPECIES_MUDKIP - 1] = 0x01,
- [SPECIES_MARSHTOMP - 1] = 0x04,
- [SPECIES_SWAMPERT - 1] = 0x1e,
- [SPECIES_POOCHYENA - 1] = 0x10,
- [SPECIES_MIGHTYENA - 1] = 0x10,
- [SPECIES_ZIGZAGOON - 1] = 0x03,
- [SPECIES_LINOONE - 1] = 0x09,
- [SPECIES_WURMPLE - 1] = 0x00,
- [SPECIES_SILCOON - 1] = 0x00,
- [SPECIES_BEAUTIFLY - 1] = 0x04,
- [SPECIES_CASCOON - 1] = 0x04,
- [SPECIES_DUSTOX - 1] = 0x06,
- [SPECIES_LOTAD - 1] = 0x00,
- [SPECIES_LOMBRE - 1] = 0x00,
- [SPECIES_LUDICOLO - 1] = 0x49,
- [SPECIES_SEEDOT - 1] = 0x05,
- [SPECIES_NUZLEAF - 1] = 0x00,
- [SPECIES_SHIFTRY - 1] = 0x02,
- [SPECIES_NINCADA - 1] = 0x00,
- [SPECIES_NINJASK - 1] = 0x46,
- [SPECIES_SHEDINJA - 1] = 0x1c,
- [SPECIES_TAILLOW - 1] = 0x1e,
- [SPECIES_SWELLOW - 1] = 0x01,
- [SPECIES_SHROOMISH - 1] = 0x00,
- [SPECIES_BRELOOM - 1] = 0x00,
- [SPECIES_SPINDA - 1] = 0x31,
- [SPECIES_WINGULL - 1] = 0x1b,
- [SPECIES_PELIPPER - 1] = 0x1c,
- [SPECIES_SURSKIT - 1] = 0x00,
- [SPECIES_MASQUERAIN - 1] = 0x00,
- [SPECIES_WAILMER - 1] = 0x01,
- [SPECIES_WAILORD - 1] = 0x1c,
- [SPECIES_SKITTY - 1] = 0x00,
- [SPECIES_DELCATTY - 1] = 0x17,
- [SPECIES_KECLEON - 1] = 0x35,
- [SPECIES_BALTOY - 1] = 0x1d,
- [SPECIES_CLAYDOL - 1] = 0x51,
- [SPECIES_NOSEPASS - 1] = 0x49,
- [SPECIES_TORKOAL - 1] = 0x17,
- [SPECIES_SABLEYE - 1] = 0x15,
- [SPECIES_BARBOACH - 1] = 0x49,
- [SPECIES_WHISCASH - 1] = 0x49,
- [SPECIES_LUVDISC - 1] = 0x1d,
- [SPECIES_CORPHISH - 1] = 0x10,
- [SPECIES_CRAWDAUNT - 1] = 0x09,
- [SPECIES_FEEBAS - 1] = 0x49,
- [SPECIES_MILOTIC - 1] = 0x22,
- [SPECIES_CARVANHA - 1] = 0x49,
- [SPECIES_SHARPEDO - 1] = 0x56,
- [SPECIES_TRAPINCH - 1] = 0x10,
- [SPECIES_VIBRAVA - 1] = 0x0f,
- [SPECIES_FLYGON - 1] = 0x4b,
- [SPECIES_MAKUHITA - 1] = 0x0b,
- [SPECIES_HARIYAMA - 1] = 0x34,
- [SPECIES_ELECTRIKE - 1] = 0x00,
- [SPECIES_MANECTRIC - 1] = 0x00,
- [SPECIES_NUMEL - 1] = 0x04,
- [SPECIES_CAMERUPT - 1] = 0x10,
- [SPECIES_SPHEAL - 1] = 0x53,
- [SPECIES_SEALEO - 1] = 0x17,
- [SPECIES_WALREIN - 1] = 0x0f,
- [SPECIES_CACNEA - 1] = 0x49,
- [SPECIES_CACTURNE - 1] = 0x04,
- [SPECIES_SNORUNT - 1] = 0x45,
- [SPECIES_GLALIE - 1] = 0x0a,
- [SPECIES_LUNATONE - 1] = 0x0e,
- [SPECIES_SOLROCK - 1] = 0x08,
- [SPECIES_AZURILL - 1] = 0x00,
- [SPECIES_SPOINK - 1] = 0x56,
- [SPECIES_GRUMPIG - 1] = 0x32,
- [SPECIES_PLUSLE - 1] = 0x00,
- [SPECIES_MINUN - 1] = 0x01,
- [SPECIES_MAWILE - 1] = 0x00,
- [SPECIES_MEDITITE - 1] = 0x05,
- [SPECIES_MEDICHAM - 1] = 0x45,
- [SPECIES_SWABLU - 1] = 0x04,
- [SPECIES_ALTARIA - 1] = 0x16,
- [SPECIES_WYNAUT - 1] = 0x32,
- [SPECIES_DUSKULL - 1] = 0x0a,
- [SPECIES_DUSCLOPS - 1] = 0x02,
- [SPECIES_ROSELIA - 1] = 0x45,
- [SPECIES_SLAKOTH - 1] = 0x45,
- [SPECIES_VIGOROTH - 1] = 0x31,
- [SPECIES_SLAKING - 1] = 0x45,
- [SPECIES_GULPIN - 1] = 0x00,
- [SPECIES_SWALOT - 1] = 0x45,
- [SPECIES_TROPIUS - 1] = 0x10,
- [SPECIES_WHISMUR - 1] = 0x03,
- [SPECIES_LOUDRED - 1] = 0x49,
- [SPECIES_EXPLOUD - 1] = 0x19,
- [SPECIES_CLAMPERL - 1] = 0x12,
- [SPECIES_HUNTAIL - 1] = 0x09,
- [SPECIES_GOREBYSS - 1] = 0x1c,
- [SPECIES_ABSOL - 1] = 0x11,
- [SPECIES_SHUPPET - 1] = 0x1c,
- [SPECIES_BANETTE - 1] = 0x0d,
- [SPECIES_SEVIPER - 1] = 0x17,
- [SPECIES_ZANGOOSE - 1] = 0x09,
- [SPECIES_RELICANTH - 1] = 0x1a,
- [SPECIES_ARON - 1] = 0x45,
- [SPECIES_LAIRON - 1] = 0x00,
- [SPECIES_AGGRON - 1] = 0x19,
- [SPECIES_CASTFORM - 1] = 0x1d,
- [SPECIES_VOLBEAT - 1] = 0x00,
- [SPECIES_ILLUMISE - 1] = 0x05,
- [SPECIES_LILEEP - 1] = 0x17,
- [SPECIES_CRADILY - 1] = 0x19,
- [SPECIES_ANORITH - 1] = 0x12,
- [SPECIES_ARMALDO - 1] = 0x10,
- [SPECIES_RALTS - 1] = 0x45,
- [SPECIES_KIRLIA - 1] = 0x00,
- [SPECIES_GARDEVOIR - 1] = 0x00,
- [SPECIES_BAGON - 1] = 0x19,
- [SPECIES_SHELGON - 1] = 0x04,
- [SPECIES_SALAMENCE - 1] = 0x0f,
- [SPECIES_BELDUM - 1] = 0x0f,
- [SPECIES_METANG - 1] = 0x04,
- [SPECIES_METAGROSS - 1] = 0x10,
- [SPECIES_REGIROCK - 1] = 0x01,
- [SPECIES_REGICE - 1] = 0x44,
- [SPECIES_REGISTEEL - 1] = 0x09,
- [SPECIES_KYOGRE - 1] = 0x2d,
- [SPECIES_GROUDON - 1] = 0x10,
- [SPECIES_RAYQUAZA - 1] = 0x0f,
- [SPECIES_LATIAS - 1] = 0x2d,
- [SPECIES_LATIOS - 1] = 0x10,
- [SPECIES_JIRACHI - 1] = 0x0d,
- [SPECIES_DEOXYS - 1] = 0x1b,
- [SPECIES_CHIMECHO - 1] = 0x1d,
+ [SPECIES_BULBASAUR - 1] = ANIM_V_JUMPS_H_JUMPS,
+ [SPECIES_IVYSAUR - 1] = ANIM_V_STRETCH,
+ [SPECIES_VENUSAUR - 1] = ANIM_ROTATE_UP_SLAM_DOWN,
+ [SPECIES_CHARMANDER - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_CHARMELEON - 1] = ANIM_BACK_AND_LUNGE,
+ [SPECIES_CHARIZARD - 1] = ANIM_V_SHAKE,
+ [SPECIES_SQUIRTLE - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_WARTORTLE - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_BLASTOISE - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_CATERPIE - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_METAPOD - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_BUTTERFREE - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_WEEDLE - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_KAKUNA - 1] = ANIM_GLOW_ORANGE,
+ [SPECIES_BEEDRILL - 1] = ANIM_H_VIBRATE,
+ [SPECIES_PIDGEY - 1] = ANIM_V_SLIDE_SLOW,
+ [SPECIES_PIDGEOTTO - 1] = ANIM_V_STRETCH,
+ [SPECIES_PIDGEOT - 1] = ANIM_FRONT_FLIP,
+ [SPECIES_RATTATA - 1] = ANIM_RAPID_H_HOPS,
+ [SPECIES_RATICATE - 1] = ANIM_FIGURE_8,
+ [SPECIES_SPEAROW - 1] = ANIM_RISING_WOBBLE,
+ [SPECIES_FEAROW - 1] = ANIM_FIGURE_8,
+ [SPECIES_EKANS - 1] = ANIM_H_STRETCH,
+ [SPECIES_ARBOK - 1] = ANIM_V_STRETCH,
+ [SPECIES_PIKACHU - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_RAICHU - 1] = ANIM_V_STRETCH,
+ [SPECIES_SANDSHREW - 1] = ANIM_SWING_CONCAVE_FAST_SHORT,
+ [SPECIES_SANDSLASH - 1] = ANIM_V_STRETCH,
+ [SPECIES_NIDORAN_F - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_NIDORINA - 1] = ANIM_V_STRETCH,
+ [SPECIES_NIDOQUEEN - 1] = ANIM_H_SHAKE,
+ [SPECIES_NIDORAN_M - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_NIDORINO - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_NIDOKING - 1] = ANIM_H_SHAKE,
+ [SPECIES_CLEFAIRY - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_CLEFABLE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW,
+ [SPECIES_VULPIX - 1] = ANIM_V_STRETCH,
+ [SPECIES_NINETALES - 1] = ANIM_V_SHAKE,
+ [SPECIES_JIGGLYPUFF - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_WIGGLYTUFF - 1] = ANIM_H_JUMPS,
+ [SPECIES_ZUBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GOLBAT - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_ODDISH - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GLOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_VILEPLUME - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_PARAS - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_PARASECT - 1] = ANIM_H_SHAKE,
+ [SPECIES_VENONAT - 1] = ANIM_V_JUMPS_H_JUMPS,
+ [SPECIES_VENOMOTH - 1] = ANIM_ZIGZAG_SLOW,
+ [SPECIES_DIGLETT - 1] = ANIM_V_SHAKE,
+ [SPECIES_DUGTRIO - 1] = ANIM_H_SHAKE_SLOW,
+ [SPECIES_MEOWTH - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_PERSIAN - 1] = ANIM_V_STRETCH,
+ [SPECIES_PSYDUCK - 1] = ANIM_V_JUMPS_H_JUMPS,
+ [SPECIES_GOLDUCK - 1] = ANIM_H_SHAKE_SLOW,
+ [SPECIES_MANKEY - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_PRIMEAPE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_GROWLITHE - 1] = ANIM_BACK_AND_LUNGE,
+ [SPECIES_ARCANINE - 1] = ANIM_H_VIBRATE,
+ [SPECIES_POLIWAG - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_POLIWHIRL - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_POLIWRATH - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_ABRA - 1] = ANIM_H_JUMPS,
+ [SPECIES_KADABRA - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_ALAKAZAM - 1] = ANIM_V_STRETCH,
+ [SPECIES_MACHOP - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MACHOKE - 1] = ANIM_V_SHAKE,
+ [SPECIES_MACHAMP - 1] = ANIM_H_JUMPS,
+ [SPECIES_BELLSPROUT - 1] = ANIM_V_STRETCH,
+ [SPECIES_WEEPINBELL - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_VICTREEBEL - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_TENTACOOL - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_TENTACRUEL - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GEODUDE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_GRAVELER - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_GOLEM - 1] = ANIM_ROTATE_UP_SLAM_DOWN,
+ [SPECIES_PONYTA - 1] = ANIM_GLOW_ORANGE,
+ [SPECIES_RAPIDASH - 1] = ANIM_CIRCULAR_VIBRATE,
+ [SPECIES_SLOWPOKE - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_SLOWBRO - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_MAGNEMITE - 1] = ANIM_TUMBLING_FRONT_FLIP_TWICE,
+ [SPECIES_MAGNETON - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_FARFETCHD - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_DODUO - 1] = ANIM_H_SHAKE_SLOW,
+ [SPECIES_DODRIO - 1] = ANIM_LUNGE_GROW,
+ [SPECIES_SEEL - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_DEWGONG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_GRIMER - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_MUK - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SHELLDER - 1] = ANIM_TWIST,
+ [SPECIES_CLOYSTER - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_GASTLY - 1] = ANIM_GLOW_BLACK,
+ [SPECIES_HAUNTER - 1] = ANIM_FLICKER_INCREASING,
+ [SPECIES_GENGAR - 1] = ANIM_GROW_IN_STAGES,
+ [SPECIES_ONIX - 1] = ANIM_RAPID_H_HOPS,
+ [SPECIES_DROWZEE - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW,
+ [SPECIES_HYPNO - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_KRABBY - 1] = ANIM_H_SLIDE,
+ [SPECIES_KINGLER - 1] = ANIM_ZIGZAG_SLOW,
+ [SPECIES_VOLTORB - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_ELECTRODE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_EXEGGCUTE - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_EXEGGUTOR - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_CUBONE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_MAROWAK - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES,
+ [SPECIES_HITMONLEE - 1] = ANIM_H_STRETCH,
+ [SPECIES_HITMONCHAN - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_LICKITUNG - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_KOFFING - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_WEEZING - 1] = ANIM_V_SLIDE,
+ [SPECIES_RHYHORN - 1] = ANIM_V_SHAKE,
+ [SPECIES_RHYDON - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_CHANSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_TANGELA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_KANGASKHAN - 1] = ANIM_V_STRETCH,
+ [SPECIES_HORSEA - 1] = ANIM_TWIST,
+ [SPECIES_SEADRA - 1] = ANIM_V_SLIDE,
+ [SPECIES_GOLDEEN - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_SEAKING - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_STARYU - 1] = ANIM_TWIST_TWICE,
+ [SPECIES_STARMIE - 1] = ANIM_TWIST,
+ [SPECIES_MR_MIME - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_SCYTHER - 1] = ANIM_H_VIBRATE,
+ [SPECIES_JYNX - 1] = ANIM_V_STRETCH,
+ [SPECIES_ELECTABUZZ - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_MAGMAR - 1] = ANIM_H_SHAKE,
+ [SPECIES_PINSIR - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_TAUROS - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_MAGIKARP - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES,
+ [SPECIES_GYARADOS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL,
+ [SPECIES_LAPRAS - 1] = ANIM_V_STRETCH,
+ [SPECIES_DITTO - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_EEVEE - 1] = ANIM_V_STRETCH,
+ [SPECIES_VAPOREON - 1] = ANIM_V_STRETCH,
+ [SPECIES_JOLTEON - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_FLAREON - 1] = ANIM_V_STRETCH,
+ [SPECIES_PORYGON - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_OMANYTE - 1] = ANIM_V_SLIDE_WOBBLE_SMALL,
+ [SPECIES_OMASTAR - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_KABUTO - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_KABUTOPS - 1] = ANIM_H_SHAKE,
+ [SPECIES_AERODACTYL - 1] = ANIM_V_SLIDE_SLOW,
+ [SPECIES_SNORLAX - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_ARTICUNO - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_ZAPDOS - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_MOLTRES - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_DRATINI - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_DRAGONAIR - 1] = ANIM_V_SHAKE,
+ [SPECIES_DRAGONITE - 1] = ANIM_V_SLIDE_SLOW,
+ [SPECIES_MEWTWO - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_MEW - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_CHIKORITA - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_BAYLEEF - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MEGANIUM - 1] = ANIM_V_STRETCH,
+ [SPECIES_CYNDAQUIL - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_QUILAVA - 1] = ANIM_V_STRETCH,
+ [SPECIES_TYPHLOSION - 1] = ANIM_V_SHAKE,
+ [SPECIES_TOTODILE - 1] = ANIM_H_JUMPS,
+ [SPECIES_CROCONAW - 1] = ANIM_H_SHAKE,
+ [SPECIES_FERALIGATR - 1] = ANIM_H_SHAKE,
+ [SPECIES_SENTRET - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_FURRET - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_HOOTHOOT - 1] = ANIM_V_SLIDE_SLOW,
+ [SPECIES_NOCTOWL - 1] = ANIM_V_STRETCH,
+ [SPECIES_LEDYBA - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_LEDIAN - 1] = ANIM_V_SLIDE_SLOW,
+ [SPECIES_SPINARAK - 1] = ANIM_CIRCLE_C_CLOCKWISE_SLOW,
+ [SPECIES_ARIADOS - 1] = ANIM_H_SHAKE,
+ [SPECIES_CROBAT - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_CHINCHOU - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_LANTURN - 1] = ANIM_V_SLIDE_WOBBLE_SMALL,
+ [SPECIES_PICHU - 1] = ANIM_V_JUMPS_BIG,
+ [SPECIES_CLEFFA - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_IGGLYBUFF - 1] = ANIM_SWING_CONCAVE_FAST,
+ [SPECIES_TOGEPI - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_TOGETIC - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_NATU - 1] = ANIM_H_JUMPS,
+ [SPECIES_XATU - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_MAREEP - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_FLAAFFY - 1] = ANIM_V_JUMPS_BIG,
+ [SPECIES_AMPHAROS - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_BELLOSSOM - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_MARILL - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_AZUMARILL - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW,
+ [SPECIES_SUDOWOODO - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_POLITOED - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_HOPPIP - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_SKIPLOOM - 1] = ANIM_RISING_WOBBLE,
+ [SPECIES_JUMPLUFF - 1] = ANIM_V_SLIDE_WOBBLE_SMALL,
+ [SPECIES_AIPOM - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_SUNKERN - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_SUNFLORA - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_YANMA - 1] = ANIM_FIGURE_8,
+ [SPECIES_WOOPER - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_QUAGSIRE - 1] = ANIM_H_STRETCH,
+ [SPECIES_ESPEON - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_UMBREON - 1] = ANIM_V_SHAKE,
+ [SPECIES_MURKROW - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SLOWKING - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_MISDREAVUS - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_UNOWN - 1] = ANIM_ZIGZAG_FAST,
+ [SPECIES_WOBBUFFET - 1] = ANIM_DEEP_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GIRAFARIG - 1] = ANIM_V_JUMPS_BIG,
+ [SPECIES_PINECO - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_FORRETRESS - 1] = ANIM_V_SHAKE,
+ [SPECIES_DUNSPARCE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GLIGAR - 1] = ANIM_SHRINK_GROW,
+ [SPECIES_STEELIX - 1] = ANIM_H_SHAKE,
+ [SPECIES_SNUBBULL - 1] = ANIM_V_STRETCH,
+ [SPECIES_GRANBULL - 1] = ANIM_V_SHAKE,
+ [SPECIES_QWILFISH - 1] = ANIM_GROW_IN_STAGES,
+ [SPECIES_SCIZOR - 1] = ANIM_H_VIBRATE,
+ [SPECIES_SHUCKLE - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_HERACROSS - 1] = ANIM_LUNGE_GROW,
+ [SPECIES_SNEASEL - 1] = ANIM_H_STRETCH,
+ [SPECIES_TEDDIURSA - 1] = ANIM_V_STRETCH,
+ [SPECIES_URSARING - 1] = ANIM_V_SHAKE,
+ [SPECIES_SLUGMA - 1] = ANIM_V_STRETCH,
+ [SPECIES_MAGCARGO - 1] = ANIM_V_STRETCH,
+ [SPECIES_SWINUB - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_PILOSWINE - 1] = ANIM_H_SHAKE,
+ [SPECIES_CORSOLA - 1] = ANIM_H_SLIDE,
+ [SPECIES_REMORAID - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_OCTILLERY - 1] = ANIM_V_STRETCH,
+ [SPECIES_DELIBIRD - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_MANTINE - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_SKARMORY - 1] = ANIM_V_STRETCH,
+ [SPECIES_HOUNDOUR - 1] = ANIM_V_STRETCH,
+ [SPECIES_HOUNDOOM - 1] = ANIM_V_SHAKE,
+ [SPECIES_KINGDRA - 1] = ANIM_CIRCLE_INTO_BG,
+ [SPECIES_PHANPY - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_DONPHAN - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_PORYGON2 - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_STANTLER - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SMEARGLE - 1] = ANIM_H_JUMPS,
+ [SPECIES_TYROGUE - 1] = ANIM_H_STRETCH,
+ [SPECIES_HITMONTOP - 1] = ANIM_H_VIBRATE,
+ [SPECIES_SMOOCHUM - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_ELEKID - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_MAGBY - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MILTANK - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_BLISSEY - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_RAIKOU - 1] = ANIM_FLASH_YELLOW,
+ [SPECIES_ENTEI - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_SUICUNE - 1] = ANIM_V_SHAKE,
+ [SPECIES_LARVITAR - 1] = ANIM_V_JUMPS_SMALL,
+ [SPECIES_PUPITAR - 1] = ANIM_V_SHAKE,
+ [SPECIES_TYRANITAR - 1] = ANIM_H_SHAKE,
+ [SPECIES_LUGIA - 1] = ANIM_GROW_IN_STAGES,
+ [SPECIES_HO_OH - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_CELEBI - 1] = ANIM_RISING_WOBBLE,
+ [SPECIES_GROVYLE - 1] = ANIM_V_STRETCH,
+ [SPECIES_SCEPTILE - 1] = ANIM_V_SHAKE,
+ [SPECIES_TORCHIC - 1] = ANIM_H_STRETCH,
+ [SPECIES_COMBUSKEN - 1] = ANIM_V_JUMPS_H_JUMPS,
+ [SPECIES_BLAZIKEN - 1] = ANIM_H_SHAKE,
+ [SPECIES_MUDKIP - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_MARSHTOMP - 1] = ANIM_V_SLIDE,
+ [SPECIES_SWAMPERT - 1] = ANIM_V_JUMPS_BIG,
+ [SPECIES_POOCHYENA - 1] = ANIM_V_SHAKE,
+ [SPECIES_MIGHTYENA - 1] = ANIM_V_SHAKE,
+ [SPECIES_ZIGZAGOON - 1] = ANIM_H_SLIDE,
+ [SPECIES_LINOONE - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_WURMPLE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SILCOON - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_BEAUTIFLY - 1] = ANIM_V_SLIDE,
+ [SPECIES_CASCOON - 1] = ANIM_V_SLIDE,
+ [SPECIES_DUSTOX - 1] = ANIM_V_JUMPS_H_JUMPS,
+ [SPECIES_LOTAD - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_LOMBRE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_LUDICOLO - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_SEEDOT - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES,
+ [SPECIES_NUZLEAF - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SHIFTRY - 1] = ANIM_H_VIBRATE,
+ [SPECIES_NINCADA - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_NINJASK - 1] = ANIM_H_SLIDE_SLOW,
+ [SPECIES_SHEDINJA - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_TAILLOW - 1] = ANIM_V_JUMPS_BIG,
+ [SPECIES_SWELLOW - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_SHROOMISH - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_BRELOOM - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SPINDA - 1] = ANIM_H_JUMPS,
+ [SPECIES_WINGULL - 1] = ANIM_H_PIVOT,
+ [SPECIES_PELIPPER - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_SURSKIT - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MASQUERAIN - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_WAILMER - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_WAILORD - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_SKITTY - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_DELCATTY - 1] = ANIM_V_STRETCH,
+ [SPECIES_KECLEON - 1] = ANIM_FLICKER_INCREASING,
+ [SPECIES_BALTOY - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_CLAYDOL - 1] = ANIM_V_SLIDE_WOBBLE_SMALL,
+ [SPECIES_NOSEPASS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_TORKOAL - 1] = ANIM_V_STRETCH,
+ [SPECIES_SABLEYE - 1] = ANIM_GLOW_BLACK,
+ [SPECIES_BARBOACH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_WHISCASH - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_LUVDISC - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_CORPHISH - 1] = ANIM_V_SHAKE,
+ [SPECIES_CRAWDAUNT - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_FEEBAS - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_MILOTIC - 1] = ANIM_GLOW_BLUE,
+ [SPECIES_CARVANHA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_SHARPEDO - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE,
+ [SPECIES_TRAPINCH - 1] = ANIM_V_SHAKE,
+ [SPECIES_VIBRAVA - 1] = ANIM_H_SHAKE,
+ [SPECIES_FLYGON - 1] = ANIM_ZIGZAG_SLOW,
+ [SPECIES_MAKUHITA - 1] = ANIM_SWING_CONCAVE,
+ [SPECIES_HARIYAMA - 1] = ANIM_ROTATE_UP_TO_SIDES,
+ [SPECIES_ELECTRIKE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MANECTRIC - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_NUMEL - 1] = ANIM_V_SLIDE,
+ [SPECIES_CAMERUPT - 1] = ANIM_V_SHAKE,
+ [SPECIES_SPHEAL - 1] = ANIM_SPIN,
+ [SPECIES_SEALEO - 1] = ANIM_V_STRETCH,
+ [SPECIES_WALREIN - 1] = ANIM_H_SHAKE,
+ [SPECIES_CACNEA - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_CACTURNE - 1] = ANIM_V_SLIDE,
+ [SPECIES_SNORUNT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_GLALIE - 1] = ANIM_ZIGZAG_FAST,
+ [SPECIES_LUNATONE - 1] = ANIM_SWING_CONVEX_FAST,
+ [SPECIES_SOLROCK - 1] = ANIM_ROTATE_TO_SIDES_TWICE,
+ [SPECIES_AZURILL - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SPOINK - 1] = ANIM_H_JUMPS_V_STRETCH_TWICE,
+ [SPECIES_GRUMPIG - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_PLUSLE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MINUN - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_MAWILE - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_MEDITITE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES,
+ [SPECIES_MEDICHAM - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_SWABLU - 1] = ANIM_V_SLIDE,
+ [SPECIES_ALTARIA - 1] = ANIM_H_STRETCH,
+ [SPECIES_WYNAUT - 1] = ANIM_H_JUMPS_V_STRETCH,
+ [SPECIES_DUSKULL - 1] = ANIM_ZIGZAG_FAST,
+ [SPECIES_DUSCLOPS - 1] = ANIM_H_VIBRATE,
+ [SPECIES_ROSELIA - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_SLAKOTH - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_VIGOROTH - 1] = ANIM_H_JUMPS,
+ [SPECIES_SLAKING - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_GULPIN - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_SWALOT - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_TROPIUS - 1] = ANIM_V_SHAKE,
+ [SPECIES_WHISMUR - 1] = ANIM_H_SLIDE,
+ [SPECIES_LOUDRED - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW,
+ [SPECIES_EXPLOUD - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_CLAMPERL - 1] = ANIM_TWIST,
+ [SPECIES_HUNTAIL - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_GOREBYSS - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_ABSOL - 1] = ANIM_CIRCULAR_VIBRATE,
+ [SPECIES_SHUPPET - 1] = ANIM_V_SLIDE_WOBBLE,
+ [SPECIES_BANETTE - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_SEVIPER - 1] = ANIM_V_STRETCH,
+ [SPECIES_ZANGOOSE - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_RELICANTH - 1] = ANIM_TIP_MOVE_FORWARD,
+ [SPECIES_ARON - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_LAIRON - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_AGGRON - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_CASTFORM - 1] = ANIM_H_SLIDE_WOBBLE,
+ [SPECIES_VOLBEAT - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_ILLUMISE - 1] = ANIM_BOUNCE_ROTATE_TO_SIDES,
+ [SPECIES_LILEEP - 1] = ANIM_V_STRETCH,
+ [SPECIES_CRADILY - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_ANORITH - 1] = ANIM_TWIST,
+ [SPECIES_ARMALDO - 1] = ANIM_V_SHAKE,
+ [SPECIES_RALTS - 1] = ANIM_V_SQUISH_AND_BOUNCE_SLOW,
+ [SPECIES_KIRLIA - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_GARDEVOIR - 1] = ANIM_V_SQUISH_AND_BOUNCE,
+ [SPECIES_BAGON - 1] = ANIM_V_SHAKE_TWICE,
+ [SPECIES_SHELGON - 1] = ANIM_V_SLIDE,
+ [SPECIES_SALAMENCE - 1] = ANIM_H_SHAKE,
+ [SPECIES_BELDUM - 1] = ANIM_H_SHAKE,
+ [SPECIES_METANG - 1] = ANIM_V_SLIDE,
+ [SPECIES_METAGROSS - 1] = ANIM_V_SHAKE,
+ [SPECIES_REGIROCK - 1] = ANIM_CIRCULAR_STRETCH_TWICE,
+ [SPECIES_REGICE - 1] = ANIM_FOUR_PETAL,
+ [SPECIES_REGISTEEL - 1] = ANIM_GROW_VIBRATE,
+ [SPECIES_KYOGRE - 1] = ANIM_SWING_CONCAVE_FAST_SHORT,
+ [SPECIES_GROUDON - 1] = ANIM_V_SHAKE,
+ [SPECIES_RAYQUAZA - 1] = ANIM_H_SHAKE,
+ [SPECIES_LATIAS - 1] = ANIM_SWING_CONCAVE_FAST_SHORT,
+ [SPECIES_LATIOS - 1] = ANIM_V_SHAKE,
+ [SPECIES_JIRACHI - 1] = ANIM_SWING_CONVEX,
+ [SPECIES_DEOXYS - 1] = ANIM_H_PIVOT,
+ [SPECIES_CHIMECHO - 1] = ANIM_H_SLIDE_WOBBLE,
};
static const u8 sMonAnimationDelayTable[NUM_SPECIES - 1] =
{
- [SPECIES_BLASTOISE - 1] = 0x32,
- [SPECIES_WEEDLE - 1] = 0x0a,
- [SPECIES_KAKUNA - 1] = 0x14,
- [SPECIES_BEEDRILL - 1] = 0x23,
- [SPECIES_PIDGEOTTO - 1] = 0x19,
- [SPECIES_FEAROW - 1] = 0x02,
- [SPECIES_EKANS - 1] = 0x1e,
- [SPECIES_NIDORAN_F - 1] = 0x1c,
- [SPECIES_NIDOKING - 1] = 0x19,
- [SPECIES_PARAS - 1] = 0x0a,
- [SPECIES_PARASECT - 1] = 0x2d,
- [SPECIES_VENONAT - 1] = 0x14,
- [SPECIES_DIGLETT - 1] = 0x19,
- [SPECIES_DUGTRIO - 1] = 0x23,
- [SPECIES_MEOWTH - 1] = 0x28,
- [SPECIES_PERSIAN - 1] = 0x14,
- [SPECIES_MANKEY - 1] = 0x14,
- [SPECIES_GROWLITHE - 1] = 0x1e,
- [SPECIES_ARCANINE - 1] = 0x28,
- [SPECIES_POLIWHIRL - 1] = 0x05,
- [SPECIES_WEEPINBELL - 1] = 0x03,
- [SPECIES_MUK - 1] = 0x2d,
- [SPECIES_SHELLDER - 1] = 0x14,
- [SPECIES_HAUNTER - 1] = 0x17,
- [SPECIES_DROWZEE - 1] = 0x30,
- [SPECIES_HYPNO - 1] = 0x28,
- [SPECIES_HITMONCHAN - 1] = 0x19,
- [SPECIES_SCYTHER - 1] = 0x0a,
- [SPECIES_TAUROS - 1] = 0x0a,
- [SPECIES_TYPHLOSION - 1] = 0x14,
- [SPECIES_FERALIGATR - 1] = 0x05,
- [SPECIES_NATU - 1] = 0x1e,
- [SPECIES_MAREEP - 1] = 0x32,
- [SPECIES_AMPHAROS - 1] = 0x0a,
- [SPECIES_POLITOED - 1] = 0x28,
- [SPECIES_DUNSPARCE - 1] = 0x0a,
- [SPECIES_STEELIX - 1] = 0x2d,
- [SPECIES_QWILFISH - 1] = 0x27,
- [SPECIES_SCIZOR - 1] = 0x13,
- [SPECIES_OCTILLERY - 1] = 0x14,
- [SPECIES_SMOOCHUM - 1] = 0x28,
- [SPECIES_TYRANITAR - 1] = 0x0a,
- [SPECIES_LUGIA - 1] = 0x14,
- [SPECIES_WAILORD - 1] = 0x0a,
- [SPECIES_KECLEON - 1] = 0x1e,
- [SPECIES_MILOTIC - 1] = 0x2d,
- [SPECIES_SPHEAL - 1] = 0x0f,
- [SPECIES_SNORUNT - 1] = 0x14,
- [SPECIES_GRUMPIG - 1] = 0x0f,
- [SPECIES_WYNAUT - 1] = 0x0f,
- [SPECIES_DUSCLOPS - 1] = 0x1e,
- [SPECIES_ABSOL - 1] = 0x2d,
- [SPECIES_SALAMENCE - 1] = 0x46,
- [SPECIES_KYOGRE - 1] = 0x3c,
- [SPECIES_RAYQUAZA - 1] = 0x3c,
+ [SPECIES_BLASTOISE - 1] = 50,
+ [SPECIES_WEEDLE - 1] = 10,
+ [SPECIES_KAKUNA - 1] = 20,
+ [SPECIES_BEEDRILL - 1] = 35,
+ [SPECIES_PIDGEOTTO - 1] = 25,
+ [SPECIES_FEAROW - 1] = 2,
+ [SPECIES_EKANS - 1] = 30,
+ [SPECIES_NIDORAN_F - 1] = 28,
+ [SPECIES_NIDOKING - 1] = 25,
+ [SPECIES_PARAS - 1] = 10,
+ [SPECIES_PARASECT - 1] = 45,
+ [SPECIES_VENONAT - 1] = 20,
+ [SPECIES_DIGLETT - 1] = 25,
+ [SPECIES_DUGTRIO - 1] = 35,
+ [SPECIES_MEOWTH - 1] = 40,
+ [SPECIES_PERSIAN - 1] = 20,
+ [SPECIES_MANKEY - 1] = 20,
+ [SPECIES_GROWLITHE - 1] = 30,
+ [SPECIES_ARCANINE - 1] = 40,
+ [SPECIES_POLIWHIRL - 1] = 5,
+ [SPECIES_WEEPINBELL - 1] = 3,
+ [SPECIES_MUK - 1] = 45,
+ [SPECIES_SHELLDER - 1] = 20,
+ [SPECIES_HAUNTER - 1] = 23,
+ [SPECIES_DROWZEE - 1] = 48,
+ [SPECIES_HYPNO - 1] = 40,
+ [SPECIES_HITMONCHAN - 1] = 25,
+ [SPECIES_SCYTHER - 1] = 10,
+ [SPECIES_TAUROS - 1] = 10,
+ [SPECIES_TYPHLOSION - 1] = 20,
+ [SPECIES_FERALIGATR - 1] = 5,
+ [SPECIES_NATU - 1] = 30,
+ [SPECIES_MAREEP - 1] = 50,
+ [SPECIES_AMPHAROS - 1] = 10,
+ [SPECIES_POLITOED - 1] = 40,
+ [SPECIES_DUNSPARCE - 1] = 10,
+ [SPECIES_STEELIX - 1] = 45,
+ [SPECIES_QWILFISH - 1] = 39,
+ [SPECIES_SCIZOR - 1] = 19,
+ [SPECIES_OCTILLERY - 1] = 20,
+ [SPECIES_SMOOCHUM - 1] = 40,
+ [SPECIES_TYRANITAR - 1] = 10,
+ [SPECIES_LUGIA - 1] = 20,
+ [SPECIES_WAILORD - 1] = 10,
+ [SPECIES_KECLEON - 1] = 30,
+ [SPECIES_MILOTIC - 1] = 45,
+ [SPECIES_SPHEAL - 1] = 15,
+ [SPECIES_SNORUNT - 1] = 20,
+ [SPECIES_GRUMPIG - 1] = 15,
+ [SPECIES_WYNAUT - 1] = 15,
+ [SPECIES_DUSCLOPS - 1] = 30,
+ [SPECIES_ABSOL - 1] = 45,
+ [SPECIES_SALAMENCE - 1] = 70,
+ [SPECIES_KYOGRE - 1] = 60,
+ [SPECIES_RAYQUAZA - 1] = 60,
};
const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values
@@ -6627,7 +6601,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId)
if (--gTasks[taskId].data[3] == 0)
{
StartMonSummaryAnimation(READ_PTR_FROM_TASK(taskId, 0), gTasks[taskId].data[2]);
- SummaryScreen_SetUnknownTaskId(0xFF);
+ SummaryScreen_SetAnimDelayTaskId(TASK_NONE);
DestroyTask(taskId);
}
}
@@ -6694,7 +6668,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF
STORE_PTR_IN_TASK(sprite, taskId, 0);
gTasks[taskId].data[2] = sMonFrontAnimIdsTable[species - 1];
gTasks[taskId].data[3] = sMonAnimationDelayTable[species - 1];
- SummaryScreen_SetUnknownTaskId(taskId);
+ SummaryScreen_SetAnimDelayTaskId(taskId);
SetSpriteCB_MonAnimDummy(sprite);
}
else
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index da30963b5..14a17437c 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -10,832 +10,861 @@
#include "constants/battle_anim.h"
#include "constants/rgb.h"
-struct UnkAnimStruct
+/*
+ This file handles the movements of the Pokémon intro animations.
+
+ Each animation type is identified by an ANIM_* constant that
+ refers to a sprite callback to start the animation. These functions
+ are named Anim_<name> or Anim_<name>_<variant>. Many of these
+ functions share additional movement functions to do a variation of the
+ same movement (e.g. a faster or larger movement).
+ Vertical and Horizontal are frequently shortened to V and H.
+
+ Every front animation uses 1 of these ANIMs, and every back animation
+ uses a BACK_ANIM_* that refers to a set of 3 ANIM functions. Which of the
+ 3 that gets used depends on the Pokémon's nature (see sBackAnimationIds).
+
+ The table linking species to a BACK_ANIM is in this file (sSpeciesToBackAnimSet)
+ while the table linking species to an ANIM for their front animation is in
+ pokemon.c (sMonFrontAnimIdsTable).
+
+ These are the functions that will start an animation:
+ - LaunchAnimationTaskForFrontSprite
+ - LaunchAnimationTaskForBackSprite
+ - StartMonSummaryAnimation
+*/
+
+#define sDontFlip data[1] // TRUE if a normal animation, FALSE if Summary Screen animation
+
+struct PokemonAnimData
+{
+ u16 delay;
+ s16 speed; // Only used by 2 sets of animations
+ s16 runs; // Number of times to do the animation
+ s16 rotation;
+ s16 data; // General use
+};
+
+struct YellowFlashData
{
- u16 field_0;
- s16 field_2;
- s16 field_4;
- s16 field_6;
- s16 field_8;
+ bool8 isYellow;
+ u8 time;
};
-// this file's functions
-static void pokemonanimfunc_00(struct Sprite *sprite);
-static void pokemonanimfunc_01(struct Sprite *sprite);
-static void pokemonanimfunc_02(struct Sprite *sprite);
-static void pokemonanimfunc_03(struct Sprite *sprite);
-static void pokemonanimfunc_04(struct Sprite *sprite);
-static void pokemonanimfunc_05(struct Sprite *sprite);
-static void pokemonanimfunc_06(struct Sprite *sprite);
-static void pokemonanimfunc_07(struct Sprite *sprite);
-static void pokemonanimfunc_08(struct Sprite *sprite);
-static void pokemonanimfunc_09(struct Sprite *sprite);
-static void pokemonanimfunc_0A(struct Sprite *sprite);
-static void pokemonanimfunc_0B(struct Sprite *sprite);
-static void pokemonanimfunc_0C(struct Sprite *sprite);
-static void pokemonanimfunc_0D(struct Sprite *sprite);
-static void pokemonanimfunc_0E(struct Sprite *sprite);
-static void pokemonanimfunc_0F(struct Sprite *sprite);
-static void pokemonanimfunc_10(struct Sprite *sprite);
-static void pokemonanimfunc_11(struct Sprite *sprite);
-static void pokemonanimfunc_12(struct Sprite *sprite);
-static void pokemonanimfunc_13(struct Sprite *sprite);
-static void pokemonanimfunc_14(struct Sprite *sprite);
-static void pokemonanimfunc_15(struct Sprite *sprite);
-static void pokemonanimfunc_16(struct Sprite *sprite);
-static void pokemonanimfunc_17(struct Sprite *sprite);
-static void pokemonanimfunc_18(struct Sprite *sprite);
-static void pokemonanimfunc_19(struct Sprite *sprite);
-static void pokemonanimfunc_1A(struct Sprite *sprite);
-static void pokemonanimfunc_1B(struct Sprite *sprite);
-static void pokemonanimfunc_1C(struct Sprite *sprite);
-static void pokemonanimfunc_1D(struct Sprite *sprite);
-static void pokemonanimfunc_1E(struct Sprite *sprite);
-static void pokemonanimfunc_1F(struct Sprite *sprite);
-static void pokemonanimfunc_20(struct Sprite *sprite);
-static void pokemonanimfunc_21(struct Sprite *sprite);
-static void pokemonanimfunc_22(struct Sprite *sprite);
-static void pokemonanimfunc_23(struct Sprite *sprite);
-static void pokemonanimfunc_24(struct Sprite *sprite);
-static void pokemonanimfunc_25(struct Sprite *sprite);
-static void pokemonanimfunc_26(struct Sprite *sprite);
-static void pokemonanimfunc_27(struct Sprite *sprite);
-static void pokemonanimfunc_28(struct Sprite *sprite);
-static void pokemonanimfunc_29(struct Sprite *sprite);
-static void pokemonanimfunc_2A(struct Sprite *sprite);
-static void pokemonanimfunc_2B(struct Sprite *sprite);
-static void pokemonanimfunc_2C(struct Sprite *sprite);
-static void pokemonanimfunc_2D(struct Sprite *sprite);
-static void pokemonanimfunc_2E(struct Sprite *sprite);
-static void pokemonanimfunc_2F(struct Sprite *sprite);
-static void pokemonanimfunc_30(struct Sprite *sprite);
-static void pokemonanimfunc_31(struct Sprite *sprite);
-static void pokemonanimfunc_32(struct Sprite *sprite);
-static void pokemonanimfunc_33(struct Sprite *sprite);
-static void pokemonanimfunc_34(struct Sprite *sprite);
-static void pokemonanimfunc_35(struct Sprite *sprite);
-static void pokemonanimfunc_36(struct Sprite *sprite);
-static void pokemonanimfunc_37(struct Sprite *sprite);
-static void pokemonanimfunc_38(struct Sprite *sprite);
-static void pokemonanimfunc_39(struct Sprite *sprite);
-static void pokemonanimfunc_3A(struct Sprite *sprite);
-static void pokemonanimfunc_3B(struct Sprite *sprite);
-static void pokemonanimfunc_3C(struct Sprite *sprite);
-static void pokemonanimfunc_3D(struct Sprite *sprite);
-static void pokemonanimfunc_3E(struct Sprite *sprite);
-static void pokemonanimfunc_3F(struct Sprite *sprite);
-static void pokemonanimfunc_40(struct Sprite *sprite);
-static void pokemonanimfunc_41(struct Sprite *sprite);
-static void pokemonanimfunc_42(struct Sprite *sprite);
-static void pokemonanimfunc_43(struct Sprite *sprite);
-static void pokemonanimfunc_44(struct Sprite *sprite);
-static void pokemonanimfunc_45(struct Sprite *sprite);
-static void pokemonanimfunc_46(struct Sprite *sprite);
-static void pokemonanimfunc_47(struct Sprite *sprite);
-static void pokemonanimfunc_48(struct Sprite *sprite);
-static void pokemonanimfunc_49(struct Sprite *sprite);
-static void pokemonanimfunc_4A(struct Sprite *sprite);
-static void pokemonanimfunc_4B(struct Sprite *sprite);
-static void pokemonanimfunc_4C(struct Sprite *sprite);
-static void pokemonanimfunc_4D(struct Sprite *sprite);
-static void pokemonanimfunc_4E(struct Sprite *sprite);
-static void pokemonanimfunc_4F(struct Sprite *sprite);
-static void pokemonanimfunc_50(struct Sprite *sprite);
-static void pokemonanimfunc_51(struct Sprite *sprite);
-static void pokemonanimfunc_52(struct Sprite *sprite);
-static void pokemonanimfunc_53(struct Sprite *sprite);
-static void pokemonanimfunc_54(struct Sprite *sprite);
-static void pokemonanimfunc_55(struct Sprite *sprite);
-static void pokemonanimfunc_56(struct Sprite *sprite);
-static void pokemonanimfunc_57(struct Sprite *sprite);
-static void pokemonanimfunc_58(struct Sprite *sprite);
-static void pokemonanimfunc_59(struct Sprite *sprite);
-static void pokemonanimfunc_5A(struct Sprite *sprite);
-static void pokemonanimfunc_5B(struct Sprite *sprite);
-static void pokemonanimfunc_5C(struct Sprite *sprite);
-static void pokemonanimfunc_5D(struct Sprite *sprite);
-static void pokemonanimfunc_5E(struct Sprite *sprite);
-static void pokemonanimfunc_5F(struct Sprite *sprite);
-static void pokemonanimfunc_60(struct Sprite *sprite);
-static void pokemonanimfunc_61(struct Sprite *sprite);
-static void pokemonanimfunc_62(struct Sprite *sprite);
-static void pokemonanimfunc_63(struct Sprite *sprite);
-static void pokemonanimfunc_64(struct Sprite *sprite);
-static void pokemonanimfunc_65(struct Sprite *sprite);
-static void pokemonanimfunc_66(struct Sprite *sprite);
-static void pokemonanimfunc_67(struct Sprite *sprite);
-static void pokemonanimfunc_68(struct Sprite *sprite);
-static void pokemonanimfunc_69(struct Sprite *sprite);
-static void pokemonanimfunc_6A(struct Sprite *sprite);
-static void pokemonanimfunc_6B(struct Sprite *sprite);
-static void pokemonanimfunc_6C(struct Sprite *sprite);
-static void pokemonanimfunc_6D(struct Sprite *sprite);
-static void pokemonanimfunc_6E(struct Sprite *sprite);
-static void pokemonanimfunc_6F(struct Sprite *sprite);
-static void pokemonanimfunc_70(struct Sprite *sprite);
-static void pokemonanimfunc_71(struct Sprite *sprite);
-static void pokemonanimfunc_72(struct Sprite *sprite);
-static void pokemonanimfunc_73(struct Sprite *sprite);
-static void pokemonanimfunc_74(struct Sprite *sprite);
-static void pokemonanimfunc_75(struct Sprite *sprite);
-static void pokemonanimfunc_76(struct Sprite *sprite);
-static void pokemonanimfunc_77(struct Sprite *sprite);
-static void pokemonanimfunc_78(struct Sprite *sprite);
-static void pokemonanimfunc_79(struct Sprite *sprite);
-static void pokemonanimfunc_7A(struct Sprite *sprite);
-static void pokemonanimfunc_7B(struct Sprite *sprite);
-static void pokemonanimfunc_7C(struct Sprite *sprite);
-static void pokemonanimfunc_7D(struct Sprite *sprite);
-static void pokemonanimfunc_7E(struct Sprite *sprite);
-static void pokemonanimfunc_7F(struct Sprite *sprite);
-static void pokemonanimfunc_80(struct Sprite *sprite);
-static void pokemonanimfunc_81(struct Sprite *sprite);
-static void pokemonanimfunc_82(struct Sprite *sprite);
-static void pokemonanimfunc_83(struct Sprite *sprite);
-static void pokemonanimfunc_84(struct Sprite *sprite);
-static void pokemonanimfunc_85(struct Sprite *sprite);
-static void pokemonanimfunc_86(struct Sprite *sprite);
-static void pokemonanimfunc_87(struct Sprite *sprite);
-static void pokemonanimfunc_88(struct Sprite *sprite);
-static void pokemonanimfunc_89(struct Sprite *sprite);
-static void pokemonanimfunc_8A(struct Sprite *sprite);
-static void pokemonanimfunc_8B(struct Sprite *sprite);
-static void pokemonanimfunc_8C(struct Sprite *sprite);
-static void pokemonanimfunc_8D(struct Sprite *sprite);
-static void pokemonanimfunc_8E(struct Sprite *sprite);
-static void pokemonanimfunc_8F(struct Sprite *sprite);
-static void pokemonanimfunc_90(struct Sprite *sprite);
-static void pokemonanimfunc_91(struct Sprite *sprite);
-static void pokemonanimfunc_92(struct Sprite *sprite);
-static void pokemonanimfunc_93(struct Sprite *sprite);
-static void pokemonanimfunc_94(struct Sprite *sprite);
-static void pokemonanimfunc_95(struct Sprite *sprite);
-static void pokemonanimfunc_96(struct Sprite *sprite);
-
-static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite);
-
-#define STRUCT_COUNT 4
-
-// IWRAM bss
-static struct UnkAnimStruct sUnknown_03001240[STRUCT_COUNT];
-static u8 sUnknown_03001270;
-static bool32 sUnknown_03001274;
-
-// const rom data
+static void Anim_VerticalSquishBounce(struct Sprite *sprite);
+static void Anim_CircularStretchTwice(struct Sprite *sprite);
+static void Anim_HorizontalVibrate(struct Sprite *sprite);
+static void Anim_HorizontalSlide(struct Sprite *sprite);
+static void Anim_VerticalSlide(struct Sprite *sprite);
+static void Anim_BounceRotateToSides(struct Sprite *sprite);
+static void Anim_VerticalJumpsHorizontalJumps(struct Sprite *sprite);
+static void Anim_RotateToSides(struct Sprite *sprite);
+static void Anim_RotateToSides_Twice(struct Sprite *sprite);
+static void Anim_GrowVibrate(struct Sprite *sprite);
+static void Anim_ZigzagFast(struct Sprite *sprite);
+static void Anim_SwingConcave(struct Sprite *sprite);
+static void Anim_SwingConcave_Fast(struct Sprite *sprite);
+static void Anim_SwingConvex(struct Sprite *sprite);
+static void Anim_SwingConvex_Fast(struct Sprite *sprite);
+static void Anim_HorizontalShake(struct Sprite *sprite);
+static void Anim_VerticalShake(struct Sprite *sprite);
+static void Anim_CircularVibrate(struct Sprite *sprite);
+static void Anim_Twist(struct Sprite *sprite);
+static void Anim_ShrinkGrow(struct Sprite *sprite);
+static void Anim_CircleCounterclockwise(struct Sprite *sprite);
+static void Anim_GlowBlack(struct Sprite *sprite);
+static void Anim_HorizontalStretch(struct Sprite *sprite);
+static void Anim_VerticalStretch(struct Sprite *sprite);
+static void Anim_RisingWobble(struct Sprite *sprite);
+static void Anim_VerticalShakeTwice(struct Sprite *sprite);
+static void Anim_TipMoveForward(struct Sprite *sprite);
+static void Anim_HorizontalPivot(struct Sprite *sprite);
+static void Anim_VerticalSlideWobble(struct Sprite *sprite);
+static void Anim_HorizontalSlideWobble(struct Sprite *sprite);
+static void Anim_VerticalJumps_Big(struct Sprite *sprite);
+static void Anim_Spin_Long(struct Sprite *sprite);
+static void Anim_GlowOrange(struct Sprite *sprite);
+static void Anim_GlowRed(struct Sprite *sprite);
+static void Anim_GlowBlue(struct Sprite *sprite);
+static void Anim_GlowYellow(struct Sprite *sprite);
+static void Anim_GlowPurple(struct Sprite *sprite);
+static void Anim_BackAndLunge(struct Sprite *sprite);
+static void Anim_BackFlip(struct Sprite *sprite);
+static void Anim_Flicker(struct Sprite *sprite);
+static void Anim_BackFlipBig(struct Sprite *sprite);
+static void Anim_FrontFlip(struct Sprite *sprite);
+static void Anim_TumblingFrontFlip(struct Sprite *sprite);
+static void Anim_Figure8(struct Sprite *sprite);
+static void Anim_FlashYellow(struct Sprite *sprite);
+static void Anim_SwingConcave_FastShort(struct Sprite *sprite);
+static void Anim_SwingConvex_FastShort(struct Sprite *sprite);
+static void Anim_RotateUpSlamDown(struct Sprite *sprite);
+static void Anim_DeepVerticalSquishBounce(struct Sprite *sprite);
+static void Anim_HorizontalJumps(struct Sprite *sprite);
+static void Anim_HorizontalJumpsVerticalStretch(struct Sprite *sprite);
+static void Anim_RotateToSides_Fast(struct Sprite *sprite);
+static void Anim_RotateUpToSides(struct Sprite *sprite);
+static void Anim_FlickerIncreasing(struct Sprite *sprite);
+static void Anim_TipHopForward(struct Sprite *sprite);
+static void Anim_PivotShake(struct Sprite *sprite);
+static void Anim_TipAndShake(struct Sprite *sprite);
+static void Anim_VibrateToCorners(struct Sprite *sprite);
+static void Anim_GrowInStages(struct Sprite *sprite);
+static void Anim_VerticalSpring(struct Sprite *sprite);
+static void Anim_VerticalRepeatedSpring(struct Sprite *sprite);
+static void Anim_SpringRising(struct Sprite *sprite);
+static void Anim_HorizontalSpring(struct Sprite *sprite);
+static void Anim_HorizontalRepeatedSpring_Slow(struct Sprite *sprite);
+static void Anim_HorizontalSlideShrink(struct Sprite *sprite);
+static void Anim_LungeGrow(struct Sprite *sprite);
+static void Anim_CircleIntoBackground(struct Sprite *sprite);
+static void Anim_RapidHorizontalHops(struct Sprite *sprite);
+static void Anim_FourPetal(struct Sprite *sprite);
+static void Anim_VerticalSquishBounce_Slow(struct Sprite *sprite);
+static void Anim_HorizontalSlide_Slow(struct Sprite *sprite);
+static void Anim_VerticalSlide_Slow(struct Sprite *sprite);
+static void Anim_BounceRotateToSides_Small(struct Sprite *sprite);
+static void Anim_BounceRotateToSides_Slow(struct Sprite *sprite);
+static void Anim_BounceRotateToSides_SmallSlow(struct Sprite *sprite);
+static void Anim_ZigzagSlow(struct Sprite *sprite);
+static void Anim_HorizontalShake_Slow(struct Sprite *sprite);
+static void Anim_VertialShake_Slow(struct Sprite *sprite);
+static void Anim_Twist_Twice(struct Sprite *sprite);
+static void Anim_CircleCounterclockwise_Slow(struct Sprite *sprite);
+static void Anim_VerticalShakeTwice_Slow(struct Sprite *sprite);
+static void Anim_VerticalSlideWobble_Small(struct Sprite *sprite);
+static void Anim_VerticalJumps_Small(struct Sprite *sprite);
+static void Anim_Spin(struct Sprite *sprite);
+static void Anim_TumblingFrontFlip_Twice(struct Sprite *sprite);
+static void Anim_DeepVerticalSquishBounce_Twice(struct Sprite *sprite);
+static void Anim_HorizontalJumpsVerticalStretch_Twice(struct Sprite *sprite);
+static void Anim_VerticalShakeBack(struct Sprite *sprite);
+static void Anim_VerticalShakeBack_Slow(struct Sprite *sprite);
+static void Anim_VerticalShakeHorizontalSlide_Slow(struct Sprite *sprite);
+static void Anim_VerticalStretchBothEnds_Slow(struct Sprite *sprite);
+static void Anim_HorizontalStretchFar_Slow(struct Sprite *sprite);
+static void Anim_VerticalShakeLowTwice(struct Sprite *sprite);
+static void Anim_HorizontalShake_Fast(struct Sprite *sprite);
+static void Anim_HorizontalSlide_Fast(struct Sprite *sprite);
+static void Anim_HorizontalVibrate_Fast(struct Sprite *sprite);
+static void Anim_HorizontalVibrate_Fastest(struct Sprite *sprite);
+static void Anim_VerticalShakeBack_Fast(struct Sprite *sprite);
+static void Anim_VerticalShakeLowTwice_Slow(struct Sprite *sprite);
+static void Anim_VerticalShakeLowTwice_Fast(struct Sprite *sprite);
+static void Anim_CircleCounterclockwise_Long(struct Sprite *sprite);
+static void Anim_GrowStutter_Slow(struct Sprite *sprite);
+static void Anim_VerticalShakeHorizontalSlide(struct Sprite *sprite);
+static void Anim_VerticalShakeHorizontalSlide_Fast(struct Sprite *sprite);
+static void Anim_TriangleDown_Slow(struct Sprite *sprite);
+static void Anim_TriangleDown(struct Sprite *sprite);
+static void Anim_TriangleDown_Fast(struct Sprite *sprite);
+static void Anim_Grow(struct Sprite *sprite);
+static void Anim_Grow_Twice(struct Sprite *sprite);
+static void Anim_HorizontalSpring_Fast(struct Sprite *sprite);
+static void Anim_HorizontalSpring_Slow(struct Sprite *sprite);
+static void Anim_HorizontalRepeatedSpring_Fast(struct Sprite *sprite);
+static void Anim_HorizontalRepeatedSpring(struct Sprite *sprite);
+static void Anim_ShrinkGrow_Fast(struct Sprite *sprite);
+static void Anim_ShrinkGrow_Slow(struct Sprite *sprite);
+static void Anim_VerticalStretchBothEnds(struct Sprite *sprite);
+static void Anim_VerticalStretchBothEnds_Twice(struct Sprite *sprite);
+static void Anim_HorizontalStretchFar_Twice(struct Sprite *sprite);
+static void Anim_HorizontalStretchFar(struct Sprite *sprite);
+static void Anim_GrowStutter_Twice(struct Sprite *sprite);
+static void Anim_GrowStutter(struct Sprite *sprite);
+static void Anim_ConcaveArcLarge_Slow(struct Sprite *sprite);
+static void Anim_ConcaveArcLarge(struct Sprite *sprite);
+static void Anim_ConcaveArcLarge_Twice(struct Sprite *sprite);
+static void Anim_ConvexDoubleArc_Slow(struct Sprite *sprite);
+static void Anim_ConvexDoubleArc(struct Sprite *sprite);
+static void Anim_ConvexDoubleArc_Twice(struct Sprite *sprite);
+static void Anim_ConcaveArcSmall_Slow(struct Sprite *sprite);
+static void Anim_ConcaveArcSmall(struct Sprite *sprite);
+static void Anim_ConcaveArcSmall_Twice(struct Sprite *sprite);
+static void Anim_HorizontalDip(struct Sprite *sprite);
+static void Anim_HorizontalDip_Fast(struct Sprite *sprite);
+static void Anim_HorizontalDip_Twice(struct Sprite *sprite);
+static void Anim_ShrinkGrowVibrate_Fast(struct Sprite *sprite);
+static void Anim_ShrinkGrowVibrate(struct Sprite *sprite);
+static void Anim_ShrinkGrowVibrate_Slow(struct Sprite *sprite);
+static void Anim_JoltRight_Fast(struct Sprite *sprite);
+static void Anim_JoltRight(struct Sprite *sprite);
+static void Anim_JoltRight_Slow(struct Sprite *sprite);
+static void Anim_ShakeFlashYellow_Fast(struct Sprite *sprite);
+static void Anim_ShakeFlashYellow(struct Sprite *sprite);
+static void Anim_ShakeFlashYellow_Slow(struct Sprite *sprite);
+static void Anim_ShakeGlowRed_Fast(struct Sprite *sprite);
+static void Anim_ShakeGlowRed(struct Sprite *sprite);
+static void Anim_ShakeGlowRed_Slow(struct Sprite *sprite);
+static void Anim_ShakeGlowGreen_Fast(struct Sprite *sprite);
+static void Anim_ShakeGlowGreen(struct Sprite *sprite);
+static void Anim_ShakeGlowGreen_Slow(struct Sprite *sprite);
+static void Anim_ShakeGlowBlue_Fast(struct Sprite *sprite);
+static void Anim_ShakeGlowBlue(struct Sprite *sprite);
+static void Anim_ShakeGlowBlue_Slow(struct Sprite *sprite);
+
+static void WaitAnimEnd(struct Sprite *sprite);
+
+static struct PokemonAnimData sAnims[MAX_BATTLERS_COUNT];
+static u8 sAnimIdx;
+static bool32 sIsSummaryAnim;
+
static const u8 sSpeciesToBackAnimSet[] =
{
- [SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_IVYSAUR] = BACK_ANIM_H_SLIDE,
- [SPECIES_VENUSAUR] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_CHARMANDER] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
+ [SPECIES_BULBASAUR] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_IVYSAUR] = BACK_ANIM_H_SLIDE,
+ [SPECIES_VENUSAUR] = BACK_ANIM_H_SHAKE,
+ [SPECIES_CHARMANDER] = BACK_ANIM_CONCAVE_ARC_SMALL,
[SPECIES_CHARMELEON] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_CHARIZARD] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_SQUIRTLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_WARTORTLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_BLASTOISE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_CATERPIE] = BACK_ANIM_H_SLIDE,
- [SPECIES_METAPOD] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_BUTTERFREE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_WEEDLE] = BACK_ANIM_H_SLIDE,
- [SPECIES_KAKUNA] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_BEEDRILL] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_PIDGEY] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_PIDGEOTTO] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_PIDGEOT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_RATTATA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_RATICATE] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_SPEAROW] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_FEAROW] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_EKANS] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_ARBOK] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_PIKACHU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_RAICHU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_SANDSHREW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_SANDSLASH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_NIDORAN_F] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_NIDORINA] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_NIDOQUEEN] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_NIDORAN_M] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_NIDORINO] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_NIDOKING] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_CLEFAIRY] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_CLEFABLE] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_VULPIX] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_NINETALES] = BACK_ANIM_H_SLIDE_QUICK,
+ [SPECIES_CHARIZARD] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_SQUIRTLE] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_WARTORTLE] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_BLASTOISE] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_CATERPIE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_METAPOD] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_BUTTERFREE] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_WEEDLE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_KAKUNA] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_BEEDRILL] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_PIDGEY] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_PIDGEOTTO] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_PIDGEOT] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_RATTATA] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_RATICATE] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_SPEAROW] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_FEAROW] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_EKANS] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_ARBOK] = BACK_ANIM_V_SHAKE,
+ [SPECIES_PIKACHU] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_RAICHU] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_SANDSHREW] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_SANDSLASH] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_NIDORAN_F] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_NIDORINA] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_NIDOQUEEN] = BACK_ANIM_V_SHAKE,
+ [SPECIES_NIDORAN_M] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_NIDORINO] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_NIDOKING] = BACK_ANIM_V_SHAKE,
+ [SPECIES_CLEFAIRY] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_CLEFABLE] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_VULPIX] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_NINETALES] = BACK_ANIM_H_VIBRATE,
[SPECIES_JIGGLYPUFF] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_WIGGLYTUFF] = BACK_ANIM_GROW_1,
- [SPECIES_ZUBAT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_GOLBAT] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_ODDISH] = BACK_ANIM_H_SLIDE,
- [SPECIES_GLOOM] = BACK_ANIM_H_SLIDE,
- [SPECIES_VILEPLUME] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_PARAS] = BACK_ANIM_H_SLIDE,
- [SPECIES_PARASECT] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_VENONAT] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_VENOMOTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_DIGLETT] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_DUGTRIO] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_MEOWTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_PERSIAN] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_PSYDUCK] = BACK_ANIM_H_SLIDE,
- [SPECIES_GOLDUCK] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_MANKEY] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_PRIMEAPE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_GROWLITHE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_ARCANINE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_POLIWAG] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_POLIWHIRL] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_POLIWRATH] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_ABRA] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_KADABRA] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_ALAKAZAM] = BACK_ANIM_GROW_2,
- [SPECIES_MACHOP] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_MACHOKE] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_MACHAMP] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_BELLSPROUT] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_WEEPINBELL] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_VICTREEBEL] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_TENTACOOL] = BACK_ANIM_H_SLIDE,
+ [SPECIES_WIGGLYTUFF] = BACK_ANIM_GROW,
+ [SPECIES_ZUBAT] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_GOLBAT] = BACK_ANIM_V_SHAKE,
+ [SPECIES_ODDISH] = BACK_ANIM_H_SLIDE,
+ [SPECIES_GLOOM] = BACK_ANIM_H_SLIDE,
+ [SPECIES_VILEPLUME] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_PARAS] = BACK_ANIM_H_SLIDE,
+ [SPECIES_PARASECT] = BACK_ANIM_H_SHAKE,
+ [SPECIES_VENONAT] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_VENOMOTH] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_DIGLETT] = BACK_ANIM_V_SHAKE,
+ [SPECIES_DUGTRIO] = BACK_ANIM_V_SHAKE,
+ [SPECIES_MEOWTH] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_PERSIAN] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_PSYDUCK] = BACK_ANIM_H_SLIDE,
+ [SPECIES_GOLDUCK] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_MANKEY] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_PRIMEAPE] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_GROWLITHE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_ARCANINE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_POLIWAG] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_POLIWHIRL] = BACK_ANIM_V_SHAKE,
+ [SPECIES_POLIWRATH] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_ABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_KADABRA] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_ALAKAZAM] = BACK_ANIM_GROW_STUTTER,
+ [SPECIES_MACHOP] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_MACHOKE] = BACK_ANIM_V_SHAKE,
+ [SPECIES_MACHAMP] = BACK_ANIM_V_SHAKE,
+ [SPECIES_BELLSPROUT] = BACK_ANIM_V_STRETCH,
+ [SPECIES_WEEPINBELL] = BACK_ANIM_V_STRETCH,
+ [SPECIES_VICTREEBEL] = BACK_ANIM_V_STRETCH,
+ [SPECIES_TENTACOOL] = BACK_ANIM_H_SLIDE,
[SPECIES_TENTACRUEL] = BACK_ANIM_H_SLIDE,
- [SPECIES_GEODUDE] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_GRAVELER] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_GOLEM] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_PONYTA] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_RAPIDASH] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SLOWPOKE] = BACK_ANIM_H_SLIDE,
- [SPECIES_SLOWBRO] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_MAGNEMITE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_MAGNETON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_FARFETCHD] = BACK_ANIM_H_SLIDE,
- [SPECIES_DODUO] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_DODRIO] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SEEL] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_DEWGONG] = BACK_ANIM_H_SLIDE,
- [SPECIES_GRIMER] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_MUK] = BACK_ANIM_HORIZONTAL_STRETCH,
- [SPECIES_SHELLDER] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_CLOYSTER] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_GASTLY] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_HAUNTER] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_GENGAR] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_ONIX] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_DROWZEE] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_HYPNO] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_KRABBY] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_KINGLER] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_VOLTORB] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_ELECTRODE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_EXEGGCUTE] = BACK_ANIM_H_SLIDE,
- [SPECIES_EXEGGUTOR] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_CUBONE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_MAROWAK] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_HITMONLEE] = BACK_ANIM_H_SLIDE,
- [SPECIES_HITMONCHAN] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_LICKITUNG] = BACK_ANIM_H_SLIDE,
- [SPECIES_KOFFING] = BACK_ANIM_GROW_1,
- [SPECIES_WEEZING] = BACK_ANIM_GROW_1,
- [SPECIES_RHYHORN] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_RHYDON] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_CHANSEY] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_TANGELA] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_KANGASKHAN] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_HORSEA] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SEADRA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_GOLDEEN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_SEAKING] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_STARYU] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_STARMIE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_MR_MIME] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_SCYTHER] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_JYNX] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_ELECTABUZZ] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_MAGMAR] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_PINSIR] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_TAUROS] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_MAGIKARP] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_GYARADOS] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_LAPRAS] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_DITTO] = BACK_ANIM_SHRINK_GROW_1,
- [SPECIES_EEVEE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_VAPOREON] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_JOLTEON] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_FLAREON] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_PORYGON] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_OMANYTE] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_OMASTAR] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_KABUTO] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_KABUTOPS] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_GEODUDE] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_GRAVELER] = BACK_ANIM_H_SHAKE,
+ [SPECIES_GOLEM] = BACK_ANIM_H_SHAKE,
+ [SPECIES_PONYTA] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_RAPIDASH] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SLOWPOKE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_SLOWBRO] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_MAGNEMITE] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_MAGNETON] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_FARFETCHD] = BACK_ANIM_H_SLIDE,
+ [SPECIES_DODUO] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_DODRIO] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SEEL] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_DEWGONG] = BACK_ANIM_H_SLIDE,
+ [SPECIES_GRIMER] = BACK_ANIM_V_STRETCH,
+ [SPECIES_MUK] = BACK_ANIM_H_STRETCH,
+ [SPECIES_SHELLDER] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_CLOYSTER] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_GASTLY] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_HAUNTER] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_GENGAR] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_ONIX] = BACK_ANIM_V_SHAKE,
+ [SPECIES_DROWZEE] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_HYPNO] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_KRABBY] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_KINGLER] = BACK_ANIM_V_SHAKE,
+ [SPECIES_VOLTORB] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_ELECTRODE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_EXEGGCUTE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_EXEGGUTOR] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_CUBONE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_MAROWAK] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_HITMONLEE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_HITMONCHAN] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_LICKITUNG] = BACK_ANIM_H_SLIDE,
+ [SPECIES_KOFFING] = BACK_ANIM_GROW,
+ [SPECIES_WEEZING] = BACK_ANIM_GROW,
+ [SPECIES_RHYHORN] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_RHYDON] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_CHANSEY] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_TANGELA] = BACK_ANIM_V_STRETCH,
+ [SPECIES_KANGASKHAN] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_HORSEA] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SEADRA] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_GOLDEEN] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_SEAKING] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_STARYU] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_STARMIE] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_MR_MIME] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_SCYTHER] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_JYNX] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_ELECTABUZZ] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_MAGMAR] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_PINSIR] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_TAUROS] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_MAGIKARP] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_GYARADOS] = BACK_ANIM_V_SHAKE,
+ [SPECIES_LAPRAS] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_DITTO] = BACK_ANIM_SHRINK_GROW,
+ [SPECIES_EEVEE] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_VAPOREON] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_JOLTEON] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_FLAREON] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_PORYGON] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_OMANYTE] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_OMASTAR] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_KABUTO] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_KABUTOPS] = BACK_ANIM_JOLT_RIGHT,
[SPECIES_AERODACTYL] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SNORLAX] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_ARTICUNO] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_ZAPDOS] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_MOLTRES] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_DRATINI] = BACK_ANIM_H_SLIDE,
- [SPECIES_DRAGONAIR] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_DRAGONITE] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_MEWTWO] = BACK_ANIM_GROW_2,
- [SPECIES_MEW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_CHIKORITA] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_BAYLEEF] = BACK_ANIM_H_SLIDE,
- [SPECIES_MEGANIUM] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_CYNDAQUIL] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_QUILAVA] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_TYPHLOSION] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_TOTODILE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_CROCONAW] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_FERALIGATR] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SENTRET] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_FURRET] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_HOOTHOOT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_NOCTOWL] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_LEDYBA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_LEDIAN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_SPINARAK] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_ARIADOS] = BACK_ANIM_H_SLIDE,
- [SPECIES_CROBAT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_CHINCHOU] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_LANTURN] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_PICHU] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_CLEFFA] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_IGGLYBUFF] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_TOGEPI] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_TOGETIC] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_NATU] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_XATU] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_MAREEP] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_FLAAFFY] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_AMPHAROS] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_BELLOSSOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_MARILL] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_AZUMARILL] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SUDOWOODO] = BACK_ANIM_H_SLIDE,
- [SPECIES_POLITOED] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_HOPPIP] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_SKIPLOOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_JUMPLUFF] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_AIPOM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_SUNKERN] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SUNFLORA] = BACK_ANIM_H_SLIDE,
- [SPECIES_YANMA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_WOOPER] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_QUAGSIRE] = BACK_ANIM_H_SLIDE,
- [SPECIES_ESPEON] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_UMBREON] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_MURKROW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_SLOWKING] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_MISDREAVUS] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_UNOWN] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_WOBBUFFET] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_GIRAFARIG] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_PINECO] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_FORRETRESS] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_DUNSPARCE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_GLIGAR] = BACK_ANIM_SHRINK_GROW_1,
- [SPECIES_STEELIX] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SNUBBULL] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_GRANBULL] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_QWILFISH] = BACK_ANIM_GROW_2,
- [SPECIES_SCIZOR] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SHUCKLE] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_HERACROSS] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SNEASEL] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_TEDDIURSA] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_URSARING] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SLUGMA] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_MAGCARGO] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_SWINUB] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_PILOSWINE] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_CORSOLA] = BACK_ANIM_H_SLIDE,
- [SPECIES_REMORAID] = BACK_ANIM_H_SLIDE,
- [SPECIES_OCTILLERY] = BACK_ANIM_SHRINK_GROW_1,
- [SPECIES_DELIBIRD] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_MANTINE] = BACK_ANIM_H_SLIDE,
- [SPECIES_SKARMORY] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_HOUNDOUR] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_HOUNDOOM] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_KINGDRA] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_PHANPY] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_DONPHAN] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_PORYGON2] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_STANTLER] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SMEARGLE] = BACK_ANIM_H_SLIDE,
- [SPECIES_TYROGUE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_HITMONTOP] = BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE,
- [SPECIES_SMOOCHUM] = BACK_ANIM_H_SLIDE,
- [SPECIES_ELEKID] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_MAGBY] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_MILTANK] = BACK_ANIM_H_SLIDE,
- [SPECIES_BLISSEY] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_RAIKOU] = BACK_ANIM_FLASH_YELLOW_WITH_SHAKE,
- [SPECIES_ENTEI] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_SUICUNE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_LARVITAR] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_PUPITAR] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_TYRANITAR] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_LUGIA] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_HO_OH] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_CELEBI] = BACK_ANIM_FADE_GREEN_WITH_SHAKE,
- [SPECIES_TREECKO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_GROVYLE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SCEPTILE] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_TORCHIC] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_COMBUSKEN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_BLAZIKEN] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_MUDKIP] = BACK_ANIM_H_SLIDE,
- [SPECIES_MARSHTOMP] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_SWAMPERT] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_POOCHYENA] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_MIGHTYENA] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_ZIGZAGOON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_LINOONE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_WURMPLE] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_SILCOON] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_BEAUTIFLY] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_CASCOON] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_DUSTOX] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_LOTAD] = BACK_ANIM_H_SLIDE,
- [SPECIES_LOMBRE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_LUDICOLO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_SEEDOT] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_NUZLEAF] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SHIFTRY] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_NINCADA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_NINJASK] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_SHEDINJA] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_TAILLOW] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_SWELLOW] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SHROOMISH] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_BRELOOM] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_SPINDA] = BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE,
- [SPECIES_WINGULL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_PELIPPER] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_SURSKIT] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1,
- [SPECIES_MASQUERAIN] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_WAILMER] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_WAILORD] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_SKITTY] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_DELCATTY] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_KECLEON] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_BALTOY] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_CLAYDOL] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_NOSEPASS] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_TORKOAL] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_SABLEYE] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_BARBOACH] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_WHISCASH] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_LUVDISC] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2,
- [SPECIES_CORPHISH] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_CRAWDAUNT] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_FEEBAS] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1,
- [SPECIES_MILOTIC] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_CARVANHA] = BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2,
- [SPECIES_SHARPEDO] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_TRAPINCH] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_VIBRAVA] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_FLYGON] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_MAKUHITA] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_HARIYAMA] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_ELECTRIKE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_MANECTRIC] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_NUMEL] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_CAMERUPT] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_SPHEAL] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SEALEO] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_WALREIN] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_CACNEA] = BACK_ANIM_V_SHAKE_WITH_H_SLIDE,
- [SPECIES_CACTURNE] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_SNORUNT] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_GLALIE] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_LUNATONE] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_SOLROCK] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_AZURILL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_SPOINK] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_GRUMPIG] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_PLUSLE] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_MINUN] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_MAWILE] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_MEDITITE] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_MEDICHAM] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_SWABLU] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_ALTARIA] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_WYNAUT] = BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE,
- [SPECIES_DUSKULL] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_DUSCLOPS] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_ROSELIA] = BACK_ANIM_FADE_GREEN_WITH_SHAKE,
- [SPECIES_SLAKOTH] = BACK_ANIM_H_SLIDE,
- [SPECIES_VIGOROTH] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL,
- [SPECIES_SLAKING] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_GULPIN] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_SWALOT] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_TROPIUS] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_WHISMUR] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_LOUDRED] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_EXPLOUD] = BACK_ANIM_GROW_2,
- [SPECIES_CLAMPERL] = BACK_ANIM_DIP_RIGHT_SIDE,
- [SPECIES_HUNTAIL] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_GOREBYSS] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_ABSOL] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_SHUPPET] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_BANETTE] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_SEVIPER] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_ZANGOOSE] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_RELICANTH] = BACK_ANIM_H_SLIDE,
- [SPECIES_ARON] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_LAIRON] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_AGGRON] = BACK_ANIM_V_SHAKE_WITH_PAUSE,
- [SPECIES_CASTFORM] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_VOLBEAT] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_ILLUMISE] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_LILEEP] = BACK_ANIM_HORIZONTAL_STRETCH,
- [SPECIES_CRADILY] = BACK_ANIM_VERTICAL_STRETCH,
- [SPECIES_ANORITH] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_ARMALDO] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_RALTS] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_KIRLIA] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_GARDEVOIR] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_BAGON] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SHELGON] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_SALAMENCE] = BACK_ANIM_HORIZONTAL_SHAKE,
- [SPECIES_BELDUM] = BACK_ANIM_CIRCLE_MOVE_CLOCKWISE,
- [SPECIES_METANG] = BACK_ANIM_JOLT_RIGHT,
- [SPECIES_METAGROSS] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_REGIROCK] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_REGICE] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_REGISTEEL] = BACK_ANIM_VERTICAL_SHAKE,
- [SPECIES_KYOGRE] = BACK_ANIM_FADE_BLUE_WITH_SHAKE,
- [SPECIES_GROUDON] = BACK_ANIM_FADE_RED_WITH_SHAKE,
- [SPECIES_RAYQUAZA] = BACK_ANIM_GROW_2,
- [SPECIES_LATIAS] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_LATIOS] = BACK_ANIM_H_SLIDE_QUICK,
- [SPECIES_JIRACHI] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
- [SPECIES_DEOXYS] = BACK_ANIM_SHRINK_GROW_2,
- [SPECIES_CHIMECHO] = BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE,
+ [SPECIES_SNORLAX] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_ARTICUNO] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_ZAPDOS] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_MOLTRES] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_DRATINI] = BACK_ANIM_H_SLIDE,
+ [SPECIES_DRAGONAIR] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_DRAGONITE] = BACK_ANIM_V_SHAKE,
+ [SPECIES_MEWTWO] = BACK_ANIM_GROW_STUTTER,
+ [SPECIES_MEW] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_CHIKORITA] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_BAYLEEF] = BACK_ANIM_H_SLIDE,
+ [SPECIES_MEGANIUM] = BACK_ANIM_V_SHAKE,
+ [SPECIES_CYNDAQUIL] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_QUILAVA] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_TYPHLOSION] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_TOTODILE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_CROCONAW] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_FERALIGATR] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SENTRET] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_FURRET] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_HOOTHOOT] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_NOCTOWL] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_LEDYBA] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_LEDIAN] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_SPINARAK] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_ARIADOS] = BACK_ANIM_H_SLIDE,
+ [SPECIES_CROBAT] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_CHINCHOU] = BACK_ANIM_V_STRETCH,
+ [SPECIES_LANTURN] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_PICHU] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_CLEFFA] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_IGGLYBUFF] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_TOGEPI] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_TOGETIC] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_NATU] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_XATU] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_MAREEP] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_FLAAFFY] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_AMPHAROS] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_BELLOSSOM] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_MARILL] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_AZUMARILL] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SUDOWOODO] = BACK_ANIM_H_SLIDE,
+ [SPECIES_POLITOED] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_HOPPIP] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_SKIPLOOM] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_JUMPLUFF] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_AIPOM] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_SUNKERN] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SUNFLORA] = BACK_ANIM_H_SLIDE,
+ [SPECIES_YANMA] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_WOOPER] = BACK_ANIM_V_STRETCH,
+ [SPECIES_QUAGSIRE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_ESPEON] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_UMBREON] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_MURKROW] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_SLOWKING] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_MISDREAVUS] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_UNOWN] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_WOBBUFFET] = BACK_ANIM_V_STRETCH,
+ [SPECIES_GIRAFARIG] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_PINECO] = BACK_ANIM_H_SHAKE,
+ [SPECIES_FORRETRESS] = BACK_ANIM_V_SHAKE,
+ [SPECIES_DUNSPARCE] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_GLIGAR] = BACK_ANIM_SHRINK_GROW,
+ [SPECIES_STEELIX] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SNUBBULL] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_GRANBULL] = BACK_ANIM_V_SHAKE,
+ [SPECIES_QWILFISH] = BACK_ANIM_GROW_STUTTER,
+ [SPECIES_SCIZOR] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SHUCKLE] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_HERACROSS] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SNEASEL] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_TEDDIURSA] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_URSARING] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SLUGMA] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_MAGCARGO] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_SWINUB] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_PILOSWINE] = BACK_ANIM_H_SHAKE,
+ [SPECIES_CORSOLA] = BACK_ANIM_H_SLIDE,
+ [SPECIES_REMORAID] = BACK_ANIM_H_SLIDE,
+ [SPECIES_OCTILLERY] = BACK_ANIM_SHRINK_GROW,
+ [SPECIES_DELIBIRD] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_MANTINE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_SKARMORY] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_HOUNDOUR] = BACK_ANIM_V_SHAKE,
+ [SPECIES_HOUNDOOM] = BACK_ANIM_V_SHAKE,
+ [SPECIES_KINGDRA] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_PHANPY] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_DONPHAN] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_PORYGON2] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_STANTLER] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SMEARGLE] = BACK_ANIM_H_SLIDE,
+ [SPECIES_TYROGUE] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_HITMONTOP] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE,
+ [SPECIES_SMOOCHUM] = BACK_ANIM_H_SLIDE,
+ [SPECIES_ELEKID] = BACK_ANIM_H_SHAKE,
+ [SPECIES_MAGBY] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_MILTANK] = BACK_ANIM_H_SLIDE,
+ [SPECIES_BLISSEY] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_RAIKOU] = BACK_ANIM_SHAKE_FLASH_YELLOW,
+ [SPECIES_ENTEI] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_SUICUNE] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_LARVITAR] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_PUPITAR] = BACK_ANIM_V_SHAKE,
+ [SPECIES_TYRANITAR] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_LUGIA] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_HO_OH] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_CELEBI] = BACK_ANIM_SHAKE_GLOW_GREEN,
+ [SPECIES_TREECKO] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_GROVYLE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SCEPTILE] = BACK_ANIM_V_SHAKE,
+ [SPECIES_TORCHIC] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_COMBUSKEN] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_BLAZIKEN] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_MUDKIP] = BACK_ANIM_H_SLIDE,
+ [SPECIES_MARSHTOMP] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_SWAMPERT] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_POOCHYENA] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_MIGHTYENA] = BACK_ANIM_H_SHAKE,
+ [SPECIES_ZIGZAGOON] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_LINOONE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_WURMPLE] = BACK_ANIM_V_STRETCH,
+ [SPECIES_SILCOON] = BACK_ANIM_H_SHAKE,
+ [SPECIES_BEAUTIFLY] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_CASCOON] = BACK_ANIM_H_SHAKE,
+ [SPECIES_DUSTOX] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_LOTAD] = BACK_ANIM_H_SLIDE,
+ [SPECIES_LOMBRE] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_LUDICOLO] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_SEEDOT] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_NUZLEAF] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SHIFTRY] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_NINCADA] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_NINJASK] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_SHEDINJA] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_TAILLOW] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_SWELLOW] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SHROOMISH] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_BRELOOM] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_SPINDA] = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE,
+ [SPECIES_WINGULL] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_PELIPPER] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_SURSKIT] = BACK_ANIM_H_SPRING,
+ [SPECIES_MASQUERAIN] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_WAILMER] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_WAILORD] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_SKITTY] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_DELCATTY] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_KECLEON] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_BALTOY] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_CLAYDOL] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_NOSEPASS] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_TORKOAL] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_SABLEYE] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_BARBOACH] = BACK_ANIM_V_STRETCH,
+ [SPECIES_WHISCASH] = BACK_ANIM_V_SHAKE,
+ [SPECIES_LUVDISC] = BACK_ANIM_H_SPRING_REPEATED,
+ [SPECIES_CORPHISH] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_CRAWDAUNT] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_FEEBAS] = BACK_ANIM_H_SPRING,
+ [SPECIES_MILOTIC] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_CARVANHA] = BACK_ANIM_H_SPRING_REPEATED,
+ [SPECIES_SHARPEDO] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_TRAPINCH] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_VIBRAVA] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_FLYGON] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_MAKUHITA] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_HARIYAMA] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_ELECTRIKE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_MANECTRIC] = BACK_ANIM_V_SHAKE,
+ [SPECIES_NUMEL] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_CAMERUPT] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_SPHEAL] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SEALEO] = BACK_ANIM_V_SHAKE,
+ [SPECIES_WALREIN] = BACK_ANIM_V_SHAKE,
+ [SPECIES_CACNEA] = BACK_ANIM_V_SHAKE_H_SLIDE,
+ [SPECIES_CACTURNE] = BACK_ANIM_H_SHAKE,
+ [SPECIES_SNORUNT] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_GLALIE] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_LUNATONE] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_SOLROCK] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_AZURILL] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_SPOINK] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_GRUMPIG] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_PLUSLE] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_MINUN] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_MAWILE] = BACK_ANIM_V_SHAKE,
+ [SPECIES_MEDITITE] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_MEDICHAM] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_SWABLU] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_ALTARIA] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_WYNAUT] = BACK_ANIM_CONCAVE_ARC_SMALL,
+ [SPECIES_DUSKULL] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_DUSCLOPS] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_ROSELIA] = BACK_ANIM_SHAKE_GLOW_GREEN,
+ [SPECIES_SLAKOTH] = BACK_ANIM_H_SLIDE,
+ [SPECIES_VIGOROTH] = BACK_ANIM_CONCAVE_ARC_LARGE,
+ [SPECIES_SLAKING] = BACK_ANIM_H_SHAKE,
+ [SPECIES_GULPIN] = BACK_ANIM_V_STRETCH,
+ [SPECIES_SWALOT] = BACK_ANIM_V_STRETCH,
+ [SPECIES_TROPIUS] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_WHISMUR] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_LOUDRED] = BACK_ANIM_V_SHAKE,
+ [SPECIES_EXPLOUD] = BACK_ANIM_GROW_STUTTER,
+ [SPECIES_CLAMPERL] = BACK_ANIM_DIP_RIGHT_SIDE,
+ [SPECIES_HUNTAIL] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_GOREBYSS] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_ABSOL] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_SHUPPET] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_BANETTE] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_SEVIPER] = BACK_ANIM_V_STRETCH,
+ [SPECIES_ZANGOOSE] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_RELICANTH] = BACK_ANIM_H_SLIDE,
+ [SPECIES_ARON] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_LAIRON] = BACK_ANIM_V_SHAKE,
+ [SPECIES_AGGRON] = BACK_ANIM_V_SHAKE_LOW,
+ [SPECIES_CASTFORM] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_VOLBEAT] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_ILLUMISE] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_LILEEP] = BACK_ANIM_H_STRETCH,
+ [SPECIES_CRADILY] = BACK_ANIM_V_STRETCH,
+ [SPECIES_ANORITH] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_ARMALDO] = BACK_ANIM_V_SHAKE,
+ [SPECIES_RALTS] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_KIRLIA] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_GARDEVOIR] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_BAGON] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SHELGON] = BACK_ANIM_V_SHAKE,
+ [SPECIES_SALAMENCE] = BACK_ANIM_H_SHAKE,
+ [SPECIES_BELDUM] = BACK_ANIM_TRIANGLE_DOWN,
+ [SPECIES_METANG] = BACK_ANIM_JOLT_RIGHT,
+ [SPECIES_METAGROSS] = BACK_ANIM_V_SHAKE,
+ [SPECIES_REGIROCK] = BACK_ANIM_V_SHAKE,
+ [SPECIES_REGICE] = BACK_ANIM_V_SHAKE,
+ [SPECIES_REGISTEEL] = BACK_ANIM_V_SHAKE,
+ [SPECIES_KYOGRE] = BACK_ANIM_SHAKE_GLOW_BLUE,
+ [SPECIES_GROUDON] = BACK_ANIM_SHAKE_GLOW_RED,
+ [SPECIES_RAYQUAZA] = BACK_ANIM_GROW_STUTTER,
+ [SPECIES_LATIAS] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_LATIOS] = BACK_ANIM_H_VIBRATE,
+ [SPECIES_JIRACHI] = BACK_ANIM_CONVEX_DOUBLE_ARC,
+ [SPECIES_DEOXYS] = BACK_ANIM_SHRINK_GROW_VIBRATE,
+ [SPECIES_CHIMECHO] = BACK_ANIM_CONVEX_DOUBLE_ARC,
};
-static const u8 sUnknown_0860AA64[][2] =
-{
- {0, 5},
- {1, 1},
- {0, 15},
- {1, 4},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {0, 0xFF}
+// Equivalent to struct YellowFlashData, but doesn't match as a struct
+static const u8 sYellowFlashData[][2] =
+{
+ {FALSE, 5},
+ { TRUE, 1},
+ {FALSE, 15},
+ { TRUE, 4},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ {FALSE, -1}
};
-static const u8 sUnknown_0860AA80[][2] =
+static const u8 sVerticalShakeData[][2] =
{
- {6, 30},
- {0xFE, 15},
- {6, 30},
- {0xFF, 0}
+ { 6, 30},
+ {-2, 15},
+ { 6, 30},
+ {-1, 0}
};
static void (* const sMonAnimFunctions[])(struct Sprite *sprite) =
{
- pokemonanimfunc_00,
- pokemonanimfunc_01,
- pokemonanimfunc_02,
- pokemonanimfunc_03,
- pokemonanimfunc_04,
- pokemonanimfunc_05,
- pokemonanimfunc_06,
- pokemonanimfunc_07,
- pokemonanimfunc_08,
- pokemonanimfunc_09,
- pokemonanimfunc_0A,
- pokemonanimfunc_0B,
- pokemonanimfunc_0C,
- pokemonanimfunc_0D,
- pokemonanimfunc_0E,
- pokemonanimfunc_0F,
- pokemonanimfunc_10,
- pokemonanimfunc_11,
- pokemonanimfunc_12,
- pokemonanimfunc_13,
- pokemonanimfunc_14,
- pokemonanimfunc_15,
- pokemonanimfunc_16,
- pokemonanimfunc_17,
- pokemonanimfunc_18,
- pokemonanimfunc_19,
- pokemonanimfunc_1A,
- pokemonanimfunc_1B,
- pokemonanimfunc_1C,
- pokemonanimfunc_1D,
- pokemonanimfunc_1E,
- pokemonanimfunc_1F,
- pokemonanimfunc_20,
- pokemonanimfunc_21,
- pokemonanimfunc_22,
- pokemonanimfunc_23,
- pokemonanimfunc_24,
- pokemonanimfunc_25,
- pokemonanimfunc_26,
- pokemonanimfunc_27,
- pokemonanimfunc_28,
- pokemonanimfunc_29,
- pokemonanimfunc_2A,
- pokemonanimfunc_2B,
- pokemonanimfunc_2C,
- pokemonanimfunc_2D,
- pokemonanimfunc_2E,
- pokemonanimfunc_2F,
- pokemonanimfunc_30,
- pokemonanimfunc_31,
- pokemonanimfunc_32,
- pokemonanimfunc_33,
- pokemonanimfunc_34,
- pokemonanimfunc_35,
- pokemonanimfunc_36,
- pokemonanimfunc_37,
- pokemonanimfunc_38,
- pokemonanimfunc_39,
- pokemonanimfunc_3A,
- pokemonanimfunc_3B,
- pokemonanimfunc_3C,
- pokemonanimfunc_3D,
- pokemonanimfunc_3E,
- pokemonanimfunc_3F,
- pokemonanimfunc_40,
- pokemonanimfunc_41,
- pokemonanimfunc_42,
- pokemonanimfunc_43,
- pokemonanimfunc_44,
- pokemonanimfunc_45,
- pokemonanimfunc_46,
- pokemonanimfunc_47,
- pokemonanimfunc_48,
- pokemonanimfunc_49,
- pokemonanimfunc_4A,
- pokemonanimfunc_4B,
- pokemonanimfunc_4C,
- pokemonanimfunc_4D,
- pokemonanimfunc_4E,
- pokemonanimfunc_4F,
- pokemonanimfunc_50,
- pokemonanimfunc_51,
- pokemonanimfunc_52,
- pokemonanimfunc_53,
- pokemonanimfunc_54,
- pokemonanimfunc_55,
- pokemonanimfunc_56,
- pokemonanimfunc_57,
- pokemonanimfunc_58,
- pokemonanimfunc_59,
- pokemonanimfunc_5A,
- pokemonanimfunc_5B,
- pokemonanimfunc_5C,
- pokemonanimfunc_5D,
- pokemonanimfunc_5E,
- pokemonanimfunc_5F,
- pokemonanimfunc_60,
- pokemonanimfunc_61,
- pokemonanimfunc_62,
- pokemonanimfunc_63,
- pokemonanimfunc_64,
- pokemonanimfunc_65,
- pokemonanimfunc_66,
- pokemonanimfunc_67,
- pokemonanimfunc_68,
- pokemonanimfunc_69,
- pokemonanimfunc_6A,
- pokemonanimfunc_6B,
- pokemonanimfunc_6C,
- pokemonanimfunc_6D,
- pokemonanimfunc_6E,
- pokemonanimfunc_6F,
- pokemonanimfunc_70,
- pokemonanimfunc_71,
- pokemonanimfunc_72,
- pokemonanimfunc_73,
- pokemonanimfunc_74,
- pokemonanimfunc_75,
- pokemonanimfunc_76,
- pokemonanimfunc_77,
- pokemonanimfunc_78,
- pokemonanimfunc_79,
- pokemonanimfunc_7A,
- pokemonanimfunc_7B,
- pokemonanimfunc_7C,
- pokemonanimfunc_7D,
- pokemonanimfunc_7E,
- pokemonanimfunc_7F,
- pokemonanimfunc_80,
- pokemonanimfunc_81,
- pokemonanimfunc_82,
- pokemonanimfunc_83,
- pokemonanimfunc_84,
- pokemonanimfunc_85,
- pokemonanimfunc_86,
- pokemonanimfunc_87,
- pokemonanimfunc_88,
- pokemonanimfunc_89,
- pokemonanimfunc_8A,
- pokemonanimfunc_8B,
- pokemonanimfunc_8C,
- pokemonanimfunc_8D,
- pokemonanimfunc_8E,
- pokemonanimfunc_8F,
- pokemonanimfunc_90,
- pokemonanimfunc_91,
- pokemonanimfunc_92,
- pokemonanimfunc_93,
- pokemonanimfunc_94,
- pokemonanimfunc_95,
- pokemonanimfunc_96
+ [ANIM_V_SQUISH_AND_BOUNCE] = Anim_VerticalSquishBounce,
+ [ANIM_CIRCULAR_STRETCH_TWICE] = Anim_CircularStretchTwice,
+ [ANIM_H_VIBRATE] = Anim_HorizontalVibrate,
+ [ANIM_H_SLIDE] = Anim_HorizontalSlide,
+ [ANIM_V_SLIDE] = Anim_VerticalSlide,
+ [ANIM_BOUNCE_ROTATE_TO_SIDES] = Anim_BounceRotateToSides,
+ [ANIM_V_JUMPS_H_JUMPS] = Anim_VerticalJumpsHorizontalJumps,
+ [ANIM_ROTATE_TO_SIDES] = Anim_RotateToSides, // Unused
+ [ANIM_ROTATE_TO_SIDES_TWICE] = Anim_RotateToSides_Twice,
+ [ANIM_GROW_VIBRATE] = Anim_GrowVibrate,
+ [ANIM_ZIGZAG_FAST] = Anim_ZigzagFast,
+ [ANIM_SWING_CONCAVE] = Anim_SwingConcave,
+ [ANIM_SWING_CONCAVE_FAST] = Anim_SwingConcave_Fast,
+ [ANIM_SWING_CONVEX] = Anim_SwingConvex,
+ [ANIM_SWING_CONVEX_FAST] = Anim_SwingConvex_Fast,
+ [ANIM_H_SHAKE] = Anim_HorizontalShake,
+ [ANIM_V_SHAKE] = Anim_VerticalShake,
+ [ANIM_CIRCULAR_VIBRATE] = Anim_CircularVibrate,
+ [ANIM_TWIST] = Anim_Twist,
+ [ANIM_SHRINK_GROW] = Anim_ShrinkGrow,
+ [ANIM_CIRCLE_C_CLOCKWISE] = Anim_CircleCounterclockwise,
+ [ANIM_GLOW_BLACK] = Anim_GlowBlack,
+ [ANIM_H_STRETCH] = Anim_HorizontalStretch,
+ [ANIM_V_STRETCH] = Anim_VerticalStretch,
+ [ANIM_RISING_WOBBLE] = Anim_RisingWobble,
+ [ANIM_V_SHAKE_TWICE] = Anim_VerticalShakeTwice,
+ [ANIM_TIP_MOVE_FORWARD] = Anim_TipMoveForward,
+ [ANIM_H_PIVOT] = Anim_HorizontalPivot,
+ [ANIM_V_SLIDE_WOBBLE] = Anim_VerticalSlideWobble,
+ [ANIM_H_SLIDE_WOBBLE] = Anim_HorizontalSlideWobble,
+ [ANIM_V_JUMPS_BIG] = Anim_VerticalJumps_Big,
+ [ANIM_SPIN_LONG] = Anim_Spin_Long, // Unused
+ [ANIM_GLOW_ORANGE] = Anim_GlowOrange,
+ [ANIM_GLOW_RED] = Anim_GlowRed, // Unused
+ [ANIM_GLOW_BLUE] = Anim_GlowBlue,
+ [ANIM_GLOW_YELLOW] = Anim_GlowYellow, // Unused
+ [ANIM_GLOW_PURPLE] = Anim_GlowPurple, // Unused
+ [ANIM_BACK_AND_LUNGE] = Anim_BackAndLunge,
+ [ANIM_BACK_FLIP] = Anim_BackFlip, // Unused
+ [ANIM_FLICKER] = Anim_Flicker, // Unused
+ [ANIM_BACK_FLIP_BIG] = Anim_BackFlipBig, // Unused
+ [ANIM_FRONT_FLIP] = Anim_FrontFlip,
+ [ANIM_TUMBLING_FRONT_FLIP] = Anim_TumblingFrontFlip, // Unused
+ [ANIM_FIGURE_8] = Anim_Figure8,
+ [ANIM_FLASH_YELLOW] = Anim_FlashYellow,
+ [ANIM_SWING_CONCAVE_FAST_SHORT] = Anim_SwingConcave_FastShort,
+ [ANIM_SWING_CONVEX_FAST_SHORT] = Anim_SwingConvex_FastShort, // Unused
+ [ANIM_ROTATE_UP_SLAM_DOWN] = Anim_RotateUpSlamDown,
+ [ANIM_DEEP_V_SQUISH_AND_BOUNCE] = Anim_DeepVerticalSquishBounce,
+ [ANIM_H_JUMPS] = Anim_HorizontalJumps,
+ [ANIM_H_JUMPS_V_STRETCH] = Anim_HorizontalJumpsVerticalStretch,
+ [ANIM_ROTATE_TO_SIDES_FAST] = Anim_RotateToSides_Fast, // Unused
+ [ANIM_ROTATE_UP_TO_SIDES] = Anim_RotateUpToSides,
+ [ANIM_FLICKER_INCREASING] = Anim_FlickerIncreasing,
+ [ANIM_TIP_HOP_FORWARD] = Anim_TipHopForward, // Unused
+ [ANIM_PIVOT_SHAKE] = Anim_PivotShake, // Unused
+ [ANIM_TIP_AND_SHAKE] = Anim_TipAndShake, // Unused
+ [ANIM_VIBRATE_TO_CORNERS] = Anim_VibrateToCorners, // Unused
+ [ANIM_GROW_IN_STAGES] = Anim_GrowInStages,
+ [ANIM_V_SPRING] = Anim_VerticalSpring, // Unused
+ [ANIM_V_REPEATED_SPRING] = Anim_VerticalRepeatedSpring, // Unused
+ [ANIM_SPRING_RISING] = Anim_SpringRising, // Unused
+ [ANIM_H_SPRING] = Anim_HorizontalSpring,
+ [ANIM_H_REPEATED_SPRING_SLOW] = Anim_HorizontalRepeatedSpring_Slow,
+ [ANIM_H_SLIDE_SHRINK] = Anim_HorizontalSlideShrink, // Unused
+ [ANIM_LUNGE_GROW] = Anim_LungeGrow,
+ [ANIM_CIRCLE_INTO_BG] = Anim_CircleIntoBackground,
+ [ANIM_RAPID_H_HOPS] = Anim_RapidHorizontalHops,
+ [ANIM_FOUR_PETAL] = Anim_FourPetal,
+ [ANIM_V_SQUISH_AND_BOUNCE_SLOW] = Anim_VerticalSquishBounce_Slow,
+ [ANIM_H_SLIDE_SLOW] = Anim_HorizontalSlide_Slow,
+ [ANIM_V_SLIDE_SLOW] = Anim_VerticalSlide_Slow,
+ [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL] = Anim_BounceRotateToSides_Small,
+ [ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW] = Anim_BounceRotateToSides_Slow,
+ [ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW] = Anim_BounceRotateToSides_SmallSlow,
+ [ANIM_ZIGZAG_SLOW] = Anim_ZigzagSlow,
+ [ANIM_H_SHAKE_SLOW] = Anim_HorizontalShake_Slow,
+ [ANIM_V_SHAKE_SLOW] = Anim_VertialShake_Slow, // Unused
+ [ANIM_TWIST_TWICE] = Anim_Twist_Twice,
+ [ANIM_CIRCLE_C_CLOCKWISE_SLOW] = Anim_CircleCounterclockwise_Slow,
+ [ANIM_V_SHAKE_TWICE_SLOW] = Anim_VerticalShakeTwice_Slow, // Unused
+ [ANIM_V_SLIDE_WOBBLE_SMALL] = Anim_VerticalSlideWobble_Small,
+ [ANIM_V_JUMPS_SMALL] = Anim_VerticalJumps_Small,
+ [ANIM_SPIN] = Anim_Spin,
+ [ANIM_TUMBLING_FRONT_FLIP_TWICE] = Anim_TumblingFrontFlip_Twice,
+ [ANIM_DEEP_V_SQUISH_AND_BOUNCE_TWICE] = Anim_DeepVerticalSquishBounce_Twice, // Unused
+ [ANIM_H_JUMPS_V_STRETCH_TWICE] = Anim_HorizontalJumpsVerticalStretch_Twice,
+ [ANIM_V_SHAKE_BACK] = Anim_VerticalShakeBack,
+ [ANIM_V_SHAKE_BACK_SLOW] = Anim_VerticalShakeBack_Slow,
+ [ANIM_V_SHAKE_H_SLIDE_SLOW] = Anim_VerticalShakeHorizontalSlide_Slow,
+ [ANIM_V_STRETCH_BOTH_ENDS_SLOW] = Anim_VerticalStretchBothEnds_Slow,
+ [ANIM_H_STRETCH_FAR_SLOW] = Anim_HorizontalStretchFar_Slow,
+ [ANIM_V_SHAKE_LOW_TWICE] = Anim_VerticalShakeLowTwice,
+ [ANIM_H_SHAKE_FAST] = Anim_HorizontalShake_Fast,
+ [ANIM_H_SLIDE_FAST] = Anim_HorizontalSlide_Fast,
+ [ANIM_H_VIBRATE_FAST] = Anim_HorizontalVibrate_Fast,
+ [ANIM_H_VIBRATE_FASTEST] = Anim_HorizontalVibrate_Fastest,
+ [ANIM_V_SHAKE_BACK_FAST] = Anim_VerticalShakeBack_Fast,
+ [ANIM_V_SHAKE_LOW_TWICE_SLOW] = Anim_VerticalShakeLowTwice_Slow,
+ [ANIM_V_SHAKE_LOW_TWICE_FAST] = Anim_VerticalShakeLowTwice_Fast,
+ [ANIM_CIRCLE_C_CLOCKWISE_LONG] = Anim_CircleCounterclockwise_Long,
+ [ANIM_GROW_STUTTER_SLOW] = Anim_GrowStutter_Slow,
+ [ANIM_V_SHAKE_H_SLIDE] = Anim_VerticalShakeHorizontalSlide,
+ [ANIM_V_SHAKE_H_SLIDE_FAST] = Anim_VerticalShakeHorizontalSlide_Fast,
+ [ANIM_TRIANGLE_DOWN_SLOW] = Anim_TriangleDown_Slow,
+ [ANIM_TRIANGLE_DOWN] = Anim_TriangleDown,
+ [ANIM_TRIANGLE_DOWN_TWICE] = Anim_TriangleDown_Fast,
+ [ANIM_GROW] = Anim_Grow,
+ [ANIM_GROW_TWICE] = Anim_Grow_Twice,
+ [ANIM_H_SPRING_FAST] = Anim_HorizontalSpring_Fast,
+ [ANIM_H_SPRING_SLOW] = Anim_HorizontalSpring_Slow,
+ [ANIM_H_REPEATED_SPRING_FAST] = Anim_HorizontalRepeatedSpring_Fast,
+ [ANIM_H_REPEATED_SPRING] = Anim_HorizontalRepeatedSpring,
+ [ANIM_SHRINK_GROW_FAST] = Anim_ShrinkGrow_Fast,
+ [ANIM_SHRINK_GROW_SLOW] = Anim_ShrinkGrow_Slow,
+ [ANIM_V_STRETCH_BOTH_ENDS] = Anim_VerticalStretchBothEnds,
+ [ANIM_V_STRETCH_BOTH_ENDS_TWICE] = Anim_VerticalStretchBothEnds_Twice,
+ [ANIM_H_STRETCH_FAR_TWICE] = Anim_HorizontalStretchFar_Twice,
+ [ANIM_H_STRETCH_FAR] = Anim_HorizontalStretchFar,
+ [ANIM_GROW_STUTTER_TWICE] = Anim_GrowStutter_Twice,
+ [ANIM_GROW_STUTTER] = Anim_GrowStutter,
+ [ANIM_CONCAVE_ARC_LARGE_SLOW] = Anim_ConcaveArcLarge_Slow,
+ [ANIM_CONCAVE_ARC_LARGE] = Anim_ConcaveArcLarge,
+ [ANIM_CONCAVE_ARC_LARGE_TWICE] = Anim_ConcaveArcLarge_Twice,
+ [ANIM_CONVEX_DOUBLE_ARC_SLOW] = Anim_ConvexDoubleArc_Slow,
+ [ANIM_CONVEX_DOUBLE_ARC] = Anim_ConvexDoubleArc,
+ [ANIM_CONVEX_DOUBLE_ARC_TWICE] = Anim_ConvexDoubleArc_Twice,
+ [ANIM_CONCAVE_ARC_SMALL_SLOW] = Anim_ConcaveArcSmall_Slow,
+ [ANIM_CONCAVE_ARC_SMALL] = Anim_ConcaveArcSmall,
+ [ANIM_CONCAVE_ARC_SMALL_TWICE] = Anim_ConcaveArcSmall_Twice,
+ [ANIM_H_DIP] = Anim_HorizontalDip,
+ [ANIM_H_DIP_FAST] = Anim_HorizontalDip_Fast,
+ [ANIM_H_DIP_TWICE] = Anim_HorizontalDip_Twice,
+ [ANIM_SHRINK_GROW_VIBRATE_FAST] = Anim_ShrinkGrowVibrate_Fast,
+ [ANIM_SHRINK_GROW_VIBRATE] = Anim_ShrinkGrowVibrate,
+ [ANIM_SHRINK_GROW_VIBRATE_SLOW] = Anim_ShrinkGrowVibrate_Slow,
+ [ANIM_JOLT_RIGHT_FAST] = Anim_JoltRight_Fast,
+ [ANIM_JOLT_RIGHT] = Anim_JoltRight,
+ [ANIM_JOLT_RIGHT_SLOW] = Anim_JoltRight_Slow,
+ [ANIM_SHAKE_FLASH_YELLOW_FAST] = Anim_ShakeFlashYellow_Fast,
+ [ANIM_SHAKE_FLASH_YELLOW] = Anim_ShakeFlashYellow,
+ [ANIM_SHAKE_FLASH_YELLOW_SLOW] = Anim_ShakeFlashYellow_Slow,
+ [ANIM_SHAKE_GLOW_RED_FAST] = Anim_ShakeGlowRed_Fast,
+ [ANIM_SHAKE_GLOW_RED] = Anim_ShakeGlowRed,
+ [ANIM_SHAKE_GLOW_RED_SLOW] = Anim_ShakeGlowRed_Slow,
+ [ANIM_SHAKE_GLOW_GREEN_FAST] = Anim_ShakeGlowGreen_Fast,
+ [ANIM_SHAKE_GLOW_GREEN] = Anim_ShakeGlowGreen,
+ [ANIM_SHAKE_GLOW_GREEN_SLOW] = Anim_ShakeGlowGreen_Slow,
+ [ANIM_SHAKE_GLOW_BLUE_FAST] = Anim_ShakeGlowBlue_Fast,
+ [ANIM_SHAKE_GLOW_BLUE] = Anim_ShakeGlowBlue,
+ [ANIM_SHAKE_GLOW_BLUE_SLOW] = Anim_ShakeGlowBlue_Slow
};
-// counting from Id 1, because 0 in sSpeciesToBackAnimSet is used for mons with no back animation
+// Each back anim set has 3 possible animations depending on nature
+// Each of the 3 animations is a slight variation of the others
+// BACK_ANIM_NONE is skipped below. GetSpeciesBackAnimSet subtracts 1 from the back anim id
static const u8 sBackAnimationIds[] =
{
- 0x60, 0x5f, 0x02, // 1
- 0x5e, 0x03, 0x46, // 2
- 0x6d, 0x3e, 0x6e, // 3
- 0x6f, 0x70, 0x3f, // 4
- 0x71, 0x13, 0x72, // 5
- 0x6c, 0x6b, 0x3a, // 6
- 0x64, 0x14, 0x4f, // 7
- 0x5d, 0x0f, 0x4c, // 8
- 0x61, 0x57, 0x58, // 9
- 0x67, 0x66, 0x59, // 0xA
- 0x74, 0x73, 0x5a, // 0xB
- 0x75, 0x76, 0x5b, // 0xC
- 0x77, 0x78, 0x65, // 0xD
- 0x63, 0x5c, 0x62, // 0xE
- 0x6a, 0x69, 0x68, // 0xF
- 0x7b, 0x7a, 0x79, // 0x10
- 0x7e, 0x7d, 0x7c, // 0x11
- 0x81, 0x80, 0x7f, // 0x12
- 0x84, 0x82, 0x83, // 0x13
- 0x85, 0x86, 0x87, // 0x14
- 0x88, 0x89, 0x8a, // 0x15
- 0x8b, 0x8c, 0x8d, // 0x16
- 0x8e, 0x8f, 0x90, // 0x17
- 0x91, 0x92, 0x93, // 0x18
- 0x94, 0x95, 0x96, // 0x19
+ [(BACK_ANIM_H_VIBRATE - 1) * 3] = ANIM_H_VIBRATE_FASTEST, ANIM_H_VIBRATE_FAST, ANIM_H_VIBRATE,
+ [(BACK_ANIM_H_SLIDE - 1) * 3] = ANIM_H_SLIDE_FAST, ANIM_H_SLIDE, ANIM_H_SLIDE_SLOW,
+ [(BACK_ANIM_H_SPRING - 1) * 3] = ANIM_H_SPRING_FAST, ANIM_H_SPRING, ANIM_H_SPRING_SLOW,
+ [(BACK_ANIM_H_SPRING_REPEATED - 1) * 3] = ANIM_H_REPEATED_SPRING_FAST, ANIM_H_REPEATED_SPRING, ANIM_H_REPEATED_SPRING_SLOW,
+ [(BACK_ANIM_SHRINK_GROW - 1) * 3] = ANIM_SHRINK_GROW_FAST, ANIM_SHRINK_GROW, ANIM_SHRINK_GROW_SLOW,
+ [(BACK_ANIM_GROW - 1) * 3] = ANIM_GROW_TWICE, ANIM_GROW, ANIM_GROW_IN_STAGES,
+ [(BACK_ANIM_CIRCLE_COUNTERCLOCKWISE - 1) * 3] = ANIM_CIRCLE_C_CLOCKWISE_LONG, ANIM_CIRCLE_C_CLOCKWISE, ANIM_CIRCLE_C_CLOCKWISE_SLOW,
+ [(BACK_ANIM_H_SHAKE - 1) * 3] = ANIM_H_SHAKE_FAST, ANIM_H_SHAKE, ANIM_H_SHAKE_SLOW,
+ [(BACK_ANIM_V_SHAKE - 1) * 3] = ANIM_V_SHAKE_BACK_FAST, ANIM_V_SHAKE_BACK, ANIM_V_SHAKE_BACK_SLOW,
+ [(BACK_ANIM_V_SHAKE_H_SLIDE - 1) * 3] = ANIM_V_SHAKE_H_SLIDE_FAST, ANIM_V_SHAKE_H_SLIDE, ANIM_V_SHAKE_H_SLIDE_SLOW,
+ [(BACK_ANIM_V_STRETCH - 1) * 3] = ANIM_V_STRETCH_BOTH_ENDS_TWICE, ANIM_V_STRETCH_BOTH_ENDS, ANIM_V_STRETCH_BOTH_ENDS_SLOW,
+ [(BACK_ANIM_H_STRETCH - 1) * 3] = ANIM_H_STRETCH_FAR_TWICE, ANIM_H_STRETCH_FAR, ANIM_H_STRETCH_FAR_SLOW,
+ [(BACK_ANIM_GROW_STUTTER - 1) * 3] = ANIM_GROW_STUTTER_TWICE, ANIM_GROW_STUTTER, ANIM_GROW_STUTTER_SLOW,
+ [(BACK_ANIM_V_SHAKE_LOW - 1) * 3] = ANIM_V_SHAKE_LOW_TWICE_FAST, ANIM_V_SHAKE_LOW_TWICE, ANIM_V_SHAKE_LOW_TWICE_SLOW,
+ [(BACK_ANIM_TRIANGLE_DOWN - 1) * 3] = ANIM_TRIANGLE_DOWN_TWICE, ANIM_TRIANGLE_DOWN, ANIM_TRIANGLE_DOWN_SLOW,
+ [(BACK_ANIM_CONCAVE_ARC_LARGE - 1) * 3] = ANIM_CONCAVE_ARC_LARGE_TWICE, ANIM_CONCAVE_ARC_LARGE, ANIM_CONCAVE_ARC_LARGE_SLOW,
+ [(BACK_ANIM_CONVEX_DOUBLE_ARC - 1) * 3] = ANIM_CONVEX_DOUBLE_ARC_TWICE, ANIM_CONVEX_DOUBLE_ARC, ANIM_CONVEX_DOUBLE_ARC_SLOW,
+ [(BACK_ANIM_CONCAVE_ARC_SMALL - 1) * 3] = ANIM_CONCAVE_ARC_SMALL_TWICE, ANIM_CONCAVE_ARC_SMALL, ANIM_CONCAVE_ARC_SMALL_SLOW,
+ [(BACK_ANIM_DIP_RIGHT_SIDE - 1) * 3] = ANIM_H_DIP_TWICE, ANIM_H_DIP, ANIM_H_DIP_FAST,
+ [(BACK_ANIM_SHRINK_GROW_VIBRATE - 1) * 3] = ANIM_SHRINK_GROW_VIBRATE_FAST, ANIM_SHRINK_GROW_VIBRATE, ANIM_SHRINK_GROW_VIBRATE_SLOW,
+ [(BACK_ANIM_JOLT_RIGHT - 1) * 3] = ANIM_JOLT_RIGHT_FAST, ANIM_JOLT_RIGHT, ANIM_JOLT_RIGHT_SLOW,
+ [(BACK_ANIM_SHAKE_FLASH_YELLOW - 1) * 3] = ANIM_SHAKE_FLASH_YELLOW_FAST, ANIM_SHAKE_FLASH_YELLOW, ANIM_SHAKE_FLASH_YELLOW_SLOW,
+ [(BACK_ANIM_SHAKE_GLOW_RED - 1) * 3] = ANIM_SHAKE_GLOW_RED_FAST, ANIM_SHAKE_GLOW_RED, ANIM_SHAKE_GLOW_RED_SLOW,
+ [(BACK_ANIM_SHAKE_GLOW_GREEN - 1) * 3] = ANIM_SHAKE_GLOW_GREEN_FAST, ANIM_SHAKE_GLOW_GREEN, ANIM_SHAKE_GLOW_GREEN_SLOW,
+ [(BACK_ANIM_SHAKE_GLOW_BLUE - 1) * 3] = ANIM_SHAKE_GLOW_BLUE_FAST, ANIM_SHAKE_GLOW_BLUE, ANIM_SHAKE_GLOW_BLUE_SLOW,
};
static const u8 sBackAnimNatureModTable[NUM_NATURES] =
{
- [NATURE_HARDY] = 0x00,
- [NATURE_LONELY] = 0x02,
- [NATURE_BRAVE] = 0x00,
- [NATURE_ADAMANT] = 0x00,
- [NATURE_NAUGHTY] = 0x00,
- [NATURE_BOLD] = 0x01,
- [NATURE_DOCILE] = 0x01,
- [NATURE_RELAXED] = 0x01,
- [NATURE_IMPISH] = 0x00,
- [NATURE_LAX] = 0x01,
- [NATURE_TIMID] = 0x02,
- [NATURE_HASTY] = 0x00,
- [NATURE_SERIOUS] = 0x01,
- [NATURE_JOLLY] = 0x00,
- [NATURE_NAIVE] = 0x00,
- [NATURE_MODEST] = 0x02,
- [NATURE_MILD] = 0x02,
- [NATURE_QUIET] = 0x02,
- [NATURE_BASHFUL] = 0x02,
- [NATURE_RASH] = 0x01,
- [NATURE_CALM] = 0x01,
- [NATURE_GENTLE] = 0x02,
- [NATURE_SASSY] = 0x01,
- [NATURE_CAREFUL] = 0x02,
- [NATURE_QUIRKY] = 0x01,
+ [NATURE_HARDY] = 0,
+ [NATURE_LONELY] = 2,
+ [NATURE_BRAVE] = 0,
+ [NATURE_ADAMANT] = 0,
+ [NATURE_NAUGHTY] = 0,
+ [NATURE_BOLD] = 1,
+ [NATURE_DOCILE] = 1,
+ [NATURE_RELAXED] = 1,
+ [NATURE_IMPISH] = 0,
+ [NATURE_LAX] = 1,
+ [NATURE_TIMID] = 2,
+ [NATURE_HASTY] = 0,
+ [NATURE_SERIOUS] = 1,
+ [NATURE_JOLLY] = 0,
+ [NATURE_NAIVE] = 0,
+ [NATURE_MODEST] = 2,
+ [NATURE_MILD] = 2,
+ [NATURE_QUIET] = 2,
+ [NATURE_BASHFUL] = 2,
+ [NATURE_RASH] = 1,
+ [NATURE_CALM] = 1,
+ [NATURE_GENTLE] = 2,
+ [NATURE_SASSY] = 1,
+ [NATURE_CAREFUL] = 2,
+ [NATURE_QUIRKY] = 1,
};
-static const union AffineAnimCmd sSpriteAffineAnim_860AD48[] =
+static const union AffineAnimCmd sMonAffineAnim_0[] =
{
AFFINEANIMCMD_FRAME(256, 256, 0, 0),
AFFINEANIMCMDTYPE_END
};
-static const union AffineAnimCmd sSpriteAffineAnim_860AD58[] =
+static const union AffineAnimCmd sMonAffineAnim_1[] =
{
AFFINEANIMCMD_FRAME(-256, 256, 0, 0),
AFFINEANIMCMDTYPE_END
};
-static const union AffineAnimCmd *const sSpriteAffineAnimTable_860AD68[] =
+static const union AffineAnimCmd *const sMonAffineAnims[] =
{
- sSpriteAffineAnim_860AD48,
- sSpriteAffineAnim_860AD58
+ sMonAffineAnim_0,
+ sMonAffineAnim_1
};
-// code
static void MonAnimDummySpriteCallback(struct Sprite *sprite)
{
}
-static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY)
+static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 amplitudeY)
{
s16 xAdder, yAdder;
@@ -854,7 +883,7 @@ static void sub_817F3F0(struct Sprite *sprite, u16 index, s16 amplitudeX, s16 am
u8 GetSpeciesBackAnimSet(u16 species)
{
- if (sSpeciesToBackAnimSet[species] != 0)
+ if (sSpeciesToBackAnimSet[species] != BACK_ANIM_NONE)
return sSpeciesToBackAnimSet[species] - 1;
else
return 0;
@@ -864,8 +893,8 @@ u8 GetSpeciesBackAnimSet(u16 species)
#define tPtrHi data[1]
#define tPtrLo data[2]
#define tAnimId data[3]
-#define tSaved0 data[4]
-#define tSaved2 data[5]
+#define tBattlerId data[4]
+#define tSpeciesId data[5]
// BUG: In vanilla, tPtrLo is read as an s16, so if bit 15 of the
// address were to be set it would cause the pointer to be read
@@ -885,23 +914,23 @@ static void Task_HandleMonAnimation(u8 taskId)
if (gTasks[taskId].tState == 0)
{
- gTasks[taskId].tSaved0 = sprite->data[0];
- gTasks[taskId].tSaved2 = sprite->data[2];
- sprite->data[1] = 1;
+ gTasks[taskId].tBattlerId = sprite->data[0];
+ gTasks[taskId].tSpeciesId = sprite->data[2];
+ sprite->sDontFlip = TRUE;
sprite->data[0] = 0;
for (i = 2; i < ARRAY_COUNT(sprite->data); i++)
sprite->data[i] = 0;
sprite->callback = sMonAnimFunctions[gTasks[taskId].tAnimId];
- sUnknown_03001274 = FALSE;
+ sIsSummaryAnim = FALSE;
gTasks[taskId].tState++;
}
if (sprite->callback == SpriteCallbackDummy)
{
- sprite->data[0] = gTasks[taskId].tSaved0;
- sprite->data[2] = gTasks[taskId].tSaved2;
+ sprite->data[0] = gTasks[taskId].tBattlerId;
+ sprite->data[2] = gTasks[taskId].tSpeciesId;
sprite->data[1] = 0;
DestroyTask(taskId);
@@ -911,14 +940,15 @@ static void Task_HandleMonAnimation(u8 taskId)
void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, u8 frontAnimId)
{
u8 taskId = CreateTask(Task_HandleMonAnimation, 128);
- gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrHi = (u32)(sprite) >> 16;
gTasks[taskId].tPtrLo = (u32)(sprite);
gTasks[taskId].tAnimId = frontAnimId;
}
void StartMonSummaryAnimation(struct Sprite *sprite, u8 frontAnimId)
{
- sUnknown_03001274 = TRUE;
+ // sDontFlip is expected to still be FALSE here, not explicitly cleared
+ sIsSummaryAnim = TRUE;
sprite->callback = sMonAnimFunctions[frontAnimId];
}
@@ -927,12 +957,13 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
u8 nature, taskId, animId, battlerId;
taskId = CreateTask(Task_HandleMonAnimation, 128);
- gTasks[taskId].tPtrHi = (u32)(sprite) >> 0x10;
+ gTasks[taskId].tPtrHi = (u32)(sprite) >> 16;
gTasks[taskId].tPtrLo = (u32)(sprite);
battlerId = sprite->data[0];
nature = GetNature(&gPlayerParty[gBattlerPartyIndexes[battlerId]]);
+ // * 3 below because each back anim has 3 variants depending on nature
animId = 3 * backAnimSet + sBackAnimNatureModTable[nature];
gTasks[taskId].tAnimId = sBackAnimationIds[animId];
}
@@ -941,8 +972,8 @@ void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, u8 backAnimSet)
#undef tPtrHi
#undef tPtrLo
#undef tAnimId
-#undef tSaved0
-#undef tSaved2
+#undef tBattlerId
+#undef tSpeciesId
void SetSpriteCB_MonAnimDummy(struct Sprite *sprite)
{
@@ -971,23 +1002,23 @@ static void SetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rot
static void HandleStartAffineAnim(struct Sprite *sprite)
{
sprite->oam.affineMode = ST_OAM_AFFINE_DOUBLE;
- sprite->affineAnims = sSpriteAffineAnimTable_860AD68;
+ sprite->affineAnims = sMonAffineAnims;
- if (sUnknown_03001274 == TRUE)
+ if (sIsSummaryAnim == TRUE)
InitSpriteAffineAnim(sprite);
- if (!sprite->data[1])
+ if (!sprite->sDontFlip)
StartSpriteAffineAnim(sprite, 1);
else
StartSpriteAffineAnim(sprite, 0);
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
- sprite->affineAnimPaused = 1;
+ sprite->affineAnimPaused = TRUE;
}
static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u16 rotation)
{
- if (!sprite->data[1])
+ if (!sprite->sDontFlip)
{
xScale *= -1;
rotation *= -1;
@@ -996,47 +1027,47 @@ static void HandleSetAffineData(struct Sprite *sprite, s16 xScale, s16 yScale, u
SetAffineData(sprite, xScale, yScale, rotation);
}
-static void sub_817F70C(struct Sprite *sprite)
+static void TryFlipX(struct Sprite *sprite)
{
- if (!sprite->data[1])
+ if (!sprite->sDontFlip)
sprite->pos2.x *= -1;
}
-static bool32 sub_817F724(u8 id)
+static bool32 InitAnimData(u8 id)
{
- if (id >= STRUCT_COUNT)
+ if (id >= MAX_BATTLERS_COUNT)
{
return FALSE;
}
else
{
- sUnknown_03001240[id].field_6 = 0;
- sUnknown_03001240[id].field_0 = 0;
- sUnknown_03001240[id].field_4 = 1;
- sUnknown_03001240[id].field_2 = 0;
- sUnknown_03001240[id].field_8 = 0;
+ sAnims[id].rotation = 0;
+ sAnims[id].delay = 0;
+ sAnims[id].runs = 1;
+ sAnims[id].speed = 0;
+ sAnims[id].data = 0;
return TRUE;
}
}
-static u8 sub_817F758(void)
+static u8 AddNewAnim(void)
{
- sUnknown_03001270 = (sUnknown_03001270 + 1) % STRUCT_COUNT;
- sub_817F724(sUnknown_03001270);
- return sUnknown_03001270;
+ sAnimIdx = (sAnimIdx + 1) % MAX_BATTLERS_COUNT;
+ InitAnimData(sAnimIdx);
+ return sAnimIdx;
}
-static void sub_817F77C(struct Sprite *sprite)
+static void ResetSpriteAfterAnim(struct Sprite *sprite)
{
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
- if (sUnknown_03001274 == TRUE)
+ if (sIsSummaryAnim == TRUE)
{
- if (!sprite->data[1])
- sprite->hFlip = 1;
+ if (!sprite->sDontFlip)
+ sprite->hFlip = TRUE;
else
- sprite->hFlip = 0;
+ sprite->hFlip = FALSE;
FreeOamMatrix(sprite->oam.matrixNum);
sprite->oam.matrixNum |= (sprite->hFlip << 3);
@@ -1052,7 +1083,7 @@ static void sub_817F77C(struct Sprite *sprite)
#endif // BUGFIX
}
-static void pokemonanimfunc_01(struct Sprite *sprite)
+static void Anim_CircularStretchTwice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
@@ -1060,8 +1091,8 @@ static void pokemonanimfunc_01(struct Sprite *sprite)
if (sprite->data[2] > 40)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1075,11 +1106,11 @@ static void pokemonanimfunc_01(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_02(struct Sprite *sprite)
+static void Anim_HorizontalVibrate(struct Sprite *sprite)
{
if (sprite->data[2] > 40)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -1096,13 +1127,13 @@ static void pokemonanimfunc_02(struct Sprite *sprite)
sprite->data[2]++;
}
-static void sub_817F8FC(struct Sprite *sprite)
+static void HorizontalSlide(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > sprite->data[0])
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -1111,23 +1142,23 @@ static void sub_817F8FC(struct Sprite *sprite)
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_03(struct Sprite *sprite)
+static void Anim_HorizontalSlide(struct Sprite *sprite)
{
sprite->data[0] = 40;
- sub_817F8FC(sprite);
- sprite->callback = sub_817F8FC;
+ HorizontalSlide(sprite);
+ sprite->callback = HorizontalSlide;
}
-static void sub_817F978(struct Sprite *sprite)
+static void VerticalSlide(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > sprite->data[0])
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
}
else
@@ -1136,22 +1167,22 @@ static void sub_817F978(struct Sprite *sprite)
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_04(struct Sprite *sprite)
+static void Anim_VerticalSlide(struct Sprite *sprite)
{
sprite->data[0] = 40;
- sub_817F978(sprite);
- sprite->callback = sub_817F978;
+ VerticalSlide(sprite);
+ sprite->callback = VerticalSlide;
}
-static void sub_817F9F4(struct Sprite *sprite)
+static void VerticalJumps(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
if (counter > 384)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
@@ -1175,20 +1206,20 @@ static void sub_817F9F4(struct Sprite *sprite)
sprite->data[2] += 12;
}
-static void pokemonanimfunc_1E(struct Sprite *sprite)
+static void Anim_VerticalJumps_Big(struct Sprite *sprite)
{
sprite->data[0] = 4;
- sub_817F9F4(sprite);
- sprite->callback = sub_817F9F4;
+ VerticalJumps(sprite);
+ sprite->callback = VerticalJumps;
}
-static void pokemonanimfunc_06(struct Sprite *sprite)
+static void Anim_VerticalJumpsHorizontalJumps(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
if (counter > 768)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
@@ -1222,7 +1253,7 @@ static void pokemonanimfunc_06(struct Sprite *sprite)
sprite->data[2] += 12;
}
-static void pokemonanimfunc_09(struct Sprite *sprite)
+static void Anim_GrowVibrate(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
@@ -1230,8 +1261,8 @@ static void pokemonanimfunc_09(struct Sprite *sprite)
if (sprite->data[2] > 40)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1254,32 +1285,33 @@ static void pokemonanimfunc_09(struct Sprite *sprite)
sprite->data[2]++;
}
-static const s8 sUnknown_0860AD70[][3] =
+// x delta, y delta, time
+static const s8 sZigzagData[][3] =
{
{-1, -1, 6},
- {2, 0, 6},
+ { 2, 0, 6},
{-2, 2, 6},
- {2, 0, 6},
+ { 2, 0, 6},
{-2, -2, 6},
- {2, 0, 6},
+ { 2, 0, 6},
{-2, 2, 6},
- {2, 0, 6},
+ { 2, 0, 6},
{-1, -1, 6},
- {0, 0, 0},
+ { 0, 0, 0},
};
-static void sub_817FC20(struct Sprite *sprite)
+static void Zigzag(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
sprite->data[3] = 0;
- if (sUnknown_0860AD70[sprite->data[3]][2] == sprite->data[2])
+ if (sZigzagData[sprite->data[3]][2] == sprite->data[2])
{
- if (sUnknown_0860AD70[sprite->data[3]][2] == 0)
+ if (sZigzagData[sprite->data[3]][2] == 0)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1288,32 +1320,32 @@ static void sub_817FC20(struct Sprite *sprite)
}
}
- if (sUnknown_0860AD70[sprite->data[3]][2] == 0)
+ if (sZigzagData[sprite->data[3]][2] == 0)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
- sprite->pos2.x += sUnknown_0860AD70[sprite->data[3]][0];
- sprite->pos2.y += sUnknown_0860AD70[sprite->data[3]][1];
+ sprite->pos2.x += sZigzagData[sprite->data[3]][0];
+ sprite->pos2.y += sZigzagData[sprite->data[3]][1];
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void pokemonanimfunc_0A(struct Sprite *sprite)
+static void Anim_ZigzagFast(struct Sprite *sprite)
{
- sub_817FC20(sprite);
- sprite->callback = sub_817FC20;
+ Zigzag(sprite);
+ sprite->callback = Zigzag;
}
-static void sub_817FCDC(struct Sprite *sprite)
+static void HorizontalShake(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
if (counter > 2304)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -1324,21 +1356,21 @@ static void sub_817FCDC(struct Sprite *sprite)
sprite->data[2] += sprite->data[0];
}
-static void pokemonanimfunc_0F(struct Sprite *sprite)
+static void Anim_HorizontalShake(struct Sprite *sprite)
{
sprite->data[0] = 60;
sprite->data[7] = 3;
- sub_817FCDC(sprite);
- sprite->callback = sub_817FCDC;
+ HorizontalShake(sprite);
+ sprite->callback = HorizontalShake;
}
-static void sub_817FD44(struct Sprite *sprite)
+static void VerticalShake(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
if (counter > 2304)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
}
else
@@ -1349,18 +1381,18 @@ static void sub_817FD44(struct Sprite *sprite)
sprite->data[2] += sprite->data[0];
}
-static void pokemonanimfunc_10(struct Sprite *sprite)
+static void Anim_VerticalShake(struct Sprite *sprite)
{
sprite->data[0] = 60;
- sub_817FD44(sprite);
- sprite->callback = sub_817FD44;
+ VerticalShake(sprite);
+ sprite->callback = VerticalShake;
}
-static void pokemonanimfunc_11(struct Sprite *sprite)
+static void Anim_CircularVibrate(struct Sprite *sprite)
{
if (sprite->data[2] > 512)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
@@ -1384,36 +1416,36 @@ static void pokemonanimfunc_11(struct Sprite *sprite)
sprite->data[2] += 9;
}
-static void sub_817FE30(struct Sprite *sprite)
+static void Twist(struct Sprite *sprite)
{
s16 id = sprite->data[0];
- if (sUnknown_03001240[id].field_0 != 0)
+ if (sAnims[id].delay != 0)
{
- sUnknown_03001240[id].field_0--;
+ sAnims[id].delay--;
}
else
{
- if (sprite->data[2] == 0 && sUnknown_03001240[id].field_8 == 0)
+ if (sprite->data[2] == 0 && sAnims[id].data == 0)
{
HandleStartAffineAnim(sprite);
- sUnknown_03001240[id].field_8++;
+ sAnims[id].data++;
}
- if (sprite->data[2] > sUnknown_03001240[id].field_6)
+ if (sprite->data[2] > sAnims[id].rotation)
{
HandleSetAffineData(sprite, 256, 256, 0);
- if (sUnknown_03001240[id].field_4 > 1)
+ if (sAnims[id].runs > 1)
{
- sUnknown_03001240[id].field_4--;
- sUnknown_03001240[id].field_0 = 10;
+ sAnims[id].runs--;
+ sAnims[id].delay = 10;
sprite->data[2] = 0;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
else
@@ -1426,103 +1458,107 @@ static void sub_817FE30(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_12(struct Sprite *sprite)
+static void Anim_Twist(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 512;
- sUnknown_03001240[id].field_0 = 0;
- sub_817FE30(sprite);
- sprite->callback = sub_817FE30;
+ sAnims[id].rotation = 512;
+ sAnims[id].delay = 0;
+ Twist(sprite);
+ sprite->callback = Twist;
}
-static void sub_817FF3C(struct Sprite *sprite)
+static void Spin(struct Sprite *sprite)
{
u8 id = sprite->data[0];
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
- if (sprite->data[2] > sUnknown_03001240[id].field_0)
+ if (sprite->data[2] > sAnims[id].delay)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
- sprite->data[6] = (65536 / sUnknown_03001240[id].field_8) * sprite->data[2];
+ sprite->data[6] = (65536 / sAnims[id].data) * sprite->data[2];
HandleSetAffineData(sprite, 256, 256, sprite->data[6]);
}
sprite->data[2]++;
}
-static void pokemonanimfunc_1F(struct Sprite *sprite)
+static void Anim_Spin_Long(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_0 = 60;
- sUnknown_03001240[id].field_8 = 20;
- sub_817FF3C(sprite);
- sprite->callback = sub_817FF3C;
+ sAnims[id].delay = 60;
+ sAnims[id].data = 20;
+ Spin(sprite);
+ sprite->callback = Spin;
}
-static void sub_817FFF0(struct Sprite *sprite)
+static void CircleCounterclockwise(struct Sprite *sprite)
{
u8 id = sprite->data[0];
- sub_817F70C(sprite);
+ TryFlipX(sprite);
- if (sprite->data[2] > sUnknown_03001240[id].field_6)
+ if (sprite->data[2] > sAnims[id].rotation)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
s16 index = (sprite->data[2] + 192) % 256;
- sprite->pos2.x = -(Cos(index, sUnknown_03001240[id].field_8 * 2));
- sprite->pos2.y = Sin(index, sUnknown_03001240[id].field_8) + sUnknown_03001240[id].field_8;
+ sprite->pos2.x = -(Cos(index, sAnims[id].data * 2));
+ sprite->pos2.y = Sin(index, sAnims[id].data) + sAnims[id].data;
}
- sprite->data[2] += sUnknown_03001240[id].field_2;
- sub_817F70C(sprite);
+ sprite->data[2] += sAnims[id].speed;
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_14(struct Sprite *sprite)
+static void Anim_CircleCounterclockwise(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 512;
- sUnknown_03001240[id].field_8 = 6;
- sUnknown_03001240[id].field_2 = 24;
- sub_817FFF0(sprite);
- sprite->callback = sub_817FFF0;
+ sAnims[id].rotation = 512;
+ sAnims[id].data = 6;
+ sAnims[id].speed = 24;
+ CircleCounterclockwise(sprite);
+ sprite->callback = CircleCounterclockwise;
}
-static void pokemonanimfunc_15(struct Sprite *sprite)
-{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB_BLACK);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 16);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLACK);
- }
+#define GlowColor(color, colorIncrement, speed) \
+{ \
+ if (sprite->data[2] == 0) \
+ sprite->data[7] = (sprite->oam.paletteNum * 16) + 256; \
+ \
+ if (sprite->data[2] > 128) \
+ { \
+ BlendPalette(sprite->data[7], 16, 0, (color)); \
+ sprite->callback = WaitAnimEnd; \
+ } \
+ else \
+ { \
+ sprite->data[6] = Sin(sprite->data[2], (colorIncrement)); \
+ BlendPalette(sprite->data[7], 16, sprite->data[6], (color)); \
+ } \
+ sprite->data[2] += (speed); \
+}
- sprite->data[2]++;
+static void Anim_GlowBlack(struct Sprite *sprite)
+{
+ GlowColor(RGB_BLACK, 16, 1);
}
-static void pokemonanimfunc_16(struct Sprite *sprite)
+static void Anim_HorizontalStretch(struct Sprite *sprite)
{
s16 index1 = 0, index2 = 0;
@@ -1532,8 +1568,8 @@ static void pokemonanimfunc_16(struct Sprite *sprite)
if (sprite->data[2] > 40)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1545,7 +1581,7 @@ static void pokemonanimfunc_16(struct Sprite *sprite)
index1 = 0xFF & sprite->data[7];
}
- if (sprite->data[1] == 0)
+ if (!sprite->sDontFlip)
sprite->data[4] = (Sin(index2, 40) - 256) + Sin(index1, 16);
else
sprite->data[4] = (256 - Sin(index2, 40)) - Sin(index1, 16);
@@ -1557,7 +1593,7 @@ static void pokemonanimfunc_16(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_17(struct Sprite *sprite)
+static void Anim_VerticalStretch(struct Sprite *sprite)
{
s16 posY = 0, index1 = 0, index2 = 0;
@@ -1567,8 +1603,8 @@ static void pokemonanimfunc_17(struct Sprite *sprite)
if (sprite->data[2] > 40)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = posY;
}
else
@@ -1581,7 +1617,7 @@ static void pokemonanimfunc_17(struct Sprite *sprite)
index1 = 0xFF & sprite->data[7];
}
- if (sprite->data[1] == 0)
+ if (!sprite->sDontFlip)
sprite->data[4] = -(Sin(index2, 16)) - 256;
else
sprite->data[4] = Sin(index2, 16) + 256;
@@ -1598,22 +1634,22 @@ static void pokemonanimfunc_17(struct Sprite *sprite)
sprite->data[2]++;
}
-static void sub_818031C(struct Sprite *sprite)
+static void VerticalShakeTwice(struct Sprite *sprite)
{
u8 index = sprite->data[2];
u8 var7 = sprite->data[6];
- u8 var5 = sUnknown_0860AA80[sprite->data[5]][0];
- u8 var6 = sUnknown_0860AA80[sprite->data[5]][1];
+ u8 var5 = sVerticalShakeData[sprite->data[5]][0];
+ u8 var6 = sVerticalShakeData[sprite->data[5]][1];
u8 amplitude = 0;
- if (var5 != 0xFE)
+ if (var5 != (u8)-2)
amplitude = (var6 - var7) * var5 / var6;
else
amplitude = 0;
- if (var5 == 0xFF)
+ if (var5 == (u8)-1)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
}
else
@@ -1633,18 +1669,18 @@ static void sub_818031C(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_19(struct Sprite *sprite)
+static void Anim_VerticalShakeTwice(struct Sprite *sprite)
{
sprite->data[0] = 48;
- sub_818031C(sprite);
- sprite->callback = sub_818031C;
+ VerticalShakeTwice(sprite);
+ sprite->callback = VerticalShakeTwice;
}
-static void pokemonanimfunc_1A(struct Sprite *sprite)
+static void Anim_TipMoveForward(struct Sprite *sprite)
{
u8 counter = 0;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
counter = sprite->data[2];
if (sprite->data[2] == 0)
@@ -1653,8 +1689,8 @@ static void pokemonanimfunc_1A(struct Sprite *sprite)
if (sprite->data[2] > 35)
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -1670,10 +1706,10 @@ static void pokemonanimfunc_1A(struct Sprite *sprite)
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_1B(struct Sprite *sprite)
+static void Anim_HorizontalPivot(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
@@ -1682,8 +1718,8 @@ static void pokemonanimfunc_1B(struct Sprite *sprite)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1695,7 +1731,7 @@ static void pokemonanimfunc_1B(struct Sprite *sprite)
sprite->data[2]++;
}
-static void sub_81804F8(struct Sprite *sprite)
+static void VerticalSlideWobble(struct Sprite *sprite)
{
s32 var = 0;
s16 index = 0;
@@ -1707,8 +1743,8 @@ static void sub_81804F8(struct Sprite *sprite)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1722,14 +1758,14 @@ static void sub_81804F8(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_1C(struct Sprite *sprite)
+static void Anim_VerticalSlideWobble(struct Sprite *sprite)
{
sprite->data[0] = 10;
- sub_81804F8(sprite);
- sprite->callback = sub_81804F8;
+ VerticalSlideWobble(sprite);
+ sprite->callback = VerticalSlideWobble;
}
-static void sub_81805B0(struct Sprite *sprite)
+static void RisingWobble(struct Sprite *sprite)
{
s32 var = 0;
s16 index = 0;
@@ -1741,8 +1777,8 @@ static void sub_81805B0(struct Sprite *sprite)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1756,19 +1792,19 @@ static void sub_81805B0(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_18(struct Sprite *sprite)
+static void Anim_RisingWobble(struct Sprite *sprite)
{
sprite->data[0] = 5;
- sub_81805B0(sprite);
- sprite->callback = sub_81805B0;
+ RisingWobble(sprite);
+ sprite->callback = RisingWobble;
}
-static void pokemonanimfunc_1D(struct Sprite *sprite)
+static void Anim_HorizontalSlideWobble(struct Sprite *sprite)
{
s32 var;
s16 index = 0;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
var = 0;
if (sprite->data[2] == 0)
@@ -1778,25 +1814,23 @@ static void pokemonanimfunc_1D(struct Sprite *sprite)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
- s16 toDiv = 100;
-
- index = (sprite->data[2] * 256) / toDiv;
- var = (sprite->data[2] * 512) / toDiv;
+ index = (sprite->data[2] * 256) / 100;
+ var = (sprite->data[2] * 512) / 100;
var &= 0xFF;
sprite->pos2.x = Sin(index, 8);
HandleSetAffineData(sprite, 256, 256, Sin(var, 3276));
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180714(struct Sprite *sprite)
+static void VerticalSquishBounce(struct Sprite *sprite)
{
s16 posY = 0;
@@ -1806,14 +1840,14 @@ static void sub_8180714(struct Sprite *sprite)
sprite->data[3] = 0;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > sprite->data[0] * 3)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1830,17 +1864,17 @@ static void sub_8180714(struct Sprite *sprite)
sprite->data[4] = (sprite->data[4] + 128 / sprite->data[0]) & 0xFF;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_00(struct Sprite *sprite)
+static void Anim_VerticalSquishBounce(struct Sprite *sprite)
{
sprite->data[0] = 16;
- sub_8180714(sprite);
- sprite->callback = sub_8180714;
+ VerticalSquishBounce(sprite);
+ sprite->callback = VerticalSquishBounce;
}
-static void sub_8180828(struct Sprite *sprite)
+static void ShrinkGrow(struct Sprite *sprite)
{
s16 posY = 0;
@@ -1848,8 +1882,8 @@ static void sub_8180828(struct Sprite *sprite)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -1865,7 +1899,7 @@ static void sub_8180828(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_13(struct Sprite *sprite)
+static void Anim_ShrinkGrow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -1874,34 +1908,34 @@ static void pokemonanimfunc_13(struct Sprite *sprite)
sprite->data[6] = 8;
}
- sub_8180828(sprite);
+ ShrinkGrow(sprite);
}
-static const s8 sUnknown_0860AD8E[][8][3] =
+static const s8 sBounceRotateToSidesData[][8][3] =
{
{
- {0, 8, 8},
- {8, -8, 12},
- {-8, 8, 12},
- {8, -8, 12},
- {-8, 8, 12},
- {8, -8, 12},
- {-8, 0, 12},
- {0, 0, 0}
+ { 0, 8, 8},
+ { 8, -8, 12},
+ {-8, 8, 12},
+ { 8, -8, 12},
+ {-8, 8, 12},
+ { 8, -8, 12},
+ {-8, 0, 12},
+ { 0, 0, 0}
},
{
- {0, 8, 16},
- {8, -8, 24},
- {-8, 8, 24},
- {8, -8, 24},
- {-8, 8, 24},
- {8, -8, 24},
- {-8, 0, 24},
- {0, 0, 0}
+ { 0, 8, 16},
+ { 8, -8, 24},
+ {-8, 8, 24},
+ { 8, -8, 24},
+ {-8, 8, 24},
+ { 8, -8, 24},
+ {-8, 0, 24},
+ { 0, 0, 0}
},
};
-static void sub_8180900(struct Sprite *sprite)
+static void BounceRotateToSides(struct Sprite *sprite)
{
s16 var;
u8 structId;
@@ -1910,12 +1944,12 @@ static void sub_8180900(struct Sprite *sprite)
s16 r7;
u32 arrId;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
structId = sprite->data[0];
- var = sUnknown_03001240[structId].field_6;
- r9 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][0];
- r10 = sUnknown_0860AD8E[sUnknown_03001240[structId].field_8][sprite->data[4]][1] - r9;
- arrId = sUnknown_03001240[structId].field_8;
+ var = sAnims[structId].rotation;
+ r9 = sBounceRotateToSidesData[sAnims[structId].data][sprite->data[4]][0];
+ r10 = sBounceRotateToSidesData[sAnims[structId].data][sprite->data[4]][1] - r9;
+ arrId = sAnims[structId].data;
r7 = sprite->data[3];
if (sprite->data[2] == 0)
@@ -1924,25 +1958,25 @@ static void sub_8180900(struct Sprite *sprite)
sprite->data[2]++;
}
- if (sUnknown_0860AD8E[arrId][sprite->data[4]][2] == 0)
+ if (sBounceRotateToSidesData[arrId][sprite->data[4]][2] == 0)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
u16 rotation;
- sprite->pos2.y = -(Sin(r7 * 128 / sUnknown_0860AD8E[arrId][sprite->data[4]][2], 10));
- sprite->pos2.x = (r10 * r7 / sUnknown_0860AD8E[arrId][sprite->data[4]][2]) + r9;
+ sprite->pos2.y = -(Sin(r7 * 128 / sBounceRotateToSidesData[arrId][sprite->data[4]][2], 10));
+ sprite->pos2.x = (r10 * r7 / sBounceRotateToSidesData[arrId][sprite->data[4]][2]) + r9;
rotation = -(var * sprite->pos2.x) / 8;
HandleSetAffineData(sprite, 256, 256, rotation);
- if (r7 == sUnknown_0860AD8E[arrId][sprite->data[4]][2])
+ if (r7 == sBounceRotateToSidesData[arrId][sprite->data[4]][2])
{
sprite->data[4]++;
sprite->data[3] = 0;
@@ -1953,140 +1987,70 @@ static void sub_8180900(struct Sprite *sprite)
}
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_05(struct Sprite *sprite)
+static void Anim_BounceRotateToSides(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_6 = 4096;
- sUnknown_03001240[id].field_8 = sprite->data[6];
- sub_8180900(sprite);
- sprite->callback = sub_8180900;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].rotation = 4096;
+ sAnims[id].data = sprite->data[6];
+ BounceRotateToSides(sprite);
+ sprite->callback = BounceRotateToSides;
}
-static void pokemonanimfunc_20(struct Sprite *sprite)
+static void Anim_GlowOrange(struct Sprite *sprite)
{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB(31, 22, 0));
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(31, 22, 0));
- }
-
- sprite->data[2] += 2;
+ GlowColor(RGB(31, 22, 0), 12, 2);
}
-static void pokemonanimfunc_21(struct Sprite *sprite)
+static void Anim_GlowRed(struct Sprite *sprite)
{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB_RED);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_RED);
- }
-
- sprite->data[2] += 2;
+ GlowColor(RGB_RED, 12, 2);
}
-static void pokemonanimfunc_22(struct Sprite *sprite)
+static void Anim_GlowBlue(struct Sprite *sprite)
{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB_BLUE);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_BLUE);
- }
-
- sprite->data[2] += 2;
+ GlowColor(RGB_BLUE, 12, 2);
}
-static void pokemonanimfunc_23(struct Sprite *sprite)
+static void Anim_GlowYellow(struct Sprite *sprite)
{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB_YELLOW);
- }
-
- sprite->data[2] += 2;
+ GlowColor(RGB_YELLOW, 12, 2);
}
-static void pokemonanimfunc_24(struct Sprite *sprite)
+static void Anim_GlowPurple(struct Sprite *sprite)
{
- if (sprite->data[2] == 0)
- sprite->data[7] = (sprite->oam.paletteNum * 16) + 256;
-
- if (sprite->data[2] > 128)
- {
- BlendPalette(sprite->data[7], 0x10, 0, RGB(24, 0, 24));
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- }
- else
- {
- sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], RGB(24, 0, 24));
- }
-
- sprite->data[2] += 2;
+ GlowColor(RGB(24, 0, 24), 12, 2);
}
-static void sub_8180CB4(struct Sprite *sprite);
-static void sub_8180CE8(struct Sprite *sprite);
-static void sub_8180D44(struct Sprite *sprite);
-static void sub_8180DC0(struct Sprite *sprite);
-static void sub_8180E28(struct Sprite *sprite);
+static void BackAndLunge_0(struct Sprite *sprite);
+static void BackAndLunge_1(struct Sprite *sprite);
+static void BackAndLunge_2(struct Sprite *sprite);
+static void BackAndLunge_3(struct Sprite *sprite);
+static void BackAndLunge_4(struct Sprite *sprite);
-static void pokemonanimfunc_25(struct Sprite *sprite)
+static void Anim_BackAndLunge(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
- sprite->callback = sub_8180CB4;
+ sprite->callback = BackAndLunge_0;
}
-static void sub_8180CB4(struct Sprite *sprite)
+static void BackAndLunge_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (++sprite->pos2.x > 7)
{
sprite->pos2.x = 8;
sprite->data[7] = 2;
- sprite->callback = sub_8180CE8;
+ sprite->callback = BackAndLunge_1;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180CE8(struct Sprite *sprite)
+static void BackAndLunge_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x -= sprite->data[7];
sprite->data[7]++;
@@ -2106,17 +2070,17 @@ static void sub_8180CE8(struct Sprite *sprite)
while (subResult > -8);
sprite->data[5] = 1;
- sprite->callback = sub_8180D44;
+ sprite->callback = BackAndLunge_2;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180D44(struct Sprite *sprite)
+static void BackAndLunge_2(struct Sprite *sprite)
{
u8 rotation;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x -= sprite->data[7];
sprite->data[7]++;
rotation = (sprite->data[5] * 6) / sprite->data[6];
@@ -2132,15 +2096,15 @@ static void sub_8180D44(struct Sprite *sprite)
sprite->data[4] = 2;
sprite->data[3] = 0;
sprite->data[2] = rotation;
- sprite->callback = sub_8180DC0;
+ sprite->callback = BackAndLunge_3;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180DC0(struct Sprite *sprite)
+static void BackAndLunge_3(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[3] > 11)
{
@@ -2150,7 +2114,7 @@ static void sub_8180DC0(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8);
if (sprite->data[2] == 0)
- sprite->callback = sub_8180E28;
+ sprite->callback = BackAndLunge_4;
}
else
{
@@ -2159,38 +2123,38 @@ static void sub_8180DC0(struct Sprite *sprite)
sprite->data[3]++;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180E28(struct Sprite *sprite)
+static void BackAndLunge_4(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x += 2;
if (sprite->pos2.x > 0)
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180E78(struct Sprite *sprite);
-static void sub_8180ED0(struct Sprite *sprite);
-static void sub_8180F2C(struct Sprite *sprite);
+static void BackFlip_0(struct Sprite *sprite);
+static void BackFlip_1(struct Sprite *sprite);
+static void BackFlip_2(struct Sprite *sprite);
-static void pokemonanimfunc_26(struct Sprite *sprite)
+static void Anim_BackFlip(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[3] = 0;
- sprite->callback = sub_8180E78;
+ sprite->callback = BackFlip_0;
}
-static void sub_8180E78(struct Sprite *sprite)
+static void BackFlip_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x++;
sprite->pos2.y--;
@@ -2201,15 +2165,15 @@ static void sub_8180E78(struct Sprite *sprite)
sprite->pos2.x = 8;
sprite->pos2.y = -8;
sprite->data[4] = 0;
- sprite->callback = sub_8180ED0;
+ sprite->callback = BackFlip_1;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180ED0(struct Sprite *sprite)
+static void BackFlip_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x = Cos(sprite->data[4], 16) - 8;
sprite->pos2.y = Sin(sprite->data[4], 16) - 8;
@@ -2217,18 +2181,18 @@ static void sub_8180ED0(struct Sprite *sprite)
{
sprite->data[2] = 160;
sprite->data[3] = 10;
- sprite->callback = sub_8180F2C;
+ sprite->callback = BackFlip_2;
}
sprite->data[4] += 8;
if (sprite->data[4] > 64)
sprite->data[4] = 64;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8180F2C(struct Sprite *sprite)
+static void BackFlip_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[3] > 0)
{
@@ -2248,15 +2212,15 @@ static void sub_8180F2C(struct Sprite *sprite)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_27(struct Sprite *sprite)
+static void Anim_Flicker(struct Sprite *sprite)
{
if (sprite->data[3] > 0)
{
@@ -2264,30 +2228,30 @@ static void pokemonanimfunc_27(struct Sprite *sprite)
}
else
{
- sprite->data[4] = (sprite->data[4] == 0) ? 1 : 0;
+ sprite->data[4] = (sprite->data[4] == 0) ? TRUE : FALSE;
sprite->invisible = sprite->data[4];
if (++sprite->data[2] > 19)
{
sprite->invisible = FALSE;
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
sprite->data[3] = 2;
}
}
-static void sub_8181024(struct Sprite *sprite);
-static void sub_8181068(struct Sprite *sprite);
-static void sub_81810C4(struct Sprite *sprite);
+static void BackFlipBig_0(struct Sprite *sprite);
+static void BackFlipBig_1(struct Sprite *sprite);
+static void BackFlipBig_2(struct Sprite *sprite);
-static void pokemonanimfunc_28(struct Sprite *sprite)
+static void Anim_BackFlipBig(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
- sprite->callback = sub_8181024;
+ sprite->callback = BackFlipBig_0;
}
-static void sub_8181024(struct Sprite *sprite)
+static void BackFlipBig_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x--;
sprite->pos2.y++;
@@ -2295,18 +2259,18 @@ static void sub_8181024(struct Sprite *sprite)
{
sprite->pos2.x = -16;
sprite->pos2.y = 16;
- sprite->callback = sub_8181068;
+ sprite->callback = BackFlipBig_1;
sprite->data[2] = 160;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181068(struct Sprite *sprite)
+static void BackFlipBig_1(struct Sprite *sprite)
{
u32 rotation;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[2] -= 4;
sprite->pos2.x = Cos(sprite->data[2], 22);
sprite->pos2.y = -(Sin(sprite->data[2], 22));
@@ -2314,54 +2278,54 @@ static void sub_8181068(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, rotation * 512);
if (sprite->data[2] <= 32)
- sprite->callback = sub_81810C4;
+ sprite->callback = BackFlipBig_2;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81810C4(struct Sprite *sprite)
+static void BackFlipBig_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x--;
sprite->pos2.y++;
if (sprite->pos2.x <= 0)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181110(struct Sprite *sprite);
-static void sub_8181144(struct Sprite *sprite);
-static void sub_81811A4(struct Sprite *sprite);
+static void FrontFlip_0(struct Sprite *sprite);
+static void FrontFlip_1(struct Sprite *sprite);
+static void FrontFlip_2(struct Sprite *sprite);
-static void pokemonanimfunc_29(struct Sprite *sprite)
+static void Anim_FrontFlip(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
- sprite->callback = sub_8181110;
+ sprite->callback = FrontFlip_0;
}
-static void sub_8181110(struct Sprite *sprite)
+static void FrontFlip_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x++;
sprite->pos2.y--;
if (sprite->pos2.x > 15)
{
sprite->data[2] = 0;
- sprite->callback = sub_8181144;
+ sprite->callback = FrontFlip_1;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181144(struct Sprite *sprite)
+static void FrontFlip_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[2] += 16;
if (sprite->pos2.x <= -16)
@@ -2369,7 +2333,7 @@ static void sub_8181144(struct Sprite *sprite)
sprite->pos2.x = -16;
sprite->pos2.y = 16;
sprite->data[2] = 0;
- sprite->callback = sub_81811A4;
+ sprite->callback = FrontFlip_2;
}
else
{
@@ -2378,12 +2342,12 @@ static void sub_8181144(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, sprite->data[2] << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81811A4(struct Sprite *sprite)
+static void FrontFlip_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x++;
sprite->pos2.y--;;
@@ -2391,37 +2355,37 @@ static void sub_81811A4(struct Sprite *sprite)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181214(struct Sprite *sprite);
+static void TumblingFrontFlip(struct Sprite *sprite);
-static void pokemonanimfunc_2A(struct Sprite *sprite)
+static void Anim_TumblingFrontFlip(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_2 = 2;
- sub_8181214(sprite);
- sprite->callback = sub_8181214;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].speed = 2;
+ TumblingFrontFlip(sprite);
+ sprite->callback = TumblingFrontFlip;
}
-static void sub_8181214(struct Sprite *sprite)
+static void TumblingFrontFlip(struct Sprite *sprite)
{
- if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ if (sAnims[sprite->data[0]].delay != 0)
{
- sUnknown_03001240[sprite->data[0]].field_0--;
+ sAnims[sprite->data[0]].delay--;
}
else
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
sprite->data[2]++;
HandleStartAffineAnim(sprite);
- sprite->data[7] = sUnknown_03001240[sprite->data[0]].field_2;
+ sprite->data[7] = sAnims[sprite->data[0]].speed;
sprite->data[3] = -1;
sprite->data[4] = -1;
sprite->data[5] = 0;
@@ -2448,38 +2412,38 @@ static void sub_8181214(struct Sprite *sprite)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
+ sAnims[sprite->data[0]].runs--;
sprite->data[5] = 0;
sprite->data[6] = 0;
- sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ sAnims[sprite->data[0]].delay = 10;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
HandleSetAffineData(sprite, 256, 256, sprite->data[6] << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void sub_8181370(struct Sprite *sprite);
+static void Figure8(struct Sprite *sprite);
-static void pokemonanimfunc_2B(struct Sprite *sprite)
+static void Anim_Figure8(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[6] = 0;
sprite->data[7] = 0;
- sprite->callback = sub_8181370;
+ sprite->callback = Figure8;
}
-static void sub_8181370(struct Sprite *sprite)
+static void Figure8(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[6] += 4;
sprite->pos2.x = -(Sin(sprite->data[6], 16));
sprite->pos2.y = -(Sin((sprite->data[6] * 2) & 0xFF, 8));
@@ -2499,13 +2463,13 @@ static void sub_8181370(struct Sprite *sprite)
sprite->pos2.x = 0;
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_2C(struct Sprite *sprite)
+static void Anim_FlashYellow(struct Sprite *sprite)
{
if (++sprite->data[2] == 1)
{
@@ -2515,23 +2479,23 @@ static void pokemonanimfunc_2C(struct Sprite *sprite)
sprite->data[4] = 0;
}
- if (sUnknown_0860AA64[sprite->data[6]][1] == 0xFF)
+ if (sYellowFlashData[sprite->data[6]][1] == (u8)-1)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
if (sprite->data[4] == 1)
{
- if (sUnknown_0860AA64[sprite->data[6]][0] != 0)
- BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW);
+ if (sYellowFlashData[sprite->data[6]][0])
+ BlendPalette(sprite->data[7], 16, 16, RGB_YELLOW);
else
- BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
+ BlendPalette(sprite->data[7], 16, 0, RGB_YELLOW);
sprite->data[4] = 0;
}
- if (sUnknown_0860AA64[sprite->data[6]][1] == sprite->data[5])
+ if (sYellowFlashData[sprite->data[6]][1] == sprite->data[5])
{
sprite->data[4] = 1;
sprite->data[5] = 0;
@@ -2544,101 +2508,101 @@ static void pokemonanimfunc_2C(struct Sprite *sprite)
}
}
-static void sub_81814D4(struct Sprite *sprite)
+static void SwingConcave(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
- sub_817F70C(sprite);
- if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8)
+ TryFlipX(sprite);
+ if (sprite->data[2] > sAnims[sprite->data[0]].data)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.x = 0;
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
+ sAnims[sprite->data[0]].runs--;
sprite->data[2] = 0;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
else
{
- s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8;
+ s16 index = (sprite->data[2] * 256) / sAnims[sprite->data[0]].data;
sprite->pos2.x = -(Sin(index, 10));
HandleSetAffineData(sprite, 256, 256, Sin(index, 3276));
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_2D(struct Sprite *sprite)
+static void Anim_SwingConcave_FastShort(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_8 = 50;
- sub_81814D4(sprite);
- sprite->callback = sub_81814D4;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].data = 50;
+ SwingConcave(sprite);
+ sprite->callback = SwingConcave;
}
-static void sub_81815D4(struct Sprite *sprite)
+static void SwingConvex(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
HandleStartAffineAnim(sprite);
- sub_817F70C(sprite);
- if (sprite->data[2] > sUnknown_03001240[sprite->data[0]].field_8)
+ TryFlipX(sprite);
+ if (sprite->data[2] > sAnims[sprite->data[0]].data)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.x = 0;
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
+ sAnims[sprite->data[0]].runs--;
sprite->data[2] = 0;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
else
{
- s16 index = (sprite->data[2] * 256) / sUnknown_03001240[sprite->data[0]].field_8;
+ s16 index = (sprite->data[2] * 256) / sAnims[sprite->data[0]].data;
sprite->pos2.x = -(Sin(index, 10));
HandleSetAffineData(sprite, 256, 256, -(Sin(index, 3276)));
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_2E(struct Sprite *sprite)
+static void Anim_SwingConvex_FastShort(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_8 = 50;
- sub_81815D4(sprite);
- sprite->callback = sub_81815D4;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].data = 50;
+ SwingConvex(sprite);
+ sprite->callback = SwingConvex;
}
-static void sub_8181708(struct Sprite *sprite);
-static void sub_8181770(struct Sprite *sprite);
-static void sub_8181794(struct Sprite *sprite);
+static void RotateUpSlamDown_0(struct Sprite *sprite);
+static void RotateUpSlamDown_1(struct Sprite *sprite);
+static void RotateUpSlamDown_2(struct Sprite *sprite);
-static void pokemonanimfunc_2F(struct Sprite *sprite)
+static void Anim_RotateUpSlamDown(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[6] = -(14 * sprite->centerToCornerVecX / 10);
sprite->data[7] = 128;
- sprite->callback = sub_8181708;
+ sprite->callback = RotateUpSlamDown_0;
}
-static void sub_8181708(struct Sprite *sprite)
+static void RotateUpSlamDown_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[7]--;
sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6];
@@ -2649,26 +2613,26 @@ static void sub_8181708(struct Sprite *sprite)
{
sprite->data[7] = 120;
sprite->data[3] = 0;
- sprite->callback = sub_8181770;
+ sprite->callback = RotateUpSlamDown_1;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181770(struct Sprite *sprite)
+static void RotateUpSlamDown_1(struct Sprite *sprite)
{
if (sprite->data[3] == 20)
{
- sprite->callback = sub_8181794;
+ sprite->callback = RotateUpSlamDown_2;
sprite->data[3] = 0;
}
sprite->data[3]++;
}
-static void sub_8181794(struct Sprite *sprite)
+static void RotateUpSlamDown_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[7] += 2;
sprite->pos2.x = Cos(sprite->data[7], sprite->data[6]) + sprite->data[6];
@@ -2681,18 +2645,18 @@ static void sub_8181794(struct Sprite *sprite)
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
sprite->data[2] = 0;
- sub_817F77C(sprite);
- sprite->callback = pokemonanimfunc_10;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = Anim_VerticalShake;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181810(struct Sprite *sprite)
+static void DeepVerticalSquishBounce(struct Sprite *sprite)
{
- if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ if (sAnims[sprite->data[0]].delay != 0)
{
- sUnknown_03001240[sprite->data[0]].field_0--;
+ sAnims[sprite->data[0]].delay--;
}
else
{
@@ -2724,41 +2688,41 @@ static void sub_8181810(struct Sprite *sprite)
HandleSetAffineData(sprite, 256 + sprite->data[6], 256 - sprite->data[7], 0);
if (sprite->data[4] == 128)
{
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
- sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ sAnims[sprite->data[0]].runs--;
+ sAnims[sprite->data[0]].delay = 10;
sprite->data[4] = 0;
sprite->data[5] = 0;
}
else
{
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
}
}
- sprite->data[4] += sUnknown_03001240[sprite->data[0]].field_6;
+ sprite->data[4] += sAnims[sprite->data[0]].rotation;
}
}
-static void pokemonanimfunc_30(struct Sprite *sprite)
+static void Anim_DeepVerticalSquishBounce(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_6 = 4;
- sub_8181810(sprite);
- sprite->callback = sub_8181810;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].rotation = 4;
+ DeepVerticalSquishBounce(sprite);
+ sprite->callback = DeepVerticalSquishBounce;
}
-static void pokemonanimfunc_31(struct Sprite *sprite)
+static void Anim_HorizontalJumps(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (counter > 512)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
@@ -2784,61 +2748,61 @@ static void pokemonanimfunc_31(struct Sprite *sprite)
}
sprite->data[2] += 12;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181ABC(struct Sprite *sprite);
-static void sub_8181B4C(struct Sprite *sprite);
-static void sub_8181C2C(struct Sprite *sprite);
+static void HorizontalJumpsVerticalStretch_0(struct Sprite *sprite);
+static void HorizontalJumpsVerticalStretch_1(struct Sprite *sprite);
+static void HorizontalJumpsVerticalStretch_2(struct Sprite *sprite);
-static void pokemonanimfunc_32(struct Sprite *sprite)
+static void Anim_HorizontalJumpsVerticalStretch(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_8 = -1;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].data = -1;
HandleStartAffineAnim(sprite);
sprite->data[3] = 0;
- sub_8181ABC(sprite);
- sprite->callback = sub_8181ABC;
+ HorizontalJumpsVerticalStretch_0(sprite);
+ sprite->callback = HorizontalJumpsVerticalStretch_0;
}
-static void sub_8181ABC(struct Sprite *sprite)
+static void HorizontalJumpsVerticalStretch_0(struct Sprite *sprite)
{
- if (sUnknown_03001240[sprite->data[0]].field_0 != 0)
+ if (sAnims[sprite->data[0]].delay != 0)
{
- sUnknown_03001240[sprite->data[0]].field_0--;
+ sAnims[sprite->data[0]].delay--;
}
else
{
s32 counter;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
counter = sprite->data[2];
if (sprite->data[2] > 128)
{
sprite->data[2] = 0;
- sprite->callback = sub_8181B4C;
+ sprite->callback = HorizontalJumpsVerticalStretch_1;
}
else
{
- s32 var = 8 * sUnknown_03001240[sprite->data[0]].field_8;
+ s32 var = 8 * sAnims[sprite->data[0]].data;
sprite->pos2.x = var * (counter % 128) / 128;
sprite->pos2.y = -(Sin(counter % 128, 8));
sprite->data[2] += 12;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void sub_8181B4C(struct Sprite *sprite)
+static void HorizontalJumpsVerticalStretch_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 48)
{
HandleSetAffineData(sprite, 256, 256, 0);
sprite->pos2.y = 0;
sprite->data[2] = 0;
- sprite->callback = sub_8181C2C;
+ sprite->callback = HorizontalJumpsVerticalStretch_2;
}
else
{
@@ -2847,7 +2811,7 @@ static void sub_8181B4C(struct Sprite *sprite)
if (sprite->data[2] >= 16 && sprite->data[2] <= 31)
{
sprite->data[3] += 8;
- sprite->pos2.x -= sUnknown_03001240[sprite->data[0]].field_8;
+ sprite->pos2.x -= sAnims[sprite->data[0]].data;
}
yDelta = 0;
@@ -2861,30 +2825,30 @@ static void sub_8181B4C(struct Sprite *sprite)
sprite->data[4] &= 0xFF;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181C2C(struct Sprite *sprite)
+static void HorizontalJumpsVerticalStretch_2(struct Sprite *sprite)
{
s32 counter;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
counter = sprite->data[2];
if (counter > 128)
{
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
- sUnknown_03001240[sprite->data[0]].field_0 = 10;
+ sAnims[sprite->data[0]].runs--;
+ sAnims[sprite->data[0]].delay = 10;
sprite->data[3] = 0;
sprite->data[2] = 0;
sprite->data[4] = 0;
- sprite->callback = sub_8181ABC;
+ sprite->callback = HorizontalJumpsVerticalStretch_0;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
sprite->pos2.x = 0;
@@ -2892,17 +2856,17 @@ static void sub_8181C2C(struct Sprite *sprite)
}
else
{
- s32 var = sUnknown_03001240[sprite->data[0]].field_8;
+ s32 var = sAnims[sprite->data[0]].data;
sprite->pos2.x = var * ((counter % 128) * 8) / 128 + 8 * -var;
sprite->pos2.y = -(Sin(counter % 128, 8));
}
sprite->data[2] += 12;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181CE8(struct Sprite *sprite)
+static void RotateToSides(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -2910,25 +2874,25 @@ static void sub_8181CE8(struct Sprite *sprite)
sprite->data[2]++;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] > 254)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- if (sUnknown_03001240[sprite->data[0]].field_4 > 1)
+ if (sAnims[sprite->data[0]].runs > 1)
{
- sUnknown_03001240[sprite->data[0]].field_4--;
+ sAnims[sprite->data[0]].runs--;
sprite->data[2] = 0;
sprite->data[7] = 0;
}
else
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
else
{
@@ -2937,20 +2901,20 @@ static void sub_8181CE8(struct Sprite *sprite)
sprite->pos2.x = -(Sin(sprite->data[7], 16));
rotation = Sin(sprite->data[7], 32);
HandleSetAffineData(sprite, 256, 256, rotation << 8);
- sprite->data[7] += sUnknown_03001240[sprite->data[0]].field_6;
- sub_817F70C(sprite);
+ sprite->data[7] += sAnims[sprite->data[0]].rotation;
+ TryFlipX(sprite);
}
}
-static void pokemonanimfunc_33(struct Sprite *sprite)
+static void Anim_RotateToSides_Fast(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
- sUnknown_03001240[id].field_6 = 4;
- sub_8181CE8(sprite);
- sprite->callback = sub_8181CE8;
+ u8 id = sprite->data[0] = AddNewAnim();
+ sAnims[id].rotation = 4;
+ RotateToSides(sprite);
+ sprite->callback = RotateToSides;
}
-static void pokemonanimfunc_34(struct Sprite *sprite)
+static void Anim_RotateUpToSides(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -2958,15 +2922,15 @@ static void pokemonanimfunc_34(struct Sprite *sprite)
sprite->data[2]++;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] > 254)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
- sub_817F70C(sprite);
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
+ TryFlipX(sprite);
}
else
{
@@ -2977,11 +2941,11 @@ static void pokemonanimfunc_34(struct Sprite *sprite)
rotation = Sin(sprite->data[7], 32);
HandleSetAffineData(sprite, 256, 256, rotation << 8);
sprite->data[7] += 8;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void pokemonanimfunc_35(struct Sprite *sprite)
+static void Anim_FlickerIncreasing(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
sprite->data[7] = 0;
@@ -3001,28 +2965,28 @@ static void pokemonanimfunc_35(struct Sprite *sprite)
if (sprite->data[2] > 10)
{
sprite->invisible = FALSE;
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
}
-static void sub_8181F14(struct Sprite *sprite);
-static void sub_8181F50(struct Sprite *sprite);
-static void sub_8181FC0(struct Sprite *sprite);
+static void TipHopForward_0(struct Sprite *sprite);
+static void TipHopForward_1(struct Sprite *sprite);
+static void TipHopForward_2(struct Sprite *sprite);
-static void pokemonanimfunc_36(struct Sprite *sprite)
+static void Anim_TipHopForward(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[7] = 0;
- sprite->callback = sub_8181F14;
+ sprite->callback = TipHopForward_0;
}
-static void sub_8181F14(struct Sprite *sprite)
+static void TipHopForward_0(struct Sprite *sprite)
{
if (sprite->data[7] > 31)
{
sprite->data[7] = 32;
sprite->data[2] = 0;
- sprite->callback = sub_8181F50;
+ sprite->callback = TipHopForward_1;
}
else
{
@@ -3032,12 +2996,12 @@ static void sub_8181F14(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8);
}
-static void sub_8181F50(struct Sprite *sprite)
+static void TipHopForward_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 512)
{
- sprite->callback = sub_8181FC0;
+ sprite->callback = TipHopForward_2;
sprite->data[6] = 0;
}
else
@@ -3047,19 +3011,19 @@ static void sub_8181F50(struct Sprite *sprite)
sprite->data[2] += 12;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8181FC0(struct Sprite *sprite)
+static void TipHopForward_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[7] -= 2;
if (sprite->data[7] < 0)
{
sprite->data[7] = 0;
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3067,10 +3031,10 @@ static void sub_8181FC0(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, sprite->data[7] << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_37(struct Sprite *sprite)
+static void Anim_PivotShake(struct Sprite *sprite)
{
u16 rotation;
@@ -3081,14 +3045,14 @@ static void pokemonanimfunc_37(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] > 255)
{
sprite->pos2.x = 0;
sprite->pos2.y = 0;
sprite->data[7] = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3099,31 +3063,31 @@ static void pokemonanimfunc_37(struct Sprite *sprite)
rotation = Sin(sprite->data[7] % 128, 16);
HandleSetAffineData(sprite, 256, 256, rotation << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81820FC(struct Sprite *sprite);
-static void sub_818216C(struct Sprite *sprite);
-static void sub_81821CC(struct Sprite *sprite);
-static void sub_8182248(struct Sprite *sprite);
+static void TipAndShake_0(struct Sprite *sprite);
+static void TipAndShake_1(struct Sprite *sprite);
+static void TipAndShake_2(struct Sprite *sprite);
+static void TipAndShake_3(struct Sprite *sprite);
-static void pokemonanimfunc_38(struct Sprite *sprite)
+static void Anim_TipAndShake(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[7] = 0;
sprite->data[4] = 0;
- sprite->callback = sub_81820FC;
+ sprite->callback = TipAndShake_0;
}
-static void sub_81820FC(struct Sprite *sprite)
+static void TipAndShake_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] > 24)
{
if (++sprite->data[4] > 4)
{
sprite->data[4] = 0;
- sprite->callback = sub_818216C;
+ sprite->callback = TipAndShake_1;
}
}
else
@@ -3134,16 +3098,16 @@ static void sub_81820FC(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_818216C(struct Sprite *sprite)
+static void TipAndShake_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] > 32)
{
sprite->data[6] = 1;
- sprite->callback = sub_81821CC;
+ sprite->callback = TipAndShake_2;
}
else
{
@@ -3153,17 +3117,17 @@ static void sub_818216C(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81821CC(struct Sprite *sprite)
+static void TipAndShake_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->data[7] += (sprite->data[6] * 4);
if (sprite->data[5] > 9)
{
sprite->data[7] = 32;
- sprite->callback = sub_8182248;
+ sprite->callback = TipAndShake_3;
}
sprite->pos2.x = Sin(sprite->data[7], 8);
@@ -3175,17 +3139,17 @@ static void sub_81821CC(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8182248(struct Sprite *sprite)
+static void TipAndShake_3(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[7] <= 0)
{
sprite->data[7] = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3195,15 +3159,15 @@ static void sub_8182248(struct Sprite *sprite)
}
HandleSetAffineData(sprite, 256, 256, -(sprite->data[7]) << 8);
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_39(struct Sprite *sprite)
+static void Anim_VibrateToCorners(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 40)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -3227,12 +3191,12 @@ static void pokemonanimfunc_39(struct Sprite *sprite)
}
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_3A(struct Sprite *sprite)
+static void Anim_GrowInStages(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -3262,8 +3226,8 @@ static void pokemonanimfunc_3A(struct Sprite *sprite)
{
sprite->data[7] = 64;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
var = Cos(sprite->data[7], 64);
}
@@ -3295,10 +3259,10 @@ static void pokemonanimfunc_3A(struct Sprite *sprite)
HandleSetAffineData(sprite, 256 - var, 256 - var, 0);
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_3B(struct Sprite *sprite)
+static void Anim_VerticalSpring(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -3311,8 +3275,8 @@ static void pokemonanimfunc_3B(struct Sprite *sprite)
{
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3325,7 +3289,7 @@ static void pokemonanimfunc_3B(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_3C(struct Sprite *sprite)
+static void Anim_VerticalRepeatedSpring(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -3338,8 +3302,8 @@ static void pokemonanimfunc_3C(struct Sprite *sprite)
{
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3352,18 +3316,18 @@ static void pokemonanimfunc_3C(struct Sprite *sprite)
}
}
-static void sub_81825F8(struct Sprite *sprite);
-static void sub_8182648(struct Sprite *sprite);
-static void sub_81826F8(struct Sprite *sprite);
+static void SpringRising_0(struct Sprite *sprite);
+static void SpringRising_1(struct Sprite *sprite);
+static void SpringRising_2(struct Sprite *sprite);
-static void pokemonanimfunc_3D(struct Sprite *sprite)
+static void Anim_SpringRising(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
- sprite->callback = sub_81825F8;
+ sprite->callback = SpringRising_0;
sprite->data[7] = 0;
}
-static void sub_81825F8(struct Sprite *sprite)
+static void SpringRising_0(struct Sprite *sprite)
{
s16 yScale;
@@ -3372,7 +3336,7 @@ static void sub_81825F8(struct Sprite *sprite)
{
sprite->data[7] = 0;
sprite->data[6] = 0;
- sprite->callback = sub_8182648;
+ sprite->callback = SpringRising_1;
yScale = Sin(64, 128); // 128 * 1 = 128
}
else
@@ -3383,7 +3347,7 @@ static void sub_81825F8(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256 + yScale, 0);
}
-static void sub_8182648(struct Sprite *sprite)
+static void SpringRising_1(struct Sprite *sprite)
{
s16 yScale;
@@ -3417,11 +3381,11 @@ static void sub_8182648(struct Sprite *sprite)
if (sprite->data[6] == 3)
{
sprite->data[7] = 0;
- sprite->callback = sub_81826F8;
+ sprite->callback = SpringRising_2;
}
}
-static void sub_81826F8(struct Sprite *sprite)
+static void SpringRising_2(struct Sprite *sprite)
{
s16 yScale;
@@ -3430,8 +3394,8 @@ static void sub_81826F8(struct Sprite *sprite)
sprite->pos2.y = -(Cos(sprite->data[7], 12));
if (sprite->data[7] > 63)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
}
@@ -3439,13 +3403,13 @@ static void sub_81826F8(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256 + yScale, 0);
}
-static void sub_8182764(struct Sprite *sprite)
+static void HorizontalSpring(struct Sprite *sprite)
{
if (sprite->data[7] > sprite->data[5])
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
HandleSetAffineData(sprite, 256, 256, 0);
}
else
@@ -3459,7 +3423,7 @@ static void sub_8182764(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_3E(struct Sprite *sprite)
+static void Anim_HorizontalSpring(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -3471,16 +3435,16 @@ static void pokemonanimfunc_3E(struct Sprite *sprite)
sprite->data[4] = 8;
}
- sub_8182764(sprite);
+ HorizontalSpring(sprite);
}
-static void sub_8182830(struct Sprite *sprite)
+static void HorizontalRepeatedSpring(struct Sprite *sprite)
{
if (sprite->data[7] > sprite->data[5])
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
HandleSetAffineData(sprite, 256, 256, 0);
}
else
@@ -3494,7 +3458,7 @@ static void sub_8182830(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_3F(struct Sprite *sprite)
+static void Anim_HorizontalRepeatedSpring_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -3506,12 +3470,12 @@ static void pokemonanimfunc_3F(struct Sprite *sprite)
sprite->data[4] = 16;
}
- sub_8182830(sprite);
+ HorizontalRepeatedSpring(sprite);
}
-static void pokemonanimfunc_40(struct Sprite *sprite)
+static void Anim_HorizontalSlideShrink(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -3522,9 +3486,9 @@ static void pokemonanimfunc_40(struct Sprite *sprite)
if (sprite->data[7] > 512)
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
+ ResetSpriteAfterAnim(sprite);
HandleSetAffineData(sprite, 256, 256, 0);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3536,12 +3500,12 @@ static void pokemonanimfunc_40(struct Sprite *sprite)
HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_41(struct Sprite *sprite)
+static void Anim_LungeGrow(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -3552,9 +3516,9 @@ static void pokemonanimfunc_41(struct Sprite *sprite)
if (sprite->data[7] > 512)
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
+ ResetSpriteAfterAnim(sprite);
HandleSetAffineData(sprite, 256, 256, 0);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3566,12 +3530,12 @@ static void pokemonanimfunc_41(struct Sprite *sprite)
HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_42(struct Sprite *sprite)
+static void Anim_CircleIntoBackground(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -3582,9 +3546,9 @@ static void pokemonanimfunc_42(struct Sprite *sprite)
if (sprite->data[7] > 512)
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
+ ResetSpriteAfterAnim(sprite);
HandleSetAffineData(sprite, 256, 256, 0);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -3596,15 +3560,15 @@ static void pokemonanimfunc_42(struct Sprite *sprite)
HandleSetAffineData(sprite, 256 + scale, 256 + scale, 0);
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_43(struct Sprite *sprite)
+static void Anim_RapidHorizontalHops(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 2048)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->data[6] = 0;
}
else
@@ -3630,12 +3594,12 @@ static void pokemonanimfunc_43(struct Sprite *sprite)
sprite->data[2] += 24;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_44(struct Sprite *sprite)
+static void Anim_FourPetal(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
sprite->data[6] = 0;
@@ -3683,64 +3647,64 @@ static void pokemonanimfunc_44(struct Sprite *sprite)
default:
sprite->pos2.x = 0;
sprite->pos2.y = 0;
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
break;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_45(struct Sprite *sprite)
+static void Anim_VerticalSquishBounce_Slow(struct Sprite *sprite)
{
sprite->data[0] = 32;
- sub_8180714(sprite);
- sprite->callback = sub_8180714;
+ VerticalSquishBounce(sprite);
+ sprite->callback = VerticalSquishBounce;
}
-static void pokemonanimfunc_46(struct Sprite *sprite)
+static void Anim_HorizontalSlide_Slow(struct Sprite *sprite)
{
sprite->data[0] = 80;
- sub_817F8FC(sprite);
- sprite->callback = sub_817F8FC;
+ HorizontalSlide(sprite);
+ sprite->callback = HorizontalSlide;
}
-static void pokemonanimfunc_47(struct Sprite *sprite)
+static void Anim_VerticalSlide_Slow(struct Sprite *sprite)
{
sprite->data[0] = 80;
- sub_817F978(sprite);
- sprite->callback = sub_817F978;
+ VerticalSlide(sprite);
+ sprite->callback = VerticalSlide;
}
-static void pokemonanimfunc_48(struct Sprite *sprite)
+static void Anim_BounceRotateToSides_Small(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 2048;
- sUnknown_03001240[id].field_8 = sprite->data[6];
- sub_8180900(sprite);
- sprite->callback = sub_8180900;
+ sAnims[id].rotation = 2048;
+ sAnims[id].data = sprite->data[6];
+ BounceRotateToSides(sprite);
+ sprite->callback = BounceRotateToSides;
}
-static void pokemonanimfunc_49(struct Sprite *sprite)
+static void Anim_BounceRotateToSides_Slow(struct Sprite *sprite)
{
sprite->data[6] = 1;
- pokemonanimfunc_05(sprite);
+ Anim_BounceRotateToSides(sprite);
}
-static void pokemonanimfunc_4A(struct Sprite *sprite)
+static void Anim_BounceRotateToSides_SmallSlow(struct Sprite *sprite)
{
sprite->data[6] = 1;
- pokemonanimfunc_48(sprite);
+ Anim_BounceRotateToSides_Small(sprite);
}
-static void pokemonanimfunc_4B(struct Sprite *sprite)
+static void Anim_ZigzagSlow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
sprite->data[0] = 0;
if (sprite->data[0] <= 0)
{
- sub_817FC20(sprite);
+ Zigzag(sprite);
sprite->data[0] = 1;
}
else
@@ -3749,169 +3713,170 @@ static void pokemonanimfunc_4B(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_4C(struct Sprite *sprite)
+static void Anim_HorizontalShake_Slow(struct Sprite *sprite)
{
sprite->data[0] = 30;
sprite->data[7] = 3;
- sub_817FCDC(sprite);
- sprite->callback = sub_817FCDC;
+ HorizontalShake(sprite);
+ sprite->callback = HorizontalShake;
}
-static void pokemonanimfunc_4D(struct Sprite *sprite)
+static void Anim_VertialShake_Slow(struct Sprite *sprite)
{
sprite->data[0] = 30;
- sub_817FD44(sprite);
- sprite->callback = sub_817FD44;
+ VerticalShake(sprite);
+ sprite->callback = VerticalShake;
}
-static void pokemonanimfunc_4E(struct Sprite *sprite)
+static void Anim_Twist_Twice(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 1024;
- sUnknown_03001240[id].field_0 = 0;
- sUnknown_03001240[id].field_4 = 2;
- sub_817FE30(sprite);
- sprite->callback = sub_817FE30;
+ sAnims[id].rotation = 1024;
+ sAnims[id].delay = 0;
+ sAnims[id].runs = 2;
+ Twist(sprite);
+ sprite->callback = Twist;
}
-static void pokemonanimfunc_4F(struct Sprite *sprite)
+static void Anim_CircleCounterclockwise_Slow(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 512;
- sUnknown_03001240[id].field_8 = 3;
- sUnknown_03001240[id].field_2 = 12;
- sub_817FFF0(sprite);
- sprite->callback = sub_817FFF0;
+ sAnims[id].rotation = 512;
+ sAnims[id].data = 3;
+ sAnims[id].speed = 12;
+ CircleCounterclockwise(sprite);
+ sprite->callback = CircleCounterclockwise;
}
-static void pokemonanimfunc_50(struct Sprite *sprite)
+static void Anim_VerticalShakeTwice_Slow(struct Sprite *sprite)
{
sprite->data[0] = 24;
- sub_818031C(sprite);
- sprite->callback = sub_818031C;
+ VerticalShakeTwice(sprite);
+ sprite->callback = VerticalShakeTwice;
}
-static void pokemonanimfunc_51(struct Sprite *sprite)
+static void Anim_VerticalSlideWobble_Small(struct Sprite *sprite)
{
sprite->data[0] = 5;
- sub_81804F8(sprite);
- sprite->callback = sub_81804F8;
+ VerticalSlideWobble(sprite);
+ sprite->callback = VerticalSlideWobble;
}
-static void pokemonanimfunc_52(struct Sprite *sprite)
+static void Anim_VerticalJumps_Small(struct Sprite *sprite)
{
sprite->data[0] = 3;
- sub_817F9F4(sprite);
- sprite->callback = sub_817F9F4;
+ VerticalJumps(sprite);
+ sprite->callback = VerticalJumps;
}
-static void pokemonanimfunc_53(struct Sprite *sprite)
+static void Anim_Spin(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_0 = 60;
- sUnknown_03001240[id].field_8 = 30;
- sub_817FF3C(sprite);
- sprite->callback = sub_817FF3C;
+ sAnims[id].delay = 60;
+ sAnims[id].data = 30;
+ Spin(sprite);
+ sprite->callback = Spin;
}
-static void pokemonanimfunc_54(struct Sprite *sprite)
+static void Anim_TumblingFrontFlip_Twice(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_2 = 1;
- sUnknown_03001240[id].field_4 = 2;
- sub_8181214(sprite);
- sprite->callback = sub_8181214;
+ sAnims[id].speed = 1;
+ sAnims[id].runs = 2;
+ TumblingFrontFlip(sprite);
+ sprite->callback = TumblingFrontFlip;
}
-static void pokemonanimfunc_55(struct Sprite *sprite)
+static void Anim_DeepVerticalSquishBounce_Twice(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 4;
- sUnknown_03001240[id].field_4 = 2;
- sub_8181810(sprite);
- sprite->callback = sub_8181810;
+ sAnims[id].rotation = 4;
+ sAnims[id].runs = 2;
+ DeepVerticalSquishBounce(sprite);
+ sprite->callback = DeepVerticalSquishBounce;
}
-static void pokemonanimfunc_56(struct Sprite *sprite)
+static void Anim_HorizontalJumpsVerticalStretch_Twice(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_8 = 1;
- sUnknown_03001240[id].field_4 = 2;
+ sAnims[id].data = 1;
+ sAnims[id].runs = 2;
HandleStartAffineAnim(sprite);
sprite->data[3] = 0;
- sub_8181ABC(sprite);
- sprite->callback = sub_8181ABC;
+ HorizontalJumpsVerticalStretch_0(sprite);
+ sprite->callback = HorizontalJumpsVerticalStretch_0;
}
-static void pokemonanimfunc_07(struct Sprite *sprite)
+static void Anim_RotateToSides(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 2;
- sub_8181CE8(sprite);
- sprite->callback = sub_8181CE8;
+ sAnims[id].rotation = 2;
+ RotateToSides(sprite);
+ sprite->callback = RotateToSides;
}
-static void pokemonanimfunc_08(struct Sprite *sprite)
+static void Anim_RotateToSides_Twice(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 4;
- sUnknown_03001240[id].field_4 = 2;
- sub_8181CE8(sprite);
- sprite->callback = sub_8181CE8;
+ sAnims[id].rotation = 4;
+ sAnims[id].runs = 2;
+ RotateToSides(sprite);
+ sprite->callback = RotateToSides;
}
-static void pokemonanimfunc_0B(struct Sprite *sprite)
+static void Anim_SwingConcave(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_8 = 100;
- sub_81814D4(sprite);
- sprite->callback = sub_81814D4;
+ sAnims[id].data = 100;
+ SwingConcave(sprite);
+ sprite->callback = SwingConcave;
}
-static void pokemonanimfunc_0C(struct Sprite *sprite)
+static void Anim_SwingConcave_Fast(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_8 = 50;
- sUnknown_03001240[id].field_4 = 2;
- sub_81814D4(sprite);
- sprite->callback = sub_81814D4;
+ sAnims[id].data = 50;
+ sAnims[id].runs = 2;
+ SwingConcave(sprite);
+ sprite->callback = SwingConcave;
}
-static void pokemonanimfunc_0D(struct Sprite *sprite)
+static void Anim_SwingConvex(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_8 = 100;
- sub_81815D4(sprite);
- sprite->callback = sub_81815D4;
+ sAnims[id].data = 100;
+ SwingConvex(sprite);
+ sprite->callback = SwingConvex;
}
-static void pokemonanimfunc_0E(struct Sprite *sprite)
+static void Anim_SwingConvex_Fast(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_8 = 50;
- sUnknown_03001240[id].field_4 = 2;
- sub_81815D4(sprite);
- sprite->callback = sub_81815D4;
+ sAnims[id].data = 50;
+ sAnims[id].runs = 2;
+ SwingConvex(sprite);
+ sprite->callback = SwingConvex;
}
-static void sub_8183140(struct Sprite *sprite)
+// Very similar to VerticalShake, used by back animations only
+static void VerticalShakeBack(struct Sprite *sprite)
{
s32 counter = sprite->data[2];
if (counter > 2304)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
}
else
@@ -3922,28 +3887,28 @@ static void sub_8183140(struct Sprite *sprite)
sprite->data[2] += sprite->data[0];
}
-static void pokemonanimfunc_57(struct Sprite *sprite)
+static void Anim_VerticalShakeBack(struct Sprite *sprite)
{
sprite->data[0] = 60;
sprite->data[7] = 3;
- sub_8183140(sprite);
- sprite->callback = sub_8183140;
+ VerticalShakeBack(sprite);
+ sprite->callback = VerticalShakeBack;
}
-static void pokemonanimfunc_58(struct Sprite *sprite)
+static void Anim_VerticalShakeBack_Slow(struct Sprite *sprite)
{
sprite->data[0] = 30;
sprite->data[7] = 3;
- sub_8183140(sprite);
- sprite->callback = sub_8183140;
+ VerticalShakeBack(sprite);
+ sprite->callback = VerticalShakeBack;
}
-static void pokemonanimfunc_59(struct Sprite *sprite)
+static void Anim_VerticalShakeHorizontalSlide_Slow(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 2048)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->data[6] = 0;
}
else
@@ -3969,10 +3934,10 @@ static void pokemonanimfunc_59(struct Sprite *sprite)
sprite->data[2] += 24;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81832C8(struct Sprite *sprite)
+static void VerticalStretchBothEnds(struct Sprite *sprite)
{
s16 index1 = 0, index2 = 0;
@@ -3983,8 +3948,8 @@ static void sub_81832C8(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, 0);
if (sprite->data[4] <= 1)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -4006,7 +3971,7 @@ static void sub_81832C8(struct Sprite *sprite)
index1 = sprite->data[7] & 0xFF;
}
- if (sprite->data[1] == 0)
+ if (!sprite->sDontFlip)
xScale = -256 - Sin(index2, 16);
else
xScale = 256 + Sin(index2, 16);
@@ -4018,7 +3983,7 @@ static void sub_81832C8(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_5A(struct Sprite *sprite)
+static void Anim_VerticalStretchBothEnds_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4031,10 +3996,10 @@ static void pokemonanimfunc_5A(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81832C8(sprite);
+ VerticalStretchBothEnds(sprite);
}
-static void sub_8183418(struct Sprite *sprite)
+static void HorizontalStretchFar(struct Sprite *sprite)
{
s16 index1 = 0, index2;
@@ -4044,8 +4009,8 @@ static void sub_8183418(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, 0);
if (sprite->data[4] <= 1)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -4069,7 +4034,7 @@ static void sub_8183418(struct Sprite *sprite)
amplitude = sprite->data[3];
- if (sprite->data[1] == 0)
+ if (!sprite->sDontFlip)
xScale = -256 + Sin(index2, amplitude) + Sin(index1, amplitude / 5 * 2);
else
xScale = 256 - Sin(index2, amplitude) - Sin(index1, amplitude / 5 * 2);
@@ -4079,7 +4044,7 @@ static void sub_8183418(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_5B(struct Sprite *sprite)
+static void Anim_HorizontalStretchFar_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4092,29 +4057,29 @@ static void pokemonanimfunc_5B(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_8183418(sprite);
+ HorizontalStretchFar(sprite);
}
-static void sub_8183574(struct Sprite *sprite)
+static void VerticalShakeLowTwice(struct Sprite *sprite)
{
u8 var6, var7;
u8 var8 = sprite->data[2];
u8 var9 = sprite->data[6];
- u8 var5 = sUnknown_0860AA80[sprite->data[5]][0];
+ u8 var5 = sVerticalShakeData[sprite->data[5]][0];
u8 var2 = var5;
- if (var5 != 0xFF)
+ if (var5 != (u8)-1)
var5 = sprite->data[7];
else
- var5 = 0xFF; // needed to match
+ var5 = (u8)-1; // needed to match
- var6 = sUnknown_0860AA80[sprite->data[5]][1];
+ var6 = sVerticalShakeData[sprite->data[5]][1];
var7 = 0;
- if (var2 != 0xFE)
+ if (var2 != (u8)-2)
var7 = (var6 - var9) * var5 / var6;
- if (var5 == 0xFF)
+ if (var5 == (u8)-1)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.y = 0;
}
else
@@ -4133,34 +4098,35 @@ static void sub_8183574(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_5C(struct Sprite *sprite)
+// Very similar in appearance to Anim_VerticalShakeTwice (especially the fast variant), but deeper
+static void Anim_VerticalShakeLowTwice(struct Sprite *sprite)
{
sprite->data[0] = 40;
sprite->data[7] = 6;
- sub_8183574(sprite);
- sprite->callback = sub_8183574;
+ VerticalShakeLowTwice(sprite);
+ sprite->callback = VerticalShakeLowTwice;
}
-static void pokemonanimfunc_5D(struct Sprite *sprite)
+static void Anim_HorizontalShake_Fast(struct Sprite *sprite)
{
sprite->data[0] = 70;
sprite->data[7] = 6;
- sub_817FCDC(sprite);
- sprite->callback = sub_817FCDC;
+ HorizontalShake(sprite);
+ sprite->callback = HorizontalShake;
}
-static void pokemonanimfunc_5E(struct Sprite *sprite)
+static void Anim_HorizontalSlide_Fast(struct Sprite *sprite)
{
sprite->data[0] = 20;
- sub_817F8FC(sprite);
- sprite->callback = sub_817F8FC;
+ HorizontalSlide(sprite);
+ sprite->callback = HorizontalSlide;
}
-static void pokemonanimfunc_5F(struct Sprite *sprite)
+static void Anim_HorizontalVibrate_Fast(struct Sprite *sprite)
{
if (sprite->data[2] > 40)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -4177,11 +4143,11 @@ static void pokemonanimfunc_5F(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_60(struct Sprite *sprite)
+static void Anim_HorizontalVibrate_Fastest(struct Sprite *sprite)
{
if (sprite->data[2] > 40)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
}
else
@@ -4198,42 +4164,42 @@ static void pokemonanimfunc_60(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_61(struct Sprite *sprite)
+static void Anim_VerticalShakeBack_Fast(struct Sprite *sprite)
{
sprite->data[0] = 70;
sprite->data[7] = 6;
- sub_8183140(sprite);
- sprite->callback = sub_8183140;
+ VerticalShakeBack(sprite);
+ sprite->callback = VerticalShakeBack;
}
-static void pokemonanimfunc_62(struct Sprite *sprite)
+static void Anim_VerticalShakeLowTwice_Slow(struct Sprite *sprite)
{
sprite->data[0] = 24;
sprite->data[7] = 6;
- sub_8183574(sprite);
- sprite->callback = sub_8183574;
+ VerticalShakeLowTwice(sprite);
+ sprite->callback = VerticalShakeLowTwice;
}
-static void pokemonanimfunc_63(struct Sprite *sprite)
+static void Anim_VerticalShakeLowTwice_Fast(struct Sprite *sprite)
{
sprite->data[0] = 56;
sprite->data[7] = 9;
- sub_8183574(sprite);
- sprite->callback = sub_8183574;
+ VerticalShakeLowTwice(sprite);
+ sprite->callback = VerticalShakeLowTwice;
}
-static void pokemonanimfunc_64(struct Sprite *sprite)
+static void Anim_CircleCounterclockwise_Long(struct Sprite *sprite)
{
- u8 id = sprite->data[0] = sub_817F758();
+ u8 id = sprite->data[0] = AddNewAnim();
- sUnknown_03001240[id].field_6 = 1024;
- sUnknown_03001240[id].field_8 = 6;
- sUnknown_03001240[id].field_2 = 24;
- sub_817FFF0(sprite);
- sprite->callback = sub_817FFF0;
+ sAnims[id].rotation = 1024;
+ sAnims[id].data = 6;
+ sAnims[id].speed = 24;
+ CircleCounterclockwise(sprite);
+ sprite->callback = CircleCounterclockwise;
}
-static void sub_81837DC(struct Sprite *sprite)
+static void GrowStutter(struct Sprite *sprite)
{
s16 index1 = 0, index2 = 0;
if (sprite->data[5] > sprite->data[6])
@@ -4243,8 +4209,8 @@ static void sub_81837DC(struct Sprite *sprite)
HandleSetAffineData(sprite, 256, 256, 0);
if (sprite->data[4] <= 1)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -4268,7 +4234,7 @@ static void sub_81837DC(struct Sprite *sprite)
amplitude = sprite->data[3];
- if (sprite->data[1] == 0)
+ if (!sprite->sDontFlip)
xScale = Sin(index2, amplitude) + (Sin(index1, amplitude / 5 * 2) - 256);
else
xScale = 256 - Sin(index1, amplitude / 5 * 2) - Sin(index2, amplitude);
@@ -4279,7 +4245,7 @@ static void sub_81837DC(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_65(struct Sprite *sprite)
+static void Anim_GrowStutter_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4292,15 +4258,15 @@ static void pokemonanimfunc_65(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81837DC(sprite);
+ GrowStutter(sprite);
}
-static void pokemonanimfunc_66(struct Sprite *sprite)
+static void Anim_VerticalShakeHorizontalSlide(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 2048)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->data[6] = 0;
}
else
@@ -4326,15 +4292,15 @@ static void pokemonanimfunc_66(struct Sprite *sprite)
sprite->data[2] += 48;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_67(struct Sprite *sprite)
+static void Anim_VerticalShakeHorizontalSlide_Fast(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] > 2048)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->data[6] = 0;
}
else
@@ -4360,10 +4326,10 @@ static void pokemonanimfunc_67(struct Sprite *sprite)
sprite->data[2] += 64;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static const s8 sUnknown_0860ADBE[][3] =
+static const s8 sTriangleDownData[][3] =
{
// x y timer
{1, 1, 12},
@@ -4372,67 +4338,67 @@ static const s8 sUnknown_0860ADBE[][3] =
{0, 0, 0}
};
-static void sub_8183B4C(struct Sprite *sprite)
+static void TriangleDown(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
sprite->data[3] = 0;
- if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == sprite->data[2])
+ if (sTriangleDownData[sprite->data[3]][2] / sprite->data[5] == sprite->data[2])
{
sprite->data[3]++;
sprite->data[2] = 0;
}
- if (sUnknown_0860ADBE[sprite->data[3]][2] / sprite->data[5] == 0)
+ if (sTriangleDownData[sprite->data[3]][2] / sprite->data[5] == 0)
{
if (--sprite->data[6] == 0)
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
else
sprite->data[2] = 0;
}
else
{
s32 amplitude = sprite->data[5];
- sprite->pos2.x += (sUnknown_0860ADBE[sprite->data[3]][0] * amplitude);
- sprite->pos2.y += (sUnknown_0860ADBE[sprite->data[3]][1] * sprite->data[5]); // what's the point of the var if you're not reusing it?
+ sprite->pos2.x += (sTriangleDownData[sprite->data[3]][0] * amplitude);
+ sprite->pos2.y += (sTriangleDownData[sprite->data[3]][1] * sprite->data[5]); // Not using amplitude here. No reason for this.
sprite->data[2]++;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void pokemonanimfunc_68(struct Sprite *sprite)
+static void Anim_TriangleDown_Slow(struct Sprite *sprite)
{
sprite->data[5] = 1;
sprite->data[6] = 1;
- sub_8183B4C(sprite);
- sprite->callback = sub_8183B4C;
+ TriangleDown(sprite);
+ sprite->callback = TriangleDown;
}
-static void pokemonanimfunc_69(struct Sprite *sprite)
+static void Anim_TriangleDown(struct Sprite *sprite)
{
sprite->data[5] = 2;
sprite->data[6] = 1;
- sub_8183B4C(sprite);
- sprite->callback = sub_8183B4C;
+ TriangleDown(sprite);
+ sprite->callback = TriangleDown;
}
-static void pokemonanimfunc_6A(struct Sprite *sprite)
+static void Anim_TriangleDown_Fast(struct Sprite *sprite)
{
sprite->data[5] = 2;
sprite->data[6] = 2;
- sub_8183B4C(sprite);
- sprite->callback = sub_8183B4C;
+ TriangleDown(sprite);
+ sprite->callback = TriangleDown;
}
-static void sub_8183C6C(struct Sprite *sprite)
+static void Grow(struct Sprite *sprite)
{
if (sprite->data[7] > 255)
{
if (sprite->data[5] <= 1)
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
HandleSetAffineData(sprite, 256, 256, 0);
}
else
@@ -4454,9 +4420,9 @@ static void sub_8183C6C(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_6B(struct Sprite *sprite)
+static void Anim_Grow(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -4466,13 +4432,13 @@ static void pokemonanimfunc_6B(struct Sprite *sprite)
sprite->data[5] = 1;
}
- sub_8183C6C(sprite);
- sub_817F70C(sprite);
+ Grow(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_6C(struct Sprite *sprite)
+static void Anim_Grow_Twice(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[2] == 0)
{
HandleStartAffineAnim(sprite);
@@ -4482,11 +4448,11 @@ static void pokemonanimfunc_6C(struct Sprite *sprite)
sprite->data[5] = 2;
}
- sub_8183C6C(sprite);
- sub_817F70C(sprite);
+ Grow(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_6D(struct Sprite *sprite)
+static void Anim_HorizontalSpring_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4498,10 +4464,10 @@ static void pokemonanimfunc_6D(struct Sprite *sprite)
sprite->data[4] = 16;
}
- sub_8182764(sprite);
+ HorizontalSpring(sprite);
}
-static void pokemonanimfunc_6E(struct Sprite *sprite)
+static void Anim_HorizontalSpring_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4513,10 +4479,10 @@ static void pokemonanimfunc_6E(struct Sprite *sprite)
sprite->data[4] = 16;
}
- sub_8182764(sprite);
+ HorizontalSpring(sprite);
}
-static void pokemonanimfunc_6F(struct Sprite *sprite)
+static void Anim_HorizontalRepeatedSpring_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4528,10 +4494,10 @@ static void pokemonanimfunc_6F(struct Sprite *sprite)
sprite->data[4] = 16;
}
- sub_8182830(sprite);
+ HorizontalRepeatedSpring(sprite);
}
-static void pokemonanimfunc_70(struct Sprite *sprite)
+static void Anim_HorizontalRepeatedSpring(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4543,10 +4509,10 @@ static void pokemonanimfunc_70(struct Sprite *sprite)
sprite->data[4] = 8;
}
- sub_8182830(sprite);
+ HorizontalRepeatedSpring(sprite);
}
-static void pokemonanimfunc_71(struct Sprite *sprite)
+static void Anim_ShrinkGrow_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4555,10 +4521,10 @@ static void pokemonanimfunc_71(struct Sprite *sprite)
sprite->data[6] = 8;
}
- sub_8180828(sprite);
+ ShrinkGrow(sprite);
}
-static void pokemonanimfunc_72(struct Sprite *sprite)
+static void Anim_ShrinkGrow_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4567,10 +4533,10 @@ static void pokemonanimfunc_72(struct Sprite *sprite)
sprite->data[6] = 4;
}
- sub_8180828(sprite);
+ ShrinkGrow(sprite);
}
-static void pokemonanimfunc_73(struct Sprite *sprite)
+static void Anim_VerticalStretchBothEnds(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4582,10 +4548,10 @@ static void pokemonanimfunc_73(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81832C8(sprite);
+ VerticalStretchBothEnds(sprite);
}
-static void pokemonanimfunc_74(struct Sprite *sprite)
+static void Anim_VerticalStretchBothEnds_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4597,10 +4563,10 @@ static void pokemonanimfunc_74(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81832C8(sprite);
+ VerticalStretchBothEnds(sprite);
}
-static void pokemonanimfunc_75(struct Sprite *sprite)
+static void Anim_HorizontalStretchFar_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4613,10 +4579,10 @@ static void pokemonanimfunc_75(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_8183418(sprite);
+ HorizontalStretchFar(sprite);
}
-static void pokemonanimfunc_76(struct Sprite *sprite)
+static void Anim_HorizontalStretchFar(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4629,10 +4595,10 @@ static void pokemonanimfunc_76(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_8183418(sprite);
+ HorizontalStretchFar(sprite);
}
-static void pokemonanimfunc_77(struct Sprite *sprite)
+static void Anim_GrowStutter_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4645,10 +4611,10 @@ static void pokemonanimfunc_77(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81837DC(sprite);
+ GrowStutter(sprite);
}
-static void pokemonanimfunc_78(struct Sprite *sprite)
+static void Anim_GrowStutter(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4661,16 +4627,16 @@ static void pokemonanimfunc_78(struct Sprite *sprite)
sprite->data[7] = 0;
}
- sub_81837DC(sprite);
+ GrowStutter(sprite);
}
-static void sub_8183FA8(struct Sprite *sprite)
+static void ConcaveArc(struct Sprite *sprite)
{
if (sprite->data[7] > 255)
{
if (sprite->data[6] <= 1)
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
sprite->pos2.x = 0;
sprite->pos2.y = 0;
}
@@ -4692,7 +4658,7 @@ static void sub_8183FA8(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_79(struct Sprite *sprite)
+static void Anim_ConcaveArcLarge_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4704,10 +4670,10 @@ static void pokemonanimfunc_79(struct Sprite *sprite)
sprite->data[3] = 4;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void pokemonanimfunc_7A(struct Sprite *sprite)
+static void Anim_ConcaveArcLarge(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4719,10 +4685,10 @@ static void pokemonanimfunc_7A(struct Sprite *sprite)
sprite->data[3] = 6;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void pokemonanimfunc_7B(struct Sprite *sprite)
+static void Anim_ConcaveArcLarge_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4734,16 +4700,16 @@ static void pokemonanimfunc_7B(struct Sprite *sprite)
sprite->data[3] = 8;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void sub_81840C4(struct Sprite *sprite)
+static void ConvexDoubleArc(struct Sprite *sprite)
{
if (sprite->data[7] > 256)
{
if (sprite->data[6] <= sprite->data[4])
{
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -4783,7 +4749,7 @@ static void sub_81840C4(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_7C(struct Sprite *sprite)
+static void Anim_ConvexDoubleArc_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4795,10 +4761,10 @@ static void pokemonanimfunc_7C(struct Sprite *sprite)
sprite->data[3] = 4;
}
- sub_81840C4(sprite);
+ ConvexDoubleArc(sprite);
}
-static void pokemonanimfunc_7D(struct Sprite *sprite)
+static void Anim_ConvexDoubleArc(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4810,10 +4776,10 @@ static void pokemonanimfunc_7D(struct Sprite *sprite)
sprite->data[3] = 6;
}
- sub_81840C4(sprite);
+ ConvexDoubleArc(sprite);
}
-static void pokemonanimfunc_7E(struct Sprite *sprite)
+static void Anim_ConvexDoubleArc_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4825,10 +4791,10 @@ static void pokemonanimfunc_7E(struct Sprite *sprite)
sprite->data[3] = 8;
}
- sub_81840C4(sprite);
+ ConvexDoubleArc(sprite);
}
-static void pokemonanimfunc_7F(struct Sprite *sprite)
+static void Anim_ConcaveArcSmall_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4840,10 +4806,10 @@ static void pokemonanimfunc_7F(struct Sprite *sprite)
sprite->data[3] = 4;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void pokemonanimfunc_80(struct Sprite *sprite)
+static void Anim_ConcaveArcSmall(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4855,10 +4821,10 @@ static void pokemonanimfunc_80(struct Sprite *sprite)
sprite->data[3] = 6;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void pokemonanimfunc_81(struct Sprite *sprite)
+static void Anim_ConcaveArcSmall_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4870,18 +4836,18 @@ static void pokemonanimfunc_81(struct Sprite *sprite)
sprite->data[3] = 8;
}
- sub_8183FA8(sprite);
+ ConcaveArc(sprite);
}
-static void sub_8184290(struct Sprite *sprite)
+static void SetHorizontalDip(struct Sprite *sprite)
{
u16 index = Sin((sprite->data[2] * 128) / sprite->data[7], sprite->data[5]);
sprite->data[6] = -(index << 8);
- sub_817F3F0(sprite, index, sprite->data[4], 0);
+ SetPosForRotation(sprite, index, sprite->data[4], 0);
HandleSetAffineData(sprite, 256, 256, sprite->data[6]);
}
-static void pokemonanimfunc_82(struct Sprite *sprite)
+static void Anim_HorizontalDip(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4901,8 +4867,8 @@ static void pokemonanimfunc_82(struct Sprite *sprite)
sprite->data[0]++;
if (sprite->data[3] <= sprite->data[0])
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
return;
}
else
@@ -4912,13 +4878,13 @@ static void pokemonanimfunc_82(struct Sprite *sprite)
}
else
{
- sub_8184290(sprite);
+ SetHorizontalDip(sprite);
}
sprite->data[2]++;
}
-static void pokemonanimfunc_83(struct Sprite *sprite)
+static void Anim_HorizontalDip_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4938,8 +4904,8 @@ static void pokemonanimfunc_83(struct Sprite *sprite)
sprite->data[0]++;
if (sprite->data[3] <= sprite->data[0])
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
return;
}
else
@@ -4949,13 +4915,13 @@ static void pokemonanimfunc_83(struct Sprite *sprite)
}
else
{
- sub_8184290(sprite);
+ SetHorizontalDip(sprite);
}
sprite->data[2]++;
}
-static void pokemonanimfunc_84(struct Sprite *sprite)
+static void Anim_HorizontalDip_Twice(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -4975,8 +4941,8 @@ static void pokemonanimfunc_84(struct Sprite *sprite)
sprite->data[0]++;
if (sprite->data[3] <= sprite->data[0])
{
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
return;
}
else
@@ -4986,20 +4952,20 @@ static void pokemonanimfunc_84(struct Sprite *sprite)
}
else
{
- sub_8184290(sprite);
+ SetHorizontalDip(sprite);
}
sprite->data[2]++;
}
-static void sub_8184468(struct Sprite *sprite)
+static void ShrinkGrowVibrate(struct Sprite *sprite)
{
if (sprite->data[2] > sprite->data[7])
{
sprite->pos2.y = 0;
HandleSetAffineData(sprite, 256, 256, 0);
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
else
{
@@ -5032,7 +4998,7 @@ static void sub_8184468(struct Sprite *sprite)
sprite->data[2]++;
}
-static void pokemonanimfunc_85(struct Sprite *sprite)
+static void Anim_ShrinkGrowVibrate_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5042,10 +5008,10 @@ static void pokemonanimfunc_85(struct Sprite *sprite)
sprite->data[7] = 80;
}
- sub_8184468(sprite);
+ ShrinkGrowVibrate(sprite);
}
-static void pokemonanimfunc_86(struct Sprite *sprite)
+static void Anim_ShrinkGrowVibrate(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5055,10 +5021,10 @@ static void pokemonanimfunc_86(struct Sprite *sprite)
sprite->data[7] = 40;
}
- sub_8184468(sprite);
+ ShrinkGrowVibrate(sprite);
}
-static void pokemonanimfunc_87(struct Sprite *sprite)
+static void Anim_ShrinkGrowVibrate_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5068,59 +5034,59 @@ static void pokemonanimfunc_87(struct Sprite *sprite)
sprite->data[7] = 80;
}
- sub_8184468(sprite);
+ ShrinkGrowVibrate(sprite);
}
-static void sub_8184610(struct Sprite *sprite);
-static void sub_8184640(struct Sprite *sprite);
-static void sub_8184678(struct Sprite *sprite);
-static void sub_81846B8(struct Sprite *sprite);
+static void JoltRight_0(struct Sprite *sprite);
+static void JoltRight_1(struct Sprite *sprite);
+static void JoltRight_2(struct Sprite *sprite);
+static void JoltRight_3(struct Sprite *sprite);
-static void sub_81845D4(struct Sprite *sprite)
+static void JoltRight(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x -= sprite->data[2];
if (sprite->pos2.x <= -sprite->data[6])
{
sprite->pos2.x = -sprite->data[6];
sprite->data[7] = 2;
- sprite->callback = sub_8184610;
+ sprite->callback = JoltRight_0;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8184610(struct Sprite *sprite)
+static void JoltRight_0(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x += sprite->data[7];
sprite->data[7]++;
if (sprite->pos2.x >= 0)
- sprite->callback = sub_8184640;
+ sprite->callback = JoltRight_1;
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8184640(struct Sprite *sprite)
+static void JoltRight_1(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x += sprite->data[7];
sprite->data[7]++;
if (sprite->pos2.x > sprite->data[6])
{
sprite->pos2.x = sprite->data[6];
- sprite->callback = sub_8184678;
+ sprite->callback = JoltRight_2;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_8184678(struct Sprite *sprite)
+static void JoltRight_2(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[3] >= sprite->data[5])
{
- sprite->callback = sub_81846B8;
+ sprite->callback = JoltRight_3;
}
else
{
@@ -5129,24 +5095,24 @@ static void sub_8184678(struct Sprite *sprite)
sprite->data[3]++;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void sub_81846B8(struct Sprite *sprite)
+static void JoltRight_3(struct Sprite *sprite)
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
sprite->pos2.x -= 2;
if (sprite->pos2.x <= 0)
{
sprite->pos2.x = 0;
- sub_817F77C(sprite);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ ResetSpriteAfterAnim(sprite);
+ sprite->callback = WaitAnimEnd;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
-static void pokemonanimfunc_88(struct Sprite *sprite)
+static void Anim_JoltRight_Fast(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[7] = 4;
@@ -5155,10 +5121,10 @@ static void pokemonanimfunc_88(struct Sprite *sprite)
sprite->data[4] = 4;
sprite->data[3] = 0;
sprite->data[2] = 2;
- sprite->callback = sub_81845D4;
+ sprite->callback = JoltRight;
}
-static void pokemonanimfunc_89(struct Sprite *sprite)
+static void Anim_JoltRight(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[7] = 2;
@@ -5167,10 +5133,10 @@ static void pokemonanimfunc_89(struct Sprite *sprite)
sprite->data[4] = 2;
sprite->data[3] = 0;
sprite->data[2] = 1;
- sprite->callback = sub_81845D4;
+ sprite->callback = JoltRight;
}
-static void pokemonanimfunc_8A(struct Sprite *sprite)
+static void Anim_JoltRight_Slow(struct Sprite *sprite)
{
HandleStartAffineAnim(sprite);
sprite->data[7] = 0;
@@ -5179,10 +5145,10 @@ static void pokemonanimfunc_8A(struct Sprite *sprite)
sprite->data[4] = 2;
sprite->data[3] = 0;
sprite->data[2] = 1;
- sprite->callback = sub_81845D4;
+ sprite->callback = JoltRight;
}
-static void sub_8184770(struct Sprite *sprite)
+static void SetShakeFlashYellowPos(struct Sprite *sprite)
{
sprite->pos2.x = sprite->data[1];
if (sprite->data[0] > 1)
@@ -5196,97 +5162,91 @@ static void sub_8184770(struct Sprite *sprite)
}
}
-struct YellowBlendStruct
-{
- u8 field_0;
- u8 field_1;
+static const struct YellowFlashData sShakeYellowFlashData_Fast[] =
+{
+ {FALSE, 1},
+ { TRUE, 2},
+ {FALSE, 15},
+ { TRUE, 1},
+ {FALSE, 15},
+ { TRUE, 1},
+ {FALSE, 15},
+ { TRUE, 1},
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 1},
+ {FALSE, -1}
};
-static const struct YellowBlendStruct sUnknown_0860ADCC[] =
-{
- {0, 1},
- {1, 2},
- {0, 15},
- {1, 1},
- {0, 15},
- {1, 1},
- {0, 15},
- {1, 1},
- {0, 1},
- {1, 1},
- {0, 1},
- {1, 1},
- {0, 1},
- {1, 1},
- {0, 1},
- {1, 1},
- {0, 1},
- {1, 1},
- {0, 1},
- {0, 0xFF}
+static const struct YellowFlashData sShakeYellowFlashData_Normal[] =
+{
+ {FALSE, 5},
+ { TRUE, 1},
+ {FALSE, 15},
+ { TRUE, 4},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ { TRUE, 2},
+ {FALSE, 2},
+ {FALSE, -1}
};
-static const struct YellowBlendStruct sUnknown_0860AE1C[] =
-{
- {0, 5},
- {1, 1},
- {0, 15},
- {1, 4},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {1, 2},
- {0, 2},
- {0, 0xFF}
+static const struct YellowFlashData sShakeYellowFlashData_Slow[] =
+{
+ {FALSE, 1},
+ { TRUE, 1},
+ {FALSE, 20},
+ { TRUE, 1},
+ {FALSE, 20},
+ { TRUE, 1},
+ {FALSE, 20},
+ { TRUE, 1},
+ {FALSE, 1},
+ {FALSE, -1}
};
-static const struct YellowBlendStruct sUnknown_0860AE54[] =
-{
- {0, 1},
- {1, 1},
- {0, 20},
- {1, 1},
- {0, 20},
- {1, 1},
- {0, 20},
- {1, 1},
- {0, 1},
- {0, 0xFF}
-};
-
-static const struct YellowBlendStruct *const sUnknown_0860AE7C[] =
+static const struct YellowFlashData *const sShakeYellowFlashData[] =
{
- sUnknown_0860ADCC,
- sUnknown_0860AE1C,
- sUnknown_0860AE54
+ sShakeYellowFlashData_Fast,
+ sShakeYellowFlashData_Normal,
+ sShakeYellowFlashData_Slow
};
-static void BackAnimBlendYellow(struct Sprite *sprite)
+static void ShakeFlashYellow(struct Sprite *sprite)
{
- const struct YellowBlendStruct *array = sUnknown_0860AE7C[sprite->data[3]];
- sub_8184770(sprite);
- if (array[sprite->data[6]].field_1 == 0xFF)
+ const struct YellowFlashData *array = sShakeYellowFlashData[sprite->data[3]];
+ SetShakeFlashYellowPos(sprite);
+ if (array[sprite->data[6]].time == (u8)-1)
{
sprite->pos2.x = 0;
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ sprite->callback = WaitAnimEnd;
}
else
{
if (sprite->data[4] == 1)
{
- if (array[sprite->data[6]].field_0 != 0)
- BlendPalette(sprite->data[7], 0x10, 0x10, RGB_YELLOW);
+ if (array[sprite->data[6]].isYellow)
+ BlendPalette(sprite->data[7], 16, 16, RGB_YELLOW);
else
- BlendPalette(sprite->data[7], 0x10, 0, RGB_YELLOW);
+ BlendPalette(sprite->data[7], 16, 0, RGB_YELLOW);
sprite->data[4] = 0;
}
- if (array[sprite->data[6]].field_1 == sprite->data[5])
+ if (array[sprite->data[6]].time == sprite->data[5])
{
sprite->data[4] = 1;
sprite->data[5] = 0;
@@ -5299,7 +5259,7 @@ static void BackAnimBlendYellow(struct Sprite *sprite)
}
}
-static void pokemonanimfunc_8B(struct Sprite *sprite)
+static void Anim_ShakeFlashYellow_Fast(struct Sprite *sprite)
{
if (++sprite->data[2] == 1)
{
@@ -5310,10 +5270,10 @@ static void pokemonanimfunc_8B(struct Sprite *sprite)
sprite->data[3] = 0;
}
- BackAnimBlendYellow(sprite);
+ ShakeFlashYellow(sprite);
}
-static void pokemonanimfunc_8C(struct Sprite *sprite)
+static void Anim_ShakeFlashYellow(struct Sprite *sprite)
{
if (++sprite->data[2] == 1)
{
@@ -5324,10 +5284,10 @@ static void pokemonanimfunc_8C(struct Sprite *sprite)
sprite->data[3] = 1;
}
- BackAnimBlendYellow(sprite);
+ ShakeFlashYellow(sprite);
}
-static void pokemonanimfunc_8D(struct Sprite *sprite)
+static void Anim_ShakeFlashYellow_Slow(struct Sprite *sprite)
{
if (++sprite->data[2] == 1)
{
@@ -5338,33 +5298,43 @@ static void pokemonanimfunc_8D(struct Sprite *sprite)
sprite->data[3] = 2;
}
- BackAnimBlendYellow(sprite);
+ ShakeFlashYellow(sprite);
}
-static void BackAnimBlend(struct Sprite *sprite)
+enum {
+ SHAKEGLOW_RED,
+ SHAKEGLOW_GREEN,
+ SHAKEGLOW_BLUE,
+ SHAKEGLOW_BLACK
+};
+
+static void ShakeGlow_Blend(struct Sprite *sprite)
{
static const u16 sColors[] =
{
- RGB_RED, RGB_GREEN, RGB_BLUE, RGB_BLACK
+ [SHAKEGLOW_RED] = RGB_RED,
+ [SHAKEGLOW_GREEN] = RGB_GREEN,
+ [SHAKEGLOW_BLUE] = RGB_BLUE,
+ [SHAKEGLOW_BLACK] = RGB_BLACK
};
if (sprite->data[2] > 127)
{
- BlendPalette(sprite->data[7], 0x10, 0, RGB_RED);
- sprite->callback = SpriteCB_SetDummyOnAnimEnd;
+ BlendPalette(sprite->data[7], 16, 0, RGB_RED);
+ sprite->callback = WaitAnimEnd;
}
else
{
sprite->data[6] = Sin(sprite->data[2], 12);
- BlendPalette(sprite->data[7], 0x10, sprite->data[6], sColors[sprite->data[1]]);
+ BlendPalette(sprite->data[7], 16, sprite->data[6], sColors[sprite->data[1]]);
}
}
-static void sub_8184934(struct Sprite *sprite)
+static void ShakeGlow_Move(struct Sprite *sprite)
{
if (sprite->data[3] < sprite->data[4])
{
- sub_817F70C(sprite);
+ TryFlipX(sprite);
if (sprite->data[5] > sprite->data[0])
{
if (++sprite->data[3] < sprite->data[4])
@@ -5379,11 +5349,11 @@ static void sub_8184934(struct Sprite *sprite)
sprite->data[5]++;
}
- sub_817F70C(sprite);
+ TryFlipX(sprite);
}
}
-static void pokemonanimfunc_8E(struct Sprite *sprite)
+static void Anim_ShakeGlowRed_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5392,19 +5362,19 @@ static void pokemonanimfunc_8E(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 2;
sprite->data[3] = 0;
- sprite->data[1] = 0;
+ sprite->data[1] = SHAKEGLOW_RED;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_8F(struct Sprite *sprite)
+static void Anim_ShakeGlowRed(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5413,19 +5383,19 @@ static void pokemonanimfunc_8F(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 0;
+ sprite->data[1] = SHAKEGLOW_RED;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_90(struct Sprite *sprite)
+static void Anim_ShakeGlowRed_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5434,19 +5404,19 @@ static void pokemonanimfunc_90(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 0;
+ sprite->data[1] = SHAKEGLOW_RED;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_91(struct Sprite *sprite)
+static void Anim_ShakeGlowGreen_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5455,19 +5425,19 @@ static void pokemonanimfunc_91(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 2;
sprite->data[3] = 0;
- sprite->data[1] = 1;
+ sprite->data[1] = SHAKEGLOW_GREEN;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_92(struct Sprite *sprite)
+static void Anim_ShakeGlowGreen(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5476,19 +5446,19 @@ static void pokemonanimfunc_92(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 1;
+ sprite->data[1] = SHAKEGLOW_GREEN;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_93(struct Sprite *sprite)
+static void Anim_ShakeGlowGreen_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5497,19 +5467,19 @@ static void pokemonanimfunc_93(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 1;
+ sprite->data[1] = SHAKEGLOW_GREEN;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_94(struct Sprite *sprite)
+static void Anim_ShakeGlowBlue_Fast(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5518,19 +5488,19 @@ static void pokemonanimfunc_94(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 2;
sprite->data[3] = 0;
- sprite->data[1] = 2;
+ sprite->data[1] = SHAKEGLOW_BLUE;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_95(struct Sprite *sprite)
+static void Anim_ShakeGlowBlue(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5539,19 +5509,19 @@ static void pokemonanimfunc_95(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 2;
+ sprite->data[1] = SHAKEGLOW_BLUE;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void pokemonanimfunc_96(struct Sprite *sprite)
+static void Anim_ShakeGlowBlue_Slow(struct Sprite *sprite)
{
if (sprite->data[2] == 0)
{
@@ -5560,19 +5530,19 @@ static void pokemonanimfunc_96(struct Sprite *sprite)
sprite->data[5] = 0;
sprite->data[4] = 1;
sprite->data[3] = 0;
- sprite->data[1] = 2;
+ sprite->data[1] = SHAKEGLOW_BLUE;
}
if (sprite->data[2] % 2 == 0)
- BackAnimBlend(sprite);
+ ShakeGlow_Blend(sprite);
if (sprite->data[2] >= (128 - sprite->data[0] * sprite->data[4]) / 2)
- sub_8184934(sprite);
+ ShakeGlow_Move(sprite);
sprite->data[2]++;
}
-static void SpriteCB_SetDummyOnAnimEnd(struct Sprite *sprite)
+static void WaitAnimEnd(struct Sprite *sprite)
{
if (sprite->animEnded)
sprite->callback = SpriteCallbackDummy;
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 3041fdb13..6adf95ca1 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -175,7 +175,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
} *sMonSummaryScreen = NULL;
EWRAM_DATA u8 gLastViewedMonIndex = 0;
static EWRAM_DATA u8 sMoveSlotToReplace = 0;
-ALIGNED(4) static EWRAM_DATA u8 sUnknownTaskId = 0;
+ALIGNED(4) static EWRAM_DATA u8 sAnimDelayTaskId = 0;
// forward declarations
static bool8 LoadGraphics(void);
@@ -296,6 +296,7 @@ static void SpriteCb_MoveSelector(struct Sprite *sprite);
static void DestroyMoveSelectorSprites(u8 firstArrayId);
static void SetMainMoveSelectorColor(u8 whichColor);
static void KeepMoveSelectorVisible(u8 firstSpriteId);
+static void SummaryScreen_DestroyAnimDelayTask(void);
// const rom data
#include "data/text/move_descriptions.h"
@@ -1094,7 +1095,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
}
sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex;
- SummaryScreen_SetUnknownTaskId(0xFF);
+ SummaryScreen_SetAnimDelayTaskId(TASK_NONE);
if (gMonSpritesGfxPtr == NULL)
sub_806F2AC(0, 0);
@@ -1480,7 +1481,7 @@ static void CloseSummaryScreen(u8 taskId)
{
SetMainCallback2(sMonSummaryScreen->callback);
gLastViewedMonIndex = sMonSummaryScreen->curMonIndex;
- SummaryScreen_DestroyUnknownTask();
+ SummaryScreen_DestroyAnimDelayTask();
ResetSpriteData();
FreeAllSpritePalettes();
StopCryAndClearCrySongs();
@@ -1598,7 +1599,7 @@ static void Task_ChangeSummaryMon(u8 taskId)
StopCryAndClearCrySongs();
break;
case 1:
- SummaryScreen_DestroyUnknownTask();
+ SummaryScreen_DestroyAnimDelayTask();
DestroySpriteAndFreeResources(&gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]]);
break;
case 2:
@@ -3933,17 +3934,19 @@ static void SpriteCB_Pokemon(struct Sprite *sprite)
}
}
-void SummaryScreen_SetUnknownTaskId(u8 taskId)
+// Track and then destroy Task_PokemonSummaryAnimateAfterDelay
+// Normally destroys itself but it can be interrupted before the animation starts
+void SummaryScreen_SetAnimDelayTaskId(u8 taskId)
{
- sUnknownTaskId = taskId;
+ sAnimDelayTaskId = taskId;
}
-void SummaryScreen_DestroyUnknownTask(void)
+static void SummaryScreen_DestroyAnimDelayTask(void)
{
- if (sUnknownTaskId != TASK_NONE)
+ if (sAnimDelayTaskId != TASK_NONE)
{
- DestroyTask(sUnknownTaskId);
- sUnknownTaskId = TASK_NONE;
+ DestroyTask(sAnimDelayTaskId);
+ sAnimDelayTaskId = TASK_NONE;
}
}