diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-08-06 12:02:20 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-08-09 23:02:04 -0500 |
commit | 3940d36755da01324850b179c674fb36522ed71e (patch) | |
tree | 0a05cb69627a37eea81c3bd316d0415e3e87aeb8 /src | |
parent | fce8a1b817d2033d2203c341dfa12d1115f564ca (diff) |
Label ball animations
Diffstat (limited to 'src')
-rwxr-xr-x | src/battle/battle_anim_813F0F4.c | 140 | ||||
-rw-r--r-- | src/battle/battle_controller_linkopponent.c | 4 | ||||
-rw-r--r-- | src/battle/battle_controller_linkpartner.c | 4 | ||||
-rw-r--r-- | src/battle/battle_controller_opponent.c | 4 | ||||
-rw-r--r-- | src/battle/battle_controller_player.c | 4 | ||||
-rw-r--r-- | src/battle/battle_controller_wally.c | 4 | ||||
-rw-r--r-- | src/battle/pokeball.c | 181 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 2 |
8 files changed, 177 insertions, 166 deletions
diff --git a/src/battle/battle_anim_813F0F4.c b/src/battle/battle_anim_813F0F4.c index 219395baf..f112c59aa 100755 --- a/src/battle/battle_anim_813F0F4.c +++ b/src/battle/battle_anim_813F0F4.c @@ -36,13 +36,13 @@ extern u8 gEffectBank; extern const u8 gUnknown_08D2EE48[]; extern const u8 gUnknown_08D2EDFC[]; extern const u16 gUnknown_08D2E150[]; -extern const struct CompressedSpritePalette gUnknown_0840B2B8[]; -extern const struct SpriteTemplate gSpriteTemplate_840B3B4[]; +extern const struct CompressedSpritePalette gBallOpenParticlePalettes[]; +extern const struct SpriteTemplate gSpriteTemplates_840B3B4[]; extern const struct SpriteTemplate gSpriteTemplate_8402500; extern const struct SpriteTemplate gBattleAnimSpriteTemplate_84024E8; -extern const u8 gUnknown_0840B378[]; -extern const struct CompressedSpriteSheet gUnknown_0840B258[]; -extern const TaskFunc gUnknown_0840B384[]; +extern const u8 gBallOpenParticleAnimNums[]; +extern const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[]; +extern const TaskFunc gBallOpenParticleAnimationFuncs[]; extern const u16 gUnknown_0840B4D4[]; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; @@ -69,12 +69,12 @@ static void sub_81404E4(struct Sprite *sprite); static void sub_81405C8(struct Sprite *sprite); static void sub_81406BC(struct Sprite *sprite); static void sub_81407F4(struct Sprite *sprite); -static void sub_8140A08(struct Sprite *sprite); -static void sub_8140A28(struct Sprite *sprite); -static void sub_8141294(struct Sprite *sprite); -static void sub_8140ECC(struct Sprite *sprite); -static void sub_8140FF8(struct Sprite *sprite); -static void sub_8141230(struct Sprite *sprite); +static void PokeBallOpenParticleAnimation_Step1(struct Sprite *sprite); +static void PokeBallOpenParticleAnimation_Step2(struct Sprite *sprite); +static void DestroyBallOpenAnimationParticle(struct Sprite *sprite); +static void FanOutBallOpenParticles_Step1(struct Sprite *sprite); +static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *sprite); +static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite); static void sub_81413DC(u8 taskId); static void sub_814146C(u8 taskId); static void sub_81414BC(u8 taskId); @@ -338,7 +338,7 @@ void sub_813F844(u8 taskId) y = GetBattlerSpriteCoord(gAnimBankAttacker, 1); priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; - gTasks[taskId].data[10] = sub_814086C(x, y + 32, priority, subpriority, ballIndex); + gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballIndex); selectedPalettes = sub_80791A8(1, 0, 0, 0, 0, 0, 0); gTasks[taskId].data[11] = sub_8141314(0, gAnimBankAttacker, selectedPalettes, ballIndex); gTasks[taskId].data[0]++; @@ -353,14 +353,14 @@ void sub_813F844(u8 taskId) void sub_813F990(u8 taskId) { u8 ballIndex = ball_number_to_ball_processing_index(gLastUsedItem); - sub_80478DC(ballIndex); + LoadBallGraphics(ballIndex); DestroyAnimVisualTask(taskId); } void sub_813F9B8(u8 taskId) { u8 ballIndex = ball_number_to_ball_processing_index(gLastUsedItem); - sub_804794C(ballIndex); + FreeBallGraphics(ballIndex); DestroyAnimVisualTask(taskId); } @@ -526,7 +526,7 @@ static void sub_813FDC0(struct Sprite *sprite) if (ballIndex2 < 0) return; - sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballIndex); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballIndex); sub_8141314(0, gAnimBankTarget, 14, ballIndex); } } @@ -946,7 +946,7 @@ static void sub_81405F4(struct Sprite *sprite) if (ballIndex2 < 0) goto LABEL; - sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballIndex); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballIndex); sub_8141314(1, gAnimBankTarget, 14, ballIndex); LABEL: @@ -1090,17 +1090,17 @@ _08140868: .4byte gDoingBattleAnim\n\ } #endif // NONMATCHING -u8 sub_814086C(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballIndex) +u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballIndex) { u8 taskId; - if (GetSpriteTileStartByTag(gUnknown_0840B258[ballIndex].tag) == 0xFFFF) + if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballIndex].tag) == 0xFFFF) { - LoadCompressedObjectPic(&gUnknown_0840B258[ballIndex]); - LoadCompressedObjectPalette(&gUnknown_0840B2B8[ballIndex]); + LoadCompressedObjectPic(&gBallOpenParticleSpritesheets[ballIndex]); + LoadCompressedObjectPalette(&gBallOpenParticlePalettes[ballIndex]); } - taskId = CreateTask(gUnknown_0840B384[ballIndex], 5); + taskId = CreateTask(gBallOpenParticleAnimationFuncs[ballIndex], 5); gTasks[taskId].data[1] = x; gTasks[taskId].data[2] = y; gTasks[taskId].data[3] = priority; @@ -1113,7 +1113,7 @@ u8 sub_814086C(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballIndex) return taskId; } -void sub_8140930(u8 taskId) +void PokeBallOpenParticleAnimation(u8 taskId) { u8 spriteId; u8 x, y; @@ -1129,9 +1129,9 @@ void sub_8140930(u8 taskId) priority = gTasks[taskId].data[3]; subpriority = gTasks[taskId].data[4]; - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140A08; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; var0 = (u8)gTasks[taskId].data[0]; @@ -1150,24 +1150,24 @@ void sub_8140930(u8 taskId) gTasks[taskId].data[0]++; } -static void sub_8140A08(struct Sprite *sprite) +static void PokeBallOpenParticleAnimation_Step1(struct Sprite *sprite) { if (sprite->data[1] == 0) - sprite->callback = sub_8140A28; + sprite->callback = PokeBallOpenParticleAnimation_Step2; else sprite->data[1]--; } -static void sub_8140A28(struct Sprite *sprite) +static void PokeBallOpenParticleAnimation_Step2(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); sprite->pos2.y = Cos(sprite->data[0], sprite->data[1]); sprite->data[1] += 2; if (sprite->data[1] == 50) - sub_8141294(sprite); + DestroyBallOpenAnimationParticle(sprite); } -void sub_8140A64(u8 taskId) +void TimerBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1181,9 +1181,9 @@ void sub_8140A64(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; gSprites[spriteId].data[4] = 10; @@ -1195,7 +1195,7 @@ void sub_8140A64(u8 taskId) DestroyTask(taskId); } -void sub_8140B3C(u8 taskId) +void DiveBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1209,9 +1209,9 @@ void sub_8140B3C(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; gSprites[spriteId].data[4] = 10; @@ -1223,7 +1223,7 @@ void sub_8140B3C(u8 taskId) DestroyTask(taskId); } -void sub_8140C14(u8 taskId) +void SafariBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1237,9 +1237,9 @@ void sub_8140C14(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; gSprites[spriteId].data[4] = 4; @@ -1251,7 +1251,7 @@ void sub_8140C14(u8 taskId) DestroyTask(taskId); } -void sub_8140CE8(u8 taskId) +void UltraBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1265,9 +1265,9 @@ void sub_8140CE8(u8 taskId) for (i = 0; i < 10; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 25; gSprites[spriteId].data[4] = 5; @@ -1279,7 +1279,7 @@ void sub_8140CE8(u8 taskId) DestroyTask(taskId); } -void sub_8140DC4(u8 taskId) +void GreatBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1299,9 +1299,9 @@ void sub_8140DC4(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; gSprites[spriteId].data[4] = 8; @@ -1318,7 +1318,7 @@ void sub_8140DC4(u8 taskId) } } -static void sub_8140ECC(struct Sprite *sprite) +static void FanOutBallOpenParticles_Step1(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); sprite->pos2.y = Cos(sprite->data[0], sprite->data[2]); @@ -1326,10 +1326,10 @@ static void sub_8140ECC(struct Sprite *sprite) sprite->data[1] += sprite->data[5]; sprite->data[2] += sprite->data[6]; if (++sprite->data[3] == 51) - sub_8141294(sprite); + DestroyBallOpenAnimationParticle(sprite); } -void sub_8140F24(u8 taskId) +void RepeatBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1343,9 +1343,9 @@ void sub_8140F24(u8 taskId) for (i = 0; i < 12; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140FF8; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 21; } @@ -1354,7 +1354,7 @@ void sub_8140F24(u8 taskId) DestroyTask(taskId); } -static void sub_8140FF8(struct Sprite *sprite) +static void RepeatBallOpenParticleAnimation_Step1(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0], sprite->data[2])); @@ -1362,10 +1362,10 @@ static void sub_8140FF8(struct Sprite *sprite) sprite->data[1]++; sprite->data[2]++; if (++sprite->data[3] == 51) - sub_8141294(sprite); + DestroyBallOpenAnimationParticle(sprite); } -void sub_8141058(u8 taskId) +void MasterBallOpenParticleAnimation(u8 taskId) { u8 i, j; u8 x, y, priority, subpriority, ballIndex; @@ -1381,9 +1381,9 @@ void sub_8141058(u8 taskId) { for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8140ECC; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; gSprites[spriteId].data[4] = 8; @@ -1405,7 +1405,7 @@ void sub_8141058(u8 taskId) DestroyTask(taskId); } -void sub_8141164(u8 taskId) +void PremierBallOpenParticleAnimation(u8 taskId) { u8 i; u8 x, y, priority, subpriority, ballIndex; @@ -1419,9 +1419,9 @@ void sub_8141164(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gSpriteTemplate_840B3B4[ballIndex], x, y, subpriority); - StartSpriteAnim(&gSprites[spriteId], gUnknown_0840B378[ballIndex]); - gSprites[spriteId].callback = sub_8141230; + spriteId = CreateSprite(&gSpriteTemplates_840B3B4[ballIndex], x, y, subpriority); + StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballIndex]); + gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; } @@ -1430,7 +1430,7 @@ void sub_8141164(u8 taskId) DestroyTask(taskId); } -static void sub_8141230(struct Sprite *sprite) +static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[0], sprite->data[1]); sprite->pos2.y = Cos(sprite->data[0], Sin(sprite->data[0] & 0x3F, sprite->data[2])); @@ -1438,10 +1438,10 @@ static void sub_8141230(struct Sprite *sprite) sprite->data[1]++; sprite->data[2]++; if (++sprite->data[3] == 51) - sub_8141294(sprite); + DestroyBallOpenAnimationParticle(sprite); } -static void sub_8141294(struct Sprite *sprite) +static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) { int i; int temp; @@ -1460,8 +1460,8 @@ static void sub_8141294(struct Sprite *sprite) { for (i = 0; i < 12; i++) { - FreeSpriteTilesByTag(gUnknown_0840B258[i].tag); - FreeSpritePaletteByTag(gUnknown_0840B2B8[i].tag); + FreeSpriteTilesByTag(gBallOpenParticleSpritesheets[i].tag); + FreeSpritePaletteByTag(gBallOpenParticlePalettes[i].tag); } DestroySprite(sprite); diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c index 8ca3d160a..f9c8fe7d1 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle/battle_controller_linkopponent.c @@ -62,7 +62,7 @@ extern void sub_8037A74(void); extern void sub_8032984(u8, u16); extern void sub_8037E30(void); extern void sub_80312F0(struct Sprite *); -extern u8 sub_8046400(); +extern u8 StartSendOutMonAnimation(); extern void sub_8032A08(); extern void sub_8043DB0(); extern void sub_8037BBC(void); @@ -1195,7 +1195,7 @@ void sub_8039430(u8 a, u8 b) StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); gSprites[gBankSpriteIds[a]].invisible = TRUE; gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFE); + gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFE); } void LinkOpponentHandleReturnPokeToBall(void) diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c index dff4edfc1..38514bfb5 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle/battle_controller_linkpartner.c @@ -79,7 +79,7 @@ extern void sub_80105EC(struct Sprite *); extern s32 sub_803FC34(u16); extern void LoadPlayerTrainerBankSprite(); extern void sub_80313A0(struct Sprite *); -extern u8 sub_8046400(); +extern u8 StartSendOutMonAnimation(); extern void sub_80312F0(struct Sprite *); extern u8 CreateInvisibleSpriteWithCallback(); extern void BattleLoadPlayerMonSprite(); @@ -1143,7 +1143,7 @@ void sub_811F864(u8 a, u8 b) StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); gSprites[gBankSpriteIds[a]].invisible = TRUE; gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFF); + gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFF); } void LinkPartnerHandleReturnPokeToBall(void) diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index ee313c098..a7e99900b 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -74,7 +74,7 @@ extern u8 GetBattlerPosition(u8); extern void sub_8032984(u8, u16); extern void sub_80333D4(void); extern void sub_80312F0(struct Sprite *); -extern u8 sub_8046400(); +extern u8 StartSendOutMonAnimation(); extern void sub_8032A08(); extern void sub_8043DB0(); extern void sub_8033160(void); @@ -1168,7 +1168,7 @@ void sub_803495C(u8 a, u8 b) StartSpriteAnim(&gSprites[gBankSpriteIds[a]], gBattleMonForms[a]); gSprites[gBankSpriteIds[a]].invisible = TRUE; gSprites[gBankSpriteIds[a]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0300434C[a]].data[0] = sub_8046400(0, 0xFE); + gSprites[gUnknown_0300434C[a]].data[0] = StartSendOutMonAnimation(0, 0xFE); } void OpponentHandleReturnPokeToBall(void) diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 654a2c195..de8b1579b 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -126,7 +126,7 @@ extern void sub_802DEAC(void); extern void sub_80312F0(struct Sprite *); extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); -extern u8 sub_8046400(); +extern u8 StartSendOutMonAnimation(); extern void sub_802D798(void); extern void bx_0802E404(void); extern u8 gActiveBattler; @@ -2523,7 +2523,7 @@ void sub_802F934(u8 bank, u8 b) StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0300434C[bank]].data[0] = sub_8046400(0, 0xFF); + gSprites[gUnknown_0300434C[bank]].data[0] = StartSendOutMonAnimation(0, 0xFF); } void PlayerHandleReturnPokeToBall(void) diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index 312ef9d12..a7ce7d27d 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -88,7 +88,7 @@ extern void oamt_add_pos2_onto_pos1(); extern void StartAnimLinearTranslation(struct Sprite *); extern void sub_8030E38(struct Sprite *); extern void StoreSpriteCallbackInData(); -extern u8 sub_8046400(); +extern u8 StartSendOutMonAnimation(); extern u8 GetBattlerSpriteCoord(); extern u8 sub_8077F68(); extern u8 sub_8079E90(); @@ -1518,7 +1518,7 @@ void sub_81398BC(u8 bank) StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_0300434C[bank]].data[0] = sub_8046400(0, 0xFF); + gSprites[gUnknown_0300434C[bank]].data[0] = StartSendOutMonAnimation(0, 0xFF); } void sub_8139A2C(u8 taskId) diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index ac15246d6..abfdf2c3d 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -300,7 +300,7 @@ const struct SpriteTemplate gBallSpriteTemplates[] = extern void InitAnimArcTranslation(); extern bool8 TranslateAnimArc(struct Sprite *); -static void sub_8046464(u8); +static void SendOutMonAnimation(u8); static void sub_80466E8(struct Sprite *); static void sub_80466F4(struct Sprite *); static void sub_8046760(struct Sprite *); @@ -312,10 +312,10 @@ static void sub_8046C78(struct Sprite *); static void sub_8046E7C(struct Sprite *); static void sub_8046E9C(struct Sprite *); static void sub_8046FBC(struct Sprite *); -static void sub_8047074(struct Sprite *); -static void sub_80470C4(struct Sprite *); -static void sub_8047230(struct Sprite *); -static void sub_8047254(struct Sprite *); +static void SendOutPlayerMonAnimation_Step0(struct Sprite *); +static void SendOutPlayerMonAnimation_Step1(struct Sprite *); +static void SendOutMonAnimation_Delay(struct Sprite *); +static void SendOutOpponentMonAnimation_Step0(struct Sprite *); static void sub_80473D0(struct Sprite *); static void sub_804748C(struct Sprite *); static void sub_8047638(struct Sprite *); @@ -324,28 +324,28 @@ static void sub_8047754(struct Sprite *); static void sub_804780C(struct Sprite *); static void sub_8047830(struct Sprite *); static void oamc_804BEB4(struct Sprite *); -static u16 sub_8047978(u8); +static u16 GetBattlerBall(u8); -u8 sub_8046400(u16 a, u8 b) +u8 StartSendOutMonAnimation(u16 a, u8 side) { u8 taskId; gDoingBattleAnim = 1; ewram17810[gActiveBattler].unk0_3 = 1; - taskId = CreateTask(sub_8046464, 5); + taskId = CreateTask(SendOutMonAnimation, 5); gTasks[taskId].data[1] = a; - gTasks[taskId].data[2] = b; + gTasks[taskId].data[2] = side; gTasks[taskId].data[3] = gActiveBattler; return 0; } -static void sub_8046464(u8 taskId) +static void SendOutMonAnimation(u8 taskId) { - bool8 sp0 = FALSE; - u16 r8; - u8 r5; + bool8 debug = FALSE; + u16 side; + u8 battler; u16 ball; - u8 r4; + u8 ballIndex; u8 spriteId; if (gTasks[taskId].data[0] == 0) @@ -353,44 +353,49 @@ static void sub_8046464(u8 taskId) gTasks[taskId].data[0]++; return; } - r8 = gTasks[taskId].data[2]; - r5 = gTasks[taskId].data[3]; - if (GetBattlerSide(r5) != 0) - ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); + + side = gTasks[taskId].data[2]; + battler = gTasks[taskId].data[3]; + if (GetBattlerSide(battler) != B_SIDE_PLAYER) + ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_POKEBALL); else - ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[r5]], MON_DATA_POKEBALL); - r4 = ball_number_to_ball_processing_index(ball); - sub_80478DC(r4); - spriteId = CreateSprite(&gBallSpriteTemplates[r4], 32, 80, 0x1D); + ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_POKEBALL); + + ballIndex = ball_number_to_ball_processing_index(ball); + LoadBallGraphics(ballIndex); + spriteId = CreateSprite(&gBallSpriteTemplates[ballIndex], 32, 80, 29); gSprites[spriteId].data[0] = 0x80; gSprites[spriteId].data[1] = 0; - gSprites[spriteId].data[7] = r8; - switch (r8) + gSprites[spriteId].data[7] = side; + + switch (side) { - case 0xFF: - gBankTarget = r5; + case 0xFF: // Player's side + gBankTarget = battler; gSprites[spriteId].pos1.x = 24; gSprites[spriteId].pos1.y = 68; - gSprites[spriteId].callback = sub_8047074; + gSprites[spriteId].callback = SendOutPlayerMonAnimation_Step0; break; - case 0xFE: - gSprites[spriteId].pos1.x = GetBattlerSpriteCoord(r5, 0); - gSprites[spriteId].pos1.y = GetBattlerSpriteCoord(r5, 1) + 24; - gBankTarget = r5; + case 0xFE: // Opponent's side + gSprites[spriteId].pos1.x = GetBattlerSpriteCoord(battler, 0); + gSprites[spriteId].pos1.y = GetBattlerSpriteCoord(battler, 1) + 24; + gBankTarget = battler; gSprites[spriteId].data[0] = 0; - gSprites[spriteId].callback = sub_8047254; + gSprites[spriteId].callback = SendOutOpponentMonAnimation_Step0; break; default: gBankTarget = GetBattlerAtPosition(1); - sp0 = TRUE; + debug = TRUE; break; } + gSprites[spriteId].data[6] = gBankTarget; - if (!sp0) + if (!debug) { DestroyTask(taskId); return; } + gSprites[spriteId].data[0] = 0x22; gSprites[spriteId].data[2] = GetBattlerSpriteCoord(gBankTarget, 0); gSprites[spriteId].data[4] = GetBattlerSpriteCoord(gBankTarget, 1) - 16; @@ -418,8 +423,8 @@ static void objc_0804ABD4(struct Sprite *sprite) sprite->pos2.x = 0; sprite->pos2.y = 0; sprite->data[5] = 0; - r4 = ball_number_to_ball_processing_index(sub_8047978(r5)); - sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4); + r4 = ball_number_to_ball_processing_index(GetBattlerBall(r5)); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4); sprite->data[0] = sub_8141314(0, r5, 14, r4); sprite->data[6] = r5; sprite->data[7] = r8; @@ -693,34 +698,35 @@ static void sub_8046AD0(u8 taskId) static void sub_8046C78(struct Sprite *sprite) { - u8 r5 = sprite->data[6]; - u32 r4; // not sure of this type + int ballIndex; + u8 battler = sprite->data[6]; StartSpriteAnim(sprite, 1); - r4 = ball_number_to_ball_processing_index(sub_8047978(r5)); - sub_814086C(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, r4); - sprite->data[0] = sub_8141314(1, sprite->data[6], 14, r4); + ballIndex = ball_number_to_ball_processing_index(GetBattlerBall(battler)); + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballIndex); + sprite->data[0] = sub_8141314(1, sprite->data[6], 14, ballIndex); sprite->callback = sub_8046E9C; if (gMain.inBattle) { - struct Pokemon *pkmn; + struct Pokemon *mon; u16 species; - s8 r8; - u16 r4_2; + s8 cryPanning; + u16 cryBehavior; u8 taskId; - if (GetBattlerSide(r5) != 0) + if (GetBattlerSide(battler) != 0) { - pkmn = &gEnemyParty[gBattlerPartyIndexes[r5]]; - r8 = 25; + mon = &gEnemyParty[gBattlerPartyIndexes[battler]]; + cryPanning = 25; } else { - pkmn = &gPlayerParty[gBattlerPartyIndexes[r5]]; - r8 = -25; + mon = &gPlayerParty[gBattlerPartyIndexes[battler]]; + cryPanning = -25; } - species = GetMonData(pkmn, MON_DATA_SPECIES); - if ((r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) + + species = GetMonData(mon, MON_DATA_SPECIES); + if ((battler == GetBattlerAtPosition(0) || battler == GetBattlerAtPosition(1)) && IsDoubleBattle() && ewram17840.unk9_0) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -733,18 +739,21 @@ static void sub_8046C78(struct Sprite *sprite) m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); } } + if (!IsDoubleBattle() || !ewram17840.unk9_0) - r4_2 = 0; - else if (r5 == GetBattlerAtPosition(0) || r5 == GetBattlerAtPosition(1)) - r4_2 = 1; + cryBehavior = 0; + else if (battler == GetBattlerAtPosition(0) || battler == GetBattlerAtPosition(1)) + cryBehavior = 1; else - r4_2 = 2; + cryBehavior = 2; + taskId = CreateTask(sub_8046AD0, 3); gTasks[taskId].data[0] = species; - gTasks[taskId].data[1] = r8; - gTasks[taskId].data[2] = r4_2; + gTasks[taskId].data[1] = cryPanning; + gTasks[taskId].data[2] = cryBehavior; gTasks[taskId].data[15] = 0; } + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->data[6]]], 1); AnimateSprite(&gSprites[gBankSpriteIds[sprite->data[6]]]); gSprites[gBankSpriteIds[sprite->data[6]]].data[1] = 0x1000; @@ -795,7 +804,7 @@ static void sub_8046E9C(struct Sprite *sprite) if (r3 == 4) { for (i = 0; i < 12; i++) - sub_804794C(i); + FreeBallGraphics(i); } } } @@ -825,7 +834,7 @@ static void sub_8046FBC(struct Sprite *sprite) } } -static void sub_8047074(struct Sprite *sprite) +static void SendOutPlayerMonAnimation_Step0(struct Sprite *sprite) { sprite->data[0] = 25; sprite->data[2] = GetBattlerSpriteCoord(sprite->data[6], 2); @@ -833,12 +842,12 @@ static void sub_8047074(struct Sprite *sprite) sprite->data[5] = -30; sprite->oam.affineParam = sprite->data[6]; InitAnimArcTranslation(sprite); - sprite->callback = sub_80470C4; + sprite->callback = SendOutPlayerMonAnimation_Step1; } #define HIBYTE(x) (((x) >> 8) & 0xFF) -static void sub_80470C4(struct Sprite *sprite) +static void SendOutPlayerMonAnimation_Step1(struct Sprite *sprite) { u32 r6; u32 r7; @@ -855,6 +864,7 @@ static void sub_80470C4(struct Sprite *sprite) sprite->data[2] = ((sprite->data[2] / 3) & ~1) | r7; StartSpriteAffineAnim(sprite, 4); } + r4 = sprite->data[0]; TranslateAnimLinear(sprite); sprite->data[7] += sprite->data[6] / 3; @@ -864,6 +874,7 @@ static void sub_80470C4(struct Sprite *sprite) sprite->data[0] = r4; else sprite->data[0] = r4 - 1; + if (HIBYTE(sprite->data[7]) >= 80) { r6 = sprite->data[1] & 1; @@ -882,17 +893,17 @@ static void sub_80470C4(struct Sprite *sprite) sprite->pos2.x = 0; sprite->data[6] = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; - if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBattlerAtPosition(2)) - sprite->callback = sub_8047230; + if (IsDoubleBattle() && ewram17840.unk9_0 && sprite->data[6] == GetBattlerAtPosition(2)) + sprite->callback = SendOutMonAnimation_Delay; else sprite->callback = sub_8046C78; + StartSpriteAffineAnim(sprite, 0); } } } -static void sub_8047230(struct Sprite *sprite) +static void SendOutMonAnimation_Delay(struct Sprite *sprite) { if (sprite->data[0]++ > 24) { @@ -901,15 +912,14 @@ static void sub_8047230(struct Sprite *sprite) } } -static void sub_8047254(struct Sprite *sprite) +static void SendOutOpponentMonAnimation_Step0(struct Sprite *sprite) { sprite->data[0]++; if (sprite->data[0] > 15) { sprite->data[0] = 0; - if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBattlerAtPosition(3)) - sprite->callback = sub_8047230; + if (IsDoubleBattle() && ewram17840.unk9_0 && sprite->data[6] == GetBattlerAtPosition(3)) + sprite->callback = SendOutMonAnimation_Delay; else sprite->callback = sub_8046C78; } @@ -917,7 +927,7 @@ static void sub_8047254(struct Sprite *sprite) static u8 sub_80472B0(u8 a, u8 b, u8 c, u8 d) { - return sub_814086C(a, b, c, d, 0); + return AnimateBallOpenParticles(a, b, c, d, 0); } static u8 sub_80472D8(u8 a, u8 b, u32 c) @@ -1155,38 +1165,39 @@ static void oamc_804BEB4(struct Sprite *sprite) } } -void sub_80478DC(u8 a) +void LoadBallGraphics(u8 ballIndex) { - u16 var; + u16 tileStart; - if (GetSpriteTileStartByTag(sBallSpriteSheets[a].tag) == 0xFFFF) + if (GetSpriteTileStartByTag(sBallSpriteSheets[ballIndex].tag) == 0xFFFF) { - LoadCompressedObjectPic(&sBallSpriteSheets[a]); - LoadCompressedObjectPalette(&sBallSpritePalettes[a]); + LoadCompressedObjectPic(&sBallSpriteSheets[ballIndex]); + LoadCompressedObjectPalette(&sBallSpritePalettes[ballIndex]); } - switch (a) + + switch (ballIndex) { case 6: case 10: case 11: break; default: - var = GetSpriteTileStartByTag(sBallSpriteSheets[a].tag); - LZDecompressVram(gUnknown_08D030D0, (void *)(VRAM + 0x10100 + var * 32)); + tileStart = GetSpriteTileStartByTag(sBallSpriteSheets[ballIndex].tag); + LZDecompressVram(gUnknown_08D030D0, (void *)(VRAM + 0x10100 + tileStart * 32)); break; } } -void sub_804794C(u8 a) +void FreeBallGraphics(u8 ballIndex) { - FreeSpriteTilesByTag(sBallSpriteSheets[a].tag); - FreeSpritePaletteByTag(sBallSpritePalettes[a].tag); + FreeSpriteTilesByTag(sBallSpriteSheets[ballIndex].tag); + FreeSpritePaletteByTag(sBallSpritePalettes[ballIndex].tag); } -static u16 sub_8047978(u8 a) +static u16 GetBattlerBall(u8 battler) { - if (GetBattlerSide(a) == 0) - return GetMonData(&gPlayerParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); + if (GetBattlerSide(battler) == B_SIDE_PLAYER) + return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_POKEBALL); else - return GetMonData(&gEnemyParty[gBattlerPartyIndexes[a]], MON_DATA_POKEBALL); + return GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_POKEBALL); } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 2fd7cb1ca..fe908de03 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -4778,7 +4778,7 @@ static void sub_80A1DCC(struct Pokemon *mon) static void sub_80A1DE8(struct Pokemon *mon) { u8 ball = ball_number_to_ball_processing_index(GetMonData(mon, MON_DATA_POKEBALL)); - sub_80478DC(ball); + LoadBallGraphics(ball); pssData.ballSpriteId = CreateSprite(&gBallSpriteTemplates[ball], 6, 136, 0); gSprites[pssData.ballSpriteId].callback = SpriteCallbackDummy; |