diff options
Diffstat (limited to 'src')
42 files changed, 680 insertions, 663 deletions
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_bg.c b/src/battle_bg.c index e66180c4d..32d3e017a 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -85,7 +85,7 @@ static const struct SpriteTemplate sVsLetter_V_SpriteTemplate = { .oam = &gOamData_82482A0, .anims = gDummySpriteAnimTable, .affineAnims = gAffineAnimTable_82482E0, - .callback = nullsub_9 + .callback = SpriteCB_VsLetterDummy }; static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = { @@ -94,7 +94,7 @@ static const struct SpriteTemplate sVsLetter_S_SpriteTemplate = { .oam = &gOamData_82482A8, .anims = gDummySpriteAnimTable, .affineAnims = gAffineAnimTable_82482E0, - .callback = nullsub_9 + .callback = SpriteCB_VsLetterDummy }; static const struct CompressedSpriteSheet sVsLettersSpriteSheet = { @@ -584,7 +584,7 @@ UNUSED void CreateUnknownDebugSprite(void) u8 spriteId; ResetSpriteData(); - spriteId = CreateSprite(&gUnknown_824EFF0, 0, 0, 0); + spriteId = CreateSprite(&gUnknownDebugSprite, 0, 0, 0); gSprites[spriteId].invisible = TRUE; SetMainCallback2(CB2_unused); } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index f3966e832..8fa1c36a7 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) @@ -259,7 +259,7 @@ static void sub_803A9CC(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } @@ -267,7 +267,7 @@ static void sub_803A9CC(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; @@ -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) { @@ -381,7 +381,7 @@ static void sub_803AF28(void) FreeSpritePaletteByTag(0x27F9); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); gBattlerControllerFuncs[gActiveBattler] = sub_803AE6C; @@ -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..9627265a2 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -226,14 +226,14 @@ static void sub_80D443C(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattlerControllerFuncs[gActiveBattler] = sub_80D4358; @@ -338,7 +338,7 @@ static void sub_80D484C(void) HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); gBattlerControllerFuncs[gActiveBattler] = sub_80D47AC; @@ -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..f6b43446b 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)) @@ -413,14 +413,14 @@ static void sub_80E7B4C(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattlerControllerFuncs[gActiveBattler] = sub_80E7CD8; @@ -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, @@ -1569,20 +1569,20 @@ static void OakOldManHandleDrawTrainerPic(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(5, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[5].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1596,20 +1596,20 @@ static void OakOldManHandleTrainerSlide(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(5, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(5, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[5].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -2081,7 +2081,7 @@ static void OakOldManHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_80EB0A8, 5); gTasks[taskId].data[0] = gActiveBattler; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 29cde44df..455cb5e19 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)) @@ -253,7 +253,7 @@ static void sub_8035DF0(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); SetBattlerShadowSpriteCallback(gActiveBattler ^ BIT_FLANK, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], MON_DATA_SPECIES)); } @@ -261,7 +261,7 @@ static void sub_8035DF0(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; @@ -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) { @@ -387,7 +387,7 @@ static void sub_8036334(void) FreeSpritePaletteByTag(0x27F9); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); gBattlerControllerFuncs[gActiveBattler] = sub_8036278; @@ -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..d23057900 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -336,7 +336,7 @@ static void HandleInputChooseTarget(void) if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX); PlayerBufferExecCompleted(); @@ -344,7 +344,7 @@ static void HandleInputChooseTarget(void) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1); @@ -353,7 +353,7 @@ static void HandleInputChooseTarget(void) else if (JOY_NEW(DPAD_LEFT | DPAD_UP)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; do { @@ -388,12 +388,12 @@ static void HandleInputChooseTarget(void) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012098; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; do { @@ -428,7 +428,7 @@ static void HandleInputChooseTarget(void) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } } @@ -495,7 +495,7 @@ void HandleInputChooseMove(void) gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8012044; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } } else if (JOY_NEW(B_BUTTON)) @@ -801,7 +801,7 @@ static void sub_802F610(void) m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; - SetMainCallback2(sub_8011A1C); + SetMainCallback2(CB2_InitEndLinkBattle); FreeAllWindowBuffers(); } } @@ -810,7 +810,7 @@ static void sub_802F610(void) m4aSongNumStop(SE_LOW_HEALTH); gMain.inBattle = 0; gMain.callback1 = gPreBattleCallback1; - SetMainCallback2(sub_8011A1C); + SetMainCallback2(CB2_InitEndLinkBattle); FreeAllWindowBuffers(); } } @@ -912,23 +912,23 @@ 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]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattlerControllerFuncs[gActiveBattler] = sub_802F858; @@ -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)) { @@ -973,7 +973,7 @@ static void sub_802FD18(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); gBattlerControllerFuncs[gActiveBattler] = sub_802FBF4; @@ -1235,7 +1235,7 @@ static void sub_80303A8(u8 taskId) } break; case 5: - sub_8073128(v6); + ResetBattleAnimBg(v6); ++data[15]; break; case 4: @@ -2175,13 +2175,13 @@ static void PlayerHandleDrawTrainerPic(void) if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 2; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RS_BRENDAN; else - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + 0; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RED; } else { - trainerPicId = gSaveBlock2Ptr->playerGender + 0; + trainerPicId = gSaveBlock2Ptr->playerGender + BACK_PIC_RED; } DecompressTrainerBackPalette(trainerPicId, gActiveBattler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index e6af71b6c..88faa3c98 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)) { @@ -664,7 +664,7 @@ static void sub_81563A8(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); CopyBattleSpriteInvisibility(gActiveBattler); gBattlerControllerFuncs[gActiveBattler] = sub_81562F0; @@ -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)) @@ -762,14 +762,14 @@ static void sub_8156624(void) UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler ^ BIT_FLANK); + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } DestroySprite(&gSprites[gUnknown_3004FFC[gActiveBattler]]); UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattleSpritesDataPtr->animationData->field_9_x1 = 0; gBattlerControllerFuncs[gActiveBattler] = sub_81567B0; @@ -1714,11 +1714,11 @@ static void PokedudeHandleDrawTrainerPic(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - DecompressTrainerBackPalette(4, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[4].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; @@ -1747,11 +1747,11 @@ static void PokedudeHandleDrawTrainerPic(void) static void PokedudeHandleTrainerSlide(void) { - DecompressTrainerBackPalette(4, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(4, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[4].size) * 4 + 80, + (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96; @@ -2222,7 +2222,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], sub_80335F8); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[4].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(sub_81595EC, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -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_controller_safari.c b/src/battle_controller_safari.c index b09661675..6a37c12ea 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -608,7 +608,7 @@ static void SafariHandleIntroSlide(void) static void SafariHandleIntroTrainerBallThrow(void) { UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT); - sub_804BD94(gActiveBattler); + StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy; } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 583a64eaa..dbcc0594c 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -62,7 +62,7 @@ void SetUpBattleVars(void) gUnknown_2023DDC = 0; } -void sub_800D30C(void) +void InitBtlControllers(void) { s32 i; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 4340703e3..7019acc86 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -950,9 +950,12 @@ void HideBattlerShadowSprite(u8 battlerId) gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].callback = SpriteCB_SetInvisible; } -void sub_80357C8(void) +// Low-level function that sets specific interface tiles' palettes, +// overwriting any pixel with value 0. +void BattleInterfaceSetWindowPals(void) { - u16 *vramPtr = (u16 *)(VRAM + 0x240); + // 9 tiles at 0x06000240 + u16 *vramPtr = (u16 *)(BG_VRAM + 0x240); s32 i; s32 j; @@ -970,7 +973,9 @@ void sub_80357C8(void) *vramPtr |= 0x000F; } } - vramPtr = (u16 *)(VRAM + 0x600); + + // 18 tiles at 0x06000600 + vramPtr = (u16 *)(BG_VRAM + 0x600); for (i = 0; i < 18; ++i) { for (j = 0; j < 16; ++vramPtr, ++j) @@ -1005,7 +1010,7 @@ void AllocateMonSpritesGfx(void) for (i = 0; i < MAX_BATTLERS_COUNT; ++i) { gMonSpritesGfxPtr->sprites[i] = gMonSpritesGfxPtr->firstDecompressed + (i * 0x2000); - *(gMonSpritesGfxPtr->templates + i) = gUnknown_825DEF0[i]; + *(gMonSpritesGfxPtr->templates + i) = gSpriteTemplates_Battlers[i]; for (j = 0; j < 4; ++j) { diff --git a/src/battle_intro.c b/src/battle_intro.c index 04c7072d9..996b8d3a6 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -422,9 +422,9 @@ static void BattleIntroSlideLink(u8 taskId) { ++gTasks[taskId].data[0]; gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = sub_801182C; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = SpriteCB_VsLetterInit; gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.objMode = ST_OAM_OBJ_WINDOW; - gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = sub_801182C; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = SpriteCB_VsLetterInit; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2); } diff --git a/src/battle_main.c b/src/battle_main.c index 08bf6e345..902da32d7 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -44,7 +44,7 @@ #include "constants/songs.h" #include "constants/trainer_classes.h" -static void sub_80111EC(struct Sprite *sprite); +static void SpriteCB_UnusedDebugSprite(struct Sprite *sprite); static void HandleAction_UseMove(void); static void HandleAction_Switch(void); static void HandleAction_UseItem(void); @@ -72,18 +72,18 @@ static void CB2_HandleStartBattle(void); static void TryCorrectShedinjaLanguage(struct Pokemon *mon); static void BattleMainCB1(void); static void CB2_QuitPokedudeBattle(void); -static void sub_80111FC(struct Sprite *sprite); -static void sub_8011B94(void); -static void sub_8011BB0(void); +static void SpriteCB_UnusedDebugSprite_Step(struct Sprite *sprite); +static void CB2_EndLinkBattle(void); +static void EndLinkBattleInSteps(void); static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); static void sub_8011E3C(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); -static void sub_8012060(struct Sprite *sprite); +static void SpriteCb_BlinkVisible(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); @@ -132,7 +132,7 @@ EWRAM_DATA u32 gUnknown_2022B54 = 0; EWRAM_DATA struct UnknownPokemonStruct4 gMultiPartnerParty[3] = {0}; EWRAM_DATA u8 *gUnknown_2022BB8 = NULL; EWRAM_DATA u8 *gUnknown_2022BBC = NULL; -EWRAM_DATA u16 *gUnknown_2022BC0 = NULL; +EWRAM_DATA u16 *sUnknownDebugSpriteDataBuffer = NULL; EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gActiveBattler = 0; @@ -231,7 +231,7 @@ static const struct ScanlineEffectParams sIntroScanlineParams16Bit = ®_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1 }; -const struct SpriteTemplate gUnknown_824EFF0 = +const struct SpriteTemplate gUnknownDebugSprite = { .tileTag = 0, .paletteTag = 0, @@ -239,12 +239,12 @@ const struct SpriteTemplate gUnknown_824EFF0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80111EC, + .callback = SpriteCB_UnusedDebugSprite, }; static const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin -const struct OamData gOamData_824F010 = +const struct OamData gOamData_BattlerOpponent = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -259,7 +259,7 @@ const struct OamData gOamData_824F010 = .affineParam = 0, }; -const struct OamData gOamData_824F018 = +const struct OamData gOamData_BattlerPlayer = { .y = 0, .affineMode = ST_OAM_AFFINE_NORMAL, @@ -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: @@ -705,41 +705,50 @@ static void CB2_InitBattleInternal(void) gBattleCommunication[MULTIUSE_STATE] = 0; } -static void sub_800FFEC(void) +#define BUFFER_PARTY_VS_SCREEN_STATUS(party, flags, i) \ + for ((i) = 0; (i) < PARTY_SIZE; (i)++) \ + { \ + u16 species = GetMonData(&(party)[(i)], MON_DATA_SPECIES2); \ + u16 hp = GetMonData(&(party)[(i)], MON_DATA_HP); \ + u32 status = GetMonData(&(party)[(i)], MON_DATA_STATUS); \ + \ + if (species == SPECIES_NONE) \ + continue; \ + \ + /* Is healthy mon? */ \ + if (species != SPECIES_EGG && hp != 0 && status == 0) \ + (flags) |= 1 << (i) * 2; \ + \ + if (species == SPECIES_NONE) /* Redundant */ \ + continue; \ + \ + /* Is Egg or statused? */ \ + if (hp != 0 && (species == SPECIES_EGG || status != 0)) \ + (flags) |= 2 << (i) * 2; \ + \ + if (species == SPECIES_NONE) /* Redundant */ \ + continue; \ + \ + /* Is fainted? */ \ + if (species != SPECIES_EGG && hp == 0) \ + (flags) |= 3 << (i) * 2; \ + } + +static void BufferPartyVsScreenHealth_AtStart(void) { - u16 r6 = 0; - u16 species = SPECIES_NONE; - u16 hp = 0; - u32 status = 0; + u16 flags = 0; s32 i; - for (i = 0; i < PARTY_SIZE; ++i) - { - species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp != 0 && status == 0) - r6 |= 1 << i * 2; - if (species == SPECIES_NONE) - continue; - if (hp != 0 && (species == SPECIES_EGG || status != 0)) - r6 |= 2 << i * 2; - if (species == SPECIES_NONE) - continue; - if (species != SPECIES_EGG && hp == 0) - r6 |= 3 << i * 2; - } - gBattleStruct->field_186 = r6; - *(&gBattleStruct->field_187) = r6 >> 8; + BUFFER_PARTY_VS_SCREEN_STATUS(gPlayerParty, flags, i); + gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsLo = flags; + *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsHi) = flags >> 8; } static void SetPlayerBerryDataInBattleStruct(void) { s32 i; struct BattleStruct *battleStruct = gBattleStruct; - struct BattleEnigmaBerry *battleBerry = &battleStruct->battleEnigmaBerry; + struct BattleEnigmaBerry *battleBerry = &battleStruct->multiBuffer.multiPartnerEnigmaBerry.battleEnigmaBerry; if (IsEnigmaBerryValid() == TRUE) { @@ -859,44 +868,47 @@ static void SetAllPlayersBerryData(void) } } -static void sub_8010414(u8 arg0, u8 arg1) +static void LinkBattleComputeBattleTypeFlags(u8 numPlayers, u8 multiPlayerId) { - u8 var = 0; + u8 found = 0; - if (gBlockRecvBuffer[0][0] == 256) + // If player 1 is playing the minimum version, player 1 is master. + if (gBlockRecvBuffer[0][0] == 0x100) { - if (arg1 == 0) + if (multiPlayerId == 0) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - ++var; + ++found; } - if (var == 0) + if (found == 0) { + // If multiple different versions are being used, player 1 is master. s32 i; - for (i = 0; i < arg0; ++i) + for (i = 0; i < numPlayers; ++i) if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0]) break; - if (i == arg0) + if (i == numPlayers) { - if (arg1 == 0) + if (multiPlayerId == 0) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - ++var; + ++found; } - if (var == 0) + if (found == 0) { - for (i = 0; i < arg0; ++i) + // Lowest index player with the highest game version is master. + for (i = 0; i < numPlayers; ++i) { - if (gBlockRecvBuffer[i][0] == 0x201) - if (i != arg1 && i < arg1) + if (gBlockRecvBuffer[i][0] == 0x201 && i != multiPlayerId) + if (i < multiPlayerId) break; - if (gBlockRecvBuffer[i][0] > 0x201 && i != arg1) + if (gBlockRecvBuffer[i][0] > 0x201 && i != multiPlayerId) break; } - if (i == arg0) + if (i == numPlayers) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; @@ -924,7 +936,7 @@ static void CB2_HandleStartBattle(void) ShowBg(1); ShowBg(2); ShowBg(3); - sub_80357C8(); + BattleInterfaceSetWindowPals(); gBattleCommunication[MULTIUSE_STATE] = 1; } if (gWirelessCommType) @@ -937,11 +949,12 @@ static void CB2_HandleStartBattle(void) { if (IsLinkTaskFinished()) { - *(&gBattleStruct->field_184) = 1; - *(&gBattleStruct->field_185) = 2; - sub_800FFEC(); + // 0x201 + *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureLo) = 1; + *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureHi) = 2; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.multiPartnerEnigmaBerry, sizeof(gBattleStruct->multiBuffer.multiPartnerEnigmaBerry)); gBattleCommunication[MULTIUSE_STATE] = 2; } if (gWirelessCommType != 0) @@ -961,13 +974,13 @@ static void CB2_HandleStartBattle(void) u8 taskId; ResetBlockReceivedFlags(); - sub_8010414(2, playerMultiplayerId); + LinkBattleComputeBattleTypeFlags(2, playerMultiplayerId); SetAllPlayersBerryData(); taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 270; gTasks[taskId].data[2] = 90; gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = gBattleStruct->field_186 | (gBattleStruct->field_187 << 8); + gTasks[taskId].data[3] = gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.vsScreenHealthFlagsHi << 8); gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; SetDeoxysStats(); ++gBattleCommunication[MULTIUSE_STATE]; @@ -1025,7 +1038,7 @@ static void CB2_HandleStartBattle(void) } break; case 15: - sub_800D30C(); + InitBtlControllers(); ++gBattleCommunication[MULTIUSE_STATE]; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1056,7 +1069,7 @@ static void CB2_HandleStartBattle(void) } } -static void sub_80108C4(void) +static void PrepareOwnMultiPartnerBuffer(void) { s32 i, j; u8 *nick, *cur; @@ -1083,7 +1096,7 @@ static void sub_80108C4(void) cur[j] = EOS; } } - memcpy(&gBattleStruct->field_184, gMultiPartnerParty, sizeof(gMultiPartnerParty)); + memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, sizeof(gMultiPartnerParty)); } static void CB2_PreInitMultiBattle(void) @@ -1107,8 +1120,8 @@ static void CB2_PreInitMultiBattle(void) case 0: if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished()) { - sub_80108C4(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, sizeof(gMultiPartnerParty)); + PrepareOwnMultiPartnerBuffer(); + SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); ++gBattleCommunication[MULTIUSE_STATE]; } break; @@ -1181,7 +1194,7 @@ static void CB2_HandleStartMultiBattle(void) ShowBg(1); ShowBg(2); ShowBg(3); - sub_80357C8(); + BattleInterfaceSetWindowPals(); gBattleCommunication[MULTIUSE_STATE] = 1; } if (gWirelessCommType) @@ -1192,11 +1205,12 @@ static void CB2_HandleStartMultiBattle(void) { if (IsLinkTaskFinished()) { - *(&gBattleStruct->field_184) = 1; - *(&gBattleStruct->field_185) = 2; - sub_800FFEC(); + // 0x201 + *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureLo) = 1; + *(&gBattleStruct->multiBuffer.multiPartnerEnigmaBerry.versionSignatureHi) = 2; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_184, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.multiPartnerEnigmaBerry, sizeof(gBattleStruct->multiBuffer.multiPartnerEnigmaBerry)); ++gBattleCommunication[MULTIUSE_STATE]; } if (gWirelessCommType) @@ -1207,7 +1221,7 @@ static void CB2_HandleStartMultiBattle(void) if ((GetBlockReceivedStatus() & 0xF) == 0xF) { ResetBlockReceivedFlags(); - sub_8010414(4, playerMultiplayerId); + LinkBattleComputeBattleTypeFlags(4, playerMultiplayerId); SetAllPlayersBerryData(); SetDeoxysStats(); memcpy(gDecompressionBuffer, gPlayerParty, sizeof(struct Pokemon) * 3); @@ -1383,7 +1397,7 @@ static void CB2_HandleStartMultiBattle(void) } break; case 11: - sub_800D30C(); + InitBtlControllers(); ++gBattleCommunication[MULTIUSE_STATE]; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1450,18 +1464,18 @@ static void CB2_QuitPokedudeBattle(void) } } -static void sub_80111EC(struct Sprite *sprite) +static void SpriteCB_UnusedDebugSprite(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->callback = sub_80111FC; + sprite->callback = SpriteCB_UnusedDebugSprite_Step; } -static void sub_80111FC(struct Sprite *sprite) +static void SpriteCB_UnusedDebugSprite_Step(struct Sprite *sprite) { switch (sprite->data[0]) { case 0: - gUnknown_2022BC0 = AllocZeroed(0x1000); + sUnknownDebugSpriteDataBuffer = AllocZeroed(0x1000); ++sprite->data[0]; sprite->data[1] = 0; sprite->data[2] = 0x281; @@ -1478,8 +1492,8 @@ static void sub_80111FC(struct Sprite *sprite) r0 = sprite->data[2] - sprite->data[3] * 32; for (i = 0; i <= 29; i += 2) { - *(&gUnknown_2022BC0[r2] + i) = 0x3D; - *(&gUnknown_2022BC0[r0] + i) = 0x3D; + *(&sUnknownDebugSpriteDataBuffer[r2] + i) = 0x3D; + *(&sUnknownDebugSpriteDataBuffer[r0] + i) = 0x3D; } if (++sprite->data[3] == 21) { @@ -1491,10 +1505,10 @@ static void sub_80111FC(struct Sprite *sprite) case 2: if (--sprite->data[1] == 20) { - if (gUnknown_2022BC0 != NULL) + if (sUnknownDebugSpriteDataBuffer != NULL) { - memset(gUnknown_2022BC0, 0, 0x1000); - FREE_AND_SET_NULL(gUnknown_2022BC0); + memset(sUnknownDebugSpriteDataBuffer, 0, 0x1000); + FREE_AND_SET_NULL(sUnknownDebugSpriteDataBuffer); } SetMainCallback2(CB2_InitBattle); } @@ -1593,7 +1607,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) } // not used -static void sub_80116CC(void) +UNUSED static void unused_80116CC(void) { if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F) REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512; @@ -1621,11 +1635,11 @@ void VBlankCB_Battle(void) ScanlineEffect_InitHBlankDmaTransfer(); } -void nullsub_9(struct Sprite *sprite) +void SpriteCB_VsLetterDummy(struct Sprite *sprite) { } -static void sub_80117BC(struct Sprite *sprite) +static void SpriteCB_VsLetter(struct Sprite *sprite) { if (sprite->data[0] != 0) sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); @@ -1641,14 +1655,14 @@ static void sub_80117BC(struct Sprite *sprite) } } -void sub_801182C(struct Sprite *sprite) +void SpriteCB_VsLetterInit(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); - sprite->callback = sub_80117BC; + sprite->callback = SpriteCB_VsLetter; PlaySE(SE_MUGSHOT); } -static void sub_801184C(u8 taskId) +static void BufferPartyVsScreenHealth_AtEnd(u8 taskId) { struct Pokemon *party1 = NULL; struct Pokemon *party2 = NULL; @@ -1723,7 +1737,7 @@ static void sub_801184C(u8 taskId) gTasks[taskId].data[4] = r7; } -void sub_8011A1C(void) +void CB2_InitEndLinkBattle(void) { s32 i; u8 taskId; @@ -1773,21 +1787,21 @@ void sub_8011A1C(void) gTasks[taskId].data[1] = 270; gTasks[taskId].data[2] = 90; gTasks[taskId].data[5] = 1; - sub_801184C(taskId); - SetMainCallback2(sub_8011B94); + BufferPartyVsScreenHealth_AtEnd(taskId); + SetMainCallback2(CB2_EndLinkBattle); gBattleCommunication[MULTIUSE_STATE] = 0; } -static void sub_8011B94(void) +static void CB2_EndLinkBattle(void) { - sub_8011BB0(); + EndLinkBattleInSteps(); AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); RunTasks(); } -static void sub_8011BB0(void) +static void EndLinkBattleInSteps(void) { s32 i; @@ -1868,7 +1882,7 @@ static void TryCorrectShedinjaLanguage(struct Pokemon *mon) #define sBattler data[0] #define sSpeciesId data[2] -void SpriteCB_WildMon(struct Sprite *sprite) +void SpriteCB_EnemyMon(struct Sprite *sprite) { sprite->callback = SpriteCB_MoveWildMonToRight; StartSpriteAnimIfDifferent(sprite, 0); @@ -1892,7 +1906,7 @@ static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite) { if (sprite->animEnded) { - sub_804BD94(sprite->sBattler); + StartHealthboxSlideIn(sprite->sBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[sprite->sBattler]); sprite->callback = SpriteCallbackDummy2; StartSpriteAnimIfDifferent(sprite, 0); @@ -1905,7 +1919,7 @@ void SpriteCallbackDummy2(struct Sprite *sprite) } // not used -static void sub_8011E28(struct Sprite *sprite) +UNUSED static void sub_8011E28(struct Sprite *sprite) { sprite->data[3] = 6; sprite->data[4] = 1; @@ -1994,14 +2008,14 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite) } } -void sub_8012044(struct Sprite *sprite) +void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite) { sprite->data[3] = 8; sprite->data[4] = sprite->invisible; - sprite->callback = sub_8012060; + sprite->callback = SpriteCb_BlinkVisible; } -static void sub_8012060(struct Sprite *sprite) +static void SpriteCb_BlinkVisible(struct Sprite *sprite) { --sprite->data[3]; if (sprite->data[3] == 0) @@ -2011,14 +2025,14 @@ static void sub_8012060(struct Sprite *sprite) } } -void sub_8012098(struct Sprite *sprite) +void SpriteCb_HideAsMoveTarget(struct Sprite *sprite) { sprite->invisible = sprite->data[4]; sprite->data[4] = FALSE; sprite->callback = SpriteCallbackDummy2; } -void sub_80120C4(struct Sprite *sprite) +void SpriteCB_AllyMon(struct Sprite *sprite) { sprite->callback = oac_poke_ally_; } @@ -2139,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; } @@ -2983,7 +2997,7 @@ u8 IsRunningFromBattleImpossible(void) return BATTLE_RUN_SUCCESS; } -void sub_8013F6C(u8 battler) +void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler) { s32 i; u8 r4, r1; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 90ee8e561..dfbab5c15 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -4791,7 +4791,7 @@ static void atk51_switchhandleorder(void) break; case 1: if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - sub_8013F6C(gActiveBattler); + UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler); break; case 2: gBattleCommunication[0] = gBattleBufferB[gActiveBattler][1]; @@ -4808,7 +4808,7 @@ static void atk51_switchhandleorder(void) } else { - sub_8013F6C(gActiveBattler); + UpdatePartyOwnerOnSwitch_NonMulti(gActiveBattler); } PREPARE_SPECIES_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].species) PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, gActiveBattler, gBattleBufferB[gActiveBattler][1]) @@ -6704,7 +6704,7 @@ static void atk8F_forcerandomswitch(void) } *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; if (!IsMultiBattle()) - sub_8013F6C(gBattlerTarget); + UpdatePartyOwnerOnSwitch_NonMulti(gBattlerTarget); SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); SwitchPartyOrderLinkMulti(gBattlerTarget ^ 2, i, 1); } 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/data.c b/src/data.c index 6b4e113af..3f6a340eb 100644 --- a/src/data.c +++ b/src/data.c @@ -8,7 +8,7 @@ #include "constants/battle_ai.h" #include "constants/trainer_classes.h" -const struct SpriteFrameImage gUnknown_8234698[] = +const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[] = { gHeap + 0x8000, 0x800, gHeap + 0x8800, 0x800, @@ -16,7 +16,7 @@ const struct SpriteFrameImage gUnknown_8234698[] = gHeap + 0x9800, 0x800, }; -const struct SpriteFrameImage gUnknown_82346B8[] = +const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[] = { gHeap + 0xA000, 0x800, gHeap + 0xA800, 0x800, @@ -24,7 +24,7 @@ const struct SpriteFrameImage gUnknown_82346B8[] = gHeap + 0xB800, 0x800, }; -const struct SpriteFrameImage gUnknown_82346D8[] = +const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[] = { gHeap + 0xC000, 0x800, gHeap + 0xC800, 0x800, @@ -32,7 +32,7 @@ const struct SpriteFrameImage gUnknown_82346D8[] = gHeap + 0xD800, 0x800, }; -const struct SpriteFrameImage gUnknown_82346F8[] = +const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[] = { gHeap + 0xE000, 0x800, gHeap + 0xE800, 0x800, @@ -168,7 +168,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_82348B0[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[] = +const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[] = { gSpriteAffineAnim_82347F8, gSpriteAffineAnim_8234818, @@ -208,7 +208,7 @@ static const union AffineAnimCmd gSpriteAffineAnim_8234934[] = AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[] = +const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[] = { gSpriteAffineAnim_82347F8, gSpriteAffineAnim_8234818, 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); } @@ -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/pokeball.c b/src/pokeball.c index 69bab3e90..cccd88dd7 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -1167,7 +1167,7 @@ void DestroySpriteAndFreeResources2(struct Sprite *sprite) DestroySpriteAndFreeResources(sprite); } -void sub_804BD94(u8 battlerId) +void StartHealthboxSlideIn(u8 battlerId) { struct Sprite *healthboxSprite = &gSprites[gHealthboxSpriteIds[battlerId]]; diff --git a/src/pokemon.c b/src/pokemon.c index b523c4cb9..16220d138 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1472,101 +1472,101 @@ static const u8 sHoldEffectToType[][2] = {HOLD_EFFECT_NORMAL_POWER, TYPE_NORMAL}, }; -const struct SpriteTemplate gUnknown_825DEF0[] = +const struct SpriteTemplate gSpriteTemplates_Battlers[] = { - { + [B_POSITION_PLAYER_LEFT] = { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, - .images = gUnknown_8234698, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .images = gSpriteImages_BattlerPlayerLeft, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, - { + [B_POSITION_OPPONENT_LEFT] = { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F010, + .oam = &gOamData_BattlerOpponent, .anims = NULL, - .images = gUnknown_82346B8, - .affineAnims = gSpriteAffineAnimTable_8234944, - .callback = SpriteCB_WildMon, + .images = gSpriteImages_BattlerOpponentLeft, + .affineAnims = gSpriteAffineAnimTable_BattlerOpponent, + .callback = SpriteCB_EnemyMon, }, - { + [B_POSITION_PLAYER_RIGHT] = { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, - .images = gUnknown_82346D8, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .images = gSpriteImages_BattlerPlayerRight, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, - { + [B_POSITION_OPPONENT_RIGHT] = { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F010, + .oam = &gOamData_BattlerOpponent, .anims = NULL, - .images = gUnknown_82346F8, - .affineAnims = gSpriteAffineAnimTable_8234944, - .callback = SpriteCB_WildMon, + .images = gSpriteImages_BattlerOpponentRight, + .affineAnims = gSpriteAffineAnimTable_BattlerOpponent, + .callback = SpriteCB_EnemyMon, }, }; -const struct SpriteTemplate gUnknown_825DF50[] = +const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = { { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Red, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Leaf, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_RSBrendan, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_RSMay, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Pokedude, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, { .tileTag = SPRITE_INVALID_TAG, .paletteTag = 0, - .oam = &gOamData_824F018, + .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_OldMan, - .affineAnims = gSpriteAffineAnimTable_82348C8, - .callback = sub_80120C4, + .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .callback = SpriteCB_AllyMon, }, }; @@ -2716,7 +2716,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) if (battlerPosition >= 4) battlerPosition = 0; - gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition]; + gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition]; } } gMultiuseSpriteTemplate.paletteTag = speciesTag; @@ -2728,7 +2728,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gUnknown_825DF50[trainerSpriteId]; + gMultiuseSpriteTemplate = gSpriteTemplates_TrainerBackpics[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else @@ -2736,7 +2736,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit if (gMonSpritesGfxPtr != NULL) gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; else - gMultiuseSpriteTemplate = gUnknown_825DEF0[battlerPosition]; + gMultiuseSpriteTemplate = gSpriteTemplates_Battlers[battlerPosition]; gMultiuseSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[trainerSpriteId]; } } @@ -6081,7 +6081,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc { for (i = 0; i < (s8)structPtr->spriteCount; ++i) { - structPtr->templates[i] = gUnknown_825DEF0[i]; + structPtr->templates[i] = gSpriteTemplates_Battlers[i]; for (j = 0; j < structPtr->frameCount; ++j) structPtr->frameImages[i * structPtr->frameCount + j].data = &structPtr->bufferPtrs[i][j * 0x800]; structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->frameCount]; @@ -6089,7 +6089,7 @@ static void OakSpeechNidoranFSetupTemplate(struct OakSpeechNidoranFStruct *struc } else { - const struct SpriteTemplate *template = &gUnknown_825DEF0[battlePosition]; + const struct SpriteTemplate *template = &gSpriteTemplates_Battlers[battlePosition]; structPtr->templates[0] = *template; for (j = 0; j < structPtr->frameCount; ++j) 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/reshow_battle_screen.c b/src/reshow_battle_screen.c index c65169710..e21392f9d 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -10,7 +10,7 @@ #include "battle_controllers.h" static void CB2_ReshowBattleScreenAfterMenu(void); -static void sub_8077AAC(void); +static void ReshowBattleScreen_TurnOnDisplay(void); static bool8 LoadBattlerSpriteGfx(u8 battlerId); static void CreateBattlerSprite(u8 battlerId); static void CreateHealthboxSprite(u8 battlerId); @@ -113,35 +113,35 @@ static void CB2_ReshowBattleScreenAfterMenu(void) if (!LoadBattlerSpriteGfx(2)) --gBattleScripting.reshowMainState; break; - case 0xA: + case 10: if (!LoadBattlerSpriteGfx(3)) --gBattleScripting.reshowMainState; break; - case 0xB: + case 11: CreateBattlerSprite(0); break; - case 0xC: + case 12: CreateBattlerSprite(1); break; - case 0xD: + case 13: CreateBattlerSprite(2); break; - case 0xE: + case 14: CreateBattlerSprite(3); break; - case 0xF: + case 15: CreateHealthboxSprite(0); break; - case 0x10: + case 16: CreateHealthboxSprite(1); break; - case 0x11: + case 17: CreateHealthboxSprite(2); break; - case 0x12: + case 18: CreateHealthboxSprite(3); break; - case 0x13: + case 19: LoadAndCreateEnemyShadowSprites(); opponentBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[opponentBattler]], MON_DATA_SPECIES); @@ -159,13 +159,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void) CreateWirelessStatusIndicatorSprite(0, 0); } break; - case 0x14: + case 20: SetVBlankCallback(VBlankCB_Battle); - sub_8077AAC(); + ReshowBattleScreen_TurnOnDisplay(); BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1); gPaletteFade.bufferTransferDisabled = 0; SetMainCallback2(BattleMainCB2); - sub_80357C8(); + BattleInterfaceSetWindowPals(); break; default: break; @@ -173,7 +173,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void) ++gBattleScripting.reshowMainState; } -static void sub_8077AAC(void) +static void ReshowBattleScreen_TurnOnDisplay(void) { EnableInterrupts(INTR_FLAG_VBLANK); SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -202,9 +202,9 @@ static bool8 LoadBattlerSpriteGfx(u8 battler) BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler); + DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, battler); else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(5, battler); + DecompressTrainerBackPalette(BACK_PIC_OLDMAN, battler); else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler); else 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) { |