summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-03-14 16:29:33 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-03-14 16:29:33 -0400
commit99ec579debc63991f16e08ef906111ad556edad5 (patch)
tree7ef44e3452d21432ad640270d7b6a9c6a15fe97c
parent75b9fbc92fbe5edbf8dbdd647585d3d94adb33d1 (diff)
Name symbols in battle_anim_special.c
-rw-r--r--common_syms/battle_anim_special.txt6
-rw-r--r--data/battle_anim_scripts.s22
-rw-r--r--include/battle_anim.h23
-rw-r--r--include/battle_main.h4
-rw-r--r--include/gba/defines.h10
-rw-r--r--include/global.h8
-rw-r--r--include/load_save.h1
-rw-r--r--src/battle_anim.c20
-rw-r--r--src/battle_anim_effects_2.c8
-rw-r--r--src/battle_anim_effects_3.c8
-rw-r--r--src/battle_anim_mons.c58
-rw-r--r--src/battle_anim_special.c550
-rw-r--r--src/battle_anim_utility_funcs.c14
-rw-r--r--src/battle_controller_link_opponent.c8
-rw-r--r--src/battle_controller_link_partner.c2
-rw-r--r--src/battle_controller_oak_old_man.c10
-rw-r--r--src/battle_controller_opponent.c8
-rw-r--r--src/battle_controller_player.c8
-rw-r--r--src/battle_controller_pokedude.c12
-rw-r--r--src/battle_main.c16
-rw-r--r--src/dark.c12
-rw-r--r--src/daycare.c12
-rw-r--r--src/dodrio_berry_picking_2.c2
-rw-r--r--src/easy_chat.c2
-rw-r--r--src/fame_checker.c2
-rw-r--r--src/fighting.c4
-rw-r--r--src/fire.c2
-rw-r--r--src/ice.c8
-rw-r--r--src/load_save.c14
-rw-r--r--src/mystery_gift_menu.c2
-rw-r--r--src/pokemon_summary_screen.c16
-rw-r--r--src/psychic.c4
-rw-r--r--src/quest_log_player.c2
-rw-r--r--src/roamer.c6
-rw-r--r--src/rock.c4
-rw-r--r--src/save.c34
-rw-r--r--src/string_util.c4
-rw-r--r--src/trainer_card.c2
-rw-r--r--src/water.c4
39 files changed, 474 insertions, 458 deletions
diff --git a/common_syms/battle_anim_special.txt b/common_syms/battle_anim_special.txt
index 7e68496a0..5e2e8b3ff 100644
--- a/common_syms/battle_anim_special.txt
+++ b/common_syms/battle_anim_special.txt
@@ -1,3 +1,3 @@
-sUnknown_3005424
-sUnknown_3005428
-sUnknown_300542C
+gMonShrinkDuration
+gMonShrinkDelta
+gMonShrinkDistance
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 8884e9853..b285a148a 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -10557,7 +10557,7 @@ General_SubstituteAppear:: @ 81D5C04
end
General_BaitThrow:: @ 81D5C0C
- createvisualtask sub_80F1C8C, 2, 0
+ createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0
createvisualtask AnimTask_LoadBaitGfx, 2,
delay 0
waitplaysewithpan SE_M_JUMP_KICK, 192, 22
@@ -10898,7 +10898,7 @@ General_WishHeal:: @ 81D6250
end
General_MonScared:: @ 81D628A
- createvisualtask sub_80F1C8C, 2, 1
+ createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1
waitforvisualfinish
loadspritegfx ANIM_TAG_SWEAT_BEAD
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 10, 26336
@@ -10915,7 +10915,7 @@ General_MonScared:: @ 81D628A
end
General_GhostGetOut:: @ 81D6301
- createvisualtask sub_80F1C8C, 2, 1
+ createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1
waitforvisualfinish
fadetobg 2
waitbgfadeout
@@ -10950,7 +10950,7 @@ General_SilphScoped:: @ 81D637B
end
General_SafariRockThrow:: @ 81D6394
- createvisualtask sub_80F1C8C, 2, 0
+ createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0
waitforvisualfinish
loadspritegfx ANIM_TAG_ROCKS
loadspritegfx ANIM_TAG_IMPACT
@@ -10970,14 +10970,14 @@ General_SafariRockThrow:: @ 81D6394
end
General_SafariReaction:: @ 81D63DC
- createvisualtask sub_80F1CE4, 2,
+ createvisualtask AnimTask_SafariGetReaction, 2,
waitforvisualfinish
- jumpargeq 7, 0, gUnknown_81D63FD
- jumpargeq 7, 1, gUnknown_81D6425
- jumpargeq 7, 2, gUnknown_81D644E
+ jumpargeq 7, 0, SafariReaction_WatchingCarefully
+ jumpargeq 7, 1, SafariReaction_Angry
+ jumpargeq 7, 2, SafariReaction_Eating
end
-gUnknown_81D63FD:: @ 81D63FD
+SafariReaction_WatchingCarefully:: @ 81D63FD
playsewithpan SE_M_TAKE_DOWN, 63
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2
waitforvisualfinish
@@ -10985,7 +10985,7 @@ gUnknown_81D63FD:: @ 81D63FD
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2
end
-gUnknown_81D6425:: @ 81D6425
+SafariReaction_Angry:: @ 81D6425
loadspritegfx ANIM_TAG_ANGER
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20
playsewithpan SE_M_SWAGGER2, 63
@@ -10995,7 +10995,7 @@ gUnknown_81D6425:: @ 81D6425
playsewithpan SE_M_SWAGGER2, 63
end
-gUnknown_81D644E:: @ 81D644E
+SafariReaction_Eating:: @ 81D644E
playsewithpan SE_M_TAKE_DOWN, 63
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2
waitforvisualfinish
diff --git a/include/battle_anim.h b/include/battle_anim.h
index 866ca663e..05cba4e34 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -36,6 +36,15 @@ struct BattleAnimBackground
#define ANIM_ARGS_COUNT 8
+// Linear Translation
+#define sTransl_Speed data[0]
+#define sTransl_Duration data[0] // for Fast
+#define sTransl_InitX data[1]
+#define sTransl_DestX data[2]
+#define sTransl_InitY data[3]
+#define sTransl_DestY data[4]
+#define sTransl_ArcAmpl data[5]
+
extern void (*gAnimScriptCallback)(void);
extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
@@ -129,7 +138,7 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64;
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
void MoveBattlerSpriteToBG(u8 battlerId, u8);
-void sub_8073128(u8);
+void ResetBattleAnimBg(u8);
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
@@ -306,12 +315,12 @@ void AnimKnockOffStrike(struct Sprite *);
void AnimRecycle(struct Sprite *);
// battle_anim_special.c
-void sub_80F1720(u8 battler, struct Pokemon *mon);
+void TryShinyAnimation(u8 battler, struct Pokemon *mon);
u8 ItemIdToBallId(u16 itemId);
-u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
+u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
-void sub_80EEFC8(u8 *, u8 *, u8 battlerId);
-void sub_80EF0E0(u8 batterId);
+void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId);
+void DoFreeHealthboxPalsForLevelUp(u8 batterId);
enum
{
@@ -382,7 +391,7 @@ u8 GetBattlerPosition(u8 battlerId);
u8 GetBattlerAtPosition(u8 position);
bool8 IsBattlerSpritePresent(u8 battlerId);
bool8 IsDoubleBattle(void);
-void sub_80752A0(struct BattleAnimBgData *animBgData);
+void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData);
void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1);
void sub_8075300(struct BattleAnimBgData *animBgData, u8 unused);
void sub_8075358(u32 bgId);
@@ -397,7 +406,7 @@ void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void sub_80755B8(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
-void sub_807563C(struct Sprite *sprite);
+void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
void sub_8075678(struct Sprite *sprite);
void sub_80756A4(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
diff --git a/include/battle_main.h b/include/battle_main.h
index fe585f0e6..424fb25b1 100644
--- a/include/battle_main.h
+++ b/include/battle_main.h
@@ -80,8 +80,8 @@ void sub_8012100(struct Sprite *sprite);
void sub_8012110(struct Sprite *sprite);
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
void EndBounceEffect(u8 battler, u8 which);
-void sub_8012354(struct Sprite *sprite);
-void sub_801236C(struct Sprite *sprite);
+void SpriteCB_PlayerThrowInit(struct Sprite *sprite);
+void UpdatePlayerPosInThrowAnim(struct Sprite *sprite);
void nullsub_12(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
diff --git a/include/gba/defines.h b/include/gba/defines.h
index 28f804dff..ce276862c 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -16,8 +16,10 @@
#if MODERN
#define NOINLINE __attribute__((noinline))
+#define HERE __attribute__((no_reorder))
#else
#define NOINLINE
+#define HERE
#endif
#define ALIGNED(n) __attribute__((aligned(n)))
@@ -92,7 +94,15 @@
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
+// Some functions are strictly inline asm
#define NAKED __attribute__((naked))
+
+// Silence IDE warnings
+#if __GNUC__ >= 4
+#define USED __attribute__((used))
+#else
+#define USED
+#endif
#define UNUSED __attribute__((unused))
#endif // GUARD_GBA_DEFINES
diff --git a/include/global.h b/include/global.h
index fba89427c..04adc82cb 100644
--- a/include/global.h
+++ b/include/global.h
@@ -31,9 +31,7 @@
#define __(x) (x)
#endif // __APPLE__
-#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
-// GF's lingo
-#define NELEMS ARRAY_COUNT
+#define NELEMS(array) (sizeof(array) / sizeof((array)[0]))
#define SWAP(a, b, temp) \
{ \
@@ -293,7 +291,7 @@ struct SaveBlock2
/*0xB10*/ struct BerryPickingResults berryPick;
/*0xB20*/ u8 filler_B20[0x400];
/*0xF20*/ u32 encryptionKey;
-};
+}; // size: 0xF24
extern struct SaveBlock2 *gSaveBlock2Ptr;
@@ -826,7 +824,7 @@ struct SaveBlock1
/*0x3D24*/ u8 filler3D24[0x10];
/*0x3D34*/ u32 towerChallengeId;
/*0x3D38*/ struct TrainerTower trainerTower[NUM_TOWER_CHALLENGE_TYPES];
-};
+}; // size: 0x3D68
struct MapPosition
{
diff --git a/include/load_save.h b/include/load_save.h
index 23c1429ed..95de991a8 100644
--- a/include/load_save.h
+++ b/include/load_save.h
@@ -6,6 +6,7 @@
extern bool32 gFlashMemoryPresent;
extern struct SaveBlock1 gSaveBlock1;
extern struct SaveBlock2 gSaveBlock2;
+extern struct PokemonStorage gPokemonStorage;
void ClearSav2(void);
void ClearSav1(void);
diff --git a/src/battle_anim.c b/src/battle_anim.c
index 41f44a42c..f9b620025 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -2259,7 +2259,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2)
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(8)), 0x2000, DMA3_32BIT);
RequestDma3Fill(0, (void*)(BG_SCREEN_ADDR(28)), 0x1000, DMA3_32BIT);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
CpuFill16(toBG_2, animBg.bgTiles, 0x1000);
CpuFill16(toBG_2, animBg.bgTilemap, 0x800);
@@ -2326,10 +2326,10 @@ void sub_80730C0(u16 a, u16 *b, s32 c, u8 d)
}
}
-void sub_8073128(bool8 to_BG2)
+void ResetBattleAnimBg(bool8 to_BG2)
{
struct BattleAnimBgData animBg;
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
if (!to_BG2)
{
@@ -2353,7 +2353,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId)
spriteId = gTasks[taskId].data[0];
palIndex = gTasks[taskId].data[6];
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
x = gTasks[taskId].data[1] - (gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x);
y = gTasks[taskId].data[2] - (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y);
@@ -2429,13 +2429,13 @@ static void sub_807331C(u8 taskId)
if (sMonAnimTaskIdArray[0] != 0xFF)
{
- sub_8073128(toBG_2);
+ ResetBattleAnimBg(toBG_2);
DestroyTask(sMonAnimTaskIdArray[0]);
sMonAnimTaskIdArray[0] = 0xFF;
}
if (gTasks[taskId].data[0] > 1)
{
- sub_8073128(toBG_2 ^ 1);
+ ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(sMonAnimTaskIdArray[1]);
sMonAnimTaskIdArray[1] = 0xFF;
}
@@ -2541,10 +2541,10 @@ static void sub_8073558(u8 taskId)
toBG_2 = TRUE;
if (IsBattlerSpriteVisible(battlerId))
- sub_8073128(toBG_2);
+ ResetBattleAnimBg(toBG_2);
if (gTasks[taskId].data[0] > 1 && IsBattlerSpriteVisible(battlerId ^ BIT_FLANK))
- sub_8073128(toBG_2 ^ 1);
+ ResetBattleAnimBg(toBG_2 ^ 1);
DestroyTask(taskId);
}
@@ -3303,9 +3303,9 @@ static void ScriptCmd_doublebattle_2D(void)
gSprites[spriteId].oam.priority = 3;
if (priority == 1)
- sub_8073128(FALSE);
+ ResetBattleAnimBg(FALSE);
else
- sub_8073128(TRUE);
+ ResetBattleAnimBg(TRUE);
}
}
}
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index ac4e9db30..9d9bc8b2e 100644
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -3232,7 +3232,7 @@ void AnimTask_HeartsBackground(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBg_AttractTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBg_AttractGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimBg_AttractPal, animBg.paletteId * 16, 32);
@@ -3282,7 +3282,7 @@ static void HeartsBackground_Step(u8 taskId)
}
break;
case 3:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
gTasks[taskId].data[12]++;
break;
@@ -3313,7 +3313,7 @@ void AnimTask_ScaryFace(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
if (IsContest())
LZDecompressVram(gBattleAnimBgTilemap_ScaryFaceContest, animBg.bgTilemap);
@@ -3370,7 +3370,7 @@ static void ScaryFace_Step(u8 taskId)
}
break;
case 3:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
gTasks[taskId].data[12]++;
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index c259755df..b08783528 100644
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -2287,7 +2287,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
@@ -2348,7 +2348,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
}
break;
case 4:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
@@ -2467,7 +2467,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnim_MorningSunTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnim_MorningSunGfx, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnim_MorningSunPal, animBg.paletteId * 16, 32);
@@ -2540,7 +2540,7 @@ void AnimTask_DoomDesireLightBeam(u8 taskId)
gTasks[taskId].data[0] = 1;
break;
case 5:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (!IsContest())
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0);
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index ee5d4017d..d624b36fe 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -695,10 +695,10 @@ void SetAnimSpriteInitialXOffset(struct Sprite *sprite, s16 xOffset)
void InitAnimArcTranslation(struct Sprite *sprite)
{
- sprite->data[1] = sprite->pos1.x;
- sprite->data[3] = sprite->pos1.y;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
- sprite->data[6] = 0x8000 / sprite->data[0];
+ sprite->data[6] = 0x8000 / sprite->sTransl_Speed;
sprite->data[7] = 0;
}
@@ -707,7 +707,7 @@ bool8 TranslateAnimHorizontalArc(struct Sprite *sprite)
if (AnimTranslateLinear(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
- sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
+ sprite->pos2.y += Sin((u8)(sprite->data[7] >> 8), sprite->sTransl_ArcAmpl);
return FALSE;
}
@@ -716,7 +716,7 @@ bool8 TranslateAnimVerticalArc(struct Sprite *sprite)
if (AnimTranslateLinear(sprite))
return TRUE;
sprite->data[7] += sprite->data[6];
- sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->data[5]);
+ sprite->pos2.x += Sin((u8)(sprite->data[7] >> 8), sprite->sTransl_ArcAmpl);
return FALSE;
}
@@ -801,7 +801,7 @@ bool8 IsDoubleBattle(void)
return IS_DOUBLE_BATTLE();
}
-void sub_80752A0(struct BattleAnimBgData *animBgData)
+void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData)
{
animBgData->bgTiles = gUnknown_2022BB8;
animBgData->bgTilemap = (u16 *)gUnknown_2022BBC;
@@ -815,7 +815,7 @@ void sub_80752C8(struct BattleAnimBgData *animBgData, u32 arg1)
{
if (arg1 == 1)
{
- sub_80752A0(animBgData);
+ GetBattleAnimBg1Data(animBgData);
}
else
{
@@ -919,15 +919,15 @@ void InitSpriteDataForLinearTranslation(struct Sprite *sprite)
void InitAnimLinearTranslation(struct Sprite *sprite)
{
- s32 x = sprite->data[2] - sprite->data[1];
- s32 y = sprite->data[4] - sprite->data[3];
+ s32 x = sprite->sTransl_DestX - sprite->sTransl_InitX;
+ s32 y = sprite->sTransl_DestY - sprite->sTransl_InitY;
bool8 movingLeft = x < 0;
bool8 movingUp = y < 0;
u16 xDelta = abs(x) << 8;
u16 yDelta = abs(y) << 8;
- xDelta = xDelta / sprite->data[0];
- yDelta = yDelta / sprite->data[0];
+ xDelta = xDelta / sprite->sTransl_Speed;
+ yDelta = yDelta / sprite->sTransl_Speed;
if (movingLeft)
xDelta |= 1;
@@ -947,17 +947,17 @@ void InitAnimLinearTranslation(struct Sprite *sprite)
void StartAnimLinearTranslation(struct Sprite *sprite)
{
- sprite->data[1] = sprite->pos1.x;
- sprite->data[3] = sprite->pos1.y;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
- sprite->callback = sub_807563C;
+ sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
sprite->callback(sprite);
}
void sub_80755B8(struct Sprite *sprite)
{
- sprite->data[1] = sprite->pos1.x;
- sprite->data[3] = sprite->pos1.y;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_InitY = sprite->pos1.y;
InitAnimLinearTranslation(sprite);
sprite->callback = sub_8075658;
sprite->callback(sprite);
@@ -990,7 +990,7 @@ bool8 AnimTranslateLinear(struct Sprite *sprite)
return FALSE;
}
-void sub_807563C(struct Sprite *sprite)
+void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite)
{
if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite);
@@ -998,39 +998,39 @@ void sub_807563C(struct Sprite *sprite)
static void sub_8075658(struct Sprite *sprite)
{
- sub_801236C(sprite);
+ UpdatePlayerPosInThrowAnim(sprite);
if (AnimTranslateLinear(sprite))
SetCallbackToStoredInData6(sprite);
}
void sub_8075678(struct Sprite *sprite)
{
- s32 v1 = abs(sprite->data[2] - sprite->data[1]) << 8;
+ s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8;
- sprite->data[0] = v1 / sprite->data[0];
+ sprite->sTransl_Speed = v1 / sprite->sTransl_Duration;
InitAnimLinearTranslation(sprite);
}
void sub_80756A4(struct Sprite *sprite)
{
- sprite->data[1] = sprite->pos1.x;
- sprite->data[3] = sprite->pos1.y;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_InitY = sprite->pos1.y;
sub_8075678(sprite);
- sprite->callback = sub_807563C;
+ sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
sprite->callback(sprite);
}
static void InitAnimFastLinearTranslation(struct Sprite *sprite)
{
- s32 xDiff = sprite->data[2] - sprite->data[1];
- s32 yDiff = sprite->data[4] - sprite->data[3];
+ s32 xDiff = sprite->sTransl_DestX - sprite->sTransl_InitX;
+ s32 yDiff = sprite->sTransl_DestY - sprite->sTransl_InitY;
bool8 xSign = xDiff < 0;
bool8 ySign = yDiff < 0;
u16 x2 = abs(xDiff) << 4;
u16 y2 = abs(yDiff) << 4;
- x2 /= sprite->data[0];
- y2 /= sprite->data[0];
+ x2 /= sprite->sTransl_Duration;
+ y2 /= sprite->sTransl_Duration;
if (xSign)
x2 |= 1;
else
@@ -1047,8 +1047,8 @@ static void InitAnimFastLinearTranslation(struct Sprite *sprite)
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite)
{
- sprite->data[1] = sprite->pos1.x;
- sprite->data[3] = sprite->pos1.y;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_InitY = sprite->pos1.y;
InitAnimFastLinearTranslation(sprite);
sprite->callback = sub_80757E8;
sprite->callback(sprite);
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index a919b0371..82d85034e 100644
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -15,7 +15,6 @@
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/songs.h"
-#include "constants/pokemon.h"
// Defines
#define TAG_PARTICLES_POKEBALL 55020
@@ -31,58 +30,61 @@
#define TAG_PARTICLES_LUXURYBALL 55030
#define TAG_PARTICLES_PREMIERBALL 55031
+#define TAG_HEALTHBOX_PALS_1 55049
+#define TAG_HEALTHBOX_PALS_2 55050
+
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
#define LOHALF(n) ((n) & 0xFFFF)
// RAM
-int sUnknown_3005424;
-u16 sUnknown_3005428;
-u16 sUnknown_300542C;
+UNUSED u32 gMonShrinkDuration;
+UNUSED u16 gMonShrinkDelta;
+UNUSED u16 gMonShrinkDistance;
// Function Declarations
-static void sub_80EEDF4(u8);
-static void sub_80EF1CC(u8);
-static void sub_80EF698(u8);
-static void sub_80EF8C0(struct Sprite *);
-static void sub_80EF7EC(u8);
-static void sub_80EF864(u8);
-static void sub_80EF8F0(struct Sprite *);
-static void sub_80F0478(struct Sprite *);
-static void sub_80EF9B4(struct Sprite *);
-static void sub_80EFA0C(struct Sprite *);
-static void sub_80EFB58(struct Sprite *);
-static void sub_80EFB9C(struct Sprite *);
-static void sub_80EFF80(struct Sprite *);
-static void sub_80EFCA0(struct Sprite *);
-static void sub_80EFCEC(struct Sprite *);
-static void sub_80EFFA4(struct Sprite *);
-static void sub_80F02B0(struct Sprite *);
-static void sub_80EFFC4(struct Sprite *);
-static void sub_80F01B8(struct Sprite *);
-static void sub_80F00A4(struct Sprite *);
-static void sub_80F018C(struct Sprite *);
-static void sub_80F05B4(u8);
-static void sub_80F0278(struct Sprite *);
-static void sub_80F0378(struct Sprite *);
-static void sub_80F04B4(struct Sprite *);
+static void AnimTask_UnusedLevelUpHealthBox_Step(u8);
+static void AnimTask_FlashHealthboxOnLevelUp_Step(u8);
+static void AnimTask_ThrowBall_WaitAnimObjComplete(u8);
+static void SpriteCB_ThrowBall_Init(struct Sprite *);
+static void AnimTask_ThrowBallSpecial_PlaySfx(u8);
+static void AnimTask_ThrowBallSpecial_ResetPlayerSprite(u8);
+static void SpriteCB_ThrowBall_ArcFlight(struct Sprite *);
+static void TrainerBallBlock(struct Sprite *);
+static void SpriteCB_ThrowBall_TenFrameDelay(struct Sprite *);
+static void SpriteCB_ThrowBall_ShrinkMon(struct Sprite *);
+static void SpriteCB_ThrowBall_InitialFall(struct Sprite *);
+static void SpriteCB_ThrowBall_Bounce(struct Sprite *);
+static void SpriteCB_ThrowBall_DelayThenBreakOut(struct Sprite *);
+static void SpriteCB_ThrowBall_InitShake(struct Sprite *);
+static void SpriteCB_ThrowBall_DoShake(struct Sprite *);
+static void SpriteCB_ThrowBall_InitClick(struct Sprite *);
+static void SpriteCB_ThrowBall_BeginBreakOut(struct Sprite *);
+static void SpriteCB_ThrowBall_DoClick(struct Sprite *);
+static void CreateStarsWhenBallClicks(struct Sprite *);
+static void SpriteCB_ThrowBall_FinishClick(struct Sprite *);
+static void BattleAnimObj_SignalEnd(struct Sprite *);
+static void LoadBallParticleGfx(u8);
+static void SpriteCB_BallCaptureSuccessStar(struct Sprite *);
+static void SpriteCB_ThrowBall_RunBreakOut(struct Sprite *);
+static void TrainerBallBlock2(struct Sprite *);
static void GhostBallDodge(struct Sprite *sprite);
-static void sub_80F0574(struct Sprite *sprite);
+static void GhostBallDodge2(struct Sprite *sprite);
static void PokeBallOpenParticleAnimation_Step1(struct Sprite *);
static void PokeBallOpenParticleAnimation_Step2(struct Sprite *);
static void DestroyBallOpenAnimationParticle(struct Sprite *);
static void FanOutBallOpenParticles_Step1(struct Sprite *);
static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *);
static void PremierBallOpenParticleAnimation_Step1(struct Sprite *);
-static void sub_80F12E0(u8);
-static void sub_80F1370(u8);
-static void sub_80F13C0(u8);
-static void sub_80F181C(u8);
-static void sub_80F1A2C(struct Sprite *);
-static void sub_80F1A80(struct Sprite *);
-static void sub_80F19E0(u8);
-static void sub_80F1BCC(struct Sprite *);
-static void sub_80F1C04(struct Sprite *);
-static void sub_80F1C30(struct Sprite *);
+static void Task_FadeMon_ToBallColor(u8);
+static void Task_FadeMon_ToNormal(u8);
+static void Task_FadeMon_ToNormal_Step(u8);
+static void AnimTask_ShinySparkles(u8);
+static void SpriteCB_ShinySparkles_1(struct Sprite *);
+static void SpriteCB_ShinySparkles_2(struct Sprite *);
+static void AnimTask_ShinySparkles_WaitSparkles(u8);
+static void SpriteCB_SafariBaitOrRock_WaitPlayerThrow(struct Sprite *);
+static void SpriteCB_SafariBaitOrRock_ArcFlight(struct Sprite *);
+static void SpriteCB_SafariBaitOrRock_Finish(struct Sprite *);
static void PokeBallOpenParticleAnimation(u8);
static void GreatBallOpenParticleAnimation(u8);
static void SafariBallOpenParticleAnimation(u8);
@@ -92,65 +94,65 @@ static void DiveBallOpenParticleAnimation(u8);
static void RepeatBallOpenParticleAnimation(u8);
static void TimerBallOpenParticleAnimation(u8);
static void PremierBallOpenParticleAnimation(u8);
-static void sub_80F1B3C(struct Sprite *);
+static void SpriteCB_SafariBaitOrRock_Init(struct Sprite *);
// Data
-struct BallCaptureSuccessStarData
+struct CaptureStar
{
s8 xOffset;
s8 yOffset;
- s8 unk2;
+ s8 amplitude;
};
-static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] =
+static const struct CaptureStar sCaptureStar[] =
{
{
.xOffset = 10,
.yOffset = 2,
- .unk2 = -3,
+ .amplitude = -3,
},
{
.xOffset = 15,
.yOffset = 0,
- .unk2 = -4,
+ .amplitude = -4,
},
{
.xOffset = -10,
.yOffset = 2,
- .unk2 = -4,
+ .amplitude = -4,
},
};
const struct CompressedSpriteSheet gBallParticleSpritesheets[] =
{
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_MASTERBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL},
- {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL},
+ [BALL_POKE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL},
+ [BALL_GREAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL},
+ [BALL_SAFARI] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL},
+ [BALL_ULTRA] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL},
+ [BALL_MASTER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_MASTERBALL},
+ [BALL_NET] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL},
+ [BALL_DIVE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL},
+ [BALL_NEST] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL},
+ [BALL_REPEAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL},
+ [BALL_TIMER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL},
+ [BALL_LUXURY] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL},
+ [BALL_PREMIER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL},
};
const struct CompressedSpritePalette gBallParticlePalettes[] =
{
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_MASTERBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL},
- {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL},
+ [BALL_POKE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL},
+ [BALL_GREAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL},
+ [BALL_SAFARI] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL},
+ [BALL_ULTRA] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL},
+ [BALL_MASTER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_MASTERBALL},
+ [BALL_NET] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL},
+ [BALL_DIVE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL},
+ [BALL_NEST] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL},
+ [BALL_REPEAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL},
+ [BALL_TIMER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL},
+ [BALL_LUXURY] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL},
+ [BALL_PREMIER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL},
};
static const union AnimCmd sAnim_RegularBall[] =
@@ -207,39 +209,39 @@ static const union AnimCmd *const sAnims_BallParticles[] =
static const u8 sBallParticleAnimNums[] =
{
- [BALL_POKE] = 0,
- [BALL_GREAT] = 0,
- [BALL_SAFARI] = 0,
- [BALL_ULTRA] = 5,
- [BALL_MASTER] = 1,
- [BALL_NET] = 2,
- [BALL_DIVE] = 2,
- [BALL_NEST] = 3,
- [BALL_REPEAT] = 5,
- [BALL_TIMER] = 5,
- [BALL_LUXURY] = 4,
+ [BALL_POKE] = 0,
+ [BALL_GREAT] = 0,
+ [BALL_SAFARI] = 0,
+ [BALL_ULTRA] = 5,
+ [BALL_MASTER] = 1,
+ [BALL_NET] = 2,
+ [BALL_DIVE] = 2,
+ [BALL_NEST] = 3,
+ [BALL_REPEAT] = 5,
+ [BALL_TIMER] = 5,
+ [BALL_LUXURY] = 4,
[BALL_PREMIER] = 4,
};
static const TaskFunc sBallParticleAnimationFuncs[] =
{
- PokeBallOpenParticleAnimation,
- GreatBallOpenParticleAnimation,
- SafariBallOpenParticleAnimation,
- UltraBallOpenParticleAnimation,
- MasterBallOpenParticleAnimation,
- SafariBallOpenParticleAnimation,
- DiveBallOpenParticleAnimation,
- UltraBallOpenParticleAnimation,
- RepeatBallOpenParticleAnimation,
- TimerBallOpenParticleAnimation,
- GreatBallOpenParticleAnimation,
- PremierBallOpenParticleAnimation,
+ [BALL_POKE] = PokeBallOpenParticleAnimation,
+ [BALL_GREAT] = GreatBallOpenParticleAnimation,
+ [BALL_SAFARI] = SafariBallOpenParticleAnimation,
+ [BALL_ULTRA] = UltraBallOpenParticleAnimation,
+ [BALL_MASTER] = MasterBallOpenParticleAnimation,
+ [BALL_NET] = SafariBallOpenParticleAnimation,
+ [BALL_DIVE] = DiveBallOpenParticleAnimation,
+ [BALL_NEST] = UltraBallOpenParticleAnimation,
+ [BALL_REPEAT] = RepeatBallOpenParticleAnimation,
+ [BALL_TIMER] = TimerBallOpenParticleAnimation,
+ [BALL_LUXURY] = GreatBallOpenParticleAnimation,
+ [BALL_PREMIER] = PremierBallOpenParticleAnimation,
};
static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
{
- {
+ [BALL_POKE] = {
.tileTag = TAG_PARTICLES_POKEBALL,
.paletteTag = TAG_PARTICLES_POKEBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -248,7 +250,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_GREAT] = {
.tileTag = TAG_PARTICLES_GREATBALL,
.paletteTag = TAG_PARTICLES_GREATBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -257,7 +259,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_SAFARI] = {
.tileTag = TAG_PARTICLES_SAFARIBALL,
.paletteTag = TAG_PARTICLES_SAFARIBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -266,7 +268,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_ULTRA] = {
.tileTag = TAG_PARTICLES_ULTRABALL,
.paletteTag = TAG_PARTICLES_ULTRABALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -275,7 +277,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_MASTER] = {
.tileTag = TAG_PARTICLES_MASTERBALL,
.paletteTag = TAG_PARTICLES_MASTERBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -284,7 +286,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_NET] = {
.tileTag = TAG_PARTICLES_NETBALL,
.paletteTag = TAG_PARTICLES_NETBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -293,7 +295,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_DIVE] = {
.tileTag = TAG_PARTICLES_DIVEBALL,
.paletteTag = TAG_PARTICLES_DIVEBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -302,7 +304,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_NEST] = {
.tileTag = TAG_PARTICLES_NESTBALL,
.paletteTag = TAG_PARTICLES_NESTBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -311,7 +313,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_REPEAT] = {
.tileTag = TAG_PARTICLES_REPEATBALL,
.paletteTag = TAG_PARTICLES_REPEATBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -320,7 +322,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_TIMER] = {
.tileTag = TAG_PARTICLES_TIMERBALL,
.paletteTag = TAG_PARTICLES_TIMERBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -329,7 +331,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_LUXURY] = {
.tileTag = TAG_PARTICLES_LUXURYBALL,
.paletteTag = TAG_PARTICLES_LUXURYBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -338,7 +340,7 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
- {
+ [BALL_PREMIER] = {
.tileTag = TAG_PARTICLES_PREMIERBALL,
.paletteTag = TAG_PARTICLES_PREMIERBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@@ -351,17 +353,17 @@ static const struct SpriteTemplate sBallParticlesSpriteTemplates[] =
static const u16 sBallOpenFadeColors[] =
{
- [BALL_POKE] = RGB(31, 22, 30),
- [BALL_GREAT] = RGB(16, 23, 30),
- [BALL_SAFARI] = RGB(23, 30, 20),
- [BALL_ULTRA] = RGB(31, 31, 15),
- [BALL_MASTER] = RGB(23, 20, 28),
- [BALL_NET] = RGB(21, 31, 25),
- [BALL_DIVE] = RGB(12, 25, 30),
- [BALL_NEST] = RGB(30, 27, 10),
- [BALL_REPEAT] = RGB(31, 24, 16),
- [BALL_TIMER] = RGB(29, 30, 30),
- [BALL_LUXURY] = RGB(31, 17, 10),
+ [BALL_POKE] = RGB(31, 22, 30),
+ [BALL_GREAT] = RGB(16, 23, 30),
+ [BALL_SAFARI] = RGB(23, 30, 20),
+ [BALL_ULTRA] = RGB(31, 31, 15),
+ [BALL_MASTER] = RGB(23, 20, 28),
+ [BALL_NET] = RGB(21, 31, 25),
+ [BALL_DIVE] = RGB(12, 25, 30),
+ [BALL_NEST] = RGB(30, 27, 10),
+ [BALL_REPEAT] = RGB(31, 24, 16),
+ [BALL_TIMER] = RGB(29, 30, 30),
+ [BALL_LUXURY] = RGB(31, 17, 10),
[BALL_PREMIER] = RGB(31, 9, 10),
// Unused
@@ -375,7 +377,7 @@ static const u16 sBallOpenFadeColors[] =
RGB(4, 0, 0),
};
-const struct SpriteTemplate gSafariBaitSpriteTemplate =
+USED const struct SpriteTemplate gSafariBaitSpriteTemplate =
{
.tileTag = ANIM_TAG_SAFARI_BAIT,
.paletteTag = ANIM_TAG_SAFARI_BAIT,
@@ -383,35 +385,35 @@ const struct SpriteTemplate gSafariBaitSpriteTemplate =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80F1B3C,
+ .callback = SpriteCB_SafariBaitOrRock_Init,
};
-static const union AnimCmd sUnknown_840C204[] =
+static const union AnimCmd sSpriteAnim_SafariRock_0[] =
{
ANIMCMD_FRAME(64, 1),
ANIMCMD_END,
};
-static const union AnimCmd *const sSpriteAnimTable_840C20C[] =
+static const union AnimCmd *const sSpriteAnimTable_SafariRock[] =
{
- sUnknown_840C204,
+ sSpriteAnim_SafariRock_0,
};
-const struct SpriteTemplate gSafariRockTemplate =
+USED const struct SpriteTemplate gSafariRockTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
- .anims = sSpriteAnimTable_840C20C,
+ .anims = sSpriteAnimTable_SafariRock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_80F1B3C,
+ .callback = SpriteCB_SafariBaitOrRock_Init,
};
// Functions
-void sub_80EEC0C(u8 taskId)
+UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId)
{
- struct BattleAnimBgData unknownStruct;
+ struct BattleAnimBgData animBgData;
u8 healthBoxSpriteId;
u8 battler;
u8 spriteId1, spriteId2, spriteId3, spriteId4;
@@ -442,19 +444,19 @@ void sub_80EEC0C(u8 taskId)
gSprites[spriteId4].oam.objMode = ST_OAM_OBJ_WINDOW;
gSprites[spriteId3].callback = SpriteCallbackDummy;
gSprites[spriteId4].callback = SpriteCallbackDummy;
- sub_80752A0(&unknownStruct);
- AnimLoadCompressedBgTilemap(unknownStruct.bgId, gUnknown_D2EC24_Tilemap);
- AnimLoadCompressedBgGfx(unknownStruct.bgId, gUnknown_D2EC24_Gfx, unknownStruct.tilesOffset);
- LoadCompressedPalette(gCureBubblesPal, unknownStruct.paletteId << 4, 32);
+ GetBattleAnimBg1Data(&animBgData);
+ AnimLoadCompressedBgTilemap(animBgData.bgId, gUnknown_D2EC24_Tilemap);
+ AnimLoadCompressedBgGfx(animBgData.bgId, gUnknown_D2EC24_Gfx, animBgData.tilesOffset);
+ LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32);
gBattle_BG1_X = -gSprites[spriteId3].pos1.x + 32;
gBattle_BG1_Y = -gSprites[spriteId3].pos1.y - 32;
gTasks[taskId].data[1] = 640;
gTasks[taskId].data[0] = spriteId3;
gTasks[taskId].data[2] = spriteId4;
- gTasks[taskId].func = sub_80EEDF4;
+ gTasks[taskId].func = AnimTask_UnusedLevelUpHealthBox_Step;
}
-static void sub_80EEDF4(u8 taskId)
+static void AnimTask_UnusedLevelUpHealthBox_Step(u8 taskId)
{
u8 spriteId1, spriteId2;
u8 battler;
@@ -488,7 +490,7 @@ static void sub_80EEDF4(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_8073128(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR);
@@ -514,7 +516,7 @@ static void sub_80EEDF4(u8 taskId)
}
}
-void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
+void DoLoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battler)
{
u8 healthBoxSpriteId;
u8 spriteId1, spriteId2;
@@ -523,8 +525,8 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
healthBoxSpriteId = gHealthboxSpriteIds[battler];
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5];
- *paletteId1 = AllocSpritePalette(0xD709);
- *paletteId2 = AllocSpritePalette(0xD70A);
+ *paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1);
+ *paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2);
offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100;
offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100;
LoadPalette(&gPlttBufferUnfaded[offset1], *paletteId1 * 16 + 0x100, 0x20);
@@ -534,15 +536,15 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
gSprites[spriteId2].oam.paletteNum = *paletteId2;
}
-void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId)
+USED void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId)
{
u8 paletteId1, paletteId2;
- sub_80EEFC8(&paletteId1, &paletteId2, gBattleAnimAttacker);
+ DoLoadHealthboxPalsForLevelUp(&paletteId1, &paletteId2, gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
}
-void sub_80EF0E0(u8 battler)
+void DoFreeHealthboxPalsForLevelUp(u8 battler)
{
u8 healthBoxSpriteId;
u8 spriteId1, spriteId2;
@@ -551,29 +553,29 @@ void sub_80EF0E0(u8 battler)
healthBoxSpriteId = gHealthboxSpriteIds[battler];
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5];
- FreeSpritePaletteByTag(0xD709);
- FreeSpritePaletteByTag(0xD70A);
- paletteId1 = IndexOfSpritePaletteTag(0xD6FF);
- paletteId2 = IndexOfSpritePaletteTag(0xD704);
+ FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_1);
+ FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_2);
+ paletteId1 = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PAL);
+ paletteId2 = IndexOfSpritePaletteTag(TAG_HEALTHBAR_PAL);
gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1;
gSprites[spriteId1].oam.paletteNum = paletteId1;
gSprites[spriteId2].oam.paletteNum = paletteId2;
}
-void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId)
+USED void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId)
{
- sub_80EF0E0(gBattleAnimAttacker);
+ DoFreeHealthboxPalsForLevelUp(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
}
-void AnimTask_FlashHealthboxOnLevelUp(u8 taskId)
+USED void AnimTask_FlashHealthboxOnLevelUp(u8 taskId)
{
gTasks[taskId].data[10] = gBattleAnimArgs[0];
gTasks[taskId].data[11] = gBattleAnimArgs[1];
- gTasks[taskId].func = sub_80EF1CC;
+ gTasks[taskId].func = AnimTask_FlashHealthboxOnLevelUp_Step;
}
-static void sub_80EF1CC(u8 taskId)
+static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
{
u8 paletteNum;
int paletteOffset, colorOffset;
@@ -582,7 +584,7 @@ static void sub_80EF1CC(u8 taskId)
if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11])
{
gTasks[taskId].data[0] = 0;
- paletteNum = IndexOfSpritePaletteTag(0xD709);
+ paletteNum = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PALS_1);
colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2;
switch (gTasks[taskId].data[1])
{
@@ -610,7 +612,7 @@ static void sub_80EF1CC(u8 taskId)
}
}
-void AnimTask_SwitchOutShrinkMon(u8 taskId)
+USED void AnimTask_SwitchOutShrinkMon(u8 taskId)
{
u8 spriteId;
@@ -637,7 +639,7 @@ void AnimTask_SwitchOutShrinkMon(u8 taskId)
}
}
-void AnimTask_SwitchOutBallEffect(u8 taskId)
+USED void AnimTask_SwitchOutBallEffect(u8 taskId)
{
u8 spriteId;
u16 ball;
@@ -672,7 +674,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId)
}
}
-void AnimTask_LoadBallGfx(u8 taskId)
+USED void AnimTask_LoadBallGfx(u8 taskId)
{
u8 ballId = ItemIdToBallId(gLastUsedItem);
@@ -680,7 +682,7 @@ void AnimTask_LoadBallGfx(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_FreeBallGfx(u8 taskId)
+USED void AnimTask_FreeBallGfx(u8 taskId)
{
u8 ballId = ItemIdToBallId(gLastUsedItem);
@@ -688,7 +690,7 @@ void AnimTask_FreeBallGfx(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_IsBallBlockedByTrainerOrDodged(u8 taskId)
+USED void AnimTask_IsBallBlockedByTrainerOrDodged(u8 taskId)
{
switch (gBattleSpritesDataPtr->animationData->ballThrowCaseId)
{
@@ -738,7 +740,7 @@ u8 ItemIdToBallId(u16 ballItem)
}
}
-void AnimTask_ThrowBall(u8 taskId)
+USED void AnimTask_ThrowBall(u8 taskId)
{
u8 ballId;
u8 spriteId;
@@ -748,13 +750,13 @@ void AnimTask_ThrowBall(u8 taskId)
gSprites[spriteId].data[0] = 34;
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
- gSprites[spriteId].callback = sub_80EF8C0;
+ gSprites[spriteId].callback = SpriteCB_ThrowBall_Init;
gBattleSpritesDataPtr->animationData->field_9_x2 = gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible;
gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].func = sub_80EF698;
+ gTasks[taskId].func = AnimTask_ThrowBall_WaitAnimObjComplete;
}
-static void sub_80EF698(u8 taskId)
+static void AnimTask_ThrowBall_WaitAnimObjComplete(u8 taskId)
{
u8 spriteId = gTasks[taskId].data[0];
@@ -762,7 +764,7 @@ static void sub_80EF698(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_ThrowBallSpecial(u8 taskId)
+USED void AnimTask_ThrowBallSpecial(u8 taskId)
{
int x, y;
u8 ballId;
@@ -789,23 +791,23 @@ void AnimTask_ThrowBallSpecial(u8 taskId)
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) - 16;
gSprites[spriteId].callback = SpriteCallbackDummy;
- gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = sub_8012354;
+ gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].callback = SpriteCB_PlayerThrowInit;
gTasks[taskId].data[0] = spriteId;
- gTasks[taskId].func = sub_80EF7EC;
+ gTasks[taskId].func = AnimTask_ThrowBallSpecial_PlaySfx;
}
-static void sub_80EF7EC(u8 taskId)
+static void AnimTask_ThrowBallSpecial_PlaySfx(u8 taskId)
{
if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animCmdIndex == 1)
{
PlaySE12WithPanning(SE_BALL_THROW, 0);
- gSprites[gTasks[taskId].data[0]].callback = sub_80EF8C0;
- CreateTask(sub_80EF864, 10);
- gTasks[taskId].func = sub_80EF698;
+ gSprites[gTasks[taskId].data[0]].callback = SpriteCB_ThrowBall_Init;
+ CreateTask(AnimTask_ThrowBallSpecial_ResetPlayerSprite, 10);
+ gTasks[taskId].func = AnimTask_ThrowBall_WaitAnimObjComplete;
}
}
-static void sub_80EF864(u8 taskId)
+static void AnimTask_ThrowBallSpecial_ResetPlayerSprite(u8 taskId)
{
if (gSprites[gBattlerSpriteIds[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]].animEnded)
{
@@ -814,21 +816,21 @@ static void sub_80EF864(u8 taskId)
}
}
-static void sub_80EF8C0(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_Init(struct Sprite *sprite)
{
- u16 temp = sprite->data[1];
- u16 temp2 = sprite->data[2];
+ u16 destX = sprite->data[1];
+ u16 destY = sprite->data[2];
- sprite->data[1] = sprite->pos1.x;
- sprite->data[2] = temp;
- sprite->data[3] = sprite->pos1.y;
- sprite->data[4] = temp2;
- sprite->data[5] = -40;
+ sprite->sTransl_InitX = sprite->pos1.x;
+ sprite->sTransl_DestX = destX;
+ sprite->sTransl_InitY = sprite->pos1.y;
+ sprite->sTransl_DestY = destY;
+ sprite->sTransl_ArcAmpl = -40;
InitAnimArcTranslation(sprite);
- sprite->callback = sub_80EF8F0;
+ sprite->callback = SpriteCB_ThrowBall_ArcFlight;
}
-static void sub_80EF8F0(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_ArcFlight(struct Sprite *sprite)
{
int i;
u8 ballId;
@@ -837,7 +839,7 @@ static void sub_80EF8F0(struct Sprite *sprite)
{
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK)
{
- sprite->callback = sub_80F0478;
+ sprite->callback = TrainerBallBlock;
}
else if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_GHOST_DODGE)
{
@@ -855,7 +857,7 @@ static void sub_80EF8F0(struct Sprite *sprite)
sprite->data[i] = 0;
sprite->data[5] = 0;
- sprite->callback = sub_80EF9B4;
+ sprite->callback = SpriteCB_ThrowBall_TenFrameDelay;
ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId)
@@ -869,17 +871,17 @@ static void sub_80EF8F0(struct Sprite *sprite)
}
}
-static void sub_80EF9B4(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_TenFrameDelay(struct Sprite *sprite)
{
if (++sprite->data[5] == 10)
{
sprite->data[5] = CreateTask(TaskDummy, 50);
- sprite->callback = sub_80EFA0C;
+ sprite->callback = SpriteCB_ThrowBall_ShrinkMon;
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0;
}
}
-static void sub_80EFA0C(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_ShrinkMon(struct Sprite *sprite)
{
u8 spriteId;
u8 taskId;
@@ -894,10 +896,10 @@ static void sub_80EFA0C(struct Sprite *sprite)
case 0:
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[10] = 256;
- sUnknown_3005424 = 28;
- sUnknown_300542C = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
- sUnknown_3005428 = (u32)(sUnknown_300542C * 256) / 28;
- gTasks[taskId].data[2] = sUnknown_3005428;
+ gMonShrinkDuration = 28;
+ gMonShrinkDistance = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
+ gMonShrinkDelta = (gMonShrinkDistance * 256) / gMonShrinkDuration;
+ gTasks[taskId].data[2] = gMonShrinkDelta;
gTasks[taskId].data[0]++;
break;
case 1:
@@ -919,13 +921,13 @@ static void sub_80EFA0C(struct Sprite *sprite)
DestroyTask(taskId);
StartSpriteAnim(sprite, 2);
sprite->data[5] = 0;
- sprite->callback = sub_80EFB58;
+ sprite->callback = SpriteCB_ThrowBall_InitialFall;
}
break;
}
}
-static void sub_80EFB58(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_InitialFall(struct Sprite *sprite)
{
int angle;
@@ -937,11 +939,11 @@ static void sub_80EFB58(struct Sprite *sprite)
angle = 0;
sprite->pos1.y += Cos(angle, 40);
sprite->pos2.y = -Cos(angle, sprite->data[4]);
- sprite->callback = sub_80EFB9C;
+ sprite->callback = SpriteCB_ThrowBall_Bounce;
}
}
-static void sub_80EFB9C(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_Bounce(struct Sprite *sprite)
{
bool8 lastBounce;
int bounceCount;
@@ -998,18 +1000,18 @@ static void sub_80EFB9C(struct Sprite *sprite)
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_NO_SHAKES)
{
sprite->data[5] = 0;
- sprite->callback = sub_80EFF80;
+ sprite->callback = SpriteCB_ThrowBall_DelayThenBreakOut;
}
else
{
- sprite->callback = sub_80EFCA0;
+ sprite->callback = SpriteCB_ThrowBall_InitShake;
sprite->data[4] = 1;
sprite->data[5] = 0;
}
}
}
-static void sub_80EFCA0(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_InitShake(struct Sprite *sprite)
{
if (++sprite->data[3] == 31)
{
@@ -1017,12 +1019,12 @@ static void sub_80EFCA0(struct Sprite *sprite)
sprite->affineAnimPaused = TRUE;
StartSpriteAffineAnim(sprite, 1);
gBattleSpritesDataPtr->animationData->field_C = 0;
- sprite->callback = sub_80EFCEC;
+ sprite->callback = SpriteCB_ThrowBall_DoShake;
PlaySE(SE_BALL);
}
}
-static void sub_80EFCEC(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_DoShake(struct Sprite *sprite)
{
s8 state;
u16 var0;
@@ -1132,13 +1134,13 @@ static void sub_80EFCEC(struct Sprite *sprite)
if (state == gBattleSpritesDataPtr->animationData->ballThrowCaseId)
{
sprite->affineAnimPaused = TRUE;
- sprite->callback = sub_80EFF80;
+ sprite->callback = SpriteCB_ThrowBall_DelayThenBreakOut;
}
else
{
if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_3_SHAKES_SUCCESS && state == 3)
{
- sprite->callback = sub_80EFFA4;
+ sprite->callback = SpriteCB_ThrowBall_InitClick;
sprite->affineAnimPaused = TRUE;
}
else
@@ -1166,25 +1168,25 @@ static void sub_80EFCEC(struct Sprite *sprite)
}
}
-static void sub_80EFF80(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_DelayThenBreakOut(struct Sprite *sprite)
{
if (++sprite->data[5] == 31)
{
sprite->data[5] = 0;
- sprite->callback = sub_80F02B0;
+ sprite->callback = SpriteCB_ThrowBall_BeginBreakOut;
}
}
-static void sub_80EFFA4(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_InitClick(struct Sprite *sprite)
{
sprite->animPaused = TRUE;
- sprite->callback = sub_80EFFC4;
+ sprite->callback = SpriteCB_ThrowBall_DoClick;
sprite->data[3] = 0;
sprite->data[4] = 0;
sprite->data[5] = 0;
}
-static void sub_80EFFC4(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_DoClick(struct Sprite *sprite)
{
u8 *battler = &gBattleAnimTarget;
@@ -1193,7 +1195,7 @@ static void sub_80EFFC4(struct Sprite *sprite)
{
PlaySE(SE_BALL_CLICK);
BlendPalettes(0x10000 << sprite->oam.paletteNum, 6, RGB_BLACK);
- sub_80F01B8(sprite);
+ CreateStarsWhenBallClicks(sprite);
}
else if (sprite->data[4] == 60)
{
@@ -1211,11 +1213,11 @@ static void sub_80EFFC4(struct Sprite *sprite)
FreeOamMatrix(gSprites[gBattlerSpriteIds[*battler]].oam.matrixNum);
DestroySprite(&gSprites[gBattlerSpriteIds[*battler]]);
sprite->data[0] = 0;
- sprite->callback = sub_80F00A4;
+ sprite->callback = SpriteCB_ThrowBall_FinishClick;
}
}
-static void sub_80F00A4(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_FinishClick(struct Sprite *sprite)
{
u8 paletteIndex;
@@ -1251,13 +1253,13 @@ static void sub_80F00A4(struct Sprite *sprite)
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
sprite->data[0] = 0;
- sprite->callback = sub_80F018C;
+ sprite->callback = BattleAnimObj_SignalEnd;
}
break;
}
}
-static void sub_80F018C(struct Sprite *sprite)
+static void BattleAnimObj_SignalEnd(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
@@ -1270,7 +1272,7 @@ static void sub_80F018C(struct Sprite *sprite)
}
}
-static void sub_80F01B8(struct Sprite *sprite)
+static void CreateStarsWhenBallClicks(struct Sprite *sprite)
{
u32 i;
u8 subpriority;
@@ -1285,37 +1287,37 @@ static void sub_80F01B8(struct Sprite *sprite)
sprite->subpriority = 1;
}
- sub_80F05B4(4);
+ LoadBallParticleGfx(BALL_MASTER);
for (i = 0; i < 3; i++)
{
- u8 spriteId = CreateSprite(&sBallParticlesSpriteTemplates[4], sprite->pos1.x, sprite->pos1.y, subpriority);
+ u8 spriteId = CreateSprite(&sBallParticlesSpriteTemplates[BALL_MASTER], sprite->pos1.x, sprite->pos1.y, subpriority);
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].data[0] = 24;
- gSprites[spriteId].data[2] = sprite->pos1.x + sBallCaptureSuccessStarData[i].xOffset;
- gSprites[spriteId].data[4] = sprite->pos1.y + sBallCaptureSuccessStarData[i].yOffset;
- gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2;
+ gSprites[spriteId].sTransl_Speed = 24;
+ gSprites[spriteId].sTransl_DestX = sprite->pos1.x + sCaptureStar[i].xOffset;
+ gSprites[spriteId].sTransl_DestY = sprite->pos1.y + sCaptureStar[i].yOffset;
+ gSprites[spriteId].sTransl_ArcAmpl = sCaptureStar[i].amplitude;
InitAnimArcTranslation(&gSprites[spriteId]);
- gSprites[spriteId].callback = sub_80F0278;
- StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[4]);
+ gSprites[spriteId].callback = SpriteCB_BallCaptureSuccessStar;
+ StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[BALL_MASTER]);
}
}
}
-static void sub_80F0278(struct Sprite *sprite)
+static void SpriteCB_BallCaptureSuccessStar(struct Sprite *sprite)
{
sprite->invisible = !sprite->invisible;
if (TranslateAnimHorizontalArc(sprite))
DestroySprite(sprite);
}
-static void sub_80F02B0(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_BeginBreakOut(struct Sprite *sprite)
{
u8 ballId;
StartSpriteAnim(sprite, 1);
StartSpriteAffineAnim(sprite, 0);
- sprite->callback = sub_80F0378;
+ sprite->callback = SpriteCB_ThrowBall_RunBreakOut;
ballId = ItemIdToBallId(gLastUsedItem);
switch (ballId)
{
@@ -1331,7 +1333,7 @@ static void sub_80F02B0(struct Sprite *sprite)
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].data[1] = 0x1000;
}
-static void sub_80F0378(struct Sprite *sprite)
+static void SpriteCB_ThrowBall_RunBreakOut(struct Sprite *sprite)
{
bool32 next = FALSE;
@@ -1354,13 +1356,13 @@ static void sub_80F0378(struct Sprite *sprite)
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].pos2.y = 0;
gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = gBattleSpritesDataPtr->animationData->field_9_x2;
sprite->data[0] = 0;
- sprite->callback = sub_80F018C;
+ sprite->callback = BattleAnimObj_SignalEnd;
gDoingBattleAnim = FALSE;
UpdateOamPriorityInAllHealthboxes(1);
}
}
-static void sub_80F0478(struct Sprite *sprite)
+static void TrainerBallBlock(struct Sprite *sprite)
{
int i;
@@ -1370,10 +1372,10 @@ static void sub_80F0478(struct Sprite *sprite)
for (i = 0; i < 6; i++)
sprite->data[i] = 0;
- sprite->callback = sub_80F04B4;
+ sprite->callback = TrainerBallBlock2;
}
-static void sub_80F04B4(struct Sprite *sprite)
+static void TrainerBallBlock2(struct Sprite *sprite)
{
s16 var0 = sprite->data[0] + 0x800;
s16 var1 = sprite->data[1] + 0x680;
@@ -1386,7 +1388,7 @@ static void sub_80F04B4(struct Sprite *sprite)
|| sprite->pos1.x + sprite->pos2.x < -8)
{
sprite->data[0] = 0;
- sprite->callback = sub_80F018C;
+ sprite->callback = BattleAnimObj_SignalEnd;
gDoingBattleAnim = FALSE;
UpdateOamPriorityInAllHealthboxes(1);
}
@@ -1405,10 +1407,10 @@ static void GhostBallDodge(struct Sprite *sprite)
sprite->data[5] = 0x20;
InitAnimArcTranslation(sprite);
TranslateAnimVerticalArc(sprite);
- sprite->callback = sub_80F0574;
+ sprite->callback = GhostBallDodge2;
}
-static void sub_80F0574(struct Sprite *sprite)
+static void GhostBallDodge2(struct Sprite *sprite)
{
if (!TranslateAnimVerticalArc(sprite))
{
@@ -1417,15 +1419,13 @@ static void sub_80F0574(struct Sprite *sprite)
}
sprite->data[0] = 0;
- sprite->callback = sub_80F018C;
+ sprite->callback = BattleAnimObj_SignalEnd;
gDoingBattleAnim = FALSE;
UpdateOamPriorityInAllHealthboxes(1);
}
-static void sub_80F05B4(u8 ballId)
+static void LoadBallParticleGfx(u8 ballId)
{
- u8 taskId;
-
if (GetSpriteTileStartByTag(gBallParticleSpritesheets[ballId].tag) == 0xFFFF)
{
LoadCompressedSpriteSheetUsingHeap(&gBallParticleSpritesheets[ballId]);
@@ -1437,7 +1437,7 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
{
u8 taskId;
- sub_80F05B4(ballId);
+ LoadBallParticleGfx(ballId);
taskId = CreateTask(sBallParticleAnimationFuncs[ballId], 5);
gTasks[taskId].data[1] = x;
gTasks[taskId].data[2] = y;
@@ -1448,7 +1448,7 @@ u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId)
return taskId;
}
-void sub_80F0674(void)
+static void IncrementBattleParticleCounter(void)
{
if (gMain.inBattle)
gBattleSpritesDataPtr->animationData->field_A++;
@@ -1473,7 +1473,7 @@ static void PokeBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1532,7 +1532,7 @@ static void TimerBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1566,7 +1566,7 @@ static void DiveBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1601,7 +1601,7 @@ static void SafariBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1636,7 +1636,7 @@ static void UltraBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1677,7 +1677,7 @@ static void GreatBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1727,7 +1727,7 @@ static void RepeatBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1771,7 +1771,7 @@ static void MasterBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = FanOutBallOpenParticles_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1815,7 +1815,7 @@ static void PremierBallOpenParticleAnimation(u8 taskId)
spriteId = CreateSprite(&sBallParticlesSpriteTemplates[ballId], x, y, subpriority);
if (spriteId != MAX_SPRITES)
{
- sub_80F0674();
+ IncrementBattleParticleCounter();
StartSpriteAnim(&gSprites[spriteId], sBallParticleAnimNums[ballId]);
gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1;
gSprites[spriteId].oam.priority = priority;
@@ -1875,7 +1875,7 @@ u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 battler, u32 selectedPalettes, u8
{
u8 taskId;
- taskId = CreateTask(sub_80F12E0, 5);
+ taskId = CreateTask(Task_FadeMon_ToBallColor, 5);
gTasks[taskId].data[15] = ballId;
gTasks[taskId].data[3] = battler;
gTasks[taskId].data[10] = selectedPalettes;
@@ -1891,14 +1891,14 @@ u8 LaunchBallFadeMonTask(bool8 unfadeLater, u8 battler, u32 selectedPalettes, u8
BlendPalette(battler * 16 + 0x100, 16, 16, sBallOpenFadeColors[ballId]);
gTasks[taskId].data[0] = 16;
gTasks[taskId].data[1] = -1;
- gTasks[taskId].func = sub_80F1370;
+ gTasks[taskId].func = Task_FadeMon_ToNormal;
}
BeginNormalPaletteFade(selectedPalettes, 0, 0, 16, RGB_WHITE);
return taskId;
}
-static void sub_80F12E0(u8 taskId)
+static void Task_FadeMon_ToBallColor(u8 taskId)
{
u8 ballId = gTasks[taskId].data[15];
@@ -1916,17 +1916,17 @@ static void sub_80F12E0(u8 taskId)
}
}
-static void sub_80F1370(u8 taskId)
+static void Task_FadeMon_ToNormal(u8 taskId)
{
if (!gPaletteFade.active)
{
u32 selectedPalettes = (u16)gTasks[taskId].data[10] | ((u16)gTasks[taskId].data[11] << 16);
BeginNormalPaletteFade(selectedPalettes, 0, 16, 0, RGB_WHITE);
- gTasks[taskId].func = sub_80F13C0;
+ gTasks[taskId].func = Task_FadeMon_ToNormal_Step;
}
}
-static void sub_80F13C0(u8 taskId)
+static void Task_FadeMon_ToNormal_Step(u8 taskId)
{
u8 ballId = gTasks[taskId].data[15];
@@ -2046,7 +2046,7 @@ void AnimTask_TargetToEffectBattler(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_80F1720(u8 battler, struct Pokemon *mon)
+void TryShinyAnimation(u8 battler, struct Pokemon *mon)
{
bool32 isShiny;
u32 otId, personality;
@@ -2072,8 +2072,8 @@ void sub_80F1720(u8 battler, struct Pokemon *mon)
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]);
}
- taskId1 = CreateTask(sub_80F181C, 10);
- taskId2 = CreateTask(sub_80F181C, 10);
+ taskId1 = CreateTask(AnimTask_ShinySparkles, 10);
+ taskId2 = CreateTask(AnimTask_ShinySparkles, 10);
gTasks[taskId1].data[0] = battler;
gTasks[taskId2].data[0] = battler;
gTasks[taskId1].data[1] = 0;
@@ -2085,7 +2085,7 @@ void sub_80F1720(u8 battler, struct Pokemon *mon)
gBattleSpritesDataPtr->healthBoxesData[battler].field_1_x1 = 1;
}
-static void sub_80F181C(u8 taskId)
+static void AnimTask_ShinySparkles(u8 taskId)
{
u8 battler;
u8 x, y;
@@ -2128,11 +2128,11 @@ static void sub_80F181C(u8 taskId)
if (gTasks[taskId].data[1] == FALSE)
{
- gSprites[spriteId].callback = sub_80F1A2C;
+ gSprites[spriteId].callback = SpriteCB_ShinySparkles_1;
}
else
{
- gSprites[spriteId].callback = sub_80F1A80;
+ gSprites[spriteId].callback = SpriteCB_ShinySparkles_2;
gSprites[spriteId].pos2.x = -32;
gSprites[spriteId].pos2.y = 32;
gSprites[spriteId].invisible = TRUE;
@@ -2153,10 +2153,10 @@ static void sub_80F181C(u8 taskId)
gTasks[taskId].data[12]++;
if (gTasks[taskId].data[11] == 5)
- gTasks[taskId].func = sub_80F19E0;
+ gTasks[taskId].func = AnimTask_ShinySparkles_WaitSparkles;
}
-static void sub_80F19E0(u8 taskId)
+static void AnimTask_ShinySparkles_WaitSparkles(u8 taskId)
{
u8 battler;
@@ -2172,7 +2172,7 @@ static void sub_80F19E0(u8 taskId)
}
}
-static void sub_80F1A2C(struct Sprite *sprite)
+static void SpriteCB_ShinySparkles_1(struct Sprite *sprite)
{
sprite->pos2.x = Sin(sprite->data[1], 24);
sprite->pos2.y = Cos(sprite->data[1], 24);
@@ -2185,7 +2185,7 @@ static void sub_80F1A2C(struct Sprite *sprite)
}
}
-static void sub_80F1A80(struct Sprite *sprite)
+static void SpriteCB_ShinySparkles_2(struct Sprite *sprite)
{
if (sprite->data[1] < 4)
{
@@ -2207,7 +2207,7 @@ static void sub_80F1A80(struct Sprite *sprite)
void AnimTask_LoadBaitGfx(u8 taskId)
{
- u8 paletteIndex;
+ UNUSED u8 paletteIndex;
LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]);
LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]);
@@ -2222,35 +2222,35 @@ void AnimTask_FreeBaitGfx(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-static void sub_80F1B3C(struct Sprite *sprite)
+static void SpriteCB_SafariBaitOrRock_Init(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 0);
- sprite->data[0] = 30;
- sprite->data[2] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
- sprite->data[4] = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];
- sprite->data[5] = -32;
+ sprite->sTransl_Speed = 30;
+ sprite->sTransl_DestX = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_X) + gBattleAnimArgs[2];
+ sprite->sTransl_DestY = GetBattlerSpriteCoord(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), BATTLER_COORD_Y) + gBattleAnimArgs[3];
+ sprite->sTransl_ArcAmpl = -32;
InitAnimArcTranslation(sprite);
- gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = sub_8012354;
- sprite->callback = sub_80F1BCC;
+ gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].callback = SpriteCB_PlayerThrowInit;
+ sprite->callback = SpriteCB_SafariBaitOrRock_WaitPlayerThrow;
}
-static void sub_80F1BCC(struct Sprite *sprite)
+static void SpriteCB_SafariBaitOrRock_WaitPlayerThrow(struct Sprite *sprite)
{
if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animCmdIndex == 1)
- sprite->callback = sub_80F1C04;
+ sprite->callback = SpriteCB_SafariBaitOrRock_ArcFlight;
}
-static void sub_80F1C04(struct Sprite *sprite)
+static void SpriteCB_SafariBaitOrRock_ArcFlight(struct Sprite *sprite)
{
if (TranslateAnimHorizontalArc(sprite))
{
sprite->data[0] = 0;
sprite->invisible = TRUE;
- sprite->callback = sub_80F1C30;
+ sprite->callback = SpriteCB_SafariBaitOrRock_Finish;
}
}
-static void sub_80F1C30(struct Sprite *sprite)
+static void SpriteCB_SafariBaitOrRock_Finish(struct Sprite *sprite)
{
if (gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].animEnded)
{
@@ -2262,7 +2262,7 @@ static void sub_80F1C30(struct Sprite *sprite)
}
}
-void sub_80F1C8C(u8 taskId)
+USED void AnimTask_SafariOrGhost_DecideAnimSides(u8 taskId)
{
switch (gBattleAnimArgs[0])
{
@@ -2279,7 +2279,7 @@ void sub_80F1C8C(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void sub_80F1CE4(u8 taskId)
+USED void AnimTask_SafariGetReaction(u8 taskId)
{
if (gBattleCommunication[MULTISTRING_CHOOSER] > 2)
gBattleAnimArgs[7] = 0;
@@ -2289,7 +2289,7 @@ void sub_80F1CE4(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_GetTrappedMoveAnimId(u8 taskId)
+USED void AnimTask_GetTrappedMoveAnimId(u8 taskId)
{
if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN)
gBattleAnimArgs[0] = TRAP_ANIM_FIRE_SPIN;
@@ -2305,7 +2305,7 @@ void AnimTask_GetTrappedMoveAnimId(u8 taskId)
DestroyAnimVisualTask(taskId);
}
-void AnimTask_GetBattlersFromArg(u8 taskId)
+USED void AnimTask_GetBattlersFromArg(u8 taskId)
{
gBattleAnimAttacker = gBattleSpritesDataPtr->animationData->animArg;
gBattleAnimTarget = gBattleSpritesDataPtr->animationData->animArg >> 8;
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c
index e8042df92..82ef6da92 100644
--- a/src/battle_anim_utility_funcs.c
+++ b/src/battle_anim_utility_funcs.c
@@ -331,7 +331,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
- sub_80752A0(&animBgData);
+ GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
@@ -358,7 +358,7 @@ static void sub_80BAF38(u8 taskId)
gBattle_BG1_Y += 64;
if (++gTasks[taskId].data[11] == 4)
{
- sub_8073128(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
@@ -377,7 +377,7 @@ static void sub_80BAF38(u8 taskId)
sprite = &gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)]; // unused
sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite);
- sub_80752A0(&animBgData);
+ GetBattleAnimBg1Data(&animBgData);
sub_8075358(animBgData.bgId);
if (gTasks[taskId].data[6] == 1)
++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority;
@@ -452,7 +452,7 @@ static void sub_80BB2A0(u8 taskId)
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = sub_8076E34(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
- sub_80752A0(&animBgData);
+ GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
AnimLoadCompressedBgTilemap(animBgData.bgId, gBattleStatMask1_Tilemap);
else
@@ -548,7 +548,7 @@ static void sub_80BB4B8(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_8073128(0);
+ ResetBattleAnimBg(0);
++gTasks[taskId].data[15];
}
}
@@ -755,7 +755,7 @@ void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5,
spriteId = sub_8076E34(battler1, gBattlerSpriteIds[battler1], species);
if (arg4)
newSpriteId = sub_8076E34(battler2, gBattlerSpriteIds[battler2], species);
- sub_80752A0(&animBgData);
+ GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest())
sub_80730C0(animBgData.paletteId, animBgData.bgTilemap, 0, 0);
@@ -805,7 +805,7 @@ static void sub_80BBC2C(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[12], 16 - gTasks[taskId].data[12]));
if (gTasks[taskId].data[12] == 0)
{
- sub_8073128(0);
+ ResetBattleAnimBg(0);
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index f3966e832..6902dbaa4 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -244,9 +244,9 @@ static void sub_803A9CC(void)
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80)
- sub_80F1720(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == 3)
{
if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_9 == 1)
@@ -282,7 +282,7 @@ static void sub_803AC14(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -392,7 +392,7 @@ static void sub_803AFFC(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 2d95a756f..519332f3d 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -349,7 +349,7 @@ static void sub_80D4944(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c
index d6833942a..43b6c7c16 100644
--- a/src/battle_controller_oak_old_man.c
+++ b/src/battle_controller_oak_old_man.c
@@ -401,10 +401,10 @@ static void sub_80E7B4C(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -628,7 +628,7 @@ static void sub_80E835C(void)
case 0:
if (!gPaletteFade.active)
{
- sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
+ DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95, &gBattleStruct->field_97, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
BeginNormalPaletteFade(0xFFFFFF7E,
4,
0,
@@ -703,7 +703,7 @@ static void sub_80E835C(void)
case 8:
if (!gPaletteFade.active)
{
- sub_80EF0E0(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
+ DoFreeHealthboxPalsForLevelUp(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT));
sub_80EB524();
gBattleStruct->field_94 = 0;
OakOldManBufferExecCompleted();
@@ -806,7 +806,7 @@ static void sub_80E8704(void)
case 0:
if (!gPaletteFade.active)
{
- sub_80EEFC8(&gBattleStruct->field_95, &gBattleStruct->field_97, gActiveBattler);
+ DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95, &gBattleStruct->field_97, gActiveBattler);
BeginNormalPaletteFade(0xFFFFFF7E,
4,
0,
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 29cde44df..1d7e42b88 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -242,9 +242,9 @@ static void sub_8035C30(void)
static void sub_8035DF0(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_80F1720(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -276,7 +276,7 @@ static void sub_8035FE8(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -397,7 +397,7 @@ static void sub_8036334(void)
static void sub_8036408(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
{
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index db51f6e05..67ac89899 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -912,9 +912,9 @@ static void sub_802FA58(void)
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80)
- sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler ^ BIT_FLANK]]);
@@ -965,7 +965,7 @@ static void sub_802FD18(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !(gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive))
{
@@ -1235,7 +1235,7 @@ static void sub_80303A8(u8 taskId)
}
break;
case 5:
- sub_8073128(v6);
+ ResetBattleAnimBg(v6);
++data[15];
break;
case 4:
diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c
index e6af71b6c..e799809bd 100644
--- a/src/battle_controller_pokedude.c
+++ b/src/battle_controller_pokedude.c
@@ -598,7 +598,7 @@ static void sub_8156184(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80)
{
- sub_80F1720(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
}
else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].field_1_x1)
{
@@ -656,7 +656,7 @@ static void sub_81563A8(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (gSprites[gUnknown_3004FFC[gActiveBattler]].callback == SpriteCallbackDummy
&& !(gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive))
{
@@ -750,10 +750,10 @@ static void sub_8156624(void)
{
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
- sub_80F1720(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
+ TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].flag_x80
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
- sub_80F1720(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
+ TryShinyAnimation(gActiveBattler ^ BIT_FLANK, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]]);
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
{
if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI))
@@ -2518,7 +2518,7 @@ static void sub_8159D04(void)
case 0:
if (!gPaletteFade.active)
{
- sub_80EEFC8(&gBattleStruct->field_95,
+ DoLoadHealthboxPalsForLevelUp(&gBattleStruct->field_95,
&gBattleStruct->field_94,
GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
BeginNormalPaletteFade(0xFFFFFF7F, 4, 0, 8, RGB_BLACK);
@@ -2576,7 +2576,7 @@ static void sub_8159D04(void)
BattleStopLowHpSound();
PlayBGM(MUS_VICTORY_WILD);
}
- sub_80EF0E0(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
+ DoFreeHealthboxPalsForLevelUp(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT));
sub_80EB524();
sub_8159B78();
}
diff --git a/src/battle_main.c b/src/battle_main.c
index df1324f83..2787330a8 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -83,7 +83,7 @@ static void sub_8012060(struct Sprite *sprite);
static void oac_poke_ally_(struct Sprite *sprite);
static void SpriteCallbackDummy3(struct Sprite *sprite);
static void SpriteCB_BounceEffect(struct Sprite *sprite);
-static void sub_8012398(struct Sprite *sprite);
+static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite);
static void BattleStartClearSetData(void);
static void BattleIntroGetMonsData(void);
static void TurnValuesCleanUp(bool8 var0);
@@ -301,7 +301,7 @@ static const union AffineAnimCmd *const gUnknown_824F044[] =
gUnknown_824F02C,
};
-static const s8 gUnknown_824F048[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
+static const s8 sPlayerThrowXTranslation[] = { -32, -16, -16, -32, -32, 0, 0, 0 };
// format: attacking type, defending type, damage multiplier
// the multiplier is a (decimal) fixed-point number:
@@ -2153,21 +2153,21 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite)
sprite->sSinIndex = (sprite->sSinIndex + sprite->sDelta) & 0xFF;
}
-void sub_8012354(struct Sprite *sprite)
+void SpriteCB_PlayerThrowInit(struct Sprite *sprite)
{
StartSpriteAnim(sprite, 1);
- sprite->callback = sub_8012398;
+ sprite->callback = SpriteCB_PlayerThrowUpdate;
}
-void sub_801236C(struct Sprite *sprite)
+void UpdatePlayerPosInThrowAnim(struct Sprite *sprite)
{
if (sprite->animDelayCounter == 0)
- sprite->centerToCornerVecX = gUnknown_824F048[sprite->animCmdIndex];
+ sprite->centerToCornerVecX = sPlayerThrowXTranslation[sprite->animCmdIndex];
}
-static void sub_8012398(struct Sprite *sprite)
+static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite)
{
- sub_801236C(sprite);
+ UpdatePlayerPosInThrowAnim(sprite);
if (sprite->animEnded)
sprite->callback = SpriteCallbackDummy3;
}
diff --git a/src/dark.c b/src/dark.c
index 86523f2f1..d9c2900ba 100644
--- a/src/dark.c
+++ b/src/dark.c
@@ -409,7 +409,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId)
task->data[3] = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker);
if (task->data[3] == 1)
{
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
FillPalette(0, animBg.paletteId * 16, 32);
@@ -540,7 +540,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId)
case 1:
if (task->data[3] == 1)
{
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
task->data[10] = gBattle_BG1_Y;
FillPalette(0, animBg.paletteId * 16, 32);
}
@@ -742,9 +742,9 @@ void sub_80B8664(u8 taskId)
{
bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE;
- sub_8073128(toBG2);
+ ResetBattleAnimBg(toBG2);
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
- sub_8073128(toBG2 ^ 1);
+ ResetBattleAnimBg(toBG2 ^ 1);
DestroyAnimVisualTask(taskId);
}
@@ -800,7 +800,7 @@ void AnimTask_MetallicShine(u8 taskId)
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = sub_8076E34(gBattleAnimAttacker, spriteId, species);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
LoadCompressedPalette(gMetalShinePalette, animBg.paletteId * 16, 32);
@@ -839,7 +839,7 @@ static void sub_80B8920(u8 taskId)
if (gTasks[taskId].data[1] == 0)
SetGreyscaleOrOriginalPalette(paletteNum, 1);
DestroySprite(&gSprites[gTasks[taskId].data[0]]);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
if (gTasks[taskId].data[6] == 1)
gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority++;
diff --git a/src/daycare.c b/src/daycare.c
index 14c41355b..bbd0d89a6 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -790,7 +790,7 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
u8 i;
u8 selectedIvs[INHERITED_IV_COUNT];
u8 availableIVs[NUM_STATS];
- u8 whichParent[ARRAY_COUNT(selectedIvs)];
+ u8 whichParent[NELEMS(selectedIvs)];
u8 iv;
// Initialize a list of IV indices.
@@ -800,7 +800,7 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
}
// Select the 3 IVs that will be inherited.
- for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
+ for (i = 0; i < NELEMS(selectedIvs); i++)
{
// Randomly pick an IV from the available list and stop from being chosen again.
selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
@@ -808,13 +808,13 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
}
// Determine which parent each of the selected IVs should inherit from.
- for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
+ for (i = 0; i < NELEMS(selectedIvs); i++)
{
whichParent[i] = Random() % DAYCARE_MON_COUNT;
}
// Set each of inherited IVs on the egg mon.
- for (i = 0; i < ARRAY_COUNT(selectedIvs); i++)
+ for (i = 0; i < NELEMS(selectedIvs); i++)
{
switch (selectedIvs[i])
{
@@ -858,7 +858,7 @@ static u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
numEggMoves = 0;
eggMoveIdx = 0;
species = GetMonData(pokemon, MON_DATA_SPECIES);
- for (i = 0; i < ARRAY_COUNT(gEggMoves) - 1; i++)
+ for (i = 0; i < NELEMS(gEggMoves) - 1; i++)
{
if (gEggMoves[i] == species + EGG_MOVES_SPECIES_OFFSET)
{
@@ -1787,7 +1787,7 @@ static void CB2_EggHatch_0(void)
ResetTempTileDataBuffers();
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, sBgTemplates_EggHatch, ARRAY_COUNT(sBgTemplates_EggHatch));
+ InitBgsFromTemplates(0, sBgTemplates_EggHatch, NELEMS(sBgTemplates_EggHatch));
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c
index d2ddd30be..df6b3ff4b 100644
--- a/src/dodrio_berry_picking_2.c
+++ b/src/dodrio_berry_picking_2.c
@@ -1567,7 +1567,7 @@ static void sub_8155EA0(void)
DmaClear16(3, (void *)PLTT, PLTT_SIZE);
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(FALSE);
- InitBgsFromTemplates(0, sUnknown_847565C, ARRAY_COUNT(sUnknown_847565C));
+ InitBgsFromTemplates(0, sUnknown_847565C, NELEMS(sUnknown_847565C));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
diff --git a/src/easy_chat.c b/src/easy_chat.c
index bf617a854..4360dc72e 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -704,7 +704,7 @@ static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId)
static bool32 EC_IsDeoxys(u16 species)
{
u32 i;
- for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++)
+ for (i = 0; i < NELEMS(sDeoxysValue); i++)
{
if (sDeoxysValue[i] == species)
return TRUE;
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 48e5cf00a..ea6e63be9 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -450,7 +450,7 @@ static void MainCB2_LoadFameChecker(void)
sBg1TilemapBuffer = AllocZeroed(0x1000);
sBg2TilemapBuffer = AllocZeroed(0x800);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, sUIBgTemplates, ARRAY_COUNT(sUIBgTemplates));
+ InitBgsFromTemplates(0, sUIBgTemplates, NELEMS(sUIBgTemplates));
SetBgTilemapBuffer(3, sBg3TilemapBuffer);
SetBgTilemapBuffer(2, sBg2TilemapBuffer);
SetBgTilemapBuffer(1, sBg1TilemapBuffer);
diff --git a/src/fighting.c b/src/fighting.c
index ab477cd43..9bbb09d87 100644
--- a/src/fighting.c
+++ b/src/fighting.c
@@ -788,7 +788,7 @@ static void sub_80B111C(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3);
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
- sprite->callback = sub_807563C;
+ sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
}
}
@@ -874,7 +874,7 @@ static void AnimSuperpowerFireball(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(battler, 3);
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
- sprite->callback = sub_807563C;
+ sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6;
}
static void sub_80B13D4(struct Sprite *sprite)
diff --git a/src/fire.c b/src/fire.c
index 7833620d4..54b7948f3 100644
--- a/src/fire.c
+++ b/src/fire.c
@@ -1160,7 +1160,7 @@ void AnimTask_BlendBackground(u8 taskId)
{
struct BattleAnimBgData animBg;
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
BlendPalette(animBg.paletteId * 16, 16, gBattleAnimArgs[0], gBattleAnimArgs[1]);
DestroyAnimVisualTask(taskId);
}
diff --git a/src/ice.c b/src/ice.c
index 6a77675e2..eb8420c63 100644
--- a/src/ice.c
+++ b/src/ice.c
@@ -941,7 +941,7 @@ void AnimTask_Haze1(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gUnknown_83C2CE0, animBg.paletteId * 16, 32);
@@ -992,7 +992,7 @@ static void AnimTask_Haze2(u8 taskId)
}
break;
case 3:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
++gTasks[taskId].data[12];
@@ -1039,7 +1039,7 @@ void AnimTask_LoadMistTiles(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
LoadBgTiles(animBg.bgId, gWeatherFogHorizontalTiles, 0x800, animBg.tilesOffset);
AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimFogTilemap);
LoadPalette(&gUnknown_83C2CE0, animBg.paletteId * 16, 32);
@@ -1087,7 +1087,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId)
}
break;
case 3:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(1);
sub_8075358(2);
++gTasks[taskId].data[12];
diff --git a/src/load_save.c b/src/load_save.c
index f17d31f37..a825061f5 100644
--- a/src/load_save.c
+++ b/src/load_save.c
@@ -23,14 +23,14 @@ struct LoadedSaveData
};
// EWRAM DATA
-EWRAM_DATA struct SaveBlock2 gSaveBlock2 = {0};
-EWRAM_DATA u8 gSaveBlock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
+EWRAM_DATA HERE struct SaveBlock2 gSaveBlock2 = {0};
+EWRAM_DATA HERE u8 gSaveBlock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-EWRAM_DATA struct SaveBlock1 gSaveBlock1 = {0};
-EWRAM_DATA u8 gSaveBlock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
+EWRAM_DATA HERE struct SaveBlock1 gSaveBlock1 = {0};
+EWRAM_DATA HERE u8 gSaveBlock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
-EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
-EWRAM_DATA u8 gSaveBlock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
+EWRAM_DATA HERE struct PokemonStorage gPokemonStorage = {0};
+EWRAM_DATA HERE u8 gSaveBlock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = 0;
@@ -70,7 +70,7 @@ void SetSaveBlocksPointers(void)
struct SaveBlock1** sav1_LocalVar = &gSaveBlock1Ptr;
void *oldSave = (void *)gSaveBlock1Ptr;
- offset = (Random()) & (SAVEBLOCK_MOVE_RANGE - 4);
+ offset = (Random()) & ((SAVEBLOCK_MOVE_RANGE - 1) & ~3);
gSaveBlock2Ptr = (void*)(&gSaveBlock2) + offset;
*sav1_LocalVar = (void*)(&gSaveBlock1) + offset;
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index 33f31515d..cfc05fe46 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -375,7 +375,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader)
ScanlineEffect_Stop();
ResetBgsAndClearDma3BusyFlags(1);
- InitBgsFromTemplates(0, sBGTemplates, ARRAY_COUNT(sBGTemplates));
+ InitBgsFromTemplates(0, sBGTemplates, NELEMS(sBGTemplates));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
ChangeBgX(1, 0, 0);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 03b9c6744..c09fbf6ed 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2339,7 +2339,7 @@ static void sub_8136BC4(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, sUnknown_8463EFC, ARRAY_COUNT(sUnknown_8463EFC));
+ InitBgsFromTemplates(0, sUnknown_8463EFC, NELEMS(sUnknown_8463EFC));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
@@ -3902,20 +3902,20 @@ static void sub_8139768(struct Sprite * sprite)
{
case 0:
sprite->pos1.y += sUnknown_8463FBE[sUnknown_203B170->unk00++];
- v0 = ARRAY_COUNT(sUnknown_8463FBE);
+ v0 = NELEMS(sUnknown_8463FBE);
break;
case 1:
sprite->pos1.y += sUnknown_8463FC1[sUnknown_203B170->unk00++];
- v0 = ARRAY_COUNT(sUnknown_8463FC1);
+ v0 = NELEMS(sUnknown_8463FC1);
break;
case 2:
sprite->pos1.y += sUnknown_8463FC6[sUnknown_203B170->unk00++];
- v0 = ARRAY_COUNT(sUnknown_8463FC6);
+ v0 = NELEMS(sUnknown_8463FC6);
break;
case 3:
default:
sprite->pos1.y += sUnknown_8463FCD[sUnknown_203B170->unk00++];
- v0 = ARRAY_COUNT(sUnknown_8463FCD);
+ v0 = NELEMS(sUnknown_8463FCD);
break;
}
@@ -3941,7 +3941,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 120)
{
sprite->pos1.x += sUnknown_8463FD4[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FD4))
+ if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FD4))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
@@ -3953,7 +3953,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 90)
{
sprite->pos1.x += sUnknown_8463FDF[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FDF))
+ if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FDF))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
@@ -3965,7 +3965,7 @@ static void sub_8139868(struct Sprite * sprite)
if (sUnknown_203B170->unk04++ >= 60)
{
sprite->pos1.x += sUnknown_8463FEA[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= ARRAY_COUNT(sUnknown_8463FEA))
+ if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FEA))
{
sUnknown_203B170->unk00 = 0;
sUnknown_203B170->unk04 = 0;
diff --git a/src/psychic.c b/src/psychic.c
index 32e4dce46..9a072ad5c 100644
--- a/src/psychic.c
+++ b/src/psychic.c
@@ -523,10 +523,10 @@ static void sub_80B3168(struct Sprite *sprite)
bool8 toBG2 = (rank ^ var0) != 0;
if (IsBattlerSpriteVisible(battler))
- sub_8073128(toBG2);
+ ResetBattleAnimBg(toBG2);
battler = battlerCopy ^ 2;
if (IsBattlerSpriteVisible(battler))
- sub_8073128(toBG2 ^ var0);
+ ResetBattleAnimBg(toBG2 ^ var0);
}
sprite->callback = DestroyAnimSprite;
}
diff --git a/src/quest_log_player.c b/src/quest_log_player.c
index 715061963..da1c2b76e 100644
--- a/src/quest_log_player.c
+++ b/src/quest_log_player.c
@@ -35,7 +35,7 @@ static void (*const gUnknown_8471EDC[])(void) = {
void sub_8150454(u8 a0)
{
- if (a0 < ARRAY_COUNT(gUnknown_8471EDC))
+ if (a0 < NELEMS(gUnknown_8471EDC))
gUnknown_8471EDC[a0]();
}
diff --git a/src/roamer.c b/src/roamer.c
index 074ac22cf..6367e9d43 100644
--- a/src/roamer.c
+++ b/src/roamer.c
@@ -94,7 +94,7 @@ void CreateInitialRoamerMon(void)
saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART);
saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH);
sRoamerLocation[MAP_GRP] = 3;
- sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+ sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
}
void InitRoamer(void)
@@ -125,7 +125,7 @@ void RoamerMoveToOtherLocationSet(void)
while (1)
{
- mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+ mapNum = sRoamerLocations[Random() % (NELEMS(sRoamerLocations) - 1)][0];
if (sRoamerLocation[MAP_NUM] != mapNum)
{
sRoamerLocation[MAP_NUM] = mapNum;
@@ -150,7 +150,7 @@ void RoamerMove(void)
if (!roamer->active)
return;
- while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1))
+ while (locSet < (NELEMS(sRoamerLocations) - 1))
{
if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
{
diff --git a/src/rock.c b/src/rock.c
index 922b2ad6a..4243e5102 100644
--- a/src/rock.c
+++ b/src/rock.c
@@ -407,7 +407,7 @@ void AnimTask_LoadSandstormBackground(u8 taskId)
gBattle_BG1_Y = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X);
SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_tilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gFile_graphics_battle_anims_backgrounds_sandstorm_brew_sheet, animBg.tilesOffset);
LoadCompressedPalette(gBattleAnimSpritePal_FlyingDirt, animBg.paletteId * 16, 32);
@@ -464,7 +464,7 @@ static void sub_80B490C(u8 taskId)
}
break;
case 3:
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
sub_8075358(animBg.bgId);
++gTasks[taskId].data[12];
break;
diff --git a/src/save.c b/src/save.c
index d5993182c..bd8cdbc29 100644
--- a/src/save.c
+++ b/src/save.c
@@ -45,26 +45,24 @@
min(sizeof(structure) - chunkNum * SECTOR_DATA_SIZE, SECTOR_DATA_SIZE) \
} \
-// TODO: use gSaveblock2, gSaveblock1, gPokemonStorage instead of structs
-// Will be done when load_save is decompiled.
const struct SaveSectionOffsets gSaveSectionOffsets[] =
{
- SAVEBLOCK_CHUNK(struct SaveBlock2, 0),
-
- SAVEBLOCK_CHUNK(struct SaveBlock1, 0),
- SAVEBLOCK_CHUNK(struct SaveBlock1, 1),
- SAVEBLOCK_CHUNK(struct SaveBlock1, 2),
- SAVEBLOCK_CHUNK(struct SaveBlock1, 3),
-
- SAVEBLOCK_CHUNK(struct PokemonStorage, 0),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 1),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 2),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 3),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 4),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 5),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 6),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 7),
- SAVEBLOCK_CHUNK(struct PokemonStorage, 8)
+ SAVEBLOCK_CHUNK(gSaveBlock2, 0),
+
+ SAVEBLOCK_CHUNK(gSaveBlock1, 0),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 1),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 2),
+ SAVEBLOCK_CHUNK(gSaveBlock1, 3),
+
+ SAVEBLOCK_CHUNK(gPokemonStorage, 0),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 1),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 2),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 3),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 4),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 5),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 6),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 7),
+ SAVEBLOCK_CHUNK(gPokemonStorage, 8)
};
// Sector num to begin writing save data. Sectors are rotated each time the game is saved. (possibly to avoid wear on flash memory?)
diff --git a/src/string_util.c b/src/string_util.c
index 17507b0e8..f059ac43d 100644
--- a/src/string_util.c
+++ b/src/string_util.c
@@ -487,7 +487,7 @@ u8 *GetExpandedPlaceholder(u32 id)
[PLACEHOLDER_ID_KYOGRE] = ExpandPlaceholder_Kyogre,
};
- if (id >= ARRAY_COUNT(funcs))
+ if (id >= NELEMS(funcs))
return gExpandedPlaceholder_Empty;
else
return funcs[id]();
@@ -627,7 +627,7 @@ u8 GetExtCtrlCodeLength(u8 code)
};
u8 length = 0;
- if (code < ARRAY_COUNT(lengths))
+ if (code < NELEMS(lengths))
length = lengths[code];
return length;
}
diff --git a/src/trainer_card.c b/src/trainer_card.c
index e42385243..483c91126 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -1472,7 +1472,7 @@ static bool8 SetTrainerCardBgsAndPals(void)
switch (sTrainerCardDataPtr->bgPalLoadState)
{
case 0:
- LoadBgTiles(3, sTrainerCardDataPtr->badgeTiles, ARRAY_COUNT(sTrainerCardDataPtr->badgeTiles), 0);
+ LoadBgTiles(3, sTrainerCardDataPtr->badgeTiles, NELEMS(sTrainerCardDataPtr->badgeTiles), 0);
break;
case 1:
LoadBgTiles(0, sTrainerCardDataPtr->cardTiles, 0x1800, 0);
diff --git a/src/water.c b/src/water.c
index f8dd29bd0..9fbfd4d9a 100644
--- a/src/water.c
+++ b/src/water.c
@@ -812,7 +812,7 @@ void AnimTask_CreateSurfWave(u8 taskId)
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
if (!IsContest())
{
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
@@ -889,7 +889,7 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
*BGptrX += gTasks[taskId].data[0];
*BGptrY += gTasks[taskId].data[1];
- sub_80752A0(&animBg);
+ GetBattleAnimBg1Data(&animBg);
gTasks[taskId].data[2] += gTasks[taskId].data[1];
if (++gTasks[taskId].data[5] == 4)
{