diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-05-14 19:27:02 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-14 19:27:02 -0400 |
commit | 7b18204a905c8431d8fb58c9964bdc37b1e548ac (patch) | |
tree | 86884a6ed272d9a907b3d876db037a4af4e97f66 /src | |
parent | 992fba2bc534e6ceaa69938baada1427e03d83e1 (diff) | |
parent | ece62fa4ba8e385809deff330c7d7a0b348c10ae (diff) |
Merge branch 'master' into doc-inconnect
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim_effects_1.c | 4 | ||||
-rw-r--r-- | src/battle_anim_effects_2.c | 18 | ||||
-rw-r--r-- | src/battle_anim_effects_3.c | 4 | ||||
-rw-r--r-- | src/battle_anim_mon_movement.c | 10 | ||||
-rw-r--r-- | src/battle_anim_mons.c | 8 | ||||
-rw-r--r-- | src/battle_anim_sound_tasks.c | 14 | ||||
-rw-r--r-- | src/battle_anim_special.c | 24 | ||||
-rw-r--r-- | src/battle_anim_status_effects.c | 8 | ||||
-rw-r--r-- | src/battle_anim_utility_funcs.c | 26 | ||||
-rw-r--r-- | src/bg.c | 8 | ||||
-rw-r--r-- | src/bug.c | 86 | ||||
-rw-r--r-- | src/dark.c | 116 | ||||
-rw-r--r-- | src/dragon.c | 94 | ||||
-rw-r--r-- | src/electric.c | 248 | ||||
-rw-r--r-- | src/fighting.c | 236 | ||||
-rw-r--r-- | src/fire.c | 221 | ||||
-rw-r--r-- | src/flying.c | 192 | ||||
-rw-r--r-- | src/ghost.c | 116 | ||||
-rw-r--r-- | src/graphics.c | 13 | ||||
-rw-r--r-- | src/ground.c | 46 | ||||
-rw-r--r-- | src/help_message.c | 1 | ||||
-rw-r--r-- | src/help_system.c | 1 | ||||
-rw-r--r-- | src/ice.c | 213 | ||||
-rw-r--r-- | src/librfu_rfu.c | 57 | ||||
-rw-r--r-- | src/normal.c | 128 | ||||
-rw-r--r-- | src/poison.c | 108 | ||||
-rw-r--r-- | src/psychic.c | 204 | ||||
-rw-r--r-- | src/rock.c | 182 | ||||
-rw-r--r-- | src/water.c | 2229 |
29 files changed, 3423 insertions, 1192 deletions
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index d1f75ff8f..4fd58b19e 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2767,7 +2767,7 @@ static void AnimConstrictBindingStep2(struct Sprite* sprite) } } -void sub_80A2F0C(u8 taskId) +void AnimTask_ShrinkTargetCopy(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -3605,7 +3605,7 @@ static void AnimFlyingParticleStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void sub_80A41C4(u8 taskId) +void AnimTask_CycleMagicalLeafPal(u8 taskId) { struct Task* task = &gTasks[taskId]; diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 94423bab9..563e3ffc2 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -32,7 +32,7 @@ static void AnimTask_SplashStep(u8); static void AnimTask_GrowAndShrinkStep(u8); static void ThrashMoveMonStep(u8); static void ThrashMoveMon(u8); -static void AnimTask_SketchDrawMon(u8); +static void AnimTask_SketchDrawMon_Step(u8); static void AnimPencil_Step(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); @@ -115,7 +115,7 @@ static const struct SpriteTemplate sUnknown_83E3B30 = .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, + .affineAnims = gAffineAnims_Bite, .callback = sub_80A7020, }; @@ -2347,7 +2347,7 @@ static void ThrashMoveMon(u8 taskId) } } -void sub_80A8874(u8 taskId) +void AnimTask_SketchDrawMon(u8 taskId) { struct Task* task = &gTasks[taskId]; struct ScanlineEffectParams params; @@ -2385,10 +2385,10 @@ void sub_80A8874(u8 taskId) params.initState = 1; params.unused9 = 0; ScanlineEffect_SetParams(params); - task->func = AnimTask_SketchDrawMon; + task->func = AnimTask_SketchDrawMon_Step; } -static void AnimTask_SketchDrawMon(u8 taskId) +static void AnimTask_SketchDrawMon_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2983,7 +2983,7 @@ void AnimSpeedDust(struct Sprite *sprite) } } -void sub_80A96B4(u8 taskId) +void AnimTask_LoadMusicNotesPals(u8 taskId) { int i; u8 paletteNums[3]; @@ -3001,7 +3001,7 @@ void sub_80A96B4(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80A9760(u8 taskId) +void AnimTask_FreeMusicNotesPals(u8 taskId) { int i; @@ -3101,7 +3101,7 @@ static void FakeOutStep2(u8 taskId) } } -void sub_80A9A20(u8 taskId) +void AnimTask_StretchTargetUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -3122,7 +3122,7 @@ void sub_80A9A20(u8 taskId) } } -void sub_80A9AB0(u8 taskId) +void AnimTask_StretchAttackerUp(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index e9bfb2618..c60f51c31 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -3571,7 +3571,7 @@ static void sub_80E1AD8(u8 taskId) } } -void sub_80E1C48(u8 taskId) +void AnimTask_SlideMonForFocusBand(u8 taskId) { gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker]; gTasks[taskId].data[14] = gBattleAnimArgs[0]; @@ -3751,7 +3751,7 @@ static void AnimTask_FacadeColorBlendStep(u8 taskId) } } -void sub_80E2084(u8 taskId) +void AnimTask_StatusClearedEffect(u8 taskId) { sub_80BBA20(taskId, 0, 0x1A0, gBattleAnimAttacker, gBattleAnimArgs[0], 10, 2, 30, gCureBubblesGfx, gCureBubblesTilemap, gCureBubblesPal); } diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 8ed996993..5045f26ed 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -73,7 +73,7 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = .callback = SlideMonToOffset, }; -const struct SpriteTemplate gUnknown_83D4EB4 = +const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -620,7 +620,7 @@ static void AnimTask_WindUpLungePart2(u8 taskId) } } -void sub_80995FC(u8 taskId) +void AnimTask_SlideOffScreen(u8 taskId) { u8 spriteId; @@ -772,7 +772,7 @@ static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) } } -void sub_8099980(u8 taskId) +void AnimTask_RotateMonSpriteToSide(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); @@ -805,7 +805,7 @@ void sub_8099980(u8 taskId) gTasks[taskId].func = sub_8099B54; } -void sub_8099A78(u8 taskId) +void AnimTask_RotateMonToSideAndRestore(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); @@ -866,7 +866,7 @@ static void sub_8099B54(u8 taskId) } } -void sub_8099BD4(u8 taskId) +void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 741fdf312..036e1b052 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -1466,7 +1466,7 @@ void obj_delete_but_dont_free_vram(struct Sprite *sprite) DestroySprite(sprite); } -void sub_8076048(u8 taskId) +void AnimTask_AlphaFadeIn(u8 taskId) { s16 v1 = 0, v2 = 0; @@ -1584,7 +1584,7 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId) } } -void sub_8076288(u8 taskId) +void AnimTask_BlendPalInAndOutByTag(u8 taskId) { u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); @@ -2117,7 +2117,7 @@ void sub_8076FD0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_8077030(u8 taskId) +void AnimTask_AttackerPunchWithTrace(u8 taskId) { u16 src; u16 dest; @@ -2225,7 +2225,7 @@ static void sub_80772F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_8077350(struct Sprite *sprite) +void AnimWeatherBallDown(struct Sprite *sprite) { s32 x; diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index a820667fb..ee99b75a6 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -66,7 +66,7 @@ static void sub_80DCEE4(u8 taskId) } } -void mas_80DCF38(u8 taskId) +void SoundTask_LoopSEAdjustPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 targetPan = gBattleAnimArgs[2]; @@ -116,7 +116,7 @@ static void sub_80DCFE8(u8 taskId) } } -void sub_80DD06C(u8 taskId) +void SoundTask_PlayCryHighPitch(u8 taskId) { u16 species = SPECIES_NONE; u8 battlerId; @@ -147,7 +147,7 @@ void sub_80DD06C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD148(u8 taskId) +void SoundTask_PlayDoubleCry(u8 taskId) { u16 species = SPECIES_NONE; u8 battlerId; @@ -214,7 +214,7 @@ static void sub_80DD270(u8 taskId) } } -void sub_80DD2F4(u8 taskId) +void SoundTask_WaitForCry(u8 taskId) { if (gTasks[taskId].data[9] < 2) ++gTasks[taskId].data[9]; @@ -259,7 +259,7 @@ static void sub_80DD390(u8 taskId) } } -void sub_80DD3DC(u8 taskId) +void SoundTask_PlaySE1WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -268,7 +268,7 @@ void sub_80DD3DC(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD410(u8 taskId) +void SoundTask_PlaySE2WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); @@ -277,7 +277,7 @@ void sub_80DD410(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD444(u8 taskId) +void SoundTask_AdjustPanningVar(u8 taskId) { s8 targetPan = gBattleAnimArgs[1]; s8 panIncrement = gBattleAnimArgs[2]; diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index c753f5dc4..677090a65 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -397,7 +397,7 @@ static const union AnimCmd *const sSpriteAnimTable_840C20C[] = sUnknown_840C204, }; -const struct SpriteTemplate gUnknown_840C210 = +const struct SpriteTemplate gSafariRockTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, @@ -534,7 +534,7 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler) gSprites[spriteId2].oam.paletteNum = *paletteId2; } -void sub_80EF0B4(u8 taskId) +void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId) { u8 paletteId1, paletteId2; @@ -560,13 +560,13 @@ void sub_80EF0E0(u8 battler) gSprites[spriteId2].oam.paletteNum = paletteId2; } -void sub_80EF180(u8 taskId) +void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId) { sub_80EF0E0(gBattleAnimAttacker); DestroyAnimVisualTask(taskId); } -void sub_80EF1A0(u8 taskId) +void AnimTask_FlashHealthboxOnLevelUp(u8 taskId) { gTasks[taskId].data[10] = gBattleAnimArgs[0]; gTasks[taskId].data[11] = gBattleAnimArgs[1]; @@ -610,7 +610,7 @@ static void sub_80EF1CC(u8 taskId) } } -void sub_80EF298(u8 taskId) +void AnimTask_SwitchOutShrinkMon(u8 taskId) { u8 spriteId; @@ -637,7 +637,7 @@ void sub_80EF298(u8 taskId) } } -void sub_80EF344(u8 taskId) +void AnimTask_SwitchOutBallEffect(u8 taskId) { u8 spriteId; u16 ball; @@ -672,7 +672,7 @@ void sub_80EF344(u8 taskId) } } -void sub_80EF490(u8 taskId) +void AnimTask_LoadBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); @@ -680,7 +680,7 @@ void sub_80EF490(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80EF4B8(u8 taskId) +void AnimTask_FreeBallGfx(u8 taskId) { u8 ballId = ItemIdToBallId(gLastUsedItem); @@ -738,7 +738,7 @@ u8 ItemIdToBallId(u16 ballItem) } } -void sub_80EF5AC(u8 taskId) +void AnimTask_ThrowBall(u8 taskId) { u8 ballId; u8 spriteId; @@ -762,7 +762,7 @@ static void sub_80EF698(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80EF6D4(u8 taskId) +void AnimTask_ThrowBallSpecial(u8 taskId) { int x, y; u8 ballId; @@ -1942,7 +1942,7 @@ static void sub_80F13C0(u8 taskId) } } -void sub_80F1420(u8 taskId) +void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) { u8 spriteId; u32 x; @@ -2000,7 +2000,7 @@ void sub_80F1420(u8 taskId) } } -void sub_80F15C8(u8 taskId) +void AnimTask_SubstituteFadeToInvisible(u8 taskId) { u8 spriteId; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 4eb475a5c..23dc0461e 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -68,7 +68,7 @@ static const union AnimCmd *const sSpriteAnimTable_83BF430[] = sUnknown_83BF428 }; -const struct SpriteTemplate gSpriteTemplate_83BF434 = +const struct SpriteTemplate gWeatherBallUpSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, @@ -79,7 +79,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF434 = .callback = sub_807729C, }; -const struct SpriteTemplate gSpriteTemplate_83BF44C = +const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = { .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, @@ -87,7 +87,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF44C = .anims = sSpriteAnimTable_83BF430, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8077350, + .callback = AnimWeatherBallDown, }; static const union AnimCmd sUnknown_83BF464[] = @@ -343,7 +343,7 @@ static void sub_8078380(struct Sprite *sprite) } } -void sub_80783FC(u8 taskId) +void AnimTask_FrozenIceCube(u8 taskId) { s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32; s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36; diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index a1897b94a..489198ed4 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -577,7 +577,7 @@ static void sub_80BB4B8(u8 taskId) } } -void sub_80BB660(u8 taskId) +void AnimTask_Flash(u8 taskId) { u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1); @@ -646,7 +646,7 @@ static void sub_80BB790(u32 selectedPalettes, u16 color) gPlttBufferFaded[curOffset] = color; } -void sub_80BB7DC(u8 taskId) +void AnimTask_BlendNonAttackerPalettes(u8 taskId) { s32 j; u32 battler, selectedPalettes = 0; @@ -659,7 +659,7 @@ void sub_80BB7DC(u8 taskId) StartBlendAnimSpriteColor(taskId, selectedPalettes); } -void sub_80BB82C(u8 taskId) +void AnimTask_StartSlidingBg(u8 taskId) { u8 newTaskId; @@ -712,7 +712,7 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BB9B0(u8 taskId) +void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { u16 battler; @@ -837,19 +837,19 @@ void AnimTask_GetBattleTerrain(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBE10(u8 taskId) +void AnimTask_AllocBackupPalBuffer(u8 taskId) { gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000); DestroyAnimVisualTask(taskId); } -void sub_80BBE3C(u8 taskId) +void AnimTask_FreeBackupPalBuffer(u8 taskId) { FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C); DestroyAnimVisualTask(taskId); } -void sub_80BBE6C(u8 taskId) +void AnimTask_CopyPalUnfadedToBackup(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -867,7 +867,7 @@ void sub_80BBE6C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBF08(u8 taskId) +void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -885,7 +885,7 @@ void sub_80BBF08(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BBFA4(u8 taskId) +void AnimTask_CopyPalFadedToUnfaded(u8 taskId) { u32 selectedPalettes; s32 paletteIndex = 0; @@ -912,7 +912,7 @@ void AnimTask_IsContest(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BC060(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) { gBattleAnimAttacker = gBattlerTarget; gBattleAnimTarget = gEffectBattler; @@ -928,20 +928,20 @@ void AnimTask_IsTargetSameSide(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80BC0DC(u8 taskId) +void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId) { gBattleAnimTarget = gBattlerTarget; DestroyAnimVisualTask(taskId); } -void sub_80BC0FC(u8 taskId) +void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId) { gBattleAnimAttacker = gBattlerAttacker; gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); } -void sub_80BC12C(u8 taskId) +void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId) { if (IsContest()) { @@ -1,3 +1,4 @@ +#include <limits.h> #include "global.h" #include "bg.h" #include "dma3.h" @@ -1136,20 +1137,19 @@ void CopyTileMapEntry(const u16 *src, u16 *dest, s32 palette1, s32 tileOffset, s { u16 var; - if (palette1 == 16) - goto CASE_16; switch (palette1) { - case 0 ... 16: + case 0 ... 15: var = ((*src + tileOffset) & 0xFFF) + ((palette1 + palette2) << 12); break; - CASE_16: + case 16: var = *dest; var &= 0xFC00; var += palette2 << 12; var |= (*src + tileOffset) & 0x3FF; break; default: + case 17 ... INT_MAX: var = *src + tileOffset + (palette2 << 12); break; } @@ -3,90 +3,90 @@ #include "gpu_regs.h" #include "trig.h" -static void sub_80B3FAC(struct Sprite *sprite); -static void sub_80B407C(struct Sprite *sprite); +static void AnimMegahornHorn(struct Sprite *sprite); +static void AnimLeechLifeNeedle(struct Sprite *sprite); static void AnimTranslateWebThread(struct Sprite *sprite); -static void sub_80B41F8(struct Sprite *sprite); -static void sub_80B42C0(struct Sprite *sprite); +static void AnimStringWrap(struct Sprite *sprite); +static void AnimSpiderWeb(struct Sprite *sprite); static void AnimTranslateStinger(struct Sprite *sprite); static void AnimMissileArc(struct Sprite *sprite); -static void sub_80B45D8(struct Sprite *sprite); +static void AnimTailGlowOrb(struct Sprite *sprite); static void sub_80B41C0(struct Sprite *sprite); static void sub_80B4274(struct Sprite *sprite); static void sub_80B42E8(struct Sprite *sprite); static void sub_80B4344(struct Sprite *sprite); static void AnimMissileArcStep(struct Sprite *sprite); -static const union AffineAnimCmd gUnknown_83E71E8[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E71F8[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_1[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7208[] = +static const union AffineAnimCmd sAffineAnim_MegahornHorn_2[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7218[] = +static const union AffineAnimCmd *const sAffineAnims_MegahornHorn[] = { - gUnknown_83E71E8, - gUnknown_83E71F8, - gUnknown_83E7208, + sAffineAnim_MegahornHorn_0, + sAffineAnim_MegahornHorn_1, + sAffineAnim_MegahornHorn_2, }; -const struct SpriteTemplate gUnknown_83E7224 = +const struct SpriteTemplate gMegahornHornSpriteTemplate = { .tileTag = ANIM_TAG_HORN_HIT_2, .paletteTag = ANIM_TAG_HORN_HIT_2, .oam = &gOamData_AffineDouble_ObjNormal_32x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7218, - .callback = sub_80B3FAC, + .affineAnims = sAffineAnims_MegahornHorn, + .callback = AnimMegahornHorn, }; -static const union AffineAnimCmd gUnknown_83E723C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E724C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E725C[] = +static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E726C[] = +static const union AffineAnimCmd *const sAffineAnims_LeechLifeNeedle[] = { - gUnknown_83E723C, - gUnknown_83E724C, - gUnknown_83E725C, + sAffineAnim_LeechLifeNeedle_0, + sAffineAnim_LeechLifeNeedle_1, + sAffineAnim_LeechLifeNeedle_2, }; -const struct SpriteTemplate gUnknown_83E7278 = +const struct SpriteTemplate gLeechLifeNeedleSpriteTemplate = { .tileTag = ANIM_TAG_NEEDLE, .paletteTag = ANIM_TAG_NEEDLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E726C, - .callback = sub_80B407C, + .affineAnims = sAffineAnims_LeechLifeNeedle, + .callback = AnimLeechLifeNeedle, }; const struct SpriteTemplate gWebThreadSpriteTemplate = @@ -100,7 +100,7 @@ const struct SpriteTemplate gWebThreadSpriteTemplate = .callback = AnimTranslateWebThread, }; -const struct SpriteTemplate gUnknown_83E72A8 = +const struct SpriteTemplate gStringWrapSpriteTemplate = { .tileTag = ANIM_TAG_STRING, .paletteTag = ANIM_TAG_STRING, @@ -108,19 +108,19 @@ const struct SpriteTemplate gUnknown_83E72A8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B41F8, + .callback = AnimStringWrap, }; -static const union AffineAnimCmd gUnknown_83E72C0[] = +static const union AffineAnimCmd sAffineAnim_SpiderWeb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E72D8[] = +static const union AffineAnimCmd *const sAffineAnims_SpiderWeb[] = { - gUnknown_83E72C0, + sAffineAnim_SpiderWeb, }; const struct SpriteTemplate gSpiderWebSpriteTemplate = @@ -130,8 +130,8 @@ const struct SpriteTemplate gSpiderWebSpriteTemplate = .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E72D8, - .callback = sub_80B42C0, + .affineAnims = sAffineAnims_SpiderWeb, + .callback = AnimSpiderWeb, }; const struct SpriteTemplate gLinearStingerSpriteTemplate = @@ -167,7 +167,7 @@ const struct SpriteTemplate gIcicleSpearSpriteTemplate = .callback = AnimMissileArc, }; -static const union AffineAnimCmd gUnknown_83E733C[] = +static const union AffineAnimCmd sAffineAnim_TailGlowOrb[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18), @@ -178,23 +178,23 @@ static const union AffineAnimCmd gUnknown_83E733C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7374[] = +static const union AffineAnimCmd *const sAffineAnims_TailGlowOrb[] = { - gUnknown_83E733C, + sAffineAnim_TailGlowOrb, }; -const struct SpriteTemplate gUnknown_83E7378 = +const struct SpriteTemplate gTailGlowOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7374, - .callback = sub_80B45D8, + .affineAnims = sAffineAnims_TailGlowOrb, + .callback = AnimTailGlowOrb, }; -static void sub_80B3FAC(struct Sprite *sprite) +static void AnimMegahornHorn(struct Sprite *sprite) { if (IsContest()) { @@ -219,7 +219,7 @@ static void sub_80B3FAC(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B407C(struct Sprite *sprite) +static void AnimLeechLifeNeedle(struct Sprite *sprite) { if (IsContest()) { @@ -280,7 +280,7 @@ static void sub_80B41C0(struct Sprite *sprite) sprite->data[6] = (sprite->data[6] + 13) & 0xFF; } -static void sub_80B41F8(struct Sprite *sprite) +static void AnimStringWrap(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -306,7 +306,7 @@ static void sub_80B4274(struct Sprite *sprite) } } -static void sub_80B42C0(struct Sprite *sprite) +static void AnimSpiderWeb(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); @@ -445,7 +445,7 @@ static void AnimMissileArcStep(struct Sprite *sprite) } } -static void sub_80B45D8(struct Sprite *sprite) +static void AnimTailGlowOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/dark.c b/src/dark.c index d2e0996bd..86523f2f1 100644 --- a/src/dark.c +++ b/src/dark.c @@ -7,11 +7,11 @@ #include "util.h" static void sub_80B7ACC(struct Sprite *sprite); -static void sub_80B7BD4(struct Sprite *sprite); -static void sub_80B7C88(struct Sprite *sprite); -static void sub_80B86B0(struct Sprite *sprite); -static void sub_80B7954(u8 taskId); -static void sub_80B7A14(u8 taskId); +static void AnimBite(struct Sprite *sprite); +static void AnimTearDrop(struct Sprite *sprite); +static void AnimClawSlash(struct Sprite *sprite); +static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId); +static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId); static void sub_80B7B48(struct Sprite *sprite); static void sub_80B7C10(struct Sprite *sprite); static void sub_80B7C50(struct Sprite *sprite); @@ -33,120 +33,120 @@ const struct SpriteTemplate gUnknown_83E7878 = .callback = sub_80B7ACC, }; -static const union AffineAnimCmd gUnknown_83E7890[] = +static const union AffineAnimCmd sAffineAnim_Bite_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78A0[] = +static const union AffineAnimCmd sAffineAnim_Bite_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78B0[] = +static const union AffineAnimCmd sAffineAnim_Bite_2[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78C0[] = +static const union AffineAnimCmd sAffineAnim_Bite_3[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78D0[] = +static const union AffineAnimCmd sAffineAnim_Bite_4[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78E0[] = +static const union AffineAnimCmd sAffineAnim_Bite_5[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E78F0[] = +static const union AffineAnimCmd sAffineAnim_Bite_6[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7900[] = +static const union AffineAnimCmd sAffineAnim_Bite_7[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gUnknown_83E7910[] = +const union AffineAnimCmd *const gAffineAnims_Bite[] = { - gUnknown_83E7890, - gUnknown_83E78A0, - gUnknown_83E78B0, - gUnknown_83E78C0, - gUnknown_83E78D0, - gUnknown_83E78E0, - gUnknown_83E78F0, - gUnknown_83E7900, + sAffineAnim_Bite_0, + sAffineAnim_Bite_1, + sAffineAnim_Bite_2, + sAffineAnim_Bite_3, + sAffineAnim_Bite_4, + sAffineAnim_Bite_5, + sAffineAnim_Bite_6, + sAffineAnim_Bite_7, }; -const struct SpriteTemplate gUnknown_83E7930 = +const struct SpriteTemplate gSharpTeethSpriteTemplate = { .tileTag = ANIM_TAG_SHARP_TEETH, .paletteTag = ANIM_TAG_SHARP_TEETH, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, - .callback = sub_80B7BD4, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -const struct SpriteTemplate gUnknown_83E7948 = +const struct SpriteTemplate gClampJawSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7910, - .callback = sub_80B7BD4, + .affineAnims = gAffineAnims_Bite, + .callback = AnimBite, }; -static const union AffineAnimCmd gUnknown_83E7960[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_0[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7978[] = +static const union AffineAnimCmd sAffineAnim_TearDrop_1[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7990[] = +static const union AffineAnimCmd *const sAffineAnims_TearDrop[] = { - gUnknown_83E7960, - gUnknown_83E7978, + sAffineAnim_TearDrop_0, + sAffineAnim_TearDrop_1, }; -const struct SpriteTemplate gUnknown_83E7998 = +const struct SpriteTemplate gTearDropSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7990, - .callback = sub_80B7C88, + .affineAnims = sAffineAnims_TearDrop, + .callback = AnimTearDrop, }; -static const union AnimCmd gUnknown_83E79B0[] = +static const union AnimCmd sAnim_ClawSlash_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -156,7 +156,7 @@ static const union AnimCmd gUnknown_83E79B0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E79C8[] = +static const union AnimCmd sAnim_ClawSlash_1[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -166,24 +166,24 @@ static const union AnimCmd gUnknown_83E79C8[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E79E0[] = +static const union AnimCmd *const sAnims_ClawSlash[] = { - gUnknown_83E79B0, - gUnknown_83E79C8, + sAnim_ClawSlash_0, + sAnim_ClawSlash_1, }; -const struct SpriteTemplate gUnknown_83E79E8 = +const struct SpriteTemplate gClawSlashSpriteTemplate = { .tileTag = ANIM_TAG_CLAW_SLASH, .paletteTag = ANIM_TAG_CLAW_SLASH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E79E0, + .anims = sAnims_ClawSlash, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B86B0, + .callback = AnimClawSlash, }; -void sub_80B78E0(u8 taskId) +void AnimTask_AttackerFadeToInvisible(u8 taskId) { s32 battler; @@ -195,10 +195,10 @@ void sub_80B78E0(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); else SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gTasks[taskId].func = sub_80B7954; + gTasks[taskId].func = AnimTask_AttackerFadeToInvisible_Step; } -static void sub_80B7954(u8 taskId) +static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -222,15 +222,15 @@ static void sub_80B7954(u8 taskId) } } -void sub_80B79DC(u8 taskId) +void AnimTask_AttackerFadeFromInvisible(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16); - gTasks[taskId].func = sub_80B7A14; + gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step; SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]); } -static void sub_80B7A14(u8 taskId) +static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId) { u8 blendA = gTasks[taskId].data[1] >> 8; u8 blendB = gTasks[taskId].data[1]; @@ -255,7 +255,7 @@ static void sub_80B7A14(u8 taskId) } } -void sub_80B7A80(u8 taskId) +void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) @@ -306,7 +306,7 @@ static void sub_80B7B48(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B7BD4(struct Sprite *sprite) +static void AnimBite(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -337,7 +337,7 @@ static void sub_80B7C50(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -static void sub_80B7C88(struct Sprite *sprite) +static void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; @@ -385,7 +385,7 @@ static void sub_80B7D88(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -void sub_80B7DA4(u8 taskId) +void AnimTask_MoveAttackerMementoShadow(u8 taskId) { struct ScanlineEffectParams scanlineParams; struct BattleAnimBgData animBg; @@ -502,7 +502,7 @@ static void sub_80B7F58(u8 taskId) } } -void sub_80B8070(u8 taskId) +void AnimTask_MoveTargetMementoShadow(u8 taskId) { struct BattleAnimBgData animBg; struct ScanlineEffectParams scanlineParams; @@ -724,7 +724,7 @@ static void sub_80B856C(u8 priority) } } -void sub_80B85B8(u8 taskId) +void AnimTask_InitMementoShadow(u8 taskId) { bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE; @@ -748,7 +748,7 @@ void sub_80B8664(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B86B0(struct Sprite *sprite) +static void AnimClawSlash(struct Sprite *sprite) { sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; @@ -910,7 +910,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B8B38(u8 taskId) +void GetIsDoomDesireHitTurn(u8 taskId) { if (gAnimMoveTurn < 2) gBattleAnimArgs[7] = 0; diff --git a/src/dragon.c b/src/dragon.c index d18cf25df..747efdb7c 100644 --- a/src/dragon.c +++ b/src/dragon.c @@ -5,10 +5,10 @@ #include "trig.h" static void sub_80B725C(struct Sprite *sprite); -static void sub_80B741C(struct Sprite *sprite); -static void sub_80B73AC(struct Sprite *sprite); -static void sub_80B7448(struct Sprite *sprite); -static void sub_80B77E4(struct Sprite *sprite); +static void AnimDragonFireToTarget(struct Sprite *sprite); +static void AnimDragonRageFirePlume(struct Sprite *sprite); +static void AnimDragonDanceOrb(struct Sprite *sprite); +static void AnimOverheatFlame(struct Sprite *sprite); static void sub_80B74D8(struct Sprite *sprite); static void sub_80B76B0(u8 taskId); static void sub_80B776C(struct Task *task); @@ -31,7 +31,7 @@ static const union AnimCmd *const gUnknown_83E7728[] = gUnknown_83E7710, }; -const struct SpriteTemplate gUnknown_83E772C = +const struct SpriteTemplate gOutrageFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -42,7 +42,7 @@ const struct SpriteTemplate gUnknown_83E772C = .callback = sub_80B725C, }; -static const union AnimCmd gUnknown_83E7744[] = +static const union AnimCmd sAnim_DragonBreathFire_0[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -50,7 +50,7 @@ static const union AnimCmd gUnknown_83E7744[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E7754[] = +static const union AnimCmd sAnim_DragonBreathFire_1[] = { ANIMCMD_FRAME(16, 3, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 3, .vFlip = TRUE, .hFlip = TRUE), @@ -58,44 +58,44 @@ static const union AnimCmd gUnknown_83E7754[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7764[] = +static const union AnimCmd *const sAnims_DragonBreathFire[] = { - gUnknown_83E7744, - gUnknown_83E7754, + sAnim_DragonBreathFire_0, + sAnim_DragonBreathFire_1, }; -static const union AffineAnimCmd gUnknown_83E776C[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_0[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7784[] = +static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E779C[] = +static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] = { - gUnknown_83E776C, - gUnknown_83E7784, + sAffineAnim_DragonBreathFire_0, + sAffineAnim_DragonBreathFire_1, }; -const struct SpriteTemplate gUnknown_83E77A4 = +const struct SpriteTemplate gDragonBreathFireSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E7764, + .anims = sAnims_DragonBreathFire, .images = NULL, - .affineAnims = gUnknown_83E779C, - .callback = sub_80B741C, + .affineAnims = sAffineAnims_DragonBreathFire, + .callback = AnimDragonFireToTarget, }; -const union AnimCmd gUnknown_83E77BC[] = +const union AnimCmd sAnim_DragonRageFirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -105,23 +105,23 @@ const union AnimCmd gUnknown_83E77BC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E77D4[] = +static const union AnimCmd *const sAnims_DragonRageFirePlume[] = { - gUnknown_83E77BC, + sAnim_DragonRageFirePlume, }; -const struct SpriteTemplate gUnknown_83E77D8 = +const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E77D4, + .anims = sAnims_DragonRageFirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B73AC, + .callback = AnimDragonRageFirePlume, }; -static const union AnimCmd gUnknown_83E77F0[] = +static const union AnimCmd sAnim_DragonRageFire[] = { ANIMCMD_FRAME(16, 3), ANIMCMD_FRAME(32, 3), @@ -129,42 +129,42 @@ static const union AnimCmd gUnknown_83E77F0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7800[] = +static const union AnimCmd *const sAnims_DragonRageFire[] = { - gUnknown_83E77F0, - gUnknown_83E77F0, + sAnim_DragonRageFire, + sAnim_DragonRageFire, }; -static const union AffineAnimCmd gUnknown_83E7808[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_0[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7818[] = +static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] = { AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7828[] = +static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] = { - gUnknown_83E7808, - gUnknown_83E7818, + sAffineAnim_DragonRageFire_0, + sAffineAnim_DragonRageFire_1, }; -const struct SpriteTemplate gUnknown_83E7830 = +const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E7800, + .anims = sAnims_DragonRageFire, .images = NULL, - .affineAnims = gUnknown_83E7828, - .callback = sub_80B741C, + .affineAnims = sAffineAnims_DragonRageFire, + .callback = AnimDragonFireToTarget, }; -const struct SpriteTemplate gUnknown_83E7848 = +const struct SpriteTemplate gDragonDanceOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -172,10 +172,10 @@ const struct SpriteTemplate gUnknown_83E7848 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7448, + .callback = AnimDragonDanceOrb, }; -const struct SpriteTemplate gUnknown_83E7860 = +const struct SpriteTemplate gOverheatFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -183,7 +183,7 @@ const struct SpriteTemplate gUnknown_83E7860 = .anims = gUnknown_83E7728, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B77E4, + .callback = AnimOverheatFlame, }; static void sub_80B725C(struct Sprite *sprite) @@ -235,7 +235,7 @@ static void sub_80B72F8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B73AC(struct Sprite *sprite) +static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -253,14 +253,14 @@ static void sub_80B73AC(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B741C(struct Sprite *sprite) +static void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); sub_80B72F8(sprite); } -static void sub_80B7448(struct Sprite *sprite) +static void AnimDragonDanceOrb(struct Sprite *sprite) { u16 r5; u16 r0; @@ -319,7 +319,7 @@ static void sub_80B74D8(struct Sprite *sprite) } } -void sub_80B75E0(u8 taskId) +void AnimTask_DragonDanceWaver(u8 taskId) { struct ScanlineEffectParams sp; struct Task *task = &gTasks[taskId]; @@ -404,7 +404,7 @@ static void sub_80B776C(struct Task *task) task->data[5] = (task->data[5] + 9) & 0xFF; } -static void sub_80B77E4(struct Sprite *sprite) +static void AnimOverheatFlame(struct Sprite *sprite) { s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5; diff --git a/src/electric.c b/src/electric.c index 908ce60a4..d3fe25924 100644 --- a/src/electric.c +++ b/src/electric.c @@ -4,22 +4,22 @@ #include "sound.h" #include "constants/songs.h" -static void sub_80ADBEC(struct Sprite *sprite); +static void AnimLightning(struct Sprite *sprite); static void sub_80ADC58(struct Sprite *sprite); static void sub_80ADCB8(struct Sprite *sprite); static void sub_80ADD4C(struct Sprite *sprite); -static void sub_80ADEB0(struct Sprite *sprite); -static void sub_80AE000(struct Sprite *sprite); -static void sub_80AE06C(struct Sprite *sprite); -static void sub_80AE1A0(struct Sprite *sprite); -static void sub_80AE420(struct Sprite *sprite); -static void sub_80AE470(struct Sprite *sprite); -static void sub_80AE71C(struct Sprite *sprite); -static void sub_80AE774(struct Sprite *sprite); -static void sub_80AE7DC(struct Sprite *sprite); -static void sub_80AEC34(struct Sprite *sprite); -static void sub_80AEC80(struct Sprite *sprite); -static void sub_80AEF60(struct Sprite *sprite); +static void AnimZapCannonSpark(struct Sprite *sprite); +static void AnimThunderboltOrb(struct Sprite *sprite); +static void AnimSparkElectricityFlashing(struct Sprite *sprite); +static void AnimElectricity(struct Sprite *sprite); +static void AnimElectricBoltSegment(struct Sprite *sprite); +static void AnimThunderWave(struct Sprite *sprite); +static void AnimGrowingChargeOrb(struct Sprite *sprite); +static void AnimElectricPuff(struct Sprite *sprite); +static void AnimVoltTackleOrbSlide(struct Sprite *sprite); +static void AnimVoltTackleBolt(struct Sprite *sprite); +static void AnimGrowingShockWaveOrb(struct Sprite *sprite); +static void AnimShockWaveProgressingBolt(struct Sprite *sprite); static void sub_80ADC3C(struct Sprite *sprite); static void sub_80ADC9C(struct Sprite *sprite); static void sub_80ADF38(struct Sprite *sprite); @@ -34,7 +34,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId); static bool8 sub_80AF058(struct Task *task, u8 taskId); static void sub_80AF0C8(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E5F1C[] = +static const union AnimCmd sAnim_Lightning[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -44,20 +44,20 @@ static const union AnimCmd gUnknown_83E5F1C[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E5F34[] = +static const union AnimCmd *const sAnims_Lightning[] = { - gUnknown_83E5F1C, + sAnim_Lightning, }; -const struct SpriteTemplate gUnknown_83E5F38 = +const struct SpriteTemplate gLightningSpriteTemplate = { .tileTag = ANIM_TAG_LIGHTNING, .paletteTag = ANIM_TAG_LIGHTNING, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5F34, + .anims = sAnims_Lightning, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADBEC, + .callback = AnimLightning, }; static const union AffineAnimCmd gUnknown_83E5F50[] = @@ -111,7 +111,7 @@ const struct SpriteTemplate gUnknown_83E5FAC = .callback = sub_80ADCB8, }; -const struct SpriteTemplate gUnknown_83E5FC4 = +const struct SpriteTemplate gSparkElectricitySpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, @@ -122,7 +122,7 @@ const struct SpriteTemplate gUnknown_83E5FC4 = .callback = sub_80ADD4C, }; -const struct SpriteTemplate gUnknown_83E5FDC = +const struct SpriteTemplate gZapCannonBallSpriteTemplate = { .tileTag = ANIM_TAG_BLACK_BALL_2, .paletteTag = ANIM_TAG_BLACK_BALL_2, @@ -133,29 +133,29 @@ const struct SpriteTemplate gUnknown_83E5FDC = .callback = TranslateAnimSpriteToTargetMonLocation, }; -static const union AffineAnimCmd gUnknown_83E5FF4[] = +static const union AffineAnimCmd sAffineAnim_FlashingSpark[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6004[] = +static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] = { - gUnknown_83E5FF4, + sAffineAnim_FlashingSpark, }; -const struct SpriteTemplate gUnknown_83E6008 = +const struct SpriteTemplate gZapCannonSparkSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6004, - .callback = sub_80ADEB0, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimZapCannonSpark, }; -static const union AnimCmd gUnknown_83E6020[] = +static const union AnimCmd sAnim_ThunderboltOrb[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -163,12 +163,12 @@ static const union AnimCmd gUnknown_83E6020[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E6030[] = +static const union AnimCmd *const sAnims_ThunderboltOrb[] = { - gUnknown_83E6020, + sAnim_ThunderboltOrb, }; -static const union AffineAnimCmd gUnknown_83E6034[] = +static const union AffineAnimCmd sAffineAnim_ThunderboltOrb[] = { AFFINEANIMCMD_FRAME(0xE8, 0xE8, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 10), @@ -176,31 +176,31 @@ static const union AffineAnimCmd gUnknown_83E6034[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E6054[] = +static const union AffineAnimCmd *const sAffineAnims_ThunderboltOrb[] = { - gUnknown_83E6034, + sAffineAnim_ThunderboltOrb, }; -const struct SpriteTemplate gUnknown_83E6058 = +const struct SpriteTemplate gThunderboltOrbSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK_3, .paletteTag = ANIM_TAG_SHOCK_3, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6030, + .anims = sAnims_ThunderboltOrb, .images = NULL, - .affineAnims = gUnknown_83E6054, - .callback = sub_80AE000, + .affineAnims = sAffineAnims_ThunderboltOrb, + .callback = AnimThunderboltOrb, }; -const struct SpriteTemplate gUnknown_83E6070 = +const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_2, .paletteTag = ANIM_TAG_SPARK_2, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6004, - .callback = sub_80AE06C, + .affineAnims = sAffineAnims_FlashingSpark, + .callback = AnimSparkElectricityFlashing, }; const struct SpriteTemplate gElectricitySpriteTemplate = @@ -211,10 +211,10 @@ const struct SpriteTemplate gElectricitySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE1A0, + .callback = AnimElectricity, }; -static const struct SpriteTemplate gUnknown_83E60A0 = +static const struct SpriteTemplate sElectricBoltSegmentSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -222,10 +222,10 @@ static const struct SpriteTemplate gUnknown_83E60A0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE420, + .callback = AnimElectricBoltSegment, }; -const struct SpriteTemplate gUnknown_83E60B8 = +const struct SpriteTemplate gThunderWaveSpriteTemplate = { .tileTag = ANIM_TAG_SPARK_H, .paletteTag = ANIM_TAG_SPARK_H, @@ -233,10 +233,10 @@ const struct SpriteTemplate gUnknown_83E60B8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE470, + .callback = AnimThunderWave, }; -static const s8 gUnknown_83E60D0[][2] = +static const s8 sElectricChargingParticleCoordOffsets[][2] = { { 58, -60}, {-56, -36}, @@ -256,7 +256,7 @@ static const s8 gUnknown_83E60D0[][2] = { 48, 48}, }; -static const union AnimCmd gUnknown_83E60F0[] = +static const union AnimCmd sAnim_ElectricChargingParticles_0[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_FRAME(2, 1), @@ -265,7 +265,7 @@ static const union AnimCmd gUnknown_83E60F0[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6104[] = +static const union AnimCmd sAnim_ElectricChargingParticles_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(1, 5), @@ -274,24 +274,24 @@ static const union AnimCmd gUnknown_83E6104[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6118[] = +static const union AnimCmd *const sAnims_ElectricChargingParticles[] = { - gUnknown_83E60F0, - gUnknown_83E6104, + sAnim_ElectricChargingParticles_0, + sAnim_ElectricChargingParticles_1, }; -static const struct SpriteTemplate gUnknown_83E6120 = +static const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRIC_ORBS, .paletteTag = ANIM_TAG_ELECTRIC_ORBS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6118, + .anims = sAnims_ElectricChargingParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }; -static const union AffineAnimCmd gUnknown_83E6138[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 60), @@ -303,7 +303,7 @@ static const union AffineAnimCmd gUnknown_83E6138[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6178[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_1[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -313,7 +313,7 @@ static const union AffineAnimCmd gUnknown_83E6178[] = AFFINEANIMCMD_JUMP(3), }; -static const union AffineAnimCmd gUnknown_83E61A8[] = +static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] = { AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), @@ -321,25 +321,25 @@ static const union AffineAnimCmd gUnknown_83E61A8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E61C8[] = +static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] = { - gUnknown_83E6138, - gUnknown_83E6178, - gUnknown_83E61A8, + sAffineAnim_GrowingElectricOrb_0, + sAffineAnim_GrowingElectricOrb_1, + sAffineAnim_GrowingElectricOrb_2, }; -const struct SpriteTemplate gUnknown_83E61D4 = +const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AE71C, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingChargeOrb, }; -static const union AnimCmd gUnknown_83E61EC[] = +static const union AnimCmd sAnim_ElectricPuff[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -348,99 +348,99 @@ static const union AnimCmd gUnknown_83E61EC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6200[] = +static const union AnimCmd *const sAnims_ElectricPuff[] = { - gUnknown_83E61EC, + sAnim_ElectricPuff, }; -const struct SpriteTemplate gUnknown_83E6204 = +const struct SpriteTemplate gElectricPuffSpriteTemplate = { .tileTag = ANIM_TAG_ELECTRICITY, .paletteTag = ANIM_TAG_ELECTRICITY, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6200, + .anims = sAnims_ElectricPuff, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AE774, + .callback = AnimElectricPuff, }; -const struct SpriteTemplate gUnknown_83E621C = +const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AE7DC, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimVoltTackleOrbSlide, }; -static const union AnimCmd gUnknown_83E6234[] = +static const union AnimCmd sAnim_VoltTackleBolt_0[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E623C[] = +static const union AnimCmd sAnim_VoltTackleBolt_1[] = { ANIMCMD_FRAME(2, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6244[] = +static const union AnimCmd sAnim_VoltTackleBolt_2[] = { ANIMCMD_FRAME(4, 3), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E624C[] = +static const union AnimCmd sAnim_VoltTackleBolt_3[] = { ANIMCMD_FRAME(6, 3), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6254[] = +static const union AnimCmd *const sAnims_VoltTackleBolt[] = { - gUnknown_83E6234, - gUnknown_83E623C, - gUnknown_83E6244, - gUnknown_83E624C, + sAnim_VoltTackleBolt_0, + sAnim_VoltTackleBolt_1, + sAnim_VoltTackleBolt_2, + sAnim_VoltTackleBolt_3, }; -static const union AffineAnimCmd gUnknown_83E6264[] = +static const union AffineAnimCmd sAffineAnim_VoltTackleBolt[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6274[] = +static const union AffineAnimCmd *const sAffineAnims_VoltTackleBolt[] = { - gUnknown_83E6264, + sAffineAnim_VoltTackleBolt, }; -static const struct SpriteTemplate gUnknown_83E6278 = +static const struct SpriteTemplate gVoltTackleBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, .oam = &gOamData_AffineDouble_ObjNormal_8x16, - .anims = gUnknown_83E6254, + .anims = sAnims_VoltTackleBolt, .images = NULL, - .affineAnims = gUnknown_83E6274, - .callback = sub_80AEC34, + .affineAnims = sAffineAnims_VoltTackleBolt, + .callback = AnimVoltTackleBolt, }; -const struct SpriteTemplate gUnknown_83E6290 = +const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E61C8, - .callback = sub_80AEC80, + .affineAnims = sAffineAnims_GrowingElectricOrb, + .callback = AnimGrowingShockWaveOrb, }; -static const struct SpriteTemplate gUnknown_83E62A8 = +static const struct SpriteTemplate sShockWaveProgressingBoltSpriteTemplate = { .tileTag = ANIM_TAG_SPARK, .paletteTag = ANIM_TAG_SPARK, @@ -448,10 +448,10 @@ static const struct SpriteTemplate gUnknown_83E62A8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AEF60, + .callback = AnimShockWaveProgressingBolt, }; -static void sub_80ADBEC(struct Sprite *sprite) +static void AnimLightning(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->pos1.x -= gBattleAnimArgs[0]; @@ -555,7 +555,7 @@ static void sub_80ADD4C(struct Sprite *sprite) sprite->callback = sub_80B1D3C; } -static void sub_80ADEB0(struct Sprite *sprite) +static void AnimZapCannonSpark(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[3]; @@ -599,7 +599,7 @@ static void sub_80ADFB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AE000(struct Sprite *sprite) +static void AnimThunderboltOrb(struct Sprite *sprite) { if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -611,7 +611,7 @@ static void sub_80AE000(struct Sprite *sprite) sprite->callback = sub_80ADFB0; } -static void sub_80AE06C(struct Sprite *sprite) +static void AnimSparkElectricityFlashing(struct Sprite *sprite) { u8 battler; @@ -644,7 +644,7 @@ static void sub_80AE130(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AE1A0(struct Sprite *sprite) +static void AnimElectricity(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.tileNum += gBattleAnimArgs[3] * 4; @@ -657,7 +657,7 @@ static void sub_80AE1A0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_80AE220(u8 taskId) +void AnimTask_ElectricBolt(u8 taskId) { gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; @@ -692,30 +692,30 @@ static void sub_80AE278(u8 taskId) { case 0: r12 *= 1; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 2: r12 *= 2; r8 += r2; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 4: r12 *= 3; r8 += r2 * 2; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 6: r12 *= 4; r8 += r2 * 3; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 8: r12 *= 5; - spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2); + spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2); ++r7; break; case 10: @@ -731,7 +731,7 @@ static void sub_80AE278(u8 taskId) ++gTasks[taskId].data[10]; } -static void sub_80AE420(struct Sprite *sprite) +static void AnimElectricBoltSegment(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -747,13 +747,13 @@ static void sub_80AE420(struct Sprite *sprite) DestroySprite(sprite); } -static void sub_80AE470(struct Sprite *sprite) +static void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; sprite->pos1.x += gBattleAnimArgs[0]; sprite->pos1.y += gBattleAnimArgs[1]; - spriteId = CreateSprite(&gUnknown_83E60B8, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); + spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; ++gAnimVisualTaskCount; gSprites[spriteId].callback = sub_80AE4F4; @@ -771,7 +771,7 @@ static void sub_80AE4F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80AE540(u8 taskId) +void AnimTask_ElectricChargingParticles(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -807,13 +807,13 @@ static void sub_80AE5BC(u8 taskId) u8 spriteId; task->data[12] = 0; - spriteId = CreateSprite(&gUnknown_83E6120, task->data[14], task->data[15], 2); + spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - sprite->pos1.x += gUnknown_83E60D0[task->data[9]][0]; - sprite->pos1.y += gUnknown_83E60D0[task->data[9]][1]; + sprite->pos1.x += sElectricChargingParticleCoordOffsets[task->data[9]][0]; + sprite->pos1.y += sElectricChargingParticleCoordOffsets[task->data[9]][1]; sprite->data[0] = 40 - task->data[8] * 5; sprite->data[1] = sprite->pos1.x; sprite->data[2] = task->data[14]; @@ -857,7 +857,7 @@ static void sub_80AE704(struct Sprite *sprite) sprite->callback = sub_80AE6D0; } -static void sub_80AE71C(struct Sprite *sprite) +static void AnimGrowingChargeOrb(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { @@ -873,7 +873,7 @@ static void sub_80AE71C(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80AE774(struct Sprite *sprite) +static void AnimElectricPuff(struct Sprite *sprite) { if (!gBattleAnimArgs[0]) { @@ -891,7 +891,7 @@ static void sub_80AE774(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80AE7DC(struct Sprite *sprite) +static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -920,7 +920,7 @@ static void sub_80AE83C(struct Sprite *sprite) } } -void sub_80AE8A0(u8 taskId) +void AnimTask_VoltTackleAttackerReappear(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -975,7 +975,7 @@ void sub_80AE8A0(u8 taskId) } } -void sub_80AEA10(u8 taskId) +void AnimTask_VoltTackleBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1049,7 +1049,7 @@ void sub_80AEA10(u8 taskId) static bool8 sub_80AEB98(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E6278, task->data[3], task->data[5], 35); + u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); if (spriteId != MAX_SPRITES) { @@ -1070,7 +1070,7 @@ static bool8 sub_80AEB98(struct Task *task, u8 taskId) return FALSE; } -static void sub_80AEC34(struct Sprite *sprite) +static void AnimVoltTackleBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1080,7 +1080,7 @@ static void sub_80AEC34(struct Sprite *sprite) } } -static void sub_80AEC80(struct Sprite *sprite) +static void AnimGrowingShockWaveOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1097,7 +1097,7 @@ static void sub_80AEC80(struct Sprite *sprite) } } -void sub_80AECE0(u8 taskId) +void AnimTask_ShockWaveProgressingBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1174,7 +1174,7 @@ void sub_80AECE0(u8 taskId) static bool8 sub_80AEE74(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E62A8, task->data[6], task->data[7], 35); + u8 spriteId = CreateSprite(&sShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += task->data[4]; @@ -1206,7 +1206,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId) } } -static void sub_80AEF60(struct Sprite *sprite) +static void AnimShockWaveProgressingBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) { @@ -1215,7 +1215,7 @@ static void sub_80AEF60(struct Sprite *sprite) } } -void sub_80AEFA0(u8 taskId) +void AnimTask_ShockWaveLightning(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1247,7 +1247,7 @@ void sub_80AEFA0(u8 taskId) static bool8 sub_80AF058(struct Task *task, u8 taskId) { - u8 spriteId = CreateSprite(&gUnknown_83E5F38, task->data[13], task->data[14], task->data[12]); + u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { diff --git a/src/fighting.c b/src/fighting.c index fcfee5c54..ab477cd43 100644 --- a/src/fighting.c +++ b/src/fighting.c @@ -6,23 +6,23 @@ #include "trig.h" static void unc_080B08A0(struct Sprite *sprite); -static void sub_80B08DC(struct Sprite *sprite); -static void sub_80B0928(struct Sprite *sprite); +static void AnimSlideHandOrFootToTarget(struct Sprite *sprite); +static void AnimJumpKick(struct Sprite *sprite); static void AnimBasicFistOrFoot(struct Sprite *sprite); -static void sub_80B09A4(struct Sprite *sprite); -static void sub_80B0B80(struct Sprite *sprite); -static void sub_80B0C28(struct Sprite *sprite); +static void AnimFistOrFootRandomPos(struct Sprite *sprite); +static void AnimCrossChopHand(struct Sprite *sprite); +static void AnimSlidingKick(struct Sprite *sprite); static void AnimSpinningKickOrPunch(struct Sprite *sprite); static void AnimStompFoot(struct Sprite *sprite); -static void sub_80B0DF0(struct Sprite *sprite); -static void sub_80B0E80(struct Sprite *sprite); -static void sub_80B0F68(struct Sprite *sprite); -static void sub_80B107C(struct Sprite *sprite); -static void sub_80B1188(struct Sprite *sprite); -static void sub_80B12E8(struct Sprite *sprite); -static void sub_80B13F8(struct Sprite *sprite); -static void sub_80B1484(struct Sprite *sprite); -static void sub_80B14F0(struct Sprite *sprite); +static void AnimDizzyPunchDuck(struct Sprite *sprite); +static void AnimBrickBreakWall(struct Sprite *sprite); +static void AnimBrickBreakWallShard(struct Sprite *sprite); +static void AnimSuperpowerOrb(struct Sprite *sprite); +static void AnimSuperpowerRock(struct Sprite *sprite); +static void AnimSuperpowerFireball(struct Sprite *sprite); +static void AnimArmThrustHit(struct Sprite *sprite); +static void AnimRevengeScratch(struct Sprite *sprite); +static void AnimFocusPunchFist(struct Sprite *sprite); static void sub_80B0B2C(struct Sprite *sprite); static void sub_80B0BD8(struct Sprite *sprite); static void sub_80B0CB4(struct Sprite *sprite); @@ -46,73 +46,73 @@ const struct SpriteTemplate gUnknown_83E668C = .callback = unc_080B08A0, }; -static const union AnimCmd gUnknown_83E66A4[] = +static const union AnimCmd sAnim_HandOrFoot[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66AC[] = +static const union AnimCmd sAnim_SlidingKick_0[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66B4[] = +static const union AnimCmd sAnim_SlidingKick_1[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66BC[] = +static const union AnimCmd sAnim_CrossChopHand_0[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E66C4[] = +static const union AnimCmd sAnim_CrossChopHand_1[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E66CC[] = +static const union AnimCmd *const sAnims_HandOrFoot[] = { - gUnknown_83E66A4, + sAnim_HandOrFoot, }; -static const union AnimCmd *const gUnknown_83E66D0[] = +static const union AnimCmd *const sAnims_SlidingKick[] = { - gUnknown_83E66AC, - gUnknown_83E66B4, + sAnim_SlidingKick_0, + sAnim_SlidingKick_1, }; -static const union AnimCmd *const gUnknown_83E66D8[] = +static const union AnimCmd *const sAnims_CrossChopHand[] = { - gUnknown_83E66BC, - gUnknown_83E66C4, + sAnim_CrossChopHand_0, + sAnim_CrossChopHand_1, }; -const struct SpriteTemplate gUnknown_83E66E0 = +const struct SpriteTemplate gKarateChopSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B08DC, + .callback = AnimSlideHandOrFootToTarget, }; -const struct SpriteTemplate gUnknown_83E66F8 = +const struct SpriteTemplate gJumpKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0928, + .callback = AnimJumpKick, }; const struct SpriteTemplate gFistFootSpriteTemplate = @@ -120,78 +120,78 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, }; -const struct SpriteTemplate gUnknown_83E6728 = +const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B09A4, + .callback = AnimFistOrFootRandomPos, }; -const struct SpriteTemplate gUnknown_83E6740 = +const struct SpriteTemplate gCrossChopHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D8, + .anims = sAnims_CrossChopHand, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0B80, + .callback = AnimCrossChopHand, }; -const struct SpriteTemplate gUnknown_83E6758 = +const struct SpriteTemplate gSlidingKickSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D0, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0C28, + .callback = AnimSlidingKick, }; -static const union AffineAnimCmd gUnknown_83E6770[] = +static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 20, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E6788[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = { - gUnknown_83E6770, + sAffineAnim_SpinningHandOrFoot, }; -const struct SpriteTemplate gUnknown_83E678C = +const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E6788, + .affineAnims = sAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, }; -static const union AffineAnimCmd gUnknown_83E67A4[] = +static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x4, -0x4, 20, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E67BC[] = +static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] = { - gUnknown_83E67A4, + sAffineAnim_MegaPunchKick, }; const struct SpriteTemplate gMegaPunchKickSpriteTemplate = @@ -199,24 +199,24 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E67BC, + .affineAnims = sAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, }; -const struct SpriteTemplate gUnknown_83E67D8 = +const struct SpriteTemplate gStompFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66D0, + .anims = sAnims_SlidingKick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, }; -const struct SpriteTemplate gUnknown_83E67F0 = +const struct SpriteTemplate gDizzyPunchDuckSpriteTemplate = { .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, @@ -224,10 +224,10 @@ const struct SpriteTemplate gUnknown_83E67F0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0DF0, + .callback = AnimDizzyPunchDuck, }; -const struct SpriteTemplate gUnknown_83E6808 = +const struct SpriteTemplate gBrickBreakWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -235,10 +235,10 @@ const struct SpriteTemplate gUnknown_83E6808 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0E80, + .callback = AnimBrickBreakWall, }; -const struct SpriteTemplate gUnknown_83E6820 = +const struct SpriteTemplate gBrickBreakWallShardSpriteTemplate = { .tileTag = ANIM_TAG_TORN_METAL, .paletteTag = ANIM_TAG_TORN_METAL, @@ -246,10 +246,10 @@ const struct SpriteTemplate gUnknown_83E6820 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B0F68, + .callback = AnimBrickBreakWallShard, }; -static const union AffineAnimCmd gUnknown_83E6838[] = +static const union AffineAnimCmd sAffineAnim_SuperpowerOrb[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 64), @@ -258,23 +258,23 @@ static const union AffineAnimCmd gUnknown_83E6838[] = AFFINEANIMCMD_JUMP(2), }; -static const union AffineAnimCmd *const gUnknown_83E6860[] = +static const union AffineAnimCmd *const sAffineAnims_SuperpowerOrb[] = { - gUnknown_83E6838, + sAffineAnim_SuperpowerOrb, }; -const struct SpriteTemplate gUnknown_83E6864 = +const struct SpriteTemplate gSuperpowerOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6860, - .callback = sub_80B107C, + .affineAnims = sAffineAnims_SuperpowerOrb, + .callback = AnimSuperpowerOrb, }; -const struct SpriteTemplate gUnknown_83E687C = +const struct SpriteTemplate gSuperpowerRockSpriteTemplate = { .tileTag = ANIM_TAG_FLAT_ROCK, .paletteTag = ANIM_TAG_FLAT_ROCK, @@ -282,10 +282,10 @@ const struct SpriteTemplate gUnknown_83E687C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1188, + .callback = AnimSuperpowerRock, }; -const struct SpriteTemplate gUnknown_83E6894 = +const struct SpriteTemplate gSuperpowerFireballSpriteTemplate = { .tileTag = ANIM_TAG_METEOR, .paletteTag = ANIM_TAG_METEOR, @@ -293,21 +293,21 @@ const struct SpriteTemplate gUnknown_83E6894 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B12E8, + .callback = AnimSuperpowerFireball, }; -const struct SpriteTemplate gUnknown_83E68AC = +const struct SpriteTemplate gArmThrustHandSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B13F8, + .callback = AnimArmThrustHit, }; -static const union AnimCmd gUnknown_83E68C4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -315,7 +315,7 @@ static const union AnimCmd gUnknown_83E68C4[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E68D4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_1[] = { ANIMCMD_FRAME(0, 4, .vFlip = TRUE), ANIMCMD_FRAME(16, 4, .vFlip = TRUE), @@ -323,7 +323,7 @@ static const union AnimCmd gUnknown_83E68D4[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E68E4[] = +static const union AnimCmd sAnim_RevengeSmallScratch_2[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -331,84 +331,84 @@ static const union AnimCmd gUnknown_83E68E4[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E68F4[] = +static const union AnimCmd *const sAnims_RevengeSmallScratch[] = { - gUnknown_83E68C4, - gUnknown_83E68D4, - gUnknown_83E68E4, + sAnim_RevengeSmallScratch_0, + sAnim_RevengeSmallScratch_1, + sAnim_RevengeSmallScratch_2, }; -const struct SpriteTemplate gUnknown_83E6900 = +const struct SpriteTemplate gRevengeSmallScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SCRATCH, .paletteTag = ANIM_TAG_PURPLE_SCRATCH, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E68F4, + .anims = sAnims_RevengeSmallScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1484, + .callback = AnimRevengeScratch, }; -static const union AnimCmd gUnknown_83E6918[] = +static const union AnimCmd sAnim_RevengeBigScratch_0[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(64, 6), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6924[] = +static const union AnimCmd sAnim_RevengeBigScratch_1[] = { ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6930[] = +static const union AnimCmd sAnim_RevengeBigScratch_2[] = { ANIMCMD_FRAME(0, 6, .hFlip = TRUE), ANIMCMD_FRAME(64, 6, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E693C[] = +static const union AnimCmd *const sAnims_RevengeBigScratch[] = { - gUnknown_83E6918, - gUnknown_83E6924, - gUnknown_83E6930, + sAnim_RevengeBigScratch_0, + sAnim_RevengeBigScratch_1, + sAnim_RevengeBigScratch_2, }; -const struct SpriteTemplate gUnknown_83E6948 = +const struct SpriteTemplate gRevengeBigScratchSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_SWIPE, .paletteTag = ANIM_TAG_PURPLE_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_64x64, - .anims = gUnknown_83E693C, + .anims = sAnims_RevengeBigScratch, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1484, + .callback = AnimRevengeScratch, }; -static const union AffineAnimCmd gUnknown_83E6960[] = +static const union AffineAnimCmd sAffineAnim_FocusPunchFist[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6978[] = +static const union AffineAnimCmd *const sAffineAnims_FocusPunchFist[] = { - gUnknown_83E6960, + sAffineAnim_FocusPunchFist, }; -const struct SpriteTemplate gUnknown_83E697C = +const struct SpriteTemplate gFocusPunchFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E66CC, + .anims = sAnims_HandOrFoot, .images = NULL, - .affineAnims = gUnknown_83E6978, - .callback = sub_80B14F0, + .affineAnims = sAffineAnims_FocusPunchFist, + .callback = AnimFocusPunchFist, }; static void unc_080B08A0(struct Sprite *sprite) @@ -420,7 +420,7 @@ static void unc_080B08A0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B08DC(struct Sprite *sprite) +static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) { if (gBattleAnimArgs[7] == 1 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -432,14 +432,14 @@ static void sub_80B08DC(struct Sprite *sprite) AnimSnoreZ(sprite); } -static void sub_80B0928(struct Sprite *sprite) +static void AnimJumpKick(struct Sprite *sprite) { if (IsContest()) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[3] = -gBattleAnimArgs[3]; } - sub_80B08DC(sprite); + AnimSlideHandOrFootToTarget(sprite); } // Displays a basic fist or foot sprite for a given duration. @@ -461,7 +461,7 @@ static void AnimBasicFistOrFoot(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B09A4(struct Sprite *sprite) +static void AnimFistOrFootRandomPos(struct Sprite *sprite) { u8 battler; s16 xMod, yMod; @@ -516,7 +516,7 @@ static void sub_80B0B2C(struct Sprite *sprite) } } -static void sub_80B0B80(struct Sprite *sprite) +static void AnimCrossChopHand(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = 30; @@ -550,7 +550,7 @@ static void sub_80B0BD8(struct Sprite *sprite) } } -static void sub_80B0C28(struct Sprite *sprite) +static void AnimSlidingKick(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) gBattleAnimArgs[0] *= -1; @@ -636,7 +636,7 @@ static void AnimStompFootEnd(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B0DF0(struct Sprite *sprite) +static void AnimDizzyPunchDuck(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -658,7 +658,7 @@ static void sub_80B0DF0(struct Sprite *sprite) } } -static void sub_80B0E80(struct Sprite *sprite) +static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -709,7 +709,7 @@ static void sub_80B0EF0(struct Sprite *sprite) } } -static void sub_80B0F68(struct Sprite *sprite) +static void AnimBrickBreakWallShard(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -756,7 +756,7 @@ static void sub_80B1050(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B107C(struct Sprite *sprite) +static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -792,7 +792,7 @@ static void sub_80B111C(struct Sprite *sprite) } } -static void sub_80B1188(struct Sprite *sprite) +static void AnimSuperpowerRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = 120; @@ -847,7 +847,7 @@ static void sub_80B12A4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B12E8(struct Sprite *sprite) +static void AnimSuperpowerFireball(struct Sprite *sprite) { u8 battler; @@ -884,7 +884,7 @@ static void sub_80B13D4(struct Sprite *sprite) ++sprite->data[0]; } -static void sub_80B13F8(struct Sprite *sprite) +static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; @@ -908,7 +908,7 @@ static void sub_80B13F8(struct Sprite *sprite) sprite->callback = sub_80B13D4; } -static void sub_80B1484(struct Sprite *sprite) +static void AnimRevengeScratch(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) InitSpritePosToAnimAttacker(sprite, 0); @@ -922,7 +922,7 @@ static void sub_80B1484(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80B14F0(struct Sprite *sprite) +static void AnimFocusPunchFist(struct Sprite *sprite) { if (sprite->affineAnimEnded) { @@ -933,7 +933,7 @@ static void sub_80B14F0(struct Sprite *sprite) } } -void sub_80B1530(u8 taskId) +void AnimTask_MoveSkyUppercutBg(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/fire.c b/src/fire.c index a5a2ee5f6..f0b3d4451 100644 --- a/src/fire.c +++ b/src/fire.c @@ -6,21 +6,21 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80AC90C(struct Sprite *sprite); -static void sub_80AC94C(struct Sprite *sprite); -static void sub_80ACA00(struct Sprite *sprite); -static void sub_80AC990(struct Sprite *sprite); +static void AnimFireSpiralInward(struct Sprite *sprite); +static void AnimFireSpread(struct Sprite *sprite); +static void AnimLargeFlame(struct Sprite *sprite); +static void AnimFirePlume(struct Sprite *sprite); static void sub_80ACAA8(struct Sprite *sprite); static void sub_80ACBB0(struct Sprite *sprite); static void AnimEmberFlare(struct Sprite *sprite); -static void sub_80ACC44(struct Sprite *sprite); +static void AnimBurnFlame(struct Sprite *sprite); static void AnimFireRing(struct Sprite *sprite); static void AnimFireCross(struct Sprite *sprite); -static void sub_80ACDE8(struct Sprite *sprite); -static void sub_80AD330(struct Sprite *sprite); -static void sub_80AD454(struct Sprite *sprite); -static void sub_80AD540(struct Sprite *sprite); -static void sub_80AD6F4(struct Sprite *sprite); +static void AnimFireSpiralOutward(struct Sprite *sprite); +static void AnimEruptionLaunchRock(struct Sprite *sprite); +static void AnimEruptionFallingRock(struct Sprite *sprite); +static void AnimWillOWispOrb(struct Sprite *sprite); +static void AnimWillOWispFire(struct Sprite *sprite); static void sub_80ACA6C(struct Sprite *sprite); static void sub_80ACB1C(struct Sprite *sprite); static void AnimFireRing_Step1(struct Sprite *sprite); @@ -38,7 +38,7 @@ static void sub_80AD4A8(struct Sprite *sprite); static void sub_80AD690(struct Sprite *sprite); static void sub_80AD870(u8 taskId); -static const union AnimCmd gUnknown_83E5BB8[] = +static const union AnimCmd sAnim_FireSpiralSpread_0[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -46,7 +46,7 @@ static const union AnimCmd gUnknown_83E5BB8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E5BC8[] = +static const union AnimCmd sAnim_FireSpiralSpread_1[] = { ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE), @@ -54,35 +54,35 @@ static const union AnimCmd gUnknown_83E5BC8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5BD8[] = +static const union AnimCmd *const sAnims_FireSpiralSpread[] = { - gUnknown_83E5BB8, - gUnknown_83E5BC8, + sAnim_FireSpiralSpread_0, + sAnim_FireSpiralSpread_1, }; -const struct SpriteTemplate gUnknown_83E5BE0 = +const struct SpriteTemplate gFireSpiralInwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5BD8, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC90C, + .callback = AnimFireSpiralInward, }; -const struct SpriteTemplate gUnknown_83E5BF8 = +const struct SpriteTemplate gFireSpreadSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5BD8, + .anims = sAnims_FireSpiralSpread, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC94C, + .callback = AnimFireSpread, }; -static const union AnimCmd gUnknown_83E5C10[] = +static const union AnimCmd sAnim_LargeFlame[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -95,12 +95,12 @@ static const union AnimCmd gUnknown_83E5C10[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5C34[] = +static const union AnimCmd *const sAnims_LargeFlame[] = { - gUnknown_83E5C10, + sAnim_LargeFlame, }; -static const union AnimCmd gUnknown_83E5C38[] = +static const union AnimCmd sAnim_FirePlume[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -110,54 +110,54 @@ static const union AnimCmd gUnknown_83E5C38[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5C50[] = +static const union AnimCmd *const sAnims_FirePlume[] = { - gUnknown_83E5C38, + sAnim_FirePlume, }; -static const union AffineAnimCmd gUnknown_83E5C54[] = +static const union AffineAnimCmd sAffineAnim_LargeFlame[] = { AFFINEANIMCMD_FRAME(0x32, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x20, 0x0, 0, 7), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5C6C[] = +static const union AffineAnimCmd *const sAffineAnims_LargeFlame[] = { - gUnknown_83E5C54, + sAffineAnim_LargeFlame, }; -const struct SpriteTemplate gUnknown_83E5C70 = +const struct SpriteTemplate gLargeFlameSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E5C34, + .anims = sAnims_LargeFlame, .images = NULL, - .affineAnims = gUnknown_83E5C6C, - .callback = sub_80ACA00, + .affineAnims = sAffineAnims_LargeFlame, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_83E5C88 = +const struct SpriteTemplate gLargeFlameScatterSpriteTemplate = { .tileTag = ANIM_TAG_FIRE, .paletteTag = ANIM_TAG_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C34, + .anims = sAnims_LargeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACA00, + .callback = AnimLargeFlame, }; -const struct SpriteTemplate gUnknown_83E5CA0 = +const struct SpriteTemplate gFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_FIRE_PLUME, .paletteTag = ANIM_TAG_FIRE_PLUME, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C50, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC990, + .callback = AnimFirePlume, }; const struct SpriteTemplate gUnknown_83E5CB8 = @@ -165,10 +165,10 @@ const struct SpriteTemplate gUnknown_83E5CB8 = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5C50, + .anims = sAnims_FirePlume, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AC990, + .callback = AnimFirePlume, }; static const union AnimCmd gUnknown_83E5CD0[] = @@ -195,30 +195,30 @@ const struct SpriteTemplate gUnknown_83E5CE4 = .callback = sub_80ACAA8, }; -static const union AffineAnimCmd gUnknown_83E5CFC[] = +static const union AffineAnimCmd sAffineAnim_SunlightRay[] = { AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), AFFINEANIMCMD_FRAME(0x2, 0x2, 10, 1), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E5D14[] = +static const union AffineAnimCmd *const sAffineAnims_SunlightRay[] = { - gUnknown_83E5CFC, + sAffineAnim_SunlightRay, }; -const struct SpriteTemplate gUnknown_83E5D18 = +const struct SpriteTemplate gSunlightRaySpriteTemplate = { .tileTag = ANIM_TAG_SUNLIGHT, .paletteTag = ANIM_TAG_SUNLIGHT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E5D14, + .affineAnims = sAffineAnims_SunlightRay, .callback = sub_80ACBB0, }; -static const union AnimCmd gUnknown_83E5D30[] = +static const union AnimCmd sAnim_BasicFire[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -228,9 +228,9 @@ static const union AnimCmd gUnknown_83E5D30[] = ANIMCMD_JUMP(0), }; -const union AnimCmd *const gUnknown_83E5D48[] = +const union AnimCmd *const gAnims_BasicFire[] = { - gUnknown_83E5D30, + sAnim_BasicFire, }; const struct SpriteTemplate gEmberSpriteTemplate = @@ -249,44 +249,44 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimEmberFlare, }; -const struct SpriteTemplate gUnknown_83E5D7C = +const struct SpriteTemplate gBurnFlameSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACC44, + .callback = AnimBurnFlame, }; -const struct SpriteTemplate gUnknown_83E5D94 = +const struct SpriteTemplate gFireBlastRingSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireRing, }; -static const union AnimCmd gUnknown_83E5DAC[] = +static const union AnimCmd sAnim_FireBlastCross[] = { ANIMCMD_FRAME(32, 6), ANIMCMD_FRAME(48, 6), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5DB8[] = +static const union AnimCmd *const sAnims_FireBlastCross[] = { - gUnknown_83E5DAC, + sAnim_FireBlastCross, }; static const union AffineAnimCmd gUnknown_83E5DBC[] = @@ -307,40 +307,40 @@ static const union AffineAnimCmd *const gUnknown_83E5DDC[] = gUnknown_83E5DCC, }; -const struct SpriteTemplate gUnknown_83E5DE4 = +const struct SpriteTemplate gFireBlastCrossSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5DB8, + .anims = sAnims_FireBlastCross, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFireCross, }; -const struct SpriteTemplate gUnknown_83E5DFC = +const struct SpriteTemplate gFireSpiralOutwardSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACDE8, + .callback = AnimFireSpiralOutward, }; -const struct SpriteTemplate gUnknown_83E5E14 = +const struct SpriteTemplate gWeatherBallFireDownSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8077350, + .callback = AnimWeatherBallDown, }; -static const struct SpriteTemplate gUnknown_83E5E2C = +static const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -348,10 +348,10 @@ static const struct SpriteTemplate gUnknown_83E5E2C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD330, + .callback = AnimEruptionLaunchRock, }; -static const s16 sHeatedRockCoords[][2] = +static const s16 sEruptionLaunchRockCoords[][2] = { {-2, -5}, {-1, -1}, @@ -362,7 +362,7 @@ static const s16 sHeatedRockCoords[][2] = { 4, -7}, }; -const struct SpriteTemplate gUnknown_83E5E60 = +const struct SpriteTemplate gEruptionFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_WARM_ROCK, .paletteTag = ANIM_TAG_WARM_ROCK, @@ -370,10 +370,10 @@ const struct SpriteTemplate gUnknown_83E5E60 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD454, + .callback = AnimEruptionFallingRock, }; -static const union AnimCmd gUnknown_83E5E78[] = +static const union AnimCmd sAnim_WillOWispOrb_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -382,44 +382,44 @@ static const union AnimCmd gUnknown_83E5E78[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E5E8C[] = +static const union AnimCmd sAnim_WillOWispOrb_1[] = { ANIMCMD_FRAME(16, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E5E94[] = +static const union AnimCmd sAnim_WillOWispOrb_2[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E5E9C[] = +static const union AnimCmd sAnim_WillOWispOrb_3[] = { ANIMCMD_FRAME(20, 5), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E5EA4[] = +static const union AnimCmd *const sAnims_WillOWispOrb[] = { - gUnknown_83E5E78, - gUnknown_83E5E8C, - gUnknown_83E5E94, - gUnknown_83E5E9C, + sAnim_WillOWispOrb_0, + sAnim_WillOWispOrb_1, + sAnim_WillOWispOrb_2, + sAnim_WillOWispOrb_3, }; -const struct SpriteTemplate gUnknown_83E5EB4 = +const struct SpriteTemplate gWillOWispOrbSpriteTemplate = { .tileTag = ANIM_TAG_WISP_ORB, .paletteTag = ANIM_TAG_WISP_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E5EA4, + .anims = sAnims_WillOWispOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD540, + .callback = AnimWillOWispOrb, }; -static const union AnimCmd gUnknown_83E5ECC[] = +static const union AnimCmd sAnim_WillOWispFire[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -428,33 +428,36 @@ static const union AnimCmd gUnknown_83E5ECC[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5EE0[] = +static const union AnimCmd *const sAnims_WillOWispFire[] = { - gUnknown_83E5ECC, + sAnim_WillOWispFire, }; -const struct SpriteTemplate gUnknown_83E5EE4 = +const struct SpriteTemplate gWillOWispFireSpriteTemplate = { .tileTag = ANIM_TAG_WISP_FIRE, .paletteTag = ANIM_TAG_WISP_FIRE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5EE0, + .anims = sAnims_WillOWispFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AD6F4, + .callback = AnimWillOWispFire, }; -static const s8 gUnknown_83E5EFC[16] = +// Directions for shaking up/down or left/right in AnimTask_ShakeTargetInPattern +// Only first 10 values are ever accessed. +// First pattern results in larger shakes, second results in faster oscillation +static const s8 sShakeDirsPattern0[16] = { -1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, }; -static const s8 gUnknown_83E5F0C[16] = +static const s8 sShakeDirsPattern1[16] = { -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; -static void sub_80AC90C(struct Sprite *sprite) +static void AnimFireSpiralInward(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = 0x3C; @@ -466,7 +469,7 @@ static void sub_80AC90C(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80AC94C(struct Sprite *sprite) +static void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->pos1.y += gBattleAnimArgs[1]; @@ -477,7 +480,7 @@ static void sub_80AC94C(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80AC990(struct Sprite *sprite) +static void AnimFirePlume(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -498,7 +501,7 @@ static void sub_80AC990(struct Sprite *sprite) sprite->callback = sub_80ACA6C; } -static void sub_80ACA00(struct Sprite *sprite) +static void AnimLargeFlame(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -606,7 +609,7 @@ static void AnimEmberFlare(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80ACC44(struct Sprite *sprite) +static void AnimBurnFlame(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; @@ -696,7 +699,7 @@ static void AnimFireCross(struct Sprite *sprite) sprite->callback = TranslateSpriteLinear; } -static void sub_80ACDE8(struct Sprite *sprite) +static void AnimFireSpiralOutward(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[1] = gBattleAnimArgs[2]; @@ -725,7 +728,7 @@ static void sub_80ACE50(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80ACEA4(u8 taskId) // initialize animation task for Move_ERUPTION? +void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Move_ERUPTION? { struct Task *task = &gTasks[taskId]; @@ -857,14 +860,14 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) } for (i = 0, j = 0; i <= 6; ++i) { - u8 spriteId = CreateSprite(&gUnknown_83E5E2C, x, y, 2); + u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2); if (spriteId != 0x40) { gSprites[spriteId].oam.tileNum += j * 4 + 0x40; if (++j >= 5) j = 0; - sub_80AD3C8(&gSprites[spriteId], sHeatedRockCoords[i][0] * sign, sHeatedRockCoords[i][1]); + sub_80AD3C8(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]); gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = a3; ++gTasks[taskId].data[a3]; @@ -872,7 +875,7 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) } } -static void sub_80AD330(struct Sprite *sprite) +static void AnimEruptionLaunchRock(struct Sprite *sprite) { sub_80AD3E4(sprite); if (sprite->invisible) @@ -922,7 +925,7 @@ static void sub_80AD3E4(struct Sprite *sprite) sprite->invisible = TRUE; } -static void sub_80AD454(struct Sprite *sprite) +static void AnimEruptionFallingRock(struct Sprite *sprite) { sprite->pos1.x = gBattleAnimArgs[0]; sprite->pos1.y = gBattleAnimArgs[1]; @@ -971,7 +974,7 @@ static void sub_80AD4A8(struct Sprite *sprite) } //wisp orb -static void sub_80AD540(struct Sprite *sprite) +static void AnimWillOWispOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1040,7 +1043,7 @@ static void sub_80AD690(struct Sprite *sprite) } //wisp fire -static void sub_80AD6F4(struct Sprite *sprite) +static void AnimWillOWispFire(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -1072,7 +1075,7 @@ static void sub_80AD6F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80AD800(u8 taskId) +void AnimTask_MoveHeatWaveTargets(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1162,7 +1165,7 @@ void AnimTask_BlendBackground(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80ADAD8(u8 taskId) +void AnimTask_ShakeTargetInPattern(u8 taskId) { s8 unk; u8 spriteId; @@ -1177,9 +1180,9 @@ void sub_80ADAD8(u8 taskId) ++gTasks[taskId].data[0]; spriteId = gBattlerSpriteIds[gBattleAnimTarget]; if (!gTasks[taskId].data[4]) - unk = gUnknown_83E5EFC[gTasks[taskId].data[0] % 10]; + unk = sShakeDirsPattern0[gTasks[taskId].data[0] % 10]; else - unk = gUnknown_83E5F0C[gTasks[taskId].data[0] % 10]; + unk = sShakeDirsPattern1[gTasks[taskId].data[0] % 10]; if (gTasks[taskId].data[3] == 1) gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; else diff --git a/src/flying.c b/src/flying.c index 83c8e1f0e..18cfa4e39 100644 --- a/src/flying.c +++ b/src/flying.c @@ -5,22 +5,22 @@ #include "constants/battle_anim.h" #include "random.h" -static void sub_80B18E4(struct Sprite *sprite); -static void sub_80B1A1C(struct Sprite *sprite); -static void sub_80B1AB8(struct Sprite *sprite); -static void sub_80B1BB0(struct Sprite *sprite); -static void sub_80B1C3C(struct Sprite *sprite); -static void sub_80B1D88(struct Sprite *sprite); +static void AnimEllipticalGust(struct Sprite *sprite); +static void AnimGustToTarget(struct Sprite *sprite); +static void AnimAirWaveCrescent(struct Sprite *sprite); +static void AnimFlyBallUp(struct Sprite *sprite); +static void AnimFlyBallAttack(struct Sprite *sprite); +static void AnimFallingFeather(struct Sprite *sprite); static void sub_80B24C0(struct Sprite *sprite); static void sub_80B2514(struct Sprite *sprite); -static void sub_80B2780(struct Sprite *sprite); -static void sub_80B2914(struct Sprite *sprite); -static void sub_80B2974(struct Sprite *sprite); -static void sub_80B2A08(struct Sprite *sprite); -static void sub_80B2AF4(struct Sprite *sprite); -static void sub_80B2BD8(struct Sprite *sprite); +static void AnimWhirlwindLine(struct Sprite *sprite); +static void AnimBounceBallShrink(struct Sprite *sprite); +static void AnimBounceBallLand(struct Sprite *sprite); +static void AnimDiveBall(struct Sprite *sprite); +static void AnimDiveWaterSplash(struct Sprite *sprite); +static void AnimSprayWaterDroplet(struct Sprite *sprite); static void sub_80B2CE4(struct Sprite *sprite); -static void sub_80B2D64(struct Sprite *sprite); +static void AnimSkyAttackBird(struct Sprite *sprite); static void sub_80B190C(struct Sprite *sprite); static void sub_80B198C(u8 taskId); static void sub_80B1A9C(struct Sprite *sprite); @@ -35,7 +35,7 @@ static void sub_80B2C88(struct Sprite *sprite); static void sub_80B2CF8(struct Sprite *sprite); static void sub_80B2E20(struct Sprite *sprite); -const struct SpriteTemplate gUnknown_83E6AE8 = +const struct SpriteTemplate gEllipticalGustSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, @@ -43,33 +43,33 @@ const struct SpriteTemplate gUnknown_83E6AE8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B18E4, + .callback = AnimEllipticalGust, }; -static const union AffineAnimCmd gUnknown_83E6B00[] = +static const union AffineAnimCmd sAffineAnim_GustToTarget[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6B18[] = +static const union AffineAnimCmd *const sAffineAnims_GustToTarget[] = { - gUnknown_83E6B00, + sAffineAnim_GustToTarget, }; -const struct SpriteTemplate gUnknown_83E6B1C = +const struct SpriteTemplate gGustToTargetSpriteTemplate = { .tileTag = ANIM_TAG_GUST, .paletteTag = ANIM_TAG_GUST, .oam = &gOamData_AffineNormal_ObjNormal_32x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6B18, - .callback = sub_80B1A1C, + .affineAnims = sAffineAnims_GustToTarget, + .callback = AnimGustToTarget, }; -static const union AnimCmd gUnknown_83E6B34[] = +static const union AnimCmd sAffineAnim_AirWaveCrescent[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(0, 3, .hFlip = TRUE), @@ -78,23 +78,23 @@ static const union AnimCmd gUnknown_83E6B34[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E6B48[] = +static const union AnimCmd *const sAffineAnims_AirWaveCrescent[] = { - gUnknown_83E6B34, + sAffineAnim_AirWaveCrescent, }; -const struct SpriteTemplate gUnknown_83E6B4C = +const struct SpriteTemplate gAirWaveCrescentSpriteTemplate = { .tileTag = ANIM_TAG_AIR_WAVE_2, .paletteTag = ANIM_TAG_AIR_WAVE_2, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_83E6B48, + .anims = sAffineAnims_AirWaveCrescent, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1AB8, + .callback = AnimAirWaveCrescent, }; -static const union AffineAnimCmd gUnknown_83E6B64[] = +static const union AffineAnimCmd sAffineAnim_FlyBallUp[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -103,78 +103,78 @@ static const union AffineAnimCmd gUnknown_83E6B64[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6B8C[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] = { - gUnknown_83E6B64, + sAffineAnim_FlyBallUp, }; -static const union AffineAnimCmd gUnknown_83E6B90[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6B9C[] = +static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6BB0[] = +static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] = { - gUnknown_83E6B90, - gUnknown_83E6B9C, + sAffineAnim_FlyBallAttack_0, + sAffineAnim_FlyBallAttack_1, }; -const struct SpriteTemplate gUnknown_83E6BB8 = +const struct SpriteTemplate gFlyBallUpSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6B8C, - .callback = sub_80B1BB0, + .affineAnims = sAffineAnims_FlyBallUp, + .callback = AnimFlyBallUp, }; -const struct SpriteTemplate gUnknown_83E6BD0 = +const struct SpriteTemplate gFlyBallAttackSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6BB0, - .callback = sub_80B1C3C, + .affineAnims = sAffineAnims_FlyBallAttack, + .callback = AnimFlyBallAttack, }; -static const union AnimCmd gUnknown_83E6BE8[] = +static const union AnimCmd sAnim_FallingFeather_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6BF0[] = +static const union AnimCmd sAnim_FallingFeather_1[] = { ANIMCMD_FRAME(16, 0, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6BF8[] = +static const union AnimCmd *const sAnims_FallingFeather[] = { - gUnknown_83E6BE8, - gUnknown_83E6BF0, + sAnim_FallingFeather_0, + sAnim_FallingFeather_1, }; -const struct SpriteTemplate gUnknown_83E6C00 = +const struct SpriteTemplate gFallingFeatherSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6BF8, + .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B1D88, + .callback = AnimFallingFeather, }; // not used @@ -196,13 +196,13 @@ const struct SpriteTemplate gUnknown_83E6C50 = .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E6BF8, + .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = sub_80B2514, }; -static const union AnimCmd gUnknown_83E6C68[] = +static const union AnimCmd sAnim_WhirlwindLines[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(8, 1), @@ -212,23 +212,23 @@ static const union AnimCmd gUnknown_83E6C68[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6C80[] = +static const union AnimCmd *const sAnims_WhirlwindLines[] = { - gUnknown_83E6C68, + sAnim_WhirlwindLines, }; -const struct SpriteTemplate gUnknown_83E6C84 = +const struct SpriteTemplate gWhirlwindLineSpriteTemplate = { .tileTag = ANIM_TAG_WHIRLWIND_LINES, .paletteTag = ANIM_TAG_WHIRLWIND_LINES, .oam = &gOamData_AffineOff_ObjNormal_32x16, - .anims = gUnknown_83E6C80, + .anims = sAnims_WhirlwindLines, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2780, + .callback = AnimWhirlwindLine, }; -static const union AffineAnimCmd gUnknown_83E6C9C[] = +static const union AffineAnimCmd sAffineAnim_BounceBallShrink[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -238,45 +238,45 @@ static const union AffineAnimCmd gUnknown_83E6C9C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6CCC[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallShrink[] = { - gUnknown_83E6C9C, + sAffineAnim_BounceBallShrink, }; -const struct SpriteTemplate gUnknown_83E6CD0 = +const struct SpriteTemplate gBounceBallShrinkSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6CCC, - .callback = sub_80B2914, + .affineAnims = sAffineAnims_BounceBallShrink, + .callback = AnimBounceBallShrink, }; -static const union AffineAnimCmd gUnknown_83E6CE8[] = +static const union AffineAnimCmd sAffineAnim_BounceBallLand[] = { AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6CF8[] = +static const union AffineAnimCmd *const sAffineAnims_BounceBallLand[] = { - gUnknown_83E6CE8, + sAffineAnim_BounceBallLand, }; -const struct SpriteTemplate gUnknown_83E6CFC = +const struct SpriteTemplate gBounceBallLandSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6CF8, - .callback = sub_80B2974, + .affineAnims = sAffineAnims_BounceBallLand, + .callback = AnimBounceBallLand, }; -static const union AffineAnimCmd gUnknown_83E6D14[] = +static const union AffineAnimCmd sAffineAnim_DiveBall[] = { AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), @@ -285,20 +285,20 @@ static const union AffineAnimCmd gUnknown_83E6D14[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6D3C[] = +static const union AffineAnimCmd *const sAffineAnims_DiveBall[] = { - gUnknown_83E6D14, + sAffineAnim_DiveBall, }; -const struct SpriteTemplate gUnknown_83E6D40 = +const struct SpriteTemplate gDiveBallSpriteTemplate = { .tileTag = ANIM_TAG_ROUND_SHADOW, .paletteTag = ANIM_TAG_ROUND_SHADOW, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6D3C, - .callback = sub_80B2A08, + .affineAnims = sAffineAnims_DiveBall, + .callback = AnimDiveBall, }; // not used @@ -316,7 +316,7 @@ static const union AffineAnimCmd *const gUnknown_83E6D80[] = gUnknown_83E6D58, }; -const struct SpriteTemplate gUnknown_83E6D7C = +const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = { .tileTag = ANIM_TAG_SPLASH, .paletteTag = ANIM_TAG_SPLASH, @@ -324,10 +324,10 @@ const struct SpriteTemplate gUnknown_83E6D7C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2AF4, + .callback = AnimDiveWaterSplash, }; -const struct SpriteTemplate gUnknown_83E6D94 = +const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = { .tileTag = ANIM_TAG_SWEAT_BEAD, .paletteTag = ANIM_TAG_SWEAT_BEAD, @@ -335,7 +335,7 @@ const struct SpriteTemplate gUnknown_83E6D94 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2BD8, + .callback = AnimSprayWaterDroplet, }; const struct SpriteTemplate gUnknown_83E6DAC = @@ -349,7 +349,7 @@ const struct SpriteTemplate gUnknown_83E6DAC = .callback = sub_80B2CE4, }; -const struct SpriteTemplate gUnknown_83E6DB4 = +const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = { .tileTag = ANIM_TAG_BIRD, .paletteTag = ANIM_TAG_BIRD, @@ -357,10 +357,10 @@ const struct SpriteTemplate gUnknown_83E6DB4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2D64, + .callback = AnimSkyAttackBird, }; -static void sub_80B18E4(struct Sprite *sprite) +static void AnimEllipticalGust(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->pos1.y += 20; @@ -379,7 +379,7 @@ static void sub_80B190C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B194C(u8 taskId) +void AnimTask_AnimateGustTornadoPalette(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[0]; @@ -411,7 +411,7 @@ static void sub_80B198C(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B1A1C(struct Sprite *sprite) +static void AnimGustToTarget(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -432,7 +432,7 @@ static void sub_80B1A9C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1AB8(struct Sprite *sprite) +static void AnimAirWaveCrescent(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -467,7 +467,7 @@ static void sub_80B1AB8(struct Sprite *sprite) SeekSpriteAnim(sprite, gBattleAnimArgs[5]); } -static void sub_80B1BB0(struct Sprite *sprite) +static void AnimFlyBallUp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -491,7 +491,7 @@ static void sub_80B1BF8(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1C3C(struct Sprite *sprite) +static void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -564,7 +564,7 @@ struct FeatherDanceData u16 unkE_1:15; }; -static void sub_80B1D88(struct Sprite *sprite) +static void AnimFallingFeather(struct Sprite *sprite) { u8 battler, matrixNum, sinIndex; s16 spriteCoord, sinVal; @@ -986,7 +986,7 @@ static void sub_80B268C(struct Sprite *sprite) sprite->callback = sub_80B1F94; } -static void sub_80B2780(struct Sprite *sprite) +static void AnimWhirlwindLine(struct Sprite *sprite) { u16 arg; u8 mult; @@ -1023,7 +1023,7 @@ static void sub_80B2820(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B2868(u8 taskId) +void AnimTask_DrillPeckHitSplats(u8 taskId) { if (!(gTasks[taskId].data[0] % 32)) { @@ -1032,7 +1032,7 @@ void sub_80B2868(u8 taskId) gBattleAnimArgs[1] = Cos(gTasks[taskId].data[0], -13); gBattleAnimArgs[2] = 1; gBattleAnimArgs[3] = 3; - CreateSpriteAndAnimate(&gUnknown_83E7C98, + CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate, GetBattlerSpriteCoord(gBattleAnimTarget, 2), GetBattlerSpriteCoord(gBattleAnimTarget, 3), 3); @@ -1042,7 +1042,7 @@ void sub_80B2868(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B2914(struct Sprite *sprite) +static void AnimBounceBallShrink(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1058,7 +1058,7 @@ static void sub_80B2914(struct Sprite *sprite) } } -static void sub_80B2974(struct Sprite *sprite) +static void AnimBounceBallLand(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1083,7 +1083,7 @@ static void sub_80B2974(struct Sprite *sprite) } } -static void sub_80B2A08(struct Sprite *sprite) +static void AnimDiveBall(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; @@ -1120,7 +1120,7 @@ static void sub_80B2AB0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B2AF4(struct Sprite *sprite) +static void AnimDiveWaterSplash(struct Sprite *sprite) { u32 matrixNum; s32 t1, t2; @@ -1165,7 +1165,7 @@ static void sub_80B2AF4(struct Sprite *sprite) } } -static void sub_80B2BD8(struct Sprite *sprite) +static void AnimSprayWaterDroplet(struct Sprite *sprite) { s32 v1 = 0x1FF & Random(); s32 v2 = 0x7F & Random(); @@ -1241,7 +1241,7 @@ static void sub_80B2CF8(struct Sprite *sprite) } } -static void sub_80B2D64(struct Sprite *sprite) +static void AnimSkyAttackBird(struct Sprite *sprite) { u16 rotation; s16 posx = sprite->pos1.x; diff --git a/src/ghost.c b/src/ghost.c index 9a77999de..30f6b9bdb 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -8,65 +8,65 @@ #include "decompress.h" #include "constants/songs.h" -static void sub_80B5268(struct Sprite *sprite); +static void AnimConfuseRayBallBounce(struct Sprite *sprite); static void sub_80B52D0(struct Sprite *sprite); static void sub_80B5344(struct Sprite *sprite); static void sub_80B53C0(struct Sprite *sprite); -static void sub_80B5450(struct Sprite *sprite); +static void AnimConfuseRayBallSpiral(struct Sprite *sprite); static void sub_80B5470(struct Sprite *sprite); static void sub_80B5570(u8 taskId); static void sub_80B55C8(u8 taskId); -static void InitAnimShadowBall(struct Sprite *sprite); +static void AnimShadowBall(struct Sprite *sprite); static void AnimShadowBallStep(struct Sprite *sprite); -static void sub_80B57F8(struct Sprite *sprite); +static void AnimLick(struct Sprite *sprite); static void sub_80B5810(struct Sprite *sprite); static void sub_80B59D4(u8 taskId); static void sub_80B5AD4(u8 taskId); static void sub_80B5D38(u8 taskId); static void sub_80B5DCC(u8 taskId); -static void sub_80B5EC0(struct Sprite *sprite); +static void AnimDestinyBondWhiteShadow(struct Sprite *sprite); static void sub_80B5FE0(struct Sprite *sprite); static void sub_80B623C(u8 taskId); static void sub_80B6468(u8 taskId); static void sub_80B65F0(u8 taskId); -static void sub_80B664C(struct Sprite *sprite); +static void AnimCurseNail(struct Sprite *sprite); static void sub_80B66A8(struct Sprite *sprite); static void sub_80B6728(struct Sprite *sprite); static void sub_80B67A0(struct Sprite *sprite); -static void sub_80B67D4(struct Sprite *sprite); +static void AnimGhostStatusSprite(struct Sprite *sprite); static void sub_80B68A8(struct Sprite *sprite); static void sub_80B696C(u8 taskId); -static void sub_80B6AF8(struct Sprite *sprite); +static void AnimGrudgeFlame(struct Sprite *sprite); static void sub_80B7158(struct Sprite *sprite); static void sub_80B6BE4(u8 taskId); static void sub_80B6F30(u8 taskId); static void sub_80B6FC4(u8 taskId); static void sub_80B71B0(struct Sprite *sprite); -static const union AffineAnimCmd gUnknown_83E75A8[] = +static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5), AFFINEANIMCMD_FRAME(-0x1E, -0x1E, 10, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E75C0[] = +static const union AffineAnimCmd *const sAffineAnims_ConfuseRayBallBounce[] = { - gUnknown_83E75A8, + sAffineAnim_ConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_83E75C4 = +const struct SpriteTemplate gConfuseRayBallBounceSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, .oam = &gOamData_AffineDouble_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E75C0, - .callback = sub_80B5268, + .affineAnims = sAffineAnims_ConfuseRayBallBounce, + .callback = AnimConfuseRayBallBounce, }; -const struct SpriteTemplate gUnknown_83E75DC = +const struct SpriteTemplate gConfuseRayBallSpiralSpriteTemplate = { .tileTag = ANIM_TAG_YELLOW_BALL, .paletteTag = ANIM_TAG_YELLOW_BALL, @@ -74,18 +74,18 @@ const struct SpriteTemplate gUnknown_83E75DC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B5450, + .callback = AnimConfuseRayBallSpiral, }; -static const union AffineAnimCmd gUnknown_83E75F4[] = +static const union AffineAnimCmd sAffineAnim_ShadowBall[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7604[] = +static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] = { - gUnknown_83E75F4, + sAffineAnim_ShadowBall, }; const struct SpriteTemplate gShadowBallSpriteTemplate = @@ -95,11 +95,11 @@ const struct SpriteTemplate gShadowBallSpriteTemplate = .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7604, - .callback = InitAnimShadowBall, + .affineAnims = sAffineAnims_ShadowBall, + .callback = AnimShadowBall, }; -const union AnimCmd gUnknown_83E7620[] = +const union AnimCmd sAnim_Lick[] = { ANIMCMD_FRAME(0, 2), ANIMCMD_FRAME(8, 2), @@ -109,20 +109,20 @@ const union AnimCmd gUnknown_83E7620[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E7638[] = +static const union AnimCmd *const sAnims_Lick[] = { - gUnknown_83E7620, + sAnim_Lick, }; -const struct SpriteTemplate gUnknown_83E763C = +const struct SpriteTemplate gLickSpriteTemplate = { .tileTag = ANIM_TAG_LICK, .paletteTag = ANIM_TAG_LICK, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E7638, + .anims = sAnims_Lick, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B57F8, + .callback = AnimLick, }; // not used @@ -138,7 +138,7 @@ static const union AffineAnimCmd *const gUnknown_83E7664[] = gUnknown_83E7654, }; -const struct SpriteTemplate gUnknown_83E7668 = +const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_SHADOW, .paletteTag = ANIM_TAG_WHITE_SHADOW, @@ -146,10 +146,10 @@ const struct SpriteTemplate gUnknown_83E7668 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B5EC0, + .callback = AnimDestinyBondWhiteShadow, }; -const struct SpriteTemplate gUnknown_83E7680 = +const struct SpriteTemplate gCurseNailSpriteTemplate = { .tileTag = ANIM_TAG_NAIL, .paletteTag = ANIM_TAG_NAIL, @@ -157,10 +157,10 @@ const struct SpriteTemplate gUnknown_83E7680 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B664C, + .callback = AnimCurseNail, }; -const struct SpriteTemplate gUnknown_83E7698 = +const struct SpriteTemplate gCurseGhostSpriteTemplate = { .tileTag = ANIM_TAG_GHOSTLY_SPIRIT, .paletteTag = ANIM_TAG_GHOSTLY_SPIRIT, @@ -168,10 +168,10 @@ const struct SpriteTemplate gUnknown_83E7698 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B67D4, + .callback = AnimGhostStatusSprite, }; -const struct SpriteTemplate gUnknown_83E76B0 = +const struct SpriteTemplate gNightmareDevilSpriteTemplate = { .tileTag = ANIM_TAG_DEVIL, .paletteTag = ANIM_TAG_DEVIL, @@ -179,10 +179,10 @@ const struct SpriteTemplate gUnknown_83E76B0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B67D4, + .callback = AnimGhostStatusSprite, }; -static const union AnimCmd gUnknown_83E76C8[] = +static const union AnimCmd sAnim_GrudgeFlame[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(8, 4), @@ -191,20 +191,20 @@ static const union AnimCmd gUnknown_83E76C8[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E76DC[] = +static const union AnimCmd *const sAnims_GrudgeFlame[] = { - gUnknown_83E76C8, + sAnim_GrudgeFlame, }; -const struct SpriteTemplate gUnknown_83E76E0 = +const struct SpriteTemplate gGrudgeFlameSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_FLAME, .paletteTag = ANIM_TAG_PURPLE_FLAME, .oam = &gOamData_AffineOff_ObjBlend_16x32, - .anims = gUnknown_83E76DC, + .anims = sAnims_GrudgeFlame, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B6AF8, + .callback = AnimGrudgeFlame, }; const struct SpriteTemplate gUnknown_83E76F8 = @@ -218,7 +218,7 @@ const struct SpriteTemplate gUnknown_83E76F8 = .callback = sub_80B7158, }; -static void sub_80B5268(struct Sprite *sprite) +static void AnimConfuseRayBallBounce(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; @@ -306,7 +306,7 @@ static void sub_80B53C0(struct Sprite *sprite) } } -static void sub_80B5450(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = sub_80B5470; @@ -332,7 +332,7 @@ static void sub_80B5470(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B54E8(u8 taskId) +void AnimTask_NightShadeClone(u8 taskId) { u8 spriteId; @@ -393,7 +393,7 @@ static void sub_80B55C8(u8 taskId) // arg 0: duration step 1 (attacker -> center) // arg 1: duration step 2 (spin center) // arg 2: duration step 3 (center -> target) -static void InitAnimShadowBall(struct Sprite *sprite) +static void AnimShadowBall(struct Sprite *sprite) { s16 oldPosX = sprite->pos1.x; s16 oldPosY = sprite->pos1.y; @@ -455,7 +455,7 @@ static void AnimShadowBallStep(struct Sprite *sprite) } } -static void sub_80B57F8(struct Sprite *sprite) +static void AnimLick(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = sub_80B5810; @@ -507,7 +507,7 @@ static void sub_80B5810(struct Sprite *sprite) } } -void sub_80B58AC(u8 taskId) +void AnimTask_NightmareClone(u8 taskId) { struct Task *task; @@ -579,7 +579,7 @@ static void sub_80B59D4(u8 taskId) } } -void sub_80B5AAC(u8 taskId) +void AnimTask_SpiteTargetShadow(u8 taskId) { struct Task *task; @@ -732,7 +732,7 @@ static void sub_80B5DCC(u8 taskId) ++task->data[15]; } -static void sub_80B5EC0(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) { s16 battler1X, battler1Y; s16 battler2X, battler2Y; @@ -781,7 +781,7 @@ static void sub_80B5FE0(struct Sprite *sprite) } } -void sub_80B6020(u8 taskId) +void AnimTask_DestinyBondWhiteShadow(u8 taskId) { struct Task *task; s16 battler; @@ -808,7 +808,7 @@ void sub_80B6020(u8 taskId) && battler != (gBattleAnimAttacker ^ 2) && IsBattlerSpriteVisible(battler)) { - spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = GetBattlerSpriteCoord(battler, 2); @@ -829,7 +829,7 @@ void sub_80B6020(u8 taskId) } else { - spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55); + spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { x = 48; @@ -921,7 +921,7 @@ static void sub_80B623C(u8 taskId) } } -void sub_80B63B4(u8 taskId) +void AnimTask_CurseStretchingBlackBg(u8 taskId) { s16 startX, startY; s16 leftDistance, topDistance, bottomDistance, rightDistance; @@ -1004,7 +1004,7 @@ static void sub_80B65F0(u8 taskId) } } -static void sub_80B664C(struct Sprite *sprite) +static void AnimCurseNail(struct Sprite *sprite) { s16 xDelta, xDelta2; @@ -1093,7 +1093,7 @@ static void sub_80B67A0(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B67D4(struct Sprite *sprite) +static void AnimGhostStatusSprite(struct Sprite *sprite) { u16 coeffB, coeffA; @@ -1137,7 +1137,7 @@ static void sub_80B68A8(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void sub_80B68C8(u8 taskId) +void AnimTask_GrudgeFlames(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1168,7 +1168,7 @@ static void sub_80B696C(u8 taskId) case 0: for (i = 0; i < 6; ++i) { - spriteId = CreateSprite(&gUnknown_83E76E0, task->data[9], task->data[10], task->data[6]); + spriteId = CreateSprite(&gGrudgeFlameSpriteTemplate, task->data[9], task->data[10], task->data[6]); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = taskId; @@ -1235,7 +1235,7 @@ static void sub_80B696C(u8 taskId) } } -static void sub_80B6AF8(struct Sprite *sprite) +static void AnimGrudgeFlame(struct Sprite *sprite) { u16 index; diff --git a/src/graphics.c b/src/graphics.c index 7eee42bf0..391913eb7 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1019,7 +1019,7 @@ const u32 gBattleAnimBgTilemap_InAir[] = INCBIN_U32("graphics/battle_anims/backg const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz"); const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_muddy_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); +const u32 gBattleAnimBgPalette_MuddyWater[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); @@ -1085,11 +1085,12 @@ const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprite const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz"); const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_sheet[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); -const u32 gFile_graphics_battle_anims_backgrounds_water_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); -const u32 gFile_graphics_unknown_unknown_E81D14_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81D14.bin.lz"); -const u32 gFile_graphics_unknown_unknown_E81FE4_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81FE4.bin.lz"); -const u32 gFile_graphics_unknown_unknown_E822B8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E822B8.bin.lz"); +const u32 gBattleAnimBgImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz"); +const u32 gBattleAnimBgPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz"); + +const u32 gBattleAnimBgTilemap_SurfOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_opponent.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_player.bin.lz"); +const u32 gBattleAnimBgTilemap_SurfContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_contest.bin.lz"); const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz"); diff --git a/src/ground.c b/src/ground.c index 423671112..af2c78e00 100644 --- a/src/ground.c +++ b/src/ground.c @@ -26,51 +26,51 @@ static void sub_80B967C(u8 taskId); static void sub_80B9760(struct Task *task); static void sub_80B98A8(u8 taskId); -static const union AffineAnimCmd gUnknown_83E7A00[] = +static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E7A10[] = +static const union AffineAnimCmd sAffineAnim_SpinningBone[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7A20[] = +static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] = { - gUnknown_83E7A00, + sAffineAnim_Bonemerang, }; -static const union AffineAnimCmd *const gUnknown_83E7A24[] = +static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] = { - gUnknown_83E7A10, + sAffineAnim_SpinningBone, }; -const struct SpriteTemplate gUnknown_83E7A28 = +const struct SpriteTemplate gBonemerangSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7A20, + .affineAnims = sAffineAnims_Bonemerang, .callback = AnimBonemerangProjectile, }; -const struct SpriteTemplate gUnknown_83E7A40 = +const struct SpriteTemplate gSpinningBoneSpriteTemplate = { .tileTag = ANIM_TAG_BONE, .paletteTag = ANIM_TAG_BONE, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7A24, + .affineAnims = sAffineAnims_SpinningBone, .callback = AnimBoneHitProjectile, }; -const struct SpriteTemplate gUnknown_83E7A58 = +const struct SpriteTemplate gSandAttackDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -81,29 +81,29 @@ const struct SpriteTemplate gUnknown_83E7A58 = .callback = AnimDirtScatter, }; -static const union AnimCmd gUnknown_83E7A70[] = +static const union AnimCmd sAnim_MudSlapMud[] = { ANIMCMD_FRAME(1, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E7A78[] = +static const union AnimCmd *const sAnims_MudSlapMud[] = { - gUnknown_83E7A70, + sAnim_MudSlapMud, }; -const struct SpriteTemplate gUnknown_83E7A7C = +const struct SpriteTemplate gMudSlapMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E7A78, + .anims = sAnims_MudSlapMud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimDirtScatter, }; -const struct SpriteTemplate gUnknown_83E7A94 = +const struct SpriteTemplate gMudsportMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -114,7 +114,7 @@ const struct SpriteTemplate gUnknown_83E7A94 = .callback = AnimMudSportDirt, }; -const struct SpriteTemplate gUnknown_83E7AAC = +const struct SpriteTemplate gDirtPlumeSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -125,7 +125,7 @@ const struct SpriteTemplate gUnknown_83E7AAC = .callback = AnimFissureDirtPlumeParticle, }; -const struct SpriteTemplate gUnknown_83E7AC4 = +const struct SpriteTemplate gDirtMoundSpriteTemplate = { .tileTag = ANIM_TAG_DIRT_MOUND, .paletteTag = ANIM_TAG_DIRT_MOUND, @@ -279,7 +279,7 @@ static void AnimMudSportDirtFalling(struct Sprite *sprite) } } -void sub_80B8E94(u8 taskId) +void AnimTask_DigDownMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -372,7 +372,7 @@ static void sub_80B908C(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B90EC(u8 taskId) +void AnimTask_DigUpMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -538,7 +538,7 @@ static void AnimDigDirtMound(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -void sub_80B94B4(u8 taskId) +void AnimTask_HorizontalShake(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -689,7 +689,7 @@ void AnimTask_IsPowerOver99(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B9800(u8 taskId) +void AnimTask_PositionFissureBgOnBattler(u8 taskId) { struct Task *newTask; u8 battler = (gBattleAnimArgs[0] & 1) ? gBattleAnimTarget : gBattleAnimAttacker; diff --git a/src/help_message.c b/src/help_message.c index 49b2c5114..1438f5fef 100644 --- a/src/help_message.c +++ b/src/help_message.c @@ -1,6 +1,7 @@ #include "global.h" #include "malloc.h" #include "menu.h" +#include "malloc.h" static EWRAM_DATA u8 sHelpMessageWindowId = 0; diff --git a/src/help_system.c b/src/help_system.c index 87fabbd09..d43a0eb32 100644 --- a/src/help_system.c +++ b/src/help_system.c @@ -2,6 +2,7 @@ #include "gflib.h" #include "decompress.h" #include "m4a.h" +#include "event_data.h" #include "help_system.h" #include "list_menu.h" #include "strings.h" @@ -74,134 +74,135 @@ static const union AnimCmd gUnknown_83E62E8[] = ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E62F0[] = +static const union AnimCmd sAnim_IceCrystalLarge[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E62F8[] = +static const union AnimCmd sAnim_IceCrystalSmall[] = { ANIMCMD_FRAME(6, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6300[] = +static const union AnimCmd sAnim_Snowball[] = { ANIMCMD_FRAME(7, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6308[] = +static const union AnimCmd sAnim_BlizzardIceCrystal[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E6310[] = +static const union AnimCmd sAnim_SmallBubblePair[] = { ANIMCMD_FRAME(12, 6), ANIMCMD_FRAME(13, 6), ANIMCMD_JUMP(0), }; +// unused static const union AnimCmd *const gUnknown_83E631C[] = { gUnknown_83E62E8, }; -static const union AnimCmd *const gUnknown_83E6320[] = +static const union AnimCmd *const sAnims_IceCrystalLarge[] = { - gUnknown_83E62F0, + sAnim_IceCrystalLarge, }; -static const union AnimCmd *const gUnknown_83E6324[] = +static const union AnimCmd *const sAnims_IceCrystalSmall[] = { - gUnknown_83E62F8, + sAnim_IceCrystalSmall, }; -static const union AnimCmd *const gUnknown_83E6328[] = +static const union AnimCmd *const sAnims_Snowball[] = { - gUnknown_83E6300, + sAnim_Snowball, }; -static const union AnimCmd *const gUnknown_83E632C[] = +static const union AnimCmd *const sAnims_BlizzardIceCrystal[] = { - gUnknown_83E6308, + sAnim_BlizzardIceCrystal, }; -const union AnimCmd *const gUnknown_83E6330[] = +const union AnimCmd *const gAnims_SmallBubblePair[] = { - gUnknown_83E6310, + sAnim_SmallBubblePair, }; -static const union AffineAnimCmd gUnknown_83E6334[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalSpiralInwardLarge[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6344[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalSpiralInwardLarge[] = { - gUnknown_83E6334, + sAffineAnim_IceCrystalSpiralInwardLarge, }; -const struct SpriteTemplate gUnknown_83E6348 = +const struct SpriteTemplate gIceCrystalSpiralInwardLarge = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineDouble_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E6344, + .affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge, .callback = AnimIcePunchSwirlingParticle, }; -const struct SpriteTemplate gUnknown_83E6360 = +const struct SpriteTemplate gIceCrystalSpiralInwardSmall = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIcePunchSwirlingParticle, }; -static const union AffineAnimCmd gUnknown_83E6378[] = +static const union AffineAnimCmd sAffineAnim_IceBeamInnerCrystal[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E6388[] = +static const union AffineAnimCmd *const sAffineAnims_IceBeamInnerCrystal[] = { - gUnknown_83E6378, + sAffineAnim_IceBeamInnerCrystal, }; -const struct SpriteTemplate gUnknown_83E638C = +const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E6388, + .affineAnims = sAffineAnims_IceBeamInnerCrystal, .callback = AnimIceBeamParticle, }; -const struct SpriteTemplate gUnknown_83E63A4 = +const struct SpriteTemplate gIceBeamOuterCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimIceBeamParticle, }; -static const union AffineAnimCmd gUnknown_83E63BC[] = +static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] = { AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), @@ -209,67 +210,67 @@ static const union AffineAnimCmd gUnknown_83E63BC[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E63DC[] = +static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] = { - gUnknown_83E63BC, + sAffineAnim_IceCrystalHit, }; -const struct SpriteTemplate gUnknown_83E63E0 = +const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x16, - .anims = gUnknown_83E6320, + .anims = sAnims_IceCrystalLarge, .images = NULL, - .affineAnims = gUnknown_83E63DC, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_83E63F8 = +const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineNormal_ObjBlend_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, - .affineAnims = gUnknown_83E63DC, + .affineAnims = sAffineAnims_IceCrystalHit, .callback = AnimIceEffectParticle, }; -const struct SpriteTemplate gUnknown_83E6410 = +const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6328, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSwirlingSnowball_Step1, }; -const struct SpriteTemplate gUnknown_83E6428 = +const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E632C, + .anims = sAnims_BlizzardIceCrystal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -const struct SpriteTemplate gUnknown_83E6440 = +const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6328, + .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimMoveParticleBeyondTarget, }; -static const union AnimCmd gUnknown_83E6458[] = +static const union AnimCmd sAnim_IceGroundSpike[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(2, 5), @@ -281,51 +282,51 @@ static const union AnimCmd gUnknown_83E6458[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6478[] = +static const union AnimCmd *const sAnims_IceGroundSpike[] = { - gUnknown_83E6458, + sAnim_IceGroundSpike, }; -const struct SpriteTemplate gUnknown_83E647C = +const struct SpriteTemplate gIceGroundSpikeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_SPIKES, .paletteTag = ANIM_TAG_ICE_SPIKES, .oam = &gOamData_AffineOff_ObjBlend_8x16, - .anims = gUnknown_83E6478, + .anims = sAnims_IceGroundSpike, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWaveFromCenterOfTarget, }; -static const union AnimCmd gUnknown_83E6494[] = +static const union AnimCmd sAnim_Cloud[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(8, 8), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E64A0[] = +static const union AnimCmd *const sAnims_Cloud[] = { - gUnknown_83E6494, + sAnim_Cloud, }; -const struct SpriteTemplate gUnknown_83E64A4 = +const struct SpriteTemplate gMistCloudSpriteTemplate = { .tileTag = ANIM_TAG_MIST_CLOUD, .paletteTag = ANIM_TAG_MIST_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, }; -const struct SpriteTemplate gUnknown_83E64BC = +const struct SpriteTemplate gSmogCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitSwirlingFogAnim, @@ -336,7 +337,7 @@ static const u8 gUnknown_83E64D4[] = 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; -const struct SpriteTemplate gUnknown_83E64E8 = +const struct SpriteTemplate gMistBallSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -352,18 +353,18 @@ static const u8 gUnknown_83E6500[] = 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; -const struct SpriteTemplate gUnknown_83E6514 = +const struct SpriteTemplate gPoisonGasCloudSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_GAS_CLOUD, .paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD, .oam = &gOamData_AffineOff_ObjBlend_32x16, - .anims = gUnknown_83E64A0, + .anims = sAnims_Cloud, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitPoisonGasCloudAnim, }; -static const struct HailStruct gUnknown_83E652C[] = +static const struct HailStruct sHailCoordData[] = { {100, 120, 0, 2}, {85, 120, 0, 0}, @@ -377,71 +378,71 @@ static const struct HailStruct gUnknown_83E652C[] = {38, 120, 2, 0}, }; -static const union AffineAnimCmd gUnknown_83E6554[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_0[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6564[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6574[] = +static const union AffineAnimCmd sAffineAnim_HailParticle_2[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6584[] = +static const union AffineAnimCmd sAffineAnim_WeatherBallIceDown[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6594[] = +static const union AffineAnimCmd *const sAffineAnims_HailParticle[] = { - gUnknown_83E6554, - gUnknown_83E6564, - gUnknown_83E6574, + sAffineAnim_HailParticle_0, + sAffineAnim_HailParticle_1, + sAffineAnim_HailParticle_2, }; -static const union AffineAnimCmd *const gUnknown_83E65A0[] = +static const union AffineAnimCmd *const sAffineAnims_WeatherBallIceDown[] = { - gUnknown_83E6584, + sAffineAnim_WeatherBallIceDown, }; -static const struct SpriteTemplate gUnknown_83E65A4 = +static const struct SpriteTemplate sHailParticleSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6594, + .affineAnims = sAffineAnims_HailParticle, .callback = AnimHailBegin, }; -const struct SpriteTemplate gUnknown_83E65BC = +const struct SpriteTemplate gWeatherBallIceDownSpriteTemplate = { .tileTag = ANIM_TAG_HAIL, .paletteTag = ANIM_TAG_HAIL, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E65A0, - .callback = sub_8077350, + .affineAnims = sAffineAnims_WeatherBallIceDown, + .callback = AnimWeatherBallDown, }; -static const union AnimCmd gUnknown_83E65D4[] = +static const union AnimCmd sAnim_IceBallChunk_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E65DC[] = +static const union AnimCmd sAnim_IceBallChunk_1[] = { ANIMCMD_FRAME(16, 4), ANIMCMD_FRAME(32, 4), @@ -450,68 +451,68 @@ static const union AnimCmd gUnknown_83E65DC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E65F0[] = +static const union AnimCmd *const sAnims_IceBallChunk[] = { - gUnknown_83E65D4, - gUnknown_83E65DC, + sAnim_IceBallChunk_0, + sAnim_IceBallChunk_1, }; -static const union AffineAnimCmd gUnknown_83E65F8[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_0[] = { AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6608[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_1[] = { AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6618[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_2[] = { AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6628[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_3[] = { AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E6638[] = +static const union AffineAnimCmd sAffineAnim_IceBallChunk_4[] = { AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6648[] = +static const union AffineAnimCmd *const sAffineAnims_IceBallChunk[] = { - gUnknown_83E65F8, - gUnknown_83E6608, - gUnknown_83E6618, - gUnknown_83E6628, - gUnknown_83E6638, + sAffineAnim_IceBallChunk_0, + sAffineAnim_IceBallChunk_1, + sAffineAnim_IceBallChunk_2, + sAffineAnim_IceBallChunk_3, + sAffineAnim_IceBallChunk_4, }; -const struct SpriteTemplate gUnknown_83E665C = +const struct SpriteTemplate gIceBallChunkSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CHUNK, .paletteTag = ANIM_TAG_ICE_CHUNK, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = gUnknown_83E65F0, + .anims = sAnims_IceBallChunk, .images = NULL, - .affineAnims = gUnknown_83E6648, + .affineAnims = sAffineAnims_IceBallChunk, .callback = InitIceBallAnim, }; -const struct SpriteTemplate gUnknown_83E6674 = +const struct SpriteTemplate gIceBallImpactShardSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, .oam = &gOamData_AffineOff_ObjNormal_8x8, - .anims = gUnknown_83E6324, + .anims = sAnims_IceCrystalSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = InitIceBallParticle, @@ -1305,11 +1306,11 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, s16 battlerX, battlerY; s16 spriteX; bool8 possibleBool = FALSE; - s8 unk = gUnknown_83E652C[hailStructId].unk3; + s8 unk = sHailCoordData[hailStructId].unk3; if (unk != 2) { - id = GetBattlerAtPosition(gUnknown_83E652C[hailStructId].unk2); + id = GetBattlerAtPosition(sHailCoordData[hailStructId].unk2); if (IsBattlerSpriteVisible(id)) { possibleBool = TRUE; @@ -1329,17 +1330,17 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, } else { - battlerX = (gUnknown_83E652C[hailStructId].unk0); - battlerY = (gUnknown_83E652C[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].unk0); + battlerY = (sHailCoordData[hailStructId].unk1); } } else { - battlerX = (gUnknown_83E652C[hailStructId].unk0); - battlerY = (gUnknown_83E652C[hailStructId].unk1); + battlerX = (sHailCoordData[hailStructId].unk0); + battlerY = (sHailCoordData[hailStructId].unk1); } spriteX = battlerX - ((battlerY + 8) / 2); - id = CreateSprite(&gUnknown_83E65A4, spriteX, -8, 18); + id = CreateSprite(&sHailParticleSpriteTemplate, spriteX, -8, 18); if (id == MAX_SPRITES) { return FALSE; @@ -1367,7 +1368,7 @@ static void AnimHailBegin(struct Sprite *sprite) return; if (sprite->data[0] == 1 && sprite->data[5] == 0) { - spriteId = CreateSprite(&gUnknown_83E63E0, sprite->data[3], sprite->data[4], sprite->subpriority); + spriteId = CreateSprite(&gIceCrystalHitLargeSpriteTemplate, sprite->data[3], sprite->data[4], sprite->subpriority); sprite->data[0] = spriteId; if (spriteId != 64) { diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 582060f78..3f5bd8b69 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -1,3 +1,4 @@ +#include <limits.h> #include "librfu.h" struct LLSFStruct @@ -110,7 +111,7 @@ static const struct LLSFStruct llsf_struct[2] = { #define xstr(s) str(s) #define str(s) #s -const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); +static const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION); static const char str_checkMbootLL[] = "RFU-MBOOT"; @@ -154,16 +155,13 @@ u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p gRfuStatic = (void *)APIBuffer + 0xb4; // + sizeof(*gRfuLinkStatus) gRfuFixed = (void *)APIBuffer + 0xdc; // + sizeof(*gRfuStatic) gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc; // + sizeof(*gRfuFixed) - gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) + gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) * RFU_CHILD_MAX for (i = 1; i < RFU_CHILD_MAX; ++i) { gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1]; gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1]; } - // TODO: Is it possible to fix the following 2 statements? - // It's equivalent to: - // gRfuFixed->STWIBuffer = &APIBuffer->intr; - // STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam); + // remaining space in API buffer is used for `struct RfuIntrStruct`. gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1]; STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam); rfu_STC_clearAPIVariables(); @@ -1800,7 +1798,7 @@ static u16 rfu_STC_NI_constructLLSF(u8 bm_slot_id, u8 **dest_pp, struct NIComm * } else { - if ((u32)NI_comm->remainSize >= NI_comm->payloadSize) + if (NI_comm->remainSize >= NI_comm->payloadSize) size = NI_comm->payloadSize; else size = NI_comm->remainSize; @@ -2095,34 +2093,31 @@ static void rfu_STC_NI_receive_Sender(u8 NI_slot, u8 bm_flag, const struct RfuLo else NI_comm->now_p[llsf_NI->phase] += NI_comm->payloadSize << 2; NI_comm->remainSize -= NI_comm->payloadSize; - if (NI_comm->remainSize != 0) - if (NI_comm->remainSize >= 0) - goto _081E30AE; - // Above is a hack to avoid optimization over comparison. - // rfu_STC_NI_constructLLSF uses this field as u32. - // It's equivalent to the following condition: - // if (NI_comm->remainSize == 0 || NI_comm->remainSize < 0) + switch (NI_comm->remainSize) + { + default: + case 0: + NI_comm->phase = 0; + if (NI_comm->state == SLOT_STATE_SEND_START) { - NI_comm->phase = 0; - if (NI_comm->state == SLOT_STATE_SEND_START) + for (i = 0; i < WINDOW_COUNT; ++i) { - for (i = 0; i < WINDOW_COUNT; ++i) - { - NI_comm->n[i] = 1; - NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i; - } - NI_comm->remainSize = NI_comm->dataSize; - NI_comm->state = SLOT_STATE_SENDING; - } - else - { - NI_comm->n[0] = 0; - NI_comm->remainSize = 0; - NI_comm->state = SLOT_STATE_SEND_LAST; + NI_comm->n[i] = 1; + NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i; } + NI_comm->remainSize = NI_comm->dataSize; + NI_comm->state = SLOT_STATE_SENDING; } - _081E30AE: - ; + else + { + NI_comm->n[0] = 0; + NI_comm->remainSize = 0; + NI_comm->state = SLOT_STATE_SEND_LAST; + } + break; + case 1 ... INT_MAX: + break; + } } else if (NI_comm->state == SLOT_STATE_SEND_LAST) { diff --git a/src/normal.c b/src/normal.c index 5a4d98907..99ee0e922 100644 --- a/src/normal.c +++ b/src/normal.c @@ -7,16 +7,16 @@ static void AnimConfusionDuck(struct Sprite *sprite); static void AnimSimplePaletteBlend(struct Sprite *sprite); -static void sub_80B9A7C(struct Sprite *sprite); +static void AnimComplexPaletteBlend(struct Sprite *sprite); static void sub_80B9B8C(struct Sprite *sprite); -static void sub_80BA27C(struct Sprite *sprite); -static void sub_80BA560(struct Sprite *sprite); -static void sub_80BA5F8(struct Sprite *sprite); -static void sub_80BA630(struct Sprite *sprite); -static void sub_80BA6C8(struct Sprite *sprite); -static void sub_80BA738(struct Sprite *sprite); -static void sub_80BA780(struct Sprite *sprite); -static void sub_80BA5A8(struct Sprite *sprite); +static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite); +static void AnimHitSplatBasic(struct Sprite *sprite); +static void AnimHitSplatHandleInvert(struct Sprite *sprite); +static void AnimHitSplatRandom(struct Sprite *sprite); +static void AnimHitSplatOnMonEdge(struct Sprite *sprite); +static void AnimCrossImpact(struct Sprite *sprite); +static void AnimFlashingHitSplat(struct Sprite *sprite); +static void AnimHitSplatPersistent(struct Sprite *sprite); static void AnimConfusionDuckStep(struct Sprite *sprite); static void AnimSimplePaletteBlendStep(struct Sprite *sprite); static void sub_80B9AD0(struct Sprite *sprite); @@ -35,7 +35,7 @@ static void sub_80BA4D0(u8 taskId); static void sub_80BA7BC(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E7ADC[] = +static const union AnimCmd sAnim_ConfusionDuck_0[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(4, 8), @@ -44,7 +44,7 @@ static const union AnimCmd gUnknown_83E7ADC[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd gUnknown_83E7AF0[] = +static const union AnimCmd sAnim_ConfusionDuck_1[] = { ANIMCMD_FRAME(0, 8, .hFlip = TRUE), ANIMCMD_FRAME(4, 8), @@ -53,10 +53,10 @@ static const union AnimCmd gUnknown_83E7AF0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7B04[] = +static const union AnimCmd *const sAnims_ConfusionDuck[] = { - gUnknown_83E7ADC, - gUnknown_83E7AF0, + sAnim_ConfusionDuck_0, + sAnim_ConfusionDuck_1, }; const struct SpriteTemplate gConfusionDuckSpriteTemplate = @@ -64,7 +64,7 @@ const struct SpriteTemplate gConfusionDuckSpriteTemplate = .tileTag = ANIM_TAG_DUCK, .paletteTag = ANIM_TAG_DUCK, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E7B04, + .anims = sAnims_ConfusionDuck, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimConfusionDuck, @@ -89,7 +89,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9A7C, + .callback = AnimComplexPaletteBlend, }; static const union AnimCmd gUnknown_83E7B54[] = @@ -118,7 +118,7 @@ const struct SpriteTemplate gUnknown_83E7B70 = .callback = sub_80B9B8C, }; -const struct SpriteTemplate gUnknown_83E7B88 = +const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -126,42 +126,42 @@ const struct SpriteTemplate gUnknown_83E7B88 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80BA27C, + .callback = AnimShakeMonOrBattleTerrain, }; -static const union AffineAnimCmd gUnknown_83E7BA0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BB0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_1[] = { AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BC8[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_2[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E7BE0[] = +static const union AffineAnimCmd sAffineAnim_HitSplat_3[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E7BF8[] = +static const union AffineAnimCmd *const sAffineAnims_HitSplat[] = { - gUnknown_83E7BA0, - gUnknown_83E7BB0, - gUnknown_83E7BC8, - gUnknown_83E7BE0, + sAffineAnim_HitSplat_0, + sAffineAnim_HitSplat_1, + sAffineAnim_HitSplat_2, + sAffineAnim_HitSplat_3, }; const struct SpriteTemplate gBasicHitSplatSpriteTemplate = @@ -171,55 +171,55 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate = .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA560, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gUnknown_83E7C20 = +const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA5F8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatHandleInvert, }; -const struct SpriteTemplate gUnknown_83E7C38 = +const struct SpriteTemplate gWaterHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_WATER_IMPACT, .paletteTag = ANIM_TAG_WATER_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA560, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatBasic, }; -const struct SpriteTemplate gUnknown_83E7C50 = +const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA630, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatRandom, }; -const struct SpriteTemplate gUnknown_83E7C68 = +const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA6C8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatOnMonEdge, }; -const struct SpriteTemplate gUnknown_83E7C80 = +const struct SpriteTemplate gCrossImpactSpriteTemplate = { .tileTag = ANIM_TAG_CROSS_IMPACT, .paletteTag = ANIM_TAG_CROSS_IMPACT, @@ -227,29 +227,29 @@ const struct SpriteTemplate gUnknown_83E7C80 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80BA738, + .callback = AnimCrossImpact, }; -const struct SpriteTemplate gUnknown_83E7C98 = +const struct SpriteTemplate gFlashingHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA780, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimFlashingHitSplat, }; -const struct SpriteTemplate gUnknown_83E7CB0 = +const struct SpriteTemplate gPersistHitSplatSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineNormal_ObjBlend_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7BF8, - .callback = sub_80BA5A8, + .affineAnims = sAffineAnims_HitSplat, + .callback = AnimHitSplatPersistent, }; // Moves a spinning duck around the mon's head. @@ -335,7 +335,7 @@ static void AnimSimplePaletteBlendStep(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B9A7C(struct Sprite *sprite) +static void AnimComplexPaletteBlend(struct Sprite *sprite) { u32 selectedPalettes; @@ -461,7 +461,7 @@ static void sub_80B9C7C(u8 taskId) } } -void sub_80B9CE4(u8 taskId) +void AnimTask_BlendColorCycleExclude(u8 taskId) { s32 battler; u32 selectedPalettes = 0; @@ -527,7 +527,7 @@ static void sub_80B9DF0(u8 taskId) } } -void sub_80B9E58(u8 taskId) +void AnimTask_BlendColorCycleByTag(u8 taskId) { u8 paletteIndex; @@ -585,7 +585,7 @@ static void sub_80B9F04(u8 taskId) } } -void sub_80B9F6C(u8 taskId) +void AnimTask_FlashAnimTagWithColor(u8 taskId) { u8 paletteIndex; @@ -652,7 +652,7 @@ static void sub_80BA090(u8 taskId) } } -void sub_80BA0E8(u8 taskId) +void AnimTask_InvertScreenColor(u8 taskId) { u32 selectedPalettes = 0; u8 attackerBattler = gBattleAnimAttacker; @@ -708,7 +708,7 @@ static void sub_80BA16C(u8 taskId) } } -static void sub_80BA27C(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) { u16 var0; @@ -789,7 +789,7 @@ static void sub_80BA3CC(void) } } -void sub_80BA47C(u8 taskId) +void AnimTask_ShakeBattleTerrain(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; @@ -830,7 +830,7 @@ static void sub_80BA4D0(u8 taskId) } } -static void sub_80BA560(struct Sprite *sprite) +static void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) @@ -841,7 +841,7 @@ static void sub_80BA560(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -static void sub_80BA5A8(struct Sprite *sprite) +static void AnimHitSplatPersistent(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) @@ -853,14 +853,14 @@ static void sub_80BA5A8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, sub_80B1D3C); } -static void sub_80BA5F8(struct Sprite *sprite) +static void AnimHitSplatHandleInvert(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; - sub_80BA560(sprite); + AnimHitSplatBasic(sprite); } -static void sub_80BA630(struct Sprite *sprite) +static void AnimHitSplatRandom(struct Sprite *sprite) { if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random() & 3; @@ -875,7 +875,7 @@ static void sub_80BA630(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80BA6C8(struct Sprite *sprite) +static void AnimHitSplatOnMonEdge(struct Sprite *sprite) { sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x; @@ -887,7 +887,7 @@ static void sub_80BA6C8(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void sub_80BA738(struct Sprite *sprite) +static void AnimCrossImpact(struct Sprite *sprite) { if (gBattleAnimArgs[2] == 0) InitSpritePosToAnimAttacker(sprite, 1); @@ -898,7 +898,7 @@ static void sub_80BA738(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } -static void sub_80BA780(struct Sprite *sprite) +static void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) diff --git a/src/poison.c b/src/poison.c index af7f8ee86..ae458d561 100644 --- a/src/poison.c +++ b/src/poison.c @@ -2,17 +2,17 @@ #include "battle_anim.h" #include "trig.h" -static void sub_80B1620(struct Sprite *sprite); -static void sub_80B16A0(struct Sprite *sprite); -static void sub_80B1744(struct Sprite *sprite); -static void sub_80B17C4(struct Sprite *sprite); +static void AnimSludgeProjectile(struct Sprite *sprite); +static void AnimAcidPoisonBubble(struct Sprite *sprite); +static void AnimSludgeBombHitParticle(struct Sprite *sprite); +static void AnimAcidPoisonDroplet(struct Sprite *sprite); static void AnimBubbleEffect(struct Sprite *sprite); static void sub_80B1684(struct Sprite *sprite); static void sub_80B1728(struct Sprite *sprite); static void sub_80B1798(struct Sprite *sprite); static void AnimBubbleEffectStep(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E6994[] = +static const union AnimCmd sAnim_ToxicBubble[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(8, 5), @@ -21,56 +21,56 @@ static const union AnimCmd gUnknown_83E6994[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E69A8[] = +static const union AnimCmd *const sAnims_ToxicBubble[] = { - gUnknown_83E6994, + sAnim_ToxicBubble, }; -const struct SpriteTemplate gUnknown_83E69AC = +const struct SpriteTemplate gToxicBubbleSpriteTemplate = { .tileTag = ANIM_TAG_TOXIC_BUBBLE, .paletteTag = ANIM_TAG_TOXIC_BUBBLE, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E69A8, + .anims = sAnims_ToxicBubble, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSpriteOnMonPos, }; -static const union AnimCmd gUnknown_83E69C4[] = +static const union AnimCmd sAnim_PoisonProjectile[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E69CC[] = +static const union AnimCmd sAnim_AcidPoisonDroplet[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E69D4[] = +static const union AnimCmd sAnim_SludgeBombHit[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E69DC[] = +static const union AnimCmd *const sAnims_PoisonProjectile[] = { - gUnknown_83E69C4, + sAnim_PoisonProjectile, }; -static const union AnimCmd *const gUnknown_83E69E0[] = +static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = { - gUnknown_83E69CC, + sAnim_AcidPoisonDroplet, }; -static const union AnimCmd *const gUnknown_83E69E4[] = +static const union AnimCmd *const sAnims_SludgeBombHit[] = { - gUnknown_83E69D4, + sAnim_SludgeBombHit, }; -static const union AffineAnimCmd gUnknown_83E69E8[] = +static const union AffineAnimCmd sAffineAnim_PoisonProjectile[] = { AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0), AFFINEANIMCMD_FRAME(-0xA, -0xA, 0, 10), @@ -78,88 +78,88 @@ static const union AffineAnimCmd gUnknown_83E69E8[] = AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E6A08[] = +static const union AffineAnimCmd sAffineAnim_SludgeBombHit[] = { AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6A18[] = +static const union AffineAnimCmd *const sAffineAnims_PoisonProjectile[] = { - gUnknown_83E69E8, + sAffineAnim_PoisonProjectile, }; -static const union AffineAnimCmd *const gUnknown_83E6A1C[] = +static const union AffineAnimCmd *const sAffineAnims_SludgeBombHit[] = { - gUnknown_83E6A08, + sAffineAnim_SludgeBombHit, }; -const struct SpriteTemplate gUnknown_83E6A20 = +const struct SpriteTemplate gSludgeProjectileSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6A18, - .callback = sub_80B1620, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimSludgeProjectile, }; -const struct SpriteTemplate gUnknown_83E6A38 = +const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6A18, - .callback = sub_80B16A0, + .affineAnims = sAffineAnims_PoisonProjectile, + .callback = AnimAcidPoisonBubble, }; -const struct SpriteTemplate gUnknown_83E6A50 = +const struct SpriteTemplate gSludgeBombHitParticleSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_83E69E4, + .anims = sAnims_SludgeBombHit, .images = NULL, - .affineAnims = gUnknown_83E6A1C, - .callback = sub_80B1744, + .affineAnims = sAffineAnims_SludgeBombHit, + .callback = AnimSludgeBombHitParticle, }; -static const union AffineAnimCmd gUnknown_83E6A68[] = +static const union AffineAnimCmd sAffineAnim_AcidPoisonDroplet[] = { AFFINEANIMCMD_FRAME(-0x10, 0x10, 0, 6), AFFINEANIMCMD_FRAME(0x10, -0x10, 0, 6), AFFINEANIMCMD_JUMP(0), }; -const union AffineAnimCmd *const gUnknown_83E6A80[] = +const union AffineAnimCmd *const gAffineAnims_Droplet[] = { - gUnknown_83E6A68, + sAffineAnim_AcidPoisonDroplet, }; -const struct SpriteTemplate gUnknown_83E6A84 = +const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate = { .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = gUnknown_83E69E0, + .anims = sAnims_AcidPoisonDroplet, .images = NULL, - .affineAnims = gUnknown_83E6A80, - .callback = sub_80B17C4, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimAcidPoisonDroplet, }; -static const union AffineAnimCmd gUnknown_83E6A9C[] = +static const union AffineAnimCmd sAffineAnim_Bubble[] = { AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0), AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6AB4[] = +static const union AffineAnimCmd *const sAffineAnims_Bubble[] = { - gUnknown_83E6A9C, + sAffineAnim_Bubble, }; const struct SpriteTemplate gPoisonBubbleSpriteTemplate = @@ -167,9 +167,9 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = gUnknown_83E69DC, + .anims = sAnims_PoisonProjectile, .images = NULL, - .affineAnims = gUnknown_83E6AB4, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; @@ -178,13 +178,13 @@ const struct SpriteTemplate gWaterBubbleSpriteTemplate = .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_83E5A78, + .anims = gAnims_WaterBubble, .images = NULL, - .affineAnims = gUnknown_83E6AB4, + .affineAnims = sAffineAnims_Bubble, .callback = AnimBubbleEffect, }; -static void sub_80B1620(struct Sprite *sprite) +static void AnimSludgeProjectile(struct Sprite *sprite) { if (!gBattleAnimArgs[3]) StartSpriteAnim(sprite, 2); @@ -203,7 +203,7 @@ static void sub_80B1684(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B16A0(struct Sprite *sprite) +static void AnimAcidPoisonBubble(struct Sprite *sprite) { s16 l1, l2; @@ -227,7 +227,7 @@ static void sub_80B1728(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B1744(struct Sprite *sprite) +static void AnimSludgeBombHitParticle(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->pos1.x; @@ -249,7 +249,7 @@ static void sub_80B1798(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B17C4(struct Sprite *sprite) +static void AnimAcidPoisonDroplet(struct Sprite *sprite) { SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) diff --git a/src/psychic.c b/src/psychic.c index eb3522188..5a6b4f942 100644 --- a/src/psychic.c +++ b/src/psychic.c @@ -5,13 +5,13 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80B2ECC(struct Sprite *sprite); -static void sub_80B31D0(struct Sprite *sprite); -static void sub_80B3278(struct Sprite *sprite); -static void sub_80B32F4(struct Sprite *sprite); -static void sub_80B37EC(struct Sprite *sprite); -static void sub_80B3A34(struct Sprite *sprite); -static void sub_80B3E84(struct Sprite *sprite); +static void AnimDefensiveWall(struct Sprite *sprite); +static void AnimWallSparkle(struct Sprite *sprite); +static void AnimBentSpoon(struct Sprite *sprite); +static void AnimQuestionMark(struct Sprite *sprite); +static void AnimRedX(struct Sprite *sprite); +static void AnimSkillSwapOrb(struct Sprite *sprite); +static void AnimPsychoBoost(struct Sprite *sprite); static void sub_80B300C(struct Sprite *sprite); static void sub_80B3044(struct Sprite *sprite); static void sub_80B30B0(struct Sprite *sprite); @@ -25,30 +25,30 @@ static void sub_80B3980(u8 taskId); static void sub_80B3B78(u8 taskId); static void sub_80B3D78(u8 taskId); -static const union AffineAnimCmd gUnknown_83E6DDC[] = +static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-0x2, -0x2, -10, 120), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6DF4[] = +static const union AffineAnimCmd *const sAffineAnims_PsychUpSpiral[] = { - gUnknown_83E6DDC, + sAffineAnim_PsychUpSpiral, }; -const struct SpriteTemplate gUnknown_83E6DF8 = +const struct SpriteTemplate gPsychUpSpiralSpriteTemplate = { .tileTag = ANIM_TAG_SPIRAL, .paletteTag = ANIM_TAG_SPIRAL, .oam = &gOamData_AffineNormal_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E6DF4, + .affineAnims = sAffineAnims_PsychUpSpiral, .callback = AnimSpriteOnMonPos, }; -const struct SpriteTemplate gUnknown_83E6E10 = +const struct SpriteTemplate gLightScreenWallSpriteTemplate = { .tileTag = ANIM_TAG_GREEN_LIGHT_WALL, .paletteTag = ANIM_TAG_GREEN_LIGHT_WALL, @@ -56,10 +56,10 @@ const struct SpriteTemplate gUnknown_83E6E10 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E28 = +const struct SpriteTemplate gReflectWallSpriteTemplate = { .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, @@ -67,10 +67,10 @@ const struct SpriteTemplate gUnknown_83E6E28 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E40 = +const struct SpriteTemplate gMirrorCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_RED_LIGHT_WALL, .paletteTag = ANIM_TAG_RED_LIGHT_WALL, @@ -78,10 +78,10 @@ const struct SpriteTemplate gUnknown_83E6E40 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E58 = +const struct SpriteTemplate gBarrierWallSpriteTemplate = { .tileTag = ANIM_TAG_GRAY_LIGHT_WALL, .paletteTag = ANIM_TAG_GRAY_LIGHT_WALL, @@ -89,10 +89,10 @@ const struct SpriteTemplate gUnknown_83E6E58 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -const struct SpriteTemplate gUnknown_83E6E70 = +const struct SpriteTemplate gMagicCoatWallSpriteTemplate = { .tileTag = ANIM_TAG_ORANGE_LIGHT_WALL, .paletteTag = ANIM_TAG_ORANGE_LIGHT_WALL, @@ -100,10 +100,10 @@ const struct SpriteTemplate gUnknown_83E6E70 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2ECC, + .callback = AnimDefensiveWall, }; -static const union AnimCmd gUnknown_83E6E88[] = +static const union AnimCmd sAnim_ReflectSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -113,23 +113,23 @@ static const union AnimCmd gUnknown_83E6E88[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6EA0[] = +static const union AnimCmd *const sAnims_ReflectSparkle[] = { - gUnknown_83E6E88, + sAnim_ReflectSparkle, }; -const struct SpriteTemplate gUnknown_83E6EA4 = +const struct SpriteTemplate gReflectSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6EA0, + .anims = sAnims_ReflectSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B31D0, + .callback = AnimWallSparkle, }; -static const union AnimCmd gUnknown_83E6EBC[] = +static const union AnimCmd sAnim_SpecialScreenSparkle[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(4, 5), @@ -138,23 +138,23 @@ static const union AnimCmd gUnknown_83E6EBC[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6ED0[] = +static const union AnimCmd *const sAnims_SpecialScreenSparkle[] = { - gUnknown_83E6EBC, + sAnim_SpecialScreenSparkle, }; -const struct SpriteTemplate gUnknown_83E6ED4 = +const struct SpriteTemplate gSpecialScreenSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_3, .paletteTag = ANIM_TAG_SPARKLE_3, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = gUnknown_83E6ED0, + .anims = sAnims_SpecialScreenSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B31D0, + .callback = AnimWallSparkle, }; -const struct SpriteTemplate gUnknown_83E6EEC = +const struct SpriteTemplate gGoldRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -165,7 +165,7 @@ const struct SpriteTemplate gUnknown_83E6EEC = .callback = TranslateAnimSpriteToTargetMonLocation, }; -static const union AnimCmd gUnknown_83E6F04[] = +static const union AnimCmd sAnim_BentSpoon_0[] = { ANIMCMD_FRAME(8, 60, .hFlip = TRUE), ANIMCMD_FRAME(16, 5, .hFlip = TRUE), @@ -185,7 +185,7 @@ static const union AnimCmd gUnknown_83E6F04[] = ANIMCMD_END, }; -const union AnimCmd gUnknown_83E6F44[] = +static const union AnimCmd sAnim_BentSpoon_1[] = { ANIMCMD_FRAME(8, 60), ANIMCMD_FRAME(16, 5), @@ -205,24 +205,24 @@ const union AnimCmd gUnknown_83E6F44[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6F84[] = +static const union AnimCmd *const sAnims_BentSpoon[] = { - gUnknown_83E6F04, - gUnknown_83E6F44, + sAnim_BentSpoon_0, + sAnim_BentSpoon_1, }; -const struct SpriteTemplate gUnknown_83E6F8C = +const struct SpriteTemplate gBentSpoonSpriteTemplate = { .tileTag = ANIM_TAG_BENT_SPOON, .paletteTag = ANIM_TAG_BENT_SPOON, .oam = &gOamData_AffineOff_ObjNormal_16x32, - .anims = gUnknown_83E6F84, + .anims = sAnims_BentSpoon, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B3278, + .callback = AnimBentSpoon, }; -static const union AnimCmd gUnknown_83E6FA4[] = +static const union AnimCmd sAnim_QuestionMark[] = { ANIMCMD_FRAME(0, 6), ANIMCMD_FRAME(16, 6), @@ -234,12 +234,12 @@ static const union AnimCmd gUnknown_83E6FA4[] = ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E6FC4[] = +static const union AnimCmd *const sAnims_QuestionMark[] = { - gUnknown_83E6FA4, + sAnim_QuestionMark, }; -static const union AffineAnimCmd gUnknown_83E6FC8[] = +static const union AffineAnimCmd sAffineAnim_QuestionMark[] = { AFFINEANIMCMD_FRAME(0, 0, 4, 4), AFFINEANIMCMD_FRAME(0, 0, -4, 8), @@ -248,23 +248,23 @@ static const union AffineAnimCmd gUnknown_83E6FC8[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E6FF0[] = +static const union AffineAnimCmd *const sAffineAnims_QuestionMark[] = { - gUnknown_83E6FC8, + sAffineAnim_QuestionMark, }; -const struct SpriteTemplate gUnknown_83E6FF4 = +const struct SpriteTemplate gQuestionMarkSpriteTemplate = { .tileTag = ANIM_TAG_AMNESIA, .paletteTag = ANIM_TAG_AMNESIA, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E6FC4, + .anims = sAnims_QuestionMark, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B32F4, + .callback = AnimQuestionMark, }; -static const union AffineAnimCmd gUnknown_83E700C[] = +static const union AffineAnimCmd sAffineAnim_MeditateStretchAttacker[] = { AFFINEANIMCMD_FRAME(-8, 10, 0, 16), AFFINEANIMCMD_FRAME(18, -18, 0, 16), @@ -272,14 +272,14 @@ static const union AffineAnimCmd gUnknown_83E700C[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E702C[] = +static const union AffineAnimCmd sAffineAnim_Teleport[] = { AFFINEANIMCMD_FRAME(64, -4, 0, 20), AFFINEANIMCMD_FRAME(0, 0, 0, -56), AFFINEANIMCMD_END, }; -static const struct SpriteTemplate gUnknown_83E7044 = +static const struct SpriteTemplate sImprisonOrbSpriteTemplate = { .tileTag = ANIM_TAG_HOLLOW_ORB, .paletteTag = ANIM_TAG_HOLLOW_ORB, @@ -290,25 +290,25 @@ static const struct SpriteTemplate gUnknown_83E7044 = .callback = SpriteCallbackDummy, }; -const struct SpriteTemplate gUnknown_83E705C = +const struct SpriteTemplate gRedXSpriteTemplate = { - .tileTag = 0x280A, - .paletteTag = 0x280A, + .tileTag = ANIM_TAG_X_SIGN, + .paletteTag = ANIM_TAG_X_SIGN, .oam = &gOamData_AffineOff_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B37EC, + .callback = AnimRedX, }; -static const union AffineAnimCmd gUnknown_83E7074[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_0[] = { AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 8), AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E708C[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_1[] = { AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 6), @@ -317,7 +317,7 @@ static const union AffineAnimCmd gUnknown_83E708C[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gUnknown_83E70B4[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_2[] = { AFFINEANIMCMD_FRAME(0xD0, 0xD0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 4), @@ -326,7 +326,7 @@ static const union AffineAnimCmd gUnknown_83E70B4[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gUnknown_83E70DC[] = +static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_3[] = { AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 2), @@ -335,49 +335,49 @@ static const union AffineAnimCmd gUnknown_83E70DC[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E7104[] = +static const union AffineAnimCmd *const sAffineAnims_SkillSwapOrb[] = { - gUnknown_83E7074, - gUnknown_83E708C, - gUnknown_83E70B4, - gUnknown_83E70DC, + sAffineAnim_SkillSwapOrb_0, + sAffineAnim_SkillSwapOrb_1, + sAffineAnim_SkillSwapOrb_2, + sAffineAnim_SkillSwapOrb_3, }; -static const struct SpriteTemplate gUnknown_83E7114 = +static const struct SpriteTemplate sSkillSwapOrbSpriteTemplate = { .tileTag = ANIM_TAG_BLUEGREEN_ORB, .paletteTag = ANIM_TAG_BLUEGREEN_ORB, .oam = &gOamData_AffineNormal_ObjNormal_16x16, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7104, - .callback = sub_80B3A34, + .affineAnims = sAffineAnims_SkillSwapOrb, + .callback = AnimSkillSwapOrb, }; -static const union AffineAnimCmd gUnknown_83E712C[] = +static const union AffineAnimCmd sAffineAnim_LusterPurgeCircle[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120), AFFINEANIMCMD_END_ALT(1), }; -static const union AffineAnimCmd *const gUnknown_83E7144[] = +static const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[] = { - gUnknown_83E712C, + sAffineAnim_LusterPurgeCircle, }; -const struct SpriteTemplate gUnknown_83E7148 = +const struct SpriteTemplate gLusterPurgeCircleSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E7144, + .affineAnims = gAffineAnims_LusterPurgeCircle, .callback = AnimSpriteOnMonPos, }; -static const union AffineAnimCmd gUnknown_83E7160[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_0[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 17), @@ -392,30 +392,30 @@ static const union AffineAnimCmd gUnknown_83E7160[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E71B8[] = +static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] = { AFFINEANIMCMD_FRAME(-0x14, 0x18, 0, 15), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E71C8[] = +static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] = { - gUnknown_83E7160, - gUnknown_83E71B8, + sAffineAnim_PsychoBoostOrb_0, + sAffineAnim_PsychoBoostOrb_1, }; -const struct SpriteTemplate gUnknown_83E71D0 = +const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, .oam = &gOamData_AffineDouble_ObjBlend_64x64, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E71C8, - .callback = sub_80B3E84, + .affineAnims = sAffineAnims_PsychoBoostOrb, + .callback = AnimPsychoBoost, }; -static void sub_80B2ECC(struct Sprite *sprite) +static void AnimDefensiveWall(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) { @@ -531,7 +531,7 @@ static void sub_80B3168(struct Sprite *sprite) sprite->callback = DestroyAnimSprite; } -static void sub_80B31D0(struct Sprite *sprite) +static void AnimWallSparkle(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -568,7 +568,7 @@ static void sub_80B31D0(struct Sprite *sprite) } } -static void sub_80B3278(struct Sprite *sprite) +static void AnimBentSpoon(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -589,7 +589,7 @@ static void sub_80B3278(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80B32F4(struct Sprite *sprite) +static void AnimQuestionMark(struct Sprite *sprite) { s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2; s16 y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / -2; @@ -607,7 +607,7 @@ static void sub_80B32F4(struct Sprite *sprite) static void sub_80B3384(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; - sprite->affineAnims = gUnknown_83E6FF0; + sprite->affineAnims = sAffineAnims_QuestionMark; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); sprite->callback = sub_80B33B8; @@ -633,13 +633,13 @@ static void sub_80B33B8(struct Sprite *sprite) } } -void sub_80B3418(u8 taskId) +void AnimTask_MeditateStretchAttacker(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; - PrepareAffineAnimInTaskData(task, spriteId, gUnknown_83E700C); + PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker); task->func = sub_80B3454; } @@ -649,7 +649,7 @@ static void sub_80B3454(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B3480(u8 taskId) +void AnimTask_Teleport(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -658,7 +658,7 @@ void sub_80B3480(u8 taskId) task->data[1] = 0; task->data[2] = 0; task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8; - PrepareAffineAnimInTaskData(task, task->data[0], gUnknown_83E702C); + PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport); task->func = sub_80B34DC; } @@ -690,7 +690,7 @@ static void sub_80B34DC(u8 taskId) } } -void sub_80B3584(u8 taskId) +void AnimTask_ImprisonOrbs(u8 taskId) { u16 var0, var1; struct Task *task = &gTasks[taskId]; @@ -719,7 +719,7 @@ static void sub_80B3618(u8 taskId) if (++task->data[1] > 8) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_83E7044, task->data[13], task->data[14], 0); + spriteId = CreateSprite(&sImprisonOrbSpriteTemplate, task->data[13], task->data[14], 0); task->data[task->data[2] + 8] = spriteId; if (spriteId != MAX_SPRITES) { @@ -782,7 +782,7 @@ static void sub_80B37A4(struct Sprite *sprite) ++sprite->data[1]; } -static void sub_80B37EC(struct Sprite *sprite) +static void AnimRedX(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -793,7 +793,7 @@ static void sub_80B37EC(struct Sprite *sprite) sprite->callback = sub_80B37A4; } -void sub_80B3834(u8 taskId) +void AnimTask_SkillSwap(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -850,7 +850,7 @@ static void sub_80B3980(u8 taskId) if (++task->data[1] > 6) { task->data[1] = 0; - spriteId = CreateSprite(&gUnknown_83E7114, task->data[11], task->data[12], 0); + spriteId = CreateSprite(&sSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0); if (spriteId != 64) { gSprites[spriteId].data[0] = 16; @@ -872,7 +872,7 @@ static void sub_80B3980(u8 taskId) } } -static void sub_80B3A34(struct Sprite *sprite) +static void AnimSkillSwapOrb(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -881,7 +881,7 @@ static void sub_80B3A34(struct Sprite *sprite) } } -void sub_80B3A58(u8 taskId) +void AnimTask_ExtrasensoryDistortion(u8 taskId) { s16 i; u8 yOffset; @@ -969,7 +969,7 @@ static void sub_80B3B78(u8 taskId) } } -void sub_80B3C78(u8 taskId) +void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) { s16 spriteId; s16 matrixNum; @@ -1034,7 +1034,7 @@ static void sub_80B3D78(u8 taskId) } } -static void sub_80B3E84(struct Sprite *sprite) +static void AnimPsychoBoost(struct Sprite *sprite) { switch (sprite->data[0]) { diff --git a/src/rock.c b/src/rock.c index a2d28d057..25db442ca 100644 --- a/src/rock.c +++ b/src/rock.c @@ -6,16 +6,16 @@ #include "trig.h" #include "constants/songs.h" -static void sub_80B4634(struct Sprite *sprite); -static void sub_80B46F8(struct Sprite *sprite); +static void AnimFallingRock(struct Sprite *sprite); +static void AnimRockFragment(struct Sprite *sprite); static void AnimDirtParticleAcrossScreen(struct Sprite *sprite); static void AnimRaiseSprite(struct Sprite *sprite); static void sub_80B4D00(u8 taskId); -static void sub_80B4F78(struct Sprite *sprite); -static void sub_80B4FE4(struct Sprite *sprite); -static void sub_80B5074(struct Sprite *sprite); -static void sub_80B50A0(struct Sprite *sprite); -static void sub_80B477C(struct Sprite *sprite); +static void AnimRolloutParticle(struct Sprite *sprite); +static void AnimRockTomb(struct Sprite *sprite); +static void AnimRockBlastRock(struct Sprite *sprite); +static void AnimRockScatter(struct Sprite *sprite); +static void AnimParticleInVortex(struct Sprite *sprite); static void sub_80B46B4(struct Sprite *sprite); static void sub_80B47C4(struct Sprite *sprite); static void sub_80B490C(u8 taskId); @@ -24,54 +24,54 @@ static u8 sub_80B4FB8(void); static void sub_80B5024(struct Sprite *sprite); static void sub_80B50F8(struct Sprite *sprite); -static const union AnimCmd gUnknown_83E7390[] = +static const union AnimCmd sAnim_FlyingRock_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7398[] = +static const union AnimCmd sAnim_FlyingRock_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E73A0[] = +static const union AnimCmd sAnim_FlyingRock_2[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E73A8[] = +static const union AnimCmd *const sAnims_FlyingRock[] = { - gUnknown_83E7390, - gUnknown_83E7398, - gUnknown_83E73A0, + sAnim_FlyingRock_0, + sAnim_FlyingRock_1, + sAnim_FlyingRock_2, }; -const struct SpriteTemplate gUnknown_83E73B4 = +const struct SpriteTemplate gFallingRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E73A8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4634, + .callback = AnimFallingRock, }; -const struct SpriteTemplate gUnknown_83E73CC = +const struct SpriteTemplate gRockFragmentSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E73A8, + .anims = sAnims_FlyingRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B46F8, + .callback = AnimRockFragment, }; -const struct SpriteTemplate gUnknown_83E73E4 = +const struct SpriteTemplate gSwirlingDirtSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -79,10 +79,10 @@ const struct SpriteTemplate gUnknown_83E73E4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B477C, + .callback = AnimParticleInVortex, }; -static const union AffineAnimCmd gUnknown_83E73FC[] = +static const union AffineAnimCmd sAffineAnim_Whirlpool[] = { AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), AFFINEANIMCMD_FRAME(0x2, -0x3, 0, 5), @@ -90,34 +90,34 @@ static const union AffineAnimCmd gUnknown_83E73FC[] = AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd *const gUnknown_83E741C[] = +static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] = { - gUnknown_83E73FC, + sAffineAnim_Whirlpool, }; -const struct SpriteTemplate gUnknown_83E7420 = +const struct SpriteTemplate gWhirlpoolSpriteTemplate = { .tileTag = ANIM_TAG_WATER_ORB, .paletteTag = ANIM_TAG_WATER_ORB, .oam = &gOamData_AffineNormal_ObjBlend_16x16, - .anims = gUnknown_83E5958, + .anims = gAnims_WaterMudOrb, .images = NULL, - .affineAnims = gUnknown_83E741C, - .callback = sub_80B477C, + .affineAnims = sAffineAnims_Whirlpool, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gUnknown_83E7438 = +const struct SpriteTemplate gFireSpinSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5D48, + .anims = gAnims_BasicFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B477C, + .callback = AnimParticleInVortex, }; -const struct SpriteTemplate gUnknown_83E7450 = +const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate = { .tileTag = ANIM_TAG_FLYING_DIRT, .paletteTag = ANIM_TAG_FLYING_DIRT, @@ -128,7 +128,7 @@ const struct SpriteTemplate gUnknown_83E7450 = .callback = AnimDirtParticleAcrossScreen, }; -static const struct Subsprite gUnknown_83E7468[] = +static const struct Subsprite sFlyingSandSubsprites[] = { { .x = -16, @@ -148,77 +148,77 @@ static const struct Subsprite gUnknown_83E7468[] = }, }; -static const struct SubspriteTable gUnknown_83E7470[] = +static const struct SubspriteTable sFlyingSandSubspriteTable[] = { - { NELEMS(gUnknown_83E7468), gUnknown_83E7468 }, + { NELEMS(sFlyingSandSubsprites), sFlyingSandSubsprites }, }; -static const union AnimCmd gUnknown_83E7478[] = +static const union AnimCmd sAnim_BasicRock_0[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7480[] = +static const union AnimCmd sAnim_BasicRock_1[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7488[] = +static const union AnimCmd sAnim_WeatherBallRockDown_0[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7490[] = +static const union AnimCmd sAnim_WeatherBallRockDown_1[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E7498[] = +static const union AnimCmd sAnim_TwisterRock_0[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd gUnknown_83E74A0[] = +static const union AnimCmd sAnim_TwisterRock_1[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, }; -static const union AnimCmd *const gUnknown_83E74A8[] = +static const union AnimCmd *const sAnims_BasicRock[] = { - gUnknown_83E7478, - gUnknown_83E7480, + sAnim_BasicRock_0, + sAnim_BasicRock_1, }; -static const union AnimCmd *const gUnknown_83E74B0[] = +static const union AnimCmd *const sAnims_WeatherBallRockDown[] = { - gUnknown_83E7488, - gUnknown_83E7490, + sAnim_WeatherBallRockDown_0, + sAnim_WeatherBallRockDown_1, }; -static const union AnimCmd *const gUnknown_83E74B8[] = +static const union AnimCmd *const sAnims_TwisterRock[] = { - gUnknown_83E7498, - gUnknown_83E74A0, + sAnim_TwisterRock_0, + sAnim_TwisterRock_1, }; -const struct SpriteTemplate gUnknown_83E74C0 = +const struct SpriteTemplate gAncientPowerRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimRaiseSprite, }; -const struct SpriteTemplate gUnknown_83E74D8 = +const struct SpriteTemplate gRolloutMudSpriteTemplate = { .tileTag = ANIM_TAG_MUD_SAND, .paletteTag = ANIM_TAG_MUD_SAND, @@ -226,7 +226,7 @@ const struct SpriteTemplate gUnknown_83E74D8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4F78, + .callback = AnimRolloutParticle, }; const struct SpriteTemplate gUnknown_83E74F0 = @@ -237,83 +237,83 @@ const struct SpriteTemplate gUnknown_83E74F0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4F78, + .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_83E7508 = +const struct SpriteTemplate gRockTombRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B4FE4, + .callback = AnimRockTomb, }; -static const union AffineAnimCmd gUnknown_83E7520[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd gUnknown_83E7530[] = +static const union AffineAnimCmd sAffineAnim_BasicRock_1[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5), AFFINEANIMCMD_JUMP(0), }; -static const union AffineAnimCmd *const gUnknown_83E7540[] = +static const union AffineAnimCmd *const sAffineAnims_BasicRock[] = { - gUnknown_83E7520, - gUnknown_83E7530, + sAffineAnim_BasicRock_0, + sAffineAnim_BasicRock_1, }; -const struct SpriteTemplate gUnknown_83E7548 = +const struct SpriteTemplate gRockBlastRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_80B5074, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockBlastRock, }; -const struct SpriteTemplate gUnknown_83E7560 = +const struct SpriteTemplate gRockScatterSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74A8, + .anims = sAnims_BasicRock, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_80B50A0, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimRockScatter, }; -const struct SpriteTemplate gUnknown_83E7578 = +const struct SpriteTemplate gTwisterRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E74B8, + .anims = sAnims_TwisterRock, .images = NULL, - .affineAnims = gUnknown_83E7540, + .affineAnims = sAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, }; -const struct SpriteTemplate gUnknown_83E7590 = +const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = gUnknown_83E74B0, + .anims = sAnims_WeatherBallRockDown, .images = NULL, - .affineAnims = gUnknown_83E7540, - .callback = sub_8077350, + .affineAnims = sAffineAnims_BasicRock, + .callback = AnimWeatherBallDown, }; -static void sub_80B4634(struct Sprite *sprite) +static void AnimFallingRock(struct Sprite *sprite) { if (gBattleAnimArgs[3] != 0) SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y); @@ -345,7 +345,7 @@ static void sub_80B46B4(struct Sprite *sprite) sprite->callback(sprite); } -static void sub_80B46F8(struct Sprite *sprite) +static void AnimRockFragment(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[5]); AnimateSprite(sprite); @@ -366,7 +366,7 @@ static void sub_80B46F8(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } -static void sub_80B477C(struct Sprite *sprite) +static void AnimParticleInVortex(struct Sprite *sprite) { if (gBattleAnimArgs[6] == 0) InitSpritePosToAnimAttacker(sprite, 0); @@ -503,7 +503,7 @@ static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->pos1.x = -64; } sprite->pos1.y = gBattleAnimArgs[0]; - SetSubspriteTables(sprite, gUnknown_83E7470); + SetSubspriteTables(sprite, sFlyingSandSubspriteTable); sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; ++sprite->data[0]; @@ -547,7 +547,7 @@ static void AnimRaiseSprite(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void sub_80B4BD0(u8 taskId) +void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; u8 var4; @@ -660,7 +660,7 @@ static void sub_80B4E70(struct Task *task) switch (task->data[1]) { case 1: - spriteTemplate = &gUnknown_83E74D8; + spriteTemplate = &gRolloutMudSpriteTemplate; var0 = 0; break; case 2: @@ -696,7 +696,7 @@ static void sub_80B4E70(struct Task *task) task->data[12] *= -1; } -static void sub_80B4F78(struct Sprite *sprite) +static void AnimRolloutParticle(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -718,7 +718,7 @@ static u8 sub_80B4FB8(void) return retVal; } -static void sub_80B4FE4(struct Sprite *sprite) +static void AnimRockTomb(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->pos2.x = gBattleAnimArgs[0]; @@ -749,14 +749,14 @@ static void sub_80B5024(struct Sprite *sprite) } } -static void sub_80B5074(struct Sprite *sprite) +static void AnimRockBlastRock(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(sprite, 1); TranslateAnimSpriteToTargetMonLocation(sprite); } -static void sub_80B50A0(struct Sprite *sprite) +static void AnimRockScatter(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); @@ -791,7 +791,7 @@ void AnimTask_GetSeismicTossDamageLevel(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B5188(u8 taskId) +void AnimTask_MoveSeismicTossBg(u8 taskId) { if (gTasks[taskId].data[0] == 0) { @@ -808,7 +808,7 @@ void sub_80B5188(u8 taskId) ++gTasks[taskId].data[0]; } -void sub_80B51EC(u8 taskId) +void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId) { if (gTasks[taskId].data[0] == 0) { diff --git a/src/water.c b/src/water.c new file mode 100644 index 000000000..8614f6600 --- /dev/null +++ b/src/water.c @@ -0,0 +1,2229 @@ +#include "global.h" +#include "battle_anim.h" +#include "decompress.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "palette.h" +#include "pokemon.h" +#include "random.h" +#include "scanline_effect.h" +#include "sprite.h" +#include "task.h" +#include "trig.h" +#include "util.h" + +#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) + +static void AnimRainDrop(struct Sprite *); +static void AnimRainDrop_Step(struct Sprite *); +static void AnimWaterBubbleProjectile(struct Sprite *); +static void AnimWaterBubbleProjectile_Step1(struct Sprite *); +static void AnimWaterBubbleProjectile_Step2(struct Sprite *); +static void AnimWaterBubbleProjectile_Step3(struct Sprite *); +static void AnimAuroraBeamRings(struct Sprite *); +static void AnimAuroraBeamRings_Step(struct Sprite *); +static void AnimToTargetInSinWave(struct Sprite *); +static void AnimToTargetInSinWave_Step(struct Sprite *); +static void AnimHydroCannonCharge(struct Sprite *); +static void AnimHydroCannonCharge_Step(struct Sprite *); +static void AnimHydroCannonBeam(struct Sprite *); +static void AnimWaterGunDroplet(struct Sprite *); +static void AnimSmallBubblePair(struct Sprite *); +static void AnimSmallBubblePair_Step(struct Sprite *); +static void AnimSmallDriftingBubbles(struct Sprite *); +static void AnimSmallDriftingBubbles_Step(struct Sprite *); +static void AnimSmallWaterOrb(struct Sprite *); +static void AnimWaterSpoutRain(struct Sprite *); +static void AnimWaterSpoutRainHit(struct Sprite *); +static void AnimWaterSportDroplet(struct Sprite *); +static void AnimWaterSportDroplet_Step(struct Sprite *); +static void AnimWaterPulseBubble(struct Sprite *); +static void AnimWaterPulseBubble_Step(struct Sprite *); +static void AnimWaterPulseRingBubble(struct Sprite *); +static void AnimWaterPulseRing_Step(struct Sprite *); +static void AnimTask_RotateAuroraRingColors_Step(u8); +static void AnimTask_RunSinAnimTimer(u8); +static void AnimTask_CreateSurfWave_Step1(u8); +static void AnimTask_CreateSurfWave_Step2(u8); +static void AnimTask_SurfWaveScanlineEffect(u8); +static void AnimTask_WaterSpoutLaunch_Step(u8); +static void AnimTask_WaterSpoutRain_Step(u8); +static u8 GetWaterSpoutPowerForAnim(void); +static void CreateWaterSpoutLaunchDroplets(struct Task*, u8); +static void CreateWaterSpoutRainDroplet(struct Task*, u8); +static void AnimTask_WaterSport_Step(u8); +static void CreateWaterSportDroplet(struct Task*); +static void CreateWaterPulseRingBubbles(struct Sprite*, int, int); + +// Both unused? Comment copied from pokeemerald +static const u8 gUnknown_83E44F4[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.4bpp"); +static const u8 gUnknown_83E4874[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); + +static const union AnimCmd sAnim_RainDrop[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(8, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(24, 6), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(40, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_RainDrop[] = +{ + sAnim_RainDrop, +}; + +const struct SpriteTemplate gRainDropSpriteTemplate = +{ + .tileTag = ANIM_TAG_RAIN_DROPS, + .paletteTag = ANIM_TAG_RAIN_DROPS, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = sAnims_RainDrop, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimRainDrop, +}; + +static const union AffineAnimCmd sAffineAnim_WaterBubbleProjectile[] = +{ + AFFINEANIMCMD_FRAME(-0x5, -0x5, 0, 10), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd *const sAffineAnims_WaterBubbleProjectile[] = +{ + sAffineAnim_WaterBubbleProjectile, +}; + +static const union AnimCmd sAnim_WaterBubbleProjectile[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_WaterBubbleProjectile[] = +{ + sAnim_WaterBubbleProjectile, +}; + +const struct SpriteTemplate gWaterBubbleProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_BUBBLE, + .paletteTag = ANIM_TAG_BUBBLE, + .oam = &gOamData_AffineNormal_ObjBlend_16x16, + .anims = sAnims_WaterBubbleProjectile, + .images = NULL, + .affineAnims = sAffineAnims_WaterBubbleProjectile, + .callback = AnimWaterBubbleProjectile, +}; + +static const union AnimCmd sAnim_AuroraBeamRing_0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_AuroraBeamRing_1[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_AuroraBeamRing[] = +{ + sAnim_AuroraBeamRing_0, + sAnim_AuroraBeamRing_1, +}; + +static const union AffineAnimCmd sAffineAnim_AuroraBeamRing[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), + AFFINEANIMCMD_FRAME(0x60, 0x60, 0, 1), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_AuroraBeamRing[] = +{ + sAffineAnim_AuroraBeamRing, +}; + +const struct SpriteTemplate gAuroraBeamRingSpriteTemplate = +{ + .tileTag = ANIM_TAG_RAINBOW_RINGS, + .paletteTag = ANIM_TAG_RAINBOW_RINGS, + .oam = &gOamData_AffineDouble_ObjNormal_8x16, + .anims = sAnims_AuroraBeamRing, + .images = NULL, + .affineAnims = sAffineAnims_AuroraBeamRing, + .callback = AnimAuroraBeamRings, +}; + +static const union AnimCmd sAnim_WaterMudOrb[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(4, 1), + ANIMCMD_FRAME(8, 1), + ANIMCMD_FRAME(12, 1), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gAnims_WaterMudOrb[] = +{ + sAnim_WaterMudOrb, +}; + +const struct SpriteTemplate gHydroPumpOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gMudShotOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_BROWN_ORB, + .paletteTag = ANIM_TAG_BROWN_ORB, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gSignalBeamRedOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_RED_ORB, + .paletteTag = ANIM_TAG_GLOWY_RED_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gSignalBeamGreenOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_GREEN_ORB, + .paletteTag = ANIM_TAG_GLOWY_GREEN_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +static const union AnimCmd sAnim_FlamethrowerFlame[] = +{ + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd *const sAnims_FlamethrowerFlame[] = +{ + sAnim_FlamethrowerFlame, +}; + +const struct SpriteTemplate gFlamethrowerFlameSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gOamData_AffineOff_ObjNormal_32x32, + .anims = sAnims_FlamethrowerFlame, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +const struct SpriteTemplate gPsywaveRingSpriteTemplate = +{ + .tileTag = ANIM_TAG_BLUE_RING, + .paletteTag = ANIM_TAG_BLUE_RING, + .oam = &gOamData_AffineDouble_ObjNormal_16x32, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gGrowingRingAffineAnimTable, + .callback = AnimToTargetInSinWave, +}; + +static const union AffineAnimCmd sAffineAnim_HydroCannonCharge[] = +{ + AFFINEANIMCMD_FRAME(0x3, 0x3, 10, 50), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 10), + AFFINEANIMCMD_FRAME(-0x14, -0x14, -10, 20), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_HydroCannonBeam[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_HydroCannonCharge[] = +{ + sAffineAnim_HydroCannonCharge, +}; + +static const union AffineAnimCmd *const sAffineAnims_HydroCannonBeam[] = +{ + sAffineAnim_HydroCannonBeam, +}; + +const struct SpriteTemplate gHydroCannonChargeSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = sAffineAnims_HydroCannonCharge, + .callback = AnimHydroCannonCharge, +}; + +const struct SpriteTemplate gHydroCannonBeamSpriteTemplate = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = gAnims_WaterMudOrb, + .images = NULL, + .affineAnims = sAffineAnims_HydroCannonBeam, + .callback = AnimHydroCannonBeam, +}; + +static const union AnimCmd sAnim_WaterBubble[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WaterGunDroplet[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gAnims_WaterBubble[] = +{ + sAnim_WaterBubble, +}; + +static const union AnimCmd *const sAnims_WaterGunDroplet[] = +{ + sAnim_WaterGunDroplet, +}; + +const struct SpriteTemplate gWaterGunProjectileSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjBlend_16x16, + .anims = gAnims_WaterBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimThrowProjectile, +}; + +const struct SpriteTemplate gWaterGunDropletSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineDouble_ObjBlend_16x16, + .anims = sAnims_WaterGunDroplet, + .images = NULL, + .affineAnims = gAffineAnims_Droplet, + .callback = AnimWaterGunDroplet, +}; + +const struct SpriteTemplate gSmallBubblePairSpriteTemplate = +{ + .tileTag = ANIM_TAG_ICE_CRYSTALS, // ice_crystals_4, which are bubbles + .paletteTag = ANIM_TAG_ICE_CRYSTALS, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gAnims_SmallBubblePair, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallBubblePair, +}; + +const struct SpriteTemplate gSmallDriftingBubblesSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallDriftingBubbles, +}; + +// Used by Water Spout / Water Sport +const struct SpriteTemplate gSmallWaterOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_GLOWY_BLUE_ORB, + .paletteTag = ANIM_TAG_GLOWY_BLUE_ORB, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimSmallWaterOrb, +}; + +static const union AnimCmd sAnim_WaterPulseBubble_0[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WaterPulseBubble_1[] = +{ + ANIMCMD_FRAME(9, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sAnim_WeatherBallWaterDown[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_WaterPulseBubble[] = +{ + sAnim_WaterPulseBubble_0, + sAnim_WaterPulseBubble_1, +}; + +static const union AnimCmd *const sAnims_WeatherBallWaterDown[] = +{ + sAnim_WeatherBallWaterDown, +}; + +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_0[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(-0xA, -0xA, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_WaterPulseRingBubble_1[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sAffineAnim_WeatherBallWaterDown[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 15), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const sAffineAnims_WaterPulseRingBubble[] = +{ + sAffineAnim_WaterPulseRingBubble_0, + sAffineAnim_WaterPulseRingBubble_1, +}; + +static const union AffineAnimCmd *const sAffineAnims_WeatherBallWaterDown[] = +{ + sAffineAnim_WeatherBallWaterDown, +}; + +const struct SpriteTemplate gWaterPulseBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = sAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimWaterPulseBubble, +}; + +const struct SpriteTemplate gWaterPulseRingBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjNormal_8x8, + .anims = sAnims_WaterPulseBubble, + .images = NULL, + .affineAnims = sAffineAnims_WaterPulseRingBubble, + .callback = AnimWaterPulseRingBubble, +}; + +const struct SpriteTemplate gWeatherBallWaterDownSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = sAnims_WeatherBallWaterDown, + .images = NULL, + .affineAnims = sAffineAnims_WeatherBallWaterDown, + .callback = AnimWeatherBallDown, +}; + +void AnimTask_CreateRaindrops(u8 taskId) +{ + u8 x, y; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = gBattleAnimArgs[1]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + } + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) + { + x = Random() % 240; + y = Random() % 80; + CreateSprite(&gRainDropSpriteTemplate, x, y, 4); + } + if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) + DestroyAnimVisualTask(taskId); +} + +static void AnimRainDrop(struct Sprite *sprite) +{ + sprite->callback = AnimRainDrop_Step; +} + +static void AnimRainDrop_Step(struct Sprite *sprite) +{ + if (++sprite->data[0] < 14) // Was 13 in emerald + { + sprite->pos2.x += 1; + sprite->pos2.y += 4; + } + if (sprite->animEnded) + { + DestroySprite(sprite); + } +} + +// For water bubbles that move to a dest, as in Bubble/Bubblebeam +static void AnimWaterBubbleProjectile(struct Sprite *sprite) +{ + u8 spriteId; + + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->animPaused = TRUE; + } + else + { + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->animPaused = TRUE; + } + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[6]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + InitAnimLinearTranslation(sprite); + spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); + sprite->data[5] = spriteId; + sprite->pos1.x -= Sin((u8)gBattleAnimArgs[4], gBattleAnimArgs[2]); + sprite->pos1.y -= Cos((u8)gBattleAnimArgs[4], gBattleAnimArgs[3]); + gSprites[spriteId].data[0] = gBattleAnimArgs[2]; + gSprites[spriteId].data[1] = gBattleAnimArgs[3]; + gSprites[spriteId].data[2] = gBattleAnimArgs[5]; + gSprites[spriteId].data[3] = (u8)gBattleAnimArgs[4] * 256; + gSprites[spriteId].data[4] = gBattleAnimArgs[6]; + sprite->callback = AnimWaterBubbleProjectile_Step1; + sprite->callback(sprite); +} + +static void AnimWaterBubbleProjectile_Step1(struct Sprite *sprite) +{ + u8 otherSpriteId = sprite->data[5]; + u8 timer = gSprites[otherSpriteId].data[4]; + u16 trigIndex = gSprites[otherSpriteId].data[3]; + + sprite->data[0] = 1; + AnimTranslateLinear(sprite); + sprite->pos2.x += Sin(trigIndex >> 8, gSprites[otherSpriteId].data[0]); + sprite->pos2.y += Cos(trigIndex >> 8, gSprites[otherSpriteId].data[1]); + gSprites[otherSpriteId].data[3] = trigIndex + gSprites[otherSpriteId].data[2]; + if (--timer != 0) + { + gSprites[otherSpriteId].data[4] = timer; + } + else + { + sprite->callback = AnimWaterBubbleProjectile_Step2; + DestroySprite(&gSprites[otherSpriteId]); + } +} + +static void AnimWaterBubbleProjectile_Step2(struct Sprite *sprite) +{ + sprite->animPaused = FALSE; + sprite->callback = RunStoredCallbackWhenAnimEnds; + StoreSpriteCallbackInData6(sprite, AnimWaterBubbleProjectile_Step3); +} + +static void AnimWaterBubbleProjectile_Step3(struct Sprite *sprite) +{ + sprite->data[0] = 10; + sprite->callback = WaitAnimForDuration; + StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); +} + +static void AnimAuroraBeamRings(struct Sprite *sprite) +{ + s16 unkArg; + + InitSpritePosToAnimAttacker(sprite, TRUE); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + unkArg = -gBattleAnimArgs[2]; + else + unkArg = gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + InitAnimLinearTranslation(sprite); + sprite->callback = AnimAuroraBeamRings_Step; + sprite->affineAnimPaused = TRUE; + sprite->callback(sprite); +} + +static void AnimAuroraBeamRings_Step(struct Sprite *sprite) +{ + if ((u16)gBattleAnimArgs[7] == 0xFFFF) + { + StartSpriteAnim(sprite, 1); + sprite->affineAnimPaused = FALSE; + } + if (AnimTranslateLinear(sprite)) + DestroyAnimSprite(sprite); +} + +// Updates the palette on the rainbow rings used in Aurora Beam to make them appear to be rotating counterclockwise +void AnimTask_RotateAuroraRingColors(u8 taskId) +{ + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_RAINBOW_RINGS) * 16 + 256; + gTasks[taskId].func = AnimTask_RotateAuroraRingColors_Step; +} + +#ifdef NONMATCHING +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) +{ + int i; + u16 palIndex; + u16 *palPtr1; + u16 *palPtr2; + u16 rgbBuffer; + + if (++gTasks[taskId].data[10] == 3) + { + gTasks[taskId].data[10] = 0; + palIndex = gTasks[taskId].data[2] + 1; + palPtr1 = &gPlttBufferFaded[palIndex]; + rgbBuffer = *palPtr1; + palPtr2 = &palPtr1[1]; + for (i = 0; i < 7; i++) + palPtr1[i] = palPtr2[i]; + gPlttBufferFaded[palIndex + 7] = rgbBuffer; + } + if (++gTasks[taskId].data[11] == gTasks[taskId].data[0]) + DestroyAnimVisualTask(taskId); +} +#else +NAKED +static void AnimTask_RotateAuroraRingColors_Step(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + ldr r1, =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r2, r0, r1\n\ + ldrh r0, [r2, 0x1C]\n\ + adds r0, 0x1\n\ + strh r0, [r2, 0x1C]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + mov r12, r1\n\ + cmp r0, 0x3\n\ + bne _081075BE\n\ + movs r0, 0\n\ + strh r0, [r2, 0x1C]\n\ + ldrh r0, [r2, 0xC]\n\ + adds r0, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ + ldr r1, =gPlttBufferFaded\n\ + lsls r0, r5, 1\n\ + adds r0, r1\n\ + ldrh r6, [r0]\n\ + adds r7, r1, 0\n\ + adds r3, r0, 0x2\n\ + movs r1, 0x6\n\ + adds r2, r0, 0\n\ +_081075A8:\n\ + ldrh r0, [r3]\n\ + strh r0, [r2]\n\ + adds r3, 0x2\n\ + adds r2, 0x2\n\ + subs r1, 0x1\n\ + cmp r1, 0\n\ + bge _081075A8\n\ + adds r0, r5, 0x7\n\ + lsls r0, 1\n\ + adds r0, r7\n\ + strh r6, [r0]\n\ +_081075BE:\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + add r0, r12\n\ + ldrh r1, [r0, 0x1E]\n\ + adds r1, 0x1\n\ + strh r1, [r0, 0x1E]\n\ + lsls r1, 16\n\ + asrs r1, 16\n\ + movs r2, 0x8\n\ + ldrsh r0, [r0, r2]\n\ + cmp r1, r0\n\ + bne _081075DE\n\ + adds r0, r4, 0\n\ + bl DestroyAnimVisualTask\n\ +_081075DE:\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +// For animating undulating beam attacks (e.g. Flamethrower, Hydro Pump, Signal Beam) +static void AnimToTargetInSinWave(struct Sprite *sprite) +{ + u16 retArg; + + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[0] = 30; + sprite->data[1] = sprite->pos1.x; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[3] = sprite->pos1.y; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + InitAnimLinearTranslation(sprite); + sprite->data[5] = 0xD200 / sprite->data[0]; + sprite->data[7] = gBattleAnimArgs[3]; + retArg = gBattleAnimArgs[7]; + if (gBattleAnimArgs[7] > 127) + { + sprite->data[6] = (retArg - 127) * 256; + sprite->data[7] = -sprite->data[7]; + } + else + { + sprite->data[6] = retArg * 256; + } + sprite->callback = AnimToTargetInSinWave_Step; + sprite->callback(sprite); +} + +static void AnimToTargetInSinWave_Step(struct Sprite *sprite) +{ + if (AnimTranslateLinear(sprite)) + DestroyAnimSprite(sprite); + sprite->pos2.y += Sin(sprite->data[6] >> 8, sprite->data[7]); + if ((sprite->data[6] + sprite->data[5]) >> 8 > 127) + { + sprite->data[6] = 0; + sprite->data[7] = -sprite->data[7]; + } + else + { + sprite->data[6] += sprite->data[5]; + } +} + +void AnimTask_StartSinAnimTimer(u8 taskId) +{ + gTasks[taskId].data[0] = gBattleAnimArgs[0]; + gBattleAnimArgs[7] = 0; + gTasks[taskId].func = AnimTask_RunSinAnimTimer; +} + +static void AnimTask_RunSinAnimTimer(u8 taskId) +{ + gBattleAnimArgs[7] = (gBattleAnimArgs[7] + 3) & 0xFF; + if (--gTasks[taskId].data[0] == 0) + DestroyAnimVisualTask(taskId); +} + +// Flashing blue orbs grow in size near the attacker. First stage of Hydro Cannon +static void AnimHydroCannonCharge(struct Sprite *sprite) +{ + u8 priority; + + sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); + sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->pos2.y = -10; + priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); + if (!IsContest()) + { + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + sprite->pos2.x = 10; + sprite->subpriority = priority + 2; + } + else + { + sprite->pos2.x = -10; + sprite->subpriority = priority - 2; + } + } + else + { + sprite->pos2.x = -10; + sprite->subpriority = priority + 2; + } + sprite->callback = AnimHydroCannonCharge_Step; +} + +static void AnimHydroCannonCharge_Step(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + DestroyAnimSprite(sprite); +} + +// Flashing blue orbs move from the attacker to the target. Second stage of Hydro Cannon +static void AnimHydroCannonBeam(struct Sprite *sprite) +{ + bool8 animType; + u8 coordType; + if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) + { + gBattleAnimArgs[0] *= -1; + if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT) + gBattleAnimArgs[0] *= -1; + } + if ((gBattleAnimArgs[5] & 0xFF00) == 0) + animType = TRUE; + else + animType = FALSE; + if ((u8)gBattleAnimArgs[5] == 0) + coordType = 3; + else + coordType = 1; + InitSpritePosToAnimAttacker(sprite, animType); + if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +// Water droplet appears and drips down. Used by Water Gun on impact +static void AnimWaterGunDroplet(struct Sprite *sprite) +{ + InitSpritePosToAnimTarget(sprite, TRUE); + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[2] = sprite->pos1.x + gBattleAnimArgs[2]; + sprite->data[4] = sprite->pos1.y + gBattleAnimArgs[4]; + sprite->callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); +} + +static void AnimSmallBubblePair(struct Sprite *sprite) +{ + if (gBattleAnimArgs[3] != ANIM_ATTACKER) + InitSpritePosToAnimTarget(sprite, TRUE); + else + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[7] = gBattleAnimArgs[2]; + sprite->callback = AnimSmallBubblePair_Step; +} + +static void AnimSmallBubblePair_Step(struct Sprite *sprite) +{ + sprite->data[0] = (sprite->data[0] + 11) & 0xFF; + sprite->pos2.x = Sin(sprite->data[0], 4); + sprite->data[1] += 48; + sprite->pos2.y = -(sprite->data[1] >> 8); + if (--sprite->data[7] == -1) + DestroyAnimSprite(sprite); +} + +#ifdef NONMATCHING +void AnimTask_CreateSurfWave(u8 taskId) +{ + struct BattleAnimBgData animBg; + u8 taskId2; + + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); + SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); + SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1); + sub_80752A0(&animBg); + if (!IsContest()) + { + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfOpponent); + else + AnimLoadCompressedBgTilemap(animBg.bgId, gBattleAnimBgTilemap_SurfPlayer); + } + else + { + // Changed from Emerald + LZDecompressVram(gBattleAnimBgTilemap_SurfContest, animBg.bgTilemap); + sub_80730C0(animBg.paletteId, animBg.bgTilemap, 0, 1); + } + AnimLoadCompressedBgGfx(animBg.bgId, gBattleAnimBgImage_Surf, animBg.tilesOffset); + if (gBattleAnimArgs[0] == 0) + LoadCompressedPalette(gBattleAnimBgPalette_Surf, animBg.paletteId * 16, 32); + else + LoadCompressedPalette(gBattleAnimBgPalette_MuddyWater, animBg.paletteId * 16, 32); + taskId2 = CreateTask(AnimTask_SurfWaveScanlineEffect, gTasks[taskId].priority + 1); + gTasks[taskId].data[15] = taskId2; + gTasks[taskId2].data[0] = 0; + gTasks[taskId2].data[1] = 0x1000; + gTasks[taskId2].data[2] = 0x1000; + if (IsContest()) + { + gBattle_BG1_X = -80; + gBattle_BG1_Y = -48; + gTasks[taskId].data[0] = 2; + gTasks[taskId].data[1] = 1; + gTasks[taskId2].data[3] = 0; + } + else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) + { + gBattle_BG1_X = -224; + gBattle_BG1_Y = 256; + gTasks[taskId].data[0] = 2; + gTasks[taskId].data[1] = -1; + gTasks[taskId2].data[3] = 1; + } + else + { + gBattle_BG1_X = 0; + gBattle_BG1_Y = -48; + gTasks[taskId].data[0] = -2; + gTasks[taskId].data[1] = 1; + gTasks[taskId2].data[3] = 0; + } + SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); + SetGpuReg(REG_OFFSET_BG1VOFS, gBattle_BG1_Y); + if (gTasks[taskId2].data[3] == 0) + { + gTasks[taskId2].data[4] = 48; + gTasks[taskId2].data[5] = 112; + } + else + { + gTasks[taskId2].data[4] = 0; + gTasks[taskId2].data[5] = 0; + } + gTasks[taskId].data[6] = 1; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step1; +} +#else +NAKED +void AnimTask_CreateSurfWave(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x10\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r10, r0\n\ + ldr r1, =0x00003f42\n\ + movs r0, 0x50\n\ + bl SetGpuReg\n\ + movs r1, 0x80\n\ + lsls r1, 5\n\ + movs r0, 0x52\n\ + bl SetGpuReg\n\ + movs r0, 0x1\n\ + movs r1, 0x4\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + movs r0, 0x1\n\ + movs r1, 0\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + mov r0, sp\n\ + bl sub_80752A0\n\ + bl IsContest\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _081079E0\n\ + movs r0, 0x1\n\ + movs r1, 0x3\n\ + movs r2, 0x1\n\ + bl SetAnimBgAttribute\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSide\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + bne _081079D0\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgTilemap_SurfOpponent\n\ + bl AnimLoadCompressedBgTilemap\n\ + b _081079EA\n\ + .pool\n\ +_081079D0:\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgTilemap_SurfPlayer\n\ + bl AnimLoadCompressedBgTilemap\n\ + b _081079EA\n\ + .pool\n\ +_081079E0:\n\ + ldr r0, =gBattleAnimBgTilemap_SurfContest\n\ + ldr r1, [sp, 0x4]\n\ + bl LZDecompressVram\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + ldr r1, [sp, 0x4]\n\ + movs r2, 0\n\ + movs r3, 0x1\n\ + bl sub_80730C0\n\ +_081079EA:\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x9]\n\ + ldr r1, =gBattleAnimBgImage_Surf\n\ + mov r2, sp\n\ + ldrh r2, [r2, 0xA]\n\ + bl AnimLoadCompressedBgGfx\n\ + ldr r0, =gBattleAnimArgs\n\ + movs r1, 0\n\ + ldrsh r0, [r0, r1]\n\ + cmp r0, 0\n\ + bne _08107A24\n\ + ldr r0, =gBattleAnimBgPalette_Surf\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ + b _08107A32\n\ + .pool\n\ +_08107A24:\n\ + ldr r0, =gBattleAnimBgPalette_MuddyWater\n\ + mov r1, sp\n\ + ldrb r1, [r1, 0x8]\n\ + lsls r1, 4\n\ + movs r2, 0x20\n\ + bl LoadCompressedPalette\n\ +_08107A32:\n\ + ldr r0, =AnimTask_SurfWaveScanlineEffect\n\ + ldr r4, =gTasks\n\ + mov r2, r10\n\ + lsls r5, r2, 2\n\ + adds r1, r5, r2\n\ + lsls r1, 3\n\ + adds r6, r1, r4\n\ + ldrb r1, [r6, 0x7]\n\ + adds r1, 0x1\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + bl CreateTask\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ + movs r0, 0\n\ + mov r9, r0\n\ + mov r1, r8\n\ + strh r1, [r6, 0x26]\n\ + mov r2, r8\n\ + lsls r0, r2, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r7, r0, r4\n\ + mov r0, r9\n\ + strh r0, [r7, 0x8]\n\ + movs r0, 0x80\n\ + lsls r0, 5\n\ + strh r0, [r7, 0xA]\n\ + strh r0, [r7, 0xC]\n\ + bl IsContest\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + beq _08107AB4\n\ + ldr r1, =0x0000ffb0\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_X\n\ + strh r0, [r2]\n\ + adds r1, 0x20\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + mov r0, r9\n\ + strh r0, [r7, 0xE]\n\ + b _08107B0E\n\ + .pool\n\ +_08107AB4:\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSide\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + cmp r1, 0x1\n\ + bne _08107AF8\n\ + ldr r2, =0x0000ff20\n\ + adds r0, r2, 0\n\ + ldr r2, =gBattle_BG1_X\n\ + strh r0, [r2]\n\ + movs r2, 0x80\n\ + lsls r2, 1\n\ + adds r0, r2, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + movs r0, 0x2\n\ + strh r0, [r6, 0x8]\n\ + ldr r0, =0x0000ffff\n\ + strh r0, [r6, 0xA]\n\ + strh r1, [r7, 0xE]\n\ + b _08107B0E\n\ + .pool\n\ +_08107AF8:\n\ + ldr r0, =gBattle_BG1_X\n\ + strh r4, [r0]\n\ + ldr r1, =0x0000ffd0\n\ + adds r0, r1, 0\n\ + ldr r2, =gBattle_BG1_Y\n\ + strh r0, [r2]\n\ + ldr r0, =0x0000fffe\n\ + strh r0, [r6, 0x8]\n\ + movs r0, 0x1\n\ + strh r0, [r6, 0xA]\n\ + strh r4, [r7, 0xE]\n\ +_08107B0E:\n\ + ldr r0, =gBattle_BG1_X\n\ + ldrh r1, [r0]\n\ + movs r0, 0x14\n\ + bl SetGpuReg\n\ + ldr r2, =gBattle_BG1_Y\n\ + ldrh r1, [r2]\n\ + movs r0, 0x16\n\ + bl SetGpuReg\n\ + ldr r1, =gTasks\n\ + mov r2, r8\n\ + lsls r0, r2, 2\n\ + add r0, r8\n\ + lsls r0, 3\n\ + adds r1, r0, r1\n\ + movs r2, 0xE\n\ + ldrsh r0, [r1, r2]\n\ + cmp r0, 0\n\ + bne _08107B54\n\ + movs r0, 0x30\n\ + strh r0, [r1, 0x10]\n\ + movs r0, 0x70\n\ + b _08107B58\n\ + .pool\n\ +_08107B54:\n\ + movs r0, 0\n\ + strh r0, [r1, 0x10]\n\ +_08107B58:\n\ + strh r0, [r1, 0x12]\n\ + ldr r1, =gTasks\n\ + mov r2, r10\n\ + adds r0, r5, r2\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + movs r1, 0x1\n\ + strh r1, [r0, 0x14]\n\ + ldr r1, =AnimTask_CreateSurfWave_Step1\n\ + str r1, [r0]\n\ + add sp, 0x10\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +#ifdef NONMATCHING +static void AnimTask_CreateSurfWave_Step1(u8 taskId) +{ + struct BattleAnimBgData animBg; + u8 i; + u16 rgbBuffer; + u16 *BGptrX = &gBattle_BG1_X; + u16 *BGptrY = &gBattle_BG1_Y; + s16 unkUse; + u32 palOffset; + u16 palNum; + + *BGptrX += gTasks[taskId].data[0]; + *BGptrY += gTasks[taskId].data[1]; + sub_80752A0(&animBg); + gTasks[taskId].data[2] += gTasks[taskId].data[1]; + if (++gTasks[taskId].data[5] == 4) + { + rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7]; + for (i = 6; i != 0; i--) + { + palNum = animBg.paletteId * 16; + palOffset = 1 + i; + gPlttBufferFaded[palNum + palOffset] = gPlttBufferFaded[palNum + palOffset - 1]; + } + gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer; + gTasks[taskId].data[5] = 0; + } + if (++gTasks[taskId].data[6] > 1) + { + gTasks[taskId].data[6] = 0; + unkUse = ++gTasks[taskId].data[3]; + if (unkUse <= 13) + { + gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + gTasks[taskId].data[4]++; + } + if (gTasks[taskId].data[3] > 54) + { + unkUse = --gTasks[taskId].data[4]; + gTasks[gTasks[taskId].data[15]].data[1] = unkUse | ((16 - unkUse) * 256); + } + } + if (!(gTasks[gTasks[taskId].data[15]].data[1] & 0x1F)) + { + gTasks[taskId].data[0] = gTasks[gTasks[taskId].data[15]].data[1] & 0x1F; + gTasks[taskId].func = AnimTask_CreateSurfWave_Step2; + } +} +#else +NAKED +static void AnimTask_CreateSurfWave_Step1(u8 taskId) +{ + asm_unified("push {r4-r7,lr}\n\ + sub sp, 0x10\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + ldr r1, =gBattle_BG1_X\n\ + ldr r2, =gBattle_BG1_Y\n\ + ldr r0, =gTasks\n\ + lsls r4, r5, 2\n\ + adds r4, r5\n\ + lsls r4, 3\n\ + adds r4, r0\n\ + ldrh r0, [r4, 0x8]\n\ + ldrh r3, [r1]\n\ + adds r0, r3\n\ + strh r0, [r1]\n\ + ldrh r0, [r4, 0xA]\n\ + ldrh r1, [r2]\n\ + adds r0, r1\n\ + strh r0, [r2]\n\ + mov r0, sp\n\ + bl sub_80752A0\n\ + ldrh r0, [r4, 0xA]\n\ + ldrh r3, [r4, 0xC]\n\ + adds r0, r3\n\ + strh r0, [r4, 0xC]\n\ + ldrh r0, [r4, 0x12]\n\ + adds r0, 0x1\n\ + strh r0, [r4, 0x12]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + cmp r0, 0x4\n\ + bne _08107C18\n\ + ldr r1, =gPlttBufferFaded\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + lsls r0, 4\n\ + adds r0, 0x7\n\ + lsls r0, 1\n\ + adds r0, r1\n\ + ldrh r6, [r0]\n\ + movs r2, 0x6\n\ + adds r7, r1, 0\n\ + adds r3, r7, 0\n\ + mov r4, sp\n\ +_08107BDE:\n\ + ldrb r0, [r4, 0x8]\n\ + lsls r0, 4\n\ + adds r1, r2, 0x1\n\ + adds r0, r1\n\ + lsls r1, r0, 1\n\ + adds r1, r3\n\ + subs r0, 0x1\n\ + lsls r0, 1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + strh r0, [r1]\n\ + subs r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + cmp r2, 0\n\ + bne _08107BDE\n\ + mov r0, sp\n\ + ldrb r0, [r0, 0x8]\n\ + lsls r0, 4\n\ + adds r0, 0x1\n\ + lsls r0, 1\n\ + adds r0, r7\n\ + strh r6, [r0]\n\ + ldr r1, =gTasks\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r2, [r0, 0x12]\n\ +_08107C18:\n\ + ldr r1, =gTasks\n\ + lsls r2, r5, 2\n\ + adds r0, r2, r5\n\ + lsls r0, 3\n\ + adds r3, r0, r1\n\ + ldrh r0, [r3, 0x14]\n\ + adds r0, 0x1\n\ + strh r0, [r3, 0x14]\n\ + lsls r0, 16\n\ + asrs r0, 16\n\ + adds r4, r1, 0\n\ + adds r6, r2, 0\n\ + cmp r0, 0x1\n\ + ble _08107C86\n\ + movs r0, 0\n\ + strh r0, [r3, 0x14]\n\ + ldrh r0, [r3, 0xE]\n\ + adds r2, r0, 0x1\n\ + strh r2, [r3, 0xE]\n\ + lsls r0, r2, 16\n\ + asrs r0, 16\n\ + cmp r0, 0xD\n\ + bgt _08107C62\n\ + movs r1, 0x26\n\ + ldrsh r0, [r3, r1]\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r4\n\ + movs r0, 0x10\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + strh r2, [r1, 0xA]\n\ + ldrh r0, [r3, 0x10]\n\ + adds r0, 0x1\n\ + strh r0, [r3, 0x10]\n\ +_08107C62:\n\ + movs r1, 0xE\n\ + ldrsh r0, [r3, r1]\n\ + cmp r0, 0x36\n\ + ble _08107C86\n\ + ldrh r2, [r3, 0x10]\n\ + subs r2, 0x1\n\ + strh r2, [r3, 0x10]\n\ + movs r1, 0x26\n\ + ldrsh r0, [r3, r1]\n\ + lsls r1, r0, 2\n\ + adds r1, r0\n\ + lsls r1, 3\n\ + adds r1, r4\n\ + movs r0, 0x10\n\ + subs r0, r2\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + strh r2, [r1, 0xA]\n\ +_08107C86:\n\ + adds r0, r6, r5\n\ + lsls r0, 3\n\ + adds r2, r0, r4\n\ + movs r3, 0x26\n\ + ldrsh r1, [r2, r3]\n\ + lsls r0, r1, 2\n\ + adds r0, r1\n\ + lsls r0, 3\n\ + adds r0, r4\n\ + ldrh r0, [r0, 0xA]\n\ + movs r3, 0x1F\n\ + ands r3, r0\n\ + cmp r3, 0\n\ + bne _08107CA8\n\ + strh r3, [r2, 0x8]\n\ + ldr r0, =AnimTask_CreateSurfWave_Step2\n\ + str r0, [r2]\n\ +_08107CA8:\n\ + add sp, 0x10\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n"); +} +#endif + +static void AnimTask_CreateSurfWave_Step2(u8 taskId) +{ + u16 *BGptrX = &gBattle_BG1_X; + u16 *BGptrY = &gBattle_BG1_Y; + if (gTasks[taskId].data[0] == 0) + { + sub_8075358(1); + sub_8075358(2); + gTasks[taskId].data[0]++; + } + else + { + if (!IsContest()) + SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 0); + *BGptrX = 0; + *BGptrY = 0; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0)); + gTasks[gTasks[taskId].data[15]].data[15] = -1; + DestroyAnimVisualTask(taskId); + } +} + +static void AnimTask_SurfWaveScanlineEffect(u8 taskId) +{ + s16 i; + struct ScanlineEffectParams params; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + + if (task->data[4] == 0) + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[1]; + else + gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[1][i] = task->data[2]; + + params.dmaDest = (vu16 *)REG_ADDR_BLDALPHA; + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.initState = 1; + params.unused9 = 0; + ScanlineEffect_SetParams(params); + task->data[0]++; + break; + case 1: + if (task->data[3] == 0) + { + if (--task->data[4] <= 0) + { + task->data[4] = 0; + task->data[0]++; + } + } + else if (++task->data[5] > 111) + { + task->data[0]++; + } + + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + break; + case 2: + for (i = 0; i < task->data[4]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + for (i = task->data[4]; i < task->data[5]; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[1]; + for (i = task->data[5]; i < 160; i++) + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = task->data[2]; + + if (task->data[15] == -1) + { + ScanlineEffect_Stop(); + DestroyTask(taskId); + } + break; + } +} + +static void AnimSmallDriftingBubbles(struct Sprite *sprite) +{ + s16 randData; + s16 randData2; + + sprite->oam.tileNum += 8; + InitSpritePosToAnimTarget(sprite, TRUE); + randData = (Random() & 0xFF) | 256; + randData2 = (Random() & 0x1FF); + if (randData2 > 255) + randData2 = 256 - randData2; + sprite->data[1] = randData; + sprite->data[2] = randData2; + sprite->callback = AnimSmallDriftingBubbles_Step; +} + +static void AnimSmallDriftingBubbles_Step(struct Sprite *sprite) +{ + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + if (sprite->data[1] & 1) + sprite->pos2.x = -(sprite->data[3] >> 8); + else + sprite->pos2.x = sprite->data[3] >> 8; + sprite->pos2.y = sprite->data[4] >> 8; + if (++sprite->data[0] == 21) + DestroyAnimSprite(sprite); +} + +void AnimTask_WaterSpoutLaunch(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->data[5] = gSprites[task->data[15]].pos1.y; + task->data[1] = GetWaterSpoutPowerForAnim(); + PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); + task->func = AnimTask_WaterSpoutLaunch_Step; +} + +static void AnimTask_WaterSpoutLaunch_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + sub_80765D4(task, task->data[15], 0x100, 0x100, 224, 0x200, 32); + task->data[0]++; + case 1: + if (++task->data[3] > 1) + { + task->data[3] = 0; + if (++task->data[4] & 1) + { + gSprites[task->data[15]].pos2.x = 3; + gSprites[task->data[15]].pos1.y++; + } + else + { + gSprites[task->data[15]].pos2.x = -3; + } + } + if (sub_8076640(task) == 0) + { + SetBattlerSpriteYOffsetFromYScale(task->data[15]); + gSprites[task->data[15]].pos2.x = 0; + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + break; + case 2: + if (++task->data[3] > 4) + { + sub_80765D4(task, task->data[15], 224, 0x200, 384, 224, 8); + task->data[3] = 0; + task->data[0]++; + } + break; + case 3: + if (sub_8076640(task) == 0) + { + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + break; + case 4: + CreateWaterSpoutLaunchDroplets(task, taskId); + task->data[0]++; + case 5: + if (++task->data[3] > 1) + { + task->data[3] = 0; + if (++task->data[4] & 1) + gSprites[task->data[15]].pos2.y += 2; + else + gSprites[task->data[15]].pos2.y -= 2; + if (task->data[4] == 10) + { + sub_80765D4(task, task->data[15], 384, 224, 0x100, 0x100, 8); + task->data[3] = 0; + task->data[4] = 0; + task->data[0]++; + } + } + break; + case 6: + gSprites[task->data[15]].pos1.y--; + if (sub_8076640(task) == 0) + { + ResetSpriteRotScale(task->data[15]); + gSprites[task->data[15]].pos1.y = task->data[5]; + task->data[4] = 0; + task->data[0]++; + } + break; + case 7: + if (task->data[2] == 0) + DestroyAnimVisualTask(taskId); + break; + } +} + +// Returns a value 0-3 relative to which quarter HP the attacker is in +// A higher number results in more water sprites during the Water Spout animation +static u8 GetWaterSpoutPowerForAnim(void) +{ + u8 i; + u16 hp; + u16 maxhp; + u16 partyIndex; + struct Pokemon *slot; + + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker]; + slot = &gPlayerParty[partyIndex]; + maxhp = GetMonData(slot, MON_DATA_MAX_HP); + hp = GetMonData(slot, MON_DATA_HP); + maxhp /= 4; + } + else + { + partyIndex = gBattlerPartyIndexes[gBattleAnimAttacker]; + slot = &gEnemyParty[partyIndex]; + maxhp = GetMonData(slot, MON_DATA_MAX_HP); + hp = GetMonData(slot, MON_DATA_HP); + maxhp /= 4; + } + for (i = 0; i < 3; i++) + { + if (hp < maxhp * (i + 1)) + return i; + } + return 3; +} + +static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) +{ + s16 i; + s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 trigIndex = 172; + u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + s16 increment = 4 - task->data[1]; + u8 spriteId; + + if (increment <= 0) + increment = 1; + for (i = 0; i < 20; i += increment) + { + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, attackerCoordX, attackerCoordY, subpriority); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[1] = i; + gSprites[spriteId].data[2] = attackerCoordX * 16; + gSprites[spriteId].data[3] = attackerCoordY * 16; + gSprites[spriteId].data[4] = Cos(trigIndex, 64); + gSprites[spriteId].data[5] = Sin(trigIndex, 64); + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = 2; + if (task->data[2] & 1) + AnimSmallWaterOrb(&gSprites[spriteId]); + task->data[2]++; + } + trigIndex = (trigIndex + increment * 2); + trigIndex &= 0xFF; + } +} + +static void AnimSmallWaterOrb(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[4] += (sprite->data[1] % 6) * 3; + sprite->data[5] += (sprite->data[1] % 3) * 3; + sprite->data[0]++; + case 1: + sprite->data[2] += sprite->data[4]; + sprite->data[3] += sprite->data[5]; + sprite->pos1.x = sprite->data[2] >> 4; + sprite->pos1.y = sprite->data[3] >> 4; + if (sprite->pos1.x < -8 || sprite->pos1.x > 248 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + DestroySprite(sprite); + } + break; + } +} + +void AnimTask_WaterSpoutRain(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[1] = GetWaterSpoutPowerForAnim(); + if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + { + task->data[4] = 136; + task->data[6] = 40; + } + else + { + task->data[4] = 16; + task->data[6] = 80; + } + task->data[5] = 98; + task->data[7] = task->data[4] + 49; + task->data[12] = task->data[1] * 5 + 5; + task->func = AnimTask_WaterSpoutRain_Step; +} + +static void AnimTask_WaterSpoutRain_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + u8 taskId2; + + switch (task->data[0]) + { + case 0: + if (++task->data[2] > 2) + { + task->data[2] = 0; + CreateWaterSpoutRainDroplet(task, taskId); + } + if (task->data[10] != 0 && task->data[13] == 0) + { + gBattleAnimArgs[0] = ANIM_TARGET; + gBattleAnimArgs[1] = 0; + gBattleAnimArgs[2] = 12; + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); + if (taskId2 != 0xFF) + { + gTasks[taskId2].func(taskId2); + gAnimVisualTaskCount++; + } + gBattleAnimArgs[0] = ANIM_DEF_PARTNER; + taskId2 = CreateTask(AnimTask_HorizontalShake, 80); + if (taskId2 != 0xFF) + { + gTasks[taskId2].func(taskId2); + gAnimVisualTaskCount++; + } + task->data[13] = 1; + } + if (task->data[11] >= task->data[12]) + task->data[0]++; + break; + case 1: + if (task->data[9] == 0) + DestroyAnimVisualTask(taskId); + break; + } +} + +static void CreateWaterSpoutRainDroplet(struct Task *task, u8 taskId) +{ + u16 yPosArg = ((gSineTable[task->data[8]] + 3) >> 4) + task->data[6]; + u8 spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[7], 0, 0); + + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].callback = AnimWaterSpoutRain; + gSprites[spriteId].data[5] = yPosArg; + gSprites[spriteId].data[6] = taskId; + gSprites[spriteId].data[7] = 9; + task->data[9]++; + } + task->data[11]++; + task->data[8] = (task->data[8] + 39) & 0xFF; + task->data[7] = (ISO_RANDOMIZE2(task->data[7]) % task->data[5]) + task->data[4]; +} + +static void AnimWaterSpoutRain(struct Sprite *sprite) +{ + if (sprite->data[0] == 0) + { + sprite->pos1.y += 8; + if (sprite->pos1.y >= sprite->data[5]) + { + gTasks[sprite->data[6]].data[10] = 1; + sprite->data[1] = CreateSprite(&gWaterHitSplatSpriteTemplate, sprite->pos1.x, sprite->pos1.y, 1); + if (sprite->data[1] != MAX_SPRITES) + { + StartSpriteAffineAnim(&gSprites[sprite->data[1]], 3); + gSprites[sprite->data[1]].data[6] = sprite->data[6]; + gSprites[sprite->data[1]].data[7] = sprite->data[7]; + gSprites[sprite->data[1]].callback = AnimWaterSpoutRainHit; + } + DestroySprite(sprite); + } + } +} + +static void AnimWaterSpoutRainHit(struct Sprite *sprite) +{ + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + sprite->invisible ^= 1; + if (++sprite->data[2] == 12) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + FreeOamMatrix(sprite->oam.matrixNum); + DestroySprite(sprite); + } + } +} + +void AnimTask_WaterSport(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; + if (IsContest()) + task->data[7] *= -1; + task->data[5] = task->data[3] + task->data[7] * 8; + task->data[6] = task->data[4] - task->data[7] * 8; + task->data[9] = -32; + task->data[1] = 0; + task->data[0] = 0; + task->func = AnimTask_WaterSport_Step; +} + +static void AnimTask_WaterSport_Step(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + CreateWaterSportDroplet(task); + if (task->data[10] != 0) + task->data[0]++; + break; + case 1: + CreateWaterSportDroplet(task); + if (++task->data[1] > 16) + { + task->data[1] = 0; + task->data[0]++; + } + break; + case 2: + CreateWaterSportDroplet(task); + task->data[5] += task->data[7] * 6; + if (!(task->data[5] >= -16 && task->data[5] <= 256)) + { + if (++task->data[12] > 2) + { + task->data[13] = 1; + task->data[0] = 6; + task->data[1] = 0; + } + else + { + task->data[1] = 0; + task->data[0]++; + } + } + break; + case 3: + CreateWaterSportDroplet(task); + task->data[6] -= task->data[7] * 2; + if (++task->data[1] > 7) + task->data[0]++; + break; + case 4: + CreateWaterSportDroplet(task); + task->data[5] -= task->data[7] * 6; + if (!(task->data[5] >= -16 && task->data[5] <= 256)) + { + task->data[12]++; + task->data[1] = 0; + task->data[0]++; + } + break; + case 5: + CreateWaterSportDroplet(task); + task->data[6] -= task->data[7] * 2; + if (++task->data[1] > 7) + task->data[0] = 2; + break; + case 6: + if (task->data[8] == 0) + task->data[0]++; + break; + default: + DestroyAnimVisualTask(taskId); + break; + } +} + +static void CreateWaterSportDroplet(struct Task *task) +{ + u8 spriteId; + + if (++task->data[2] > 1) + { + task->data[2] = 0; + spriteId = CreateSprite(&gSmallWaterOrbSpriteTemplate, task->data[3], task->data[4], 10); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 16; + gSprites[spriteId].data[2] = task->data[5]; + gSprites[spriteId].data[4] = task->data[6]; + gSprites[spriteId].data[5] = task->data[9]; + InitAnimArcTranslation(&gSprites[spriteId]); + gSprites[spriteId].callback = AnimWaterSportDroplet; + task->data[8]++; + } + } +} + +static void AnimWaterSportDroplet(struct Sprite *sprite) +{ + if (TranslateAnimHorizontalArc(sprite)) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->data[0] = 6; + sprite->data[2] = (Random() & 0x1F) - 16 + sprite->pos1.x; + sprite->data[4] = (Random() & 0x1F) - 16 + sprite->pos1.y; + sprite->data[5] = ~(Random() & 7); + InitAnimArcTranslation(sprite); + sprite->callback = AnimWaterSportDroplet_Step; + } +} + +static void AnimWaterSportDroplet_Step(struct Sprite *sprite) +{ + u16 i; + + if (TranslateAnimHorizontalArc(sprite)) + { + for (i = 0; i < NUM_TASKS; i++) + { + if (gTasks[i].func == AnimTask_WaterSport_Step) + { + gTasks[i].data[10] = 1; + gTasks[i].data[8]--; + DestroySprite(sprite); + } + } + } +} + +static void AnimWaterPulseBubble(struct Sprite *sprite) +{ + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gBattleAnimArgs[3]; + sprite->data[2] = gBattleAnimArgs[4]; + sprite->data[3] = gBattleAnimArgs[5]; + sprite->callback = AnimWaterPulseBubble_Step; +} + +static void AnimWaterPulseBubble_Step(struct Sprite *sprite) +{ + sprite->data[4] -= sprite->data[0]; + sprite->pos2.y = sprite->data[4] / 10; + sprite->data[5] = (sprite->data[5] + sprite->data[1]) & 0xFF; + sprite->pos2.x = Sin(sprite->data[5], sprite->data[2]); + if (--sprite->data[3] == 0) + DestroyAnimSprite(sprite); +} + +static void AnimWaterPulseRingBubble(struct Sprite *sprite) +{ + sprite->data[3] += sprite->data[1]; + sprite->data[4] += sprite->data[2]; + sprite->pos2.x = sprite->data[3] >> 7; + sprite->pos2.y = sprite->data[4] >> 7; + if (--sprite->data[0] == 0) + { + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + } +} + +void AnimWaterPulseRing(struct Sprite *sprite) +{ + InitSpritePosToAnimAttacker(sprite, TRUE); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[3] = gBattleAnimArgs[2]; + sprite->data[4] = gBattleAnimArgs[3]; + sprite->callback = AnimWaterPulseRing_Step; +} + +static void AnimWaterPulseRing_Step(struct Sprite *sprite) +{ + int xDiff = sprite->data[1] - sprite->pos1.x; + int yDiff = sprite->data[2] - sprite->pos1.y; + + sprite->pos2.x = (sprite->data[0] * xDiff) / sprite->data[3]; + sprite->pos2.y = (sprite->data[0] * yDiff) / sprite->data[3]; + if (++sprite->data[5] == sprite->data[4]) + { + sprite->data[5] = 0; + CreateWaterPulseRingBubbles(sprite, xDiff, yDiff); + } + if (sprite->data[3] == sprite->data[0]) + DestroyAnimSprite(sprite); + sprite->data[0]++; +} + +#ifdef NONMATCHING +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +{ + s16 something = sprite->data[0] / 2; + s16 combinedX = sprite->pos1.x + sprite->pos2.x; + s16 combinedY = sprite->pos1.y + sprite->pos2.y; + s16 randomSomethingY = yDiff + (Random() % 10) - 5; + s16 randomSomethingX = -xDiff + (Random() % 10) - 5; + s16 i; + u8 spriteId; + + for (i = 0; i <= 0; i++) + { + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130); + gSprites[spriteId].data[0] = 20; + gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + if (randomSomethingX < 0) + gSprites[spriteId].data[2] = -randomSomethingX; + else + gSprites[spriteId].data[2] = randomSomethingX; + } + for (i = 0; i <= 0; i++) + { + spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130); + gSprites[spriteId].data[0] = 20; + gSprites[spriteId].data[1] = randomSomethingY; + gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; + if (randomSomethingX > 0) + gSprites[spriteId].data[2] = -randomSomethingX; + else + gSprites[spriteId].data[2] = randomSomethingX; + } +} +#else +NAKED +static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff) +{ + asm_unified("push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x18\n\ + adds r4, r1, 0\n\ + adds r5, r2, 0\n\ + movs r2, 0x2E\n\ + ldrsh r1, [r0, r2]\n\ + lsrs r2, r1, 31\n\ + adds r1, r2\n\ + lsls r1, 15\n\ + lsrs r1, 16\n\ + str r1, [sp]\n\ + ldrh r1, [r0, 0x24]\n\ + ldrh r3, [r0, 0x20]\n\ + adds r1, r3\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r8, r1\n\ + ldrh r1, [r0, 0x26]\n\ + ldrh r0, [r0, 0x22]\n\ + adds r1, r0\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + mov r10, r1\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r0, r5, r0\n\ + subs r0, 0x5\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r9, r0\n\ + bl Random\n\ + negs r4, r4\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r4, r0\n\ + subs r4, 0x5\n\ + lsls r4, 16\n\ + lsrs r7, r4, 16\n\ + movs r6, 0\n\ + mov r0, r8\n\ + lsls r0, 16\n\ + mov r8, r0\n\ + mov r1, r10\n\ + lsls r1, 16\n\ + str r1, [sp, 0xC]\n\ + ldr r2, [sp]\n\ + lsls r2, 16\n\ + str r2, [sp, 0x10]\n\ + asrs r1, 16\n\ + lsls r0, r7, 16\n\ + asrs r5, r0, 16\n\ + str r0, [sp, 0x14]\n\ + negs r3, r5\n\ + str r3, [sp, 0x4]\n\ + asrs r0, r2, 16\n\ + adds r1, r0\n\ + lsls r1, 16\n\ + mov r10, r1\n\ +_08108DE2:\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ + mov r2, r8\n\ + asrs r1, r2, 16\n\ + mov r3, r10\n\ + asrs r2, r3, 16\n\ + movs r3, 0x82\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r1, =gSprites\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r4, r0, r1\n\ + movs r0, 0x14\n\ + strh r0, [r4, 0x2E]\n\ + mov r0, r9\n\ + strh r0, [r4, 0x30]\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSpriteSubpriority\n\ + subs r0, 0x1\n\ + adds r1, r4, 0\n\ + adds r1, 0x43\n\ + strb r0, [r1]\n\ + cmp r5, 0\n\ + bge _08108E30\n\ + mov r1, sp\n\ + ldrh r1, [r1, 0x4]\n\ + strh r1, [r4, 0x32]\n\ + b _08108E32\n\ + .pool\n\ +_08108E30:\n\ + strh r7, [r4, 0x32]\n\ +_08108E32:\n\ + lsls r0, r6, 16\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r0, r2\n\ + lsrs r6, r0, 16\n\ + cmp r0, 0\n\ + ble _08108DE2\n\ + movs r6, 0\n\ + ldr r3, [sp, 0xC]\n\ + asrs r1, r3, 16\n\ + ldr r0, [sp, 0x14]\n\ + asrs r5, r0, 16\n\ + negs r2, r5\n\ + str r2, [sp, 0x8]\n\ + ldr r3, [sp, 0x10]\n\ + asrs r0, r3, 16\n\ + subs r1, r0\n\ + lsls r1, 16\n\ + mov r10, r1\n\ +_08108E58:\n\ + ldr r0, =gWaterPulseRingBubbleSpriteTemplate\n\ + mov r2, r8\n\ + asrs r1, r2, 16\n\ + mov r3, r10\n\ + asrs r2, r3, 16\n\ + movs r3, 0x82\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + ldr r1, =gSprites\n\ + lsls r0, r2, 4\n\ + adds r0, r2\n\ + lsls r0, 2\n\ + adds r4, r0, r1\n\ + movs r0, 0x14\n\ + strh r0, [r4, 0x2E]\n\ + mov r0, r9\n\ + strh r0, [r4, 0x30]\n\ + ldr r0, =gBattleAnimAttacker\n\ + ldrb r0, [r0]\n\ + bl GetBattlerSpriteSubpriority\n\ + subs r0, 0x1\n\ + adds r1, r4, 0\n\ + adds r1, 0x43\n\ + strb r0, [r1]\n\ + cmp r5, 0\n\ + ble _08108EA8\n\ + mov r1, sp\n\ + ldrh r1, [r1, 0x8]\n\ + strh r1, [r4, 0x32]\n\ + b _08108EAA\n\ + .pool\n\ +_08108EA8:\n\ + strh r7, [r4, 0x32]\n\ +_08108EAA:\n\ + lsls r0, r6, 16\n\ + movs r2, 0x80\n\ + lsls r2, 9\n\ + adds r0, r2\n\ + lsrs r6, r0, 16\n\ + cmp r0, 0\n\ + ble _08108E58\n\ + add sp, 0x18\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n"); +} +#endif |