diff options
-rw-r--r-- | asm/battle_anim_81258BC.s | 732 | ||||
-rw-r--r-- | include/battle_anim.h | 3 | ||||
-rw-r--r-- | ld_script.txt | 3 | ||||
-rw-r--r-- | src/battle/anim/sfx.c | 280 | ||||
-rw-r--r-- | src/battle/battle_anim.c | 6 | ||||
-rw-r--r-- | src/unused_81258BC.c | 36 |
6 files changed, 324 insertions, 736 deletions
diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s deleted file mode 100644 index 2c19ad731..000000000 --- a/asm/battle_anim_81258BC.s +++ /dev/null @@ -1,732 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start unref_sub_812AECC -unref_sub_812AECC: @ 812AECC - push {lr} - bl RunMysteryEventScript - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0812AEEA - cmp r0, 0x1 - ble _0812AF08 - cmp r1, 0x2 - beq _0812AEF4 - cmp r1, 0x3 - beq _0812AEFA - b _0812AF08 -_0812AEEA: - movs r0, 0x16 - bl PlaySE - movs r0, 0x1 - b _0812AF0A -_0812AEF4: - bl sub_812AF10 - b _0812AF08 -_0812AEFA: - movs r0, 0x16 - bl PlaySE - bl sub_812AF10 - movs r0, 0x1 - b _0812AF0A -_0812AF08: - movs r0, 0 -_0812AF0A: - pop {r1} - bx r1 - thumb_func_end unref_sub_812AECC - - thumb_func_start sub_812AF10 -sub_812AF10: @ 812AF10 - push {lr} - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _0812AF2C @ =gStringVar4 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_0812AF2C: .4byte gStringVar4 - thumb_func_end sub_812AF10 - - thumb_func_start sub_812AF30 -sub_812AF30: @ 812AF30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812AF8C @ =gTasks - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - adds r6, r1 - ldr r1, _0812AF90 @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r6, 0x8] - ldrh r0, [r1, 0x2] - strh r0, [r6, 0xA] - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl CalculatePanIncrement - strh r4, [r6, 0xC] - strh r5, [r6, 0xE] - lsls r0, 24 - asrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0xA - strh r0, [r6, 0x1C] - ldr r0, _0812AF94 @ =sub_812AF98 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812AF8C: .4byte gTasks -_0812AF90: .4byte gBattleAnimArgs -_0812AF94: .4byte sub_812AF98 - thumb_func_end sub_812AF30 - - thumb_func_start sub_812AF98 -sub_812AF98: @ 812AF98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0812AFC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r5, [r4, 0xC] - ldrb r6, [r4, 0x10] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - bne _0812AFD0 - movs r0, 0x5 - strh r0, [r4, 0x1C] - strh r1, [r4, 0x1E] - ldr r0, _0812AFCC @ =sub_812B004 - str r0, [r4] - b _0812AFFE - .align 2, 0 -_0812AFC8: .4byte gTasks -_0812AFCC: .4byte sub_812B004 -_0812AFD0: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0812AFEA - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x8] - lsls r1, r5, 24 - asrs r1, 24 - bl PlaySE12WithPanning -_0812AFEA: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_8077104 - strh r0, [r4, 0xC] -_0812AFFE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812AF98 - - thumb_func_start sub_812B004 -sub_812B004: @ 812B004 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _0812B04C - movs r0, 0 - strh r0, [r4, 0x1C] - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r1, r0, 0 - ldrh r0, [r4, 0xA] - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0812B04C - adds r0, r5, 0 - bl DestroyAnimSoundTask -_0812B04C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B054: .4byte gTasks - thumb_func_end sub_812B004 - - thumb_func_start sub_812B058 -sub_812B058: @ 812B058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B0FC @ =gBattleAnimArgs - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x6] - ldrb r3, [r0, 0x8] - mov r10, r3 - ldrb r7, [r0, 0xA] - ldrb r1, [r0, 0xC] - mov r9, r1 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B100 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, 0x8] - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r10 - strh r0, [r1, 0x10] - strh r7, [r1, 0x12] - mov r3, r9 - strh r3, [r1, 0x14] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - strh r3, [r1, 0x20] - ldr r2, _0812B104 @ =sub_812B108 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B0FC: .4byte gBattleAnimArgs -_0812B100: .4byte gTasks -_0812B104: .4byte sub_812B108 - thumb_func_end sub_812B058 - - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B14C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B150 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812B150 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _0812B182 - .align 2, 0 -_0812B14C: .4byte gTasks -_0812B150: - ldr r1, _0812B188 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B182 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B188: .4byte gTasks - thumb_func_end sub_812B108 - - thumb_func_start sub_812B18C -sub_812B18C: @ 812B18C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r6, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B1CC - ldr r0, _0812B1BC @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812B1C4 - ldr r0, _0812B1C0 @ =gSharedMem + 0x19348 - ldrh r4, [r0] - b _0812B272 - .align 2, 0 -_0812B1BC: .4byte gBattleAnimArgs -_0812B1C0: .4byte gSharedMem + 0x19348 -_0812B1C4: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B272 -_0812B1CC: - ldr r0, _0812B1E0 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _0812B1E8 - ldr r0, _0812B1E4 @ =gAnimBankAttacker - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1E0: .4byte gBattleAnimArgs -_0812B1E4: .4byte gAnimBankAttacker -_0812B1E8: - cmp r1, 0x1 - bne _0812B1F8 - ldr r0, _0812B1F4 @ =gAnimBankTarget - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1F4: .4byte gAnimBankTarget -_0812B1F8: - cmp r1, 0x2 - bne _0812B204 - ldr r0, _0812B200 @ =gAnimBankAttacker - b _0812B206 - .align 2, 0 -_0812B200: .4byte gAnimBankAttacker -_0812B204: - ldr r0, _0812B230 @ =gAnimBankTarget -_0812B206: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_0812B20E: - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0812B21A - cmp r0, 0x3 - bne _0812B234 -_0812B21A: - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _0812B234 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B2B0 - .align 2, 0 -_0812B230: .4byte gAnimBankTarget -_0812B234: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0812B258 - ldr r1, _0812B250 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B254 @ =gEnemyParty - b _0812B266 - .align 2, 0 -_0812B250: .4byte gBattlePartyID -_0812B254: .4byte gEnemyParty -_0812B258: - ldr r1, _0812B290 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B294 @ =gPlayerParty -_0812B266: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_0812B272: - cmp r4, 0 - beq _0812B2AA - ldr r0, _0812B298 @ =gBattleAnimArgs - ldrh r2, [r0, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - bne _0812B29C - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlayCry1 - b _0812B2AA - .align 2, 0 -_0812B290: .4byte gBattlePartyID -_0812B294: .4byte gPlayerParty -_0812B298: .4byte gBattleAnimArgs -_0812B29C: - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl PlayCry3 -_0812B2AA: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B2B0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812B18C - - thumb_func_start sub_812B2B8 -sub_812B2B8: @ 812B2B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B2DC - ldr r0, _0812B2D8 @ =gSharedMem + 0x19348 - b _0812B2E6 - .align 2, 0 -_0812B2D8: .4byte gSharedMem + 0x19348 -_0812B2DC: - ldr r1, _0812B304 @ =gAnimSpeciesByBanks - ldr r0, _0812B308 @ =gAnimBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 -_0812B2E6: - ldrh r0, [r0] - cmp r0, 0 - beq _0812B2F6 - lsls r1, r4, 24 - asrs r1, 24 - movs r2, 0x4 - bl PlayCry3 -_0812B2F6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B304: .4byte gAnimSpeciesByBanks -_0812B308: .4byte gAnimBankAttacker - thumb_func_end sub_812B2B8 - - thumb_func_start sub_812B30C -sub_812B30C: @ 812B30C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B33C @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE1WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B33C: .4byte gBattleAnimArgs - thumb_func_end sub_812B30C - - thumb_func_start sub_812B340 -sub_812B340: @ 812B340 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B370 @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE2WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B370: .4byte gBattleAnimArgs - thumb_func_end sub_812B340 - - thumb_func_start sub_812B374 -sub_812B374: @ 812B374 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B3F8 @ =gBattleAnimArgs - ldrb r5, [r0, 0x2] - ldrb r6, [r0, 0x4] - ldrh r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B3FC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r9 - strh r0, [r1, 0x12] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - ldr r2, _0812B400 @ =sub_812B404 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812B3F8: .4byte gBattleAnimArgs -_0812B3FC: .4byte gTasks -_0812B400: .4byte sub_812B404 - thumb_func_end sub_812B374 - - thumb_func_start sub_812B404 -sub_812B404: @ 812B404 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0812B45C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0812B43E - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r0, r2, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B43E: - ldr r1, _0812B460 @ =gUnknown_0202F7D2 - ldrh r0, [r4, 0x1E] - strb r0, [r1] - movs r3, 0x1E - ldrsh r1, [r4, r3] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812B456 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B456: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B45C: .4byte gTasks -_0812B460: .4byte gUnknown_0202F7D2 - thumb_func_end sub_812B404 - - .align 2, 0 @ Don't pad with nop. -
\ No newline at end of file diff --git a/include/battle_anim.h b/include/battle_anim.h index d456950f6..a94e6d13c 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -60,5 +60,8 @@ void DestroyAnimVisualTask(u8 task); bool8 IsAnimBankSpriteVisible(u8); s8 BattleAnimAdjustPanning(s8 a); void sub_80763FC(u16 a, u16 *b, u32 c, u8 d); +s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); +s16 sub_8077104(s16 newPan, int oldPan); +void DestroyAnimSoundTask(u8 taskId); #endif diff --git a/ld_script.txt b/ld_script.txt index 5dc3a1273..1e858cd69 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -394,7 +394,8 @@ SECTIONS { src/engine/mystery_event_script.o(.text); src/field/field_effect_helpers.o(.text); asm/contest_ai.o(.text); - asm/battle_anim_81258BC.o(.text); + src/unused_81258BC.o(.text); + src/battle/anim/sfx.o(.text); src/battle/battle_controller_safari.o(.text); src/field/fldeff_sweetscent.o(.text); asm/battle_anim_812C144.o(.text); diff --git a/src/battle/anim/sfx.c b/src/battle/anim/sfx.c new file mode 100644 index 000000000..10ef1681e --- /dev/null +++ b/src/battle/anim/sfx.c @@ -0,0 +1,280 @@ +#include "global.h" +#include "battle_anim.h" +#include "contest.h" +#include "ewram.h" +#include "rom_8077ABC.h" +#include "sound.h" +#include "task.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; +extern u16 gBattlePartyID[]; +extern u16 gAnimSpeciesByBanks[]; +extern u8 gUnknown_0202F7D2; + +static void sub_812AF98(u8 taskId); +static void sub_812B004(u8 taskId); +static void sub_812B108(u8 taskId); +static void sub_812B404(u8 taskId); + +// used in 1 move: +// Move_FIRE_BLAST +void sub_812AF30(u8 taskId) +{ + s8 sourcePan, targetPan, panIncrement; + + TASK.data[0] = gBattleAnimArgs[0]; + TASK.data[1] = gBattleAnimArgs[1]; + + sourcePan = BattleAnimAdjustPanning(-64); + targetPan = BattleAnimAdjustPanning(63); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, 2); + + TASK.data[2] = sourcePan; + TASK.data[3] = targetPan; + TASK.data[4] = panIncrement; + TASK.data[10] = 10; + + TASK.func = sub_812AF98; +} + +static void sub_812AF98(u8 taskId) +{ + s16 pan = TASK.data[2]; + s8 dPan = TASK.data[4]; + + if (++TASK.data[11] == 111) + { + TASK.data[10] = 5; + TASK.data[11] = 0; + TASK.func = sub_812B004; + } + else + { + if (++TASK.data[10] == 11) + { + TASK.data[10] = 0; + PlaySE12WithPanning(TASK.data[0], pan); + } + pan += dPan; + TASK.data[2] = sub_8077104(pan, dPan); + } +} + +static void sub_812B004(u8 taskId) +{ + s8 pan; + + if (++TASK.data[10] == 6) + { + TASK.data[10] = 0; + + pan = BattleAnimAdjustPanning(63); + PlaySE12WithPanning(TASK.data[1], pan); + + if (++TASK.data[11] == 2) + { + DestroyAnimSoundTask(taskId); + } + } +} + +// used in 7 moves: +// Move_ICE_BEAM, Move_AURORA_BEAM, Move_PSYBEAM, +// Move_PSYWAVE, Move_SHADOW_BALL, Move_TRI_ATTACK, +// Move_HYPER_BEAM +void sub_812B058(u8 taskId) +{ + s16 sp = gBattleAnimArgs[0]; + s8 r5 = gBattleAnimArgs[2]; + s8 panIncrement = gBattleAnimArgs[3]; + u8 r10 = gBattleAnimArgs[4]; // number of times the sound must be played + u8 r7 = gBattleAnimArgs[5]; + u8 r9 = gBattleAnimArgs[6]; + + s8 pan1 = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + s8 pan2 = BattleAnimAdjustPanning(r5); + panIncrement = CalculatePanIncrement(pan1, pan2, panIncrement); + + TASK.data[0] = sp; + TASK.data[1] = pan1; + TASK.data[2] = pan2; + TASK.data[3] = panIncrement; + TASK.data[4] = r10; + TASK.data[5] = r7; + TASK.data[6] = r9; + TASK.data[10] = 0; + TASK.data[11] = pan1; + TASK.data[12] = r9; + + TASK.func = sub_812B108; + TASK.func(taskId); +} + +static void sub_812B108(u8 taskId) +{ + if (TASK.data[12]++ == TASK.data[6]) + { + TASK.data[12] = 0; + PlaySE12WithPanning(TASK.data[0], TASK.data[11]); + + if (--TASK.data[4] == 0) + { + DestroyAnimSoundTask(taskId); + return; + } + } + + if (TASK.data[10]++ == TASK.data[5]) + { + u16 dPan, oldPan; + TASK.data[10] = 0; + dPan = TASK.data[3]; + oldPan = TASK.data[11]; + TASK.data[11] = dPan + oldPan; + TASK.data[11] = sub_8077104(TASK.data[11], oldPan); + } +} + +// #define shared19348 (*(struct UnknownContestStruct8 *)(gSharedMem + 0x19348)) +// #define EWRAM_19348 (*(u16 *)(gSharedMem + 0x19348)) + +// used in 3 moves: +// Move_HOWL, Move_ROAR, Move_GROWL +void sub_812B18C(u8 taskId) +{ + u16 species = 0; + s8 pan = BattleAnimAdjustPanning(-64); + + if (IsContest()) + { + if (!gBattleAnimArgs[0]) + species = shared19348.unk0; + else + DestroyAnimVisualTask(taskId); + } + else + { + u8 bank; + if (gBattleAnimArgs[0] == 0) + bank = gAnimBankAttacker; + else if (gBattleAnimArgs[0] == 1) + bank = gAnimBankTarget; + else if (gBattleAnimArgs[0] == 2) + bank = gAnimBankAttacker ^ 0x2; + else + bank = gAnimBankTarget ^ 0x2; + + if (gBattleAnimArgs[0] == 1 || gBattleAnimArgs[0] == 3) + { + if (!IsAnimBankSpriteVisible(bank)) + { + DestroyAnimVisualTask(taskId); + return; + } + } + + if (GetBankSide(bank)) + species = GetMonData(&gEnemyParty[gBattlePartyID[bank]], 0xB); + else + species = GetMonData(&gPlayerParty[gBattlePartyID[bank]], 0xB); + } + + if (species != 0) + { + s16 mode = gBattleAnimArgs[1]; + if (mode == 0xFF) + PlayCry1(species, pan); + else + PlayCry3(species, pan, mode); + } + + DestroyAnimVisualTask(taskId); +} + +// used in Move_HYPER_VOICE +void sub_812B2B8(u8 taskId) +{ + u16 species; + s8 pan = BattleAnimAdjustPanning(-64); + + if (IsContest()) + species = shared19348.unk0; + else + species = gAnimSpeciesByBanks[gAnimBankAttacker]; + + if (species != 0) + PlayCry3(species, pan, 4); + + DestroyAnimVisualTask(taskId); +} + +// used in 6 moves: +// Move_SKY_ATTACK, Move_LUSTER_PURGE, Move_FLATTER, +// Move_DRAGON_CLAW, Move_RETURN, Move_COSMIC_POWER, +void sub_812B30C(u8 taskId) +{ + u16 songNum = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + PlaySE1WithPanning(songNum, pan); + + DestroyAnimVisualTask(taskId); +} + +// used in 6 moves: +// Move_SKY_ATTACK, Move_SUPERPOWER, Move_ENCORE, +// Move_FLATTER, Move_RETURN, Move_COSMIC_POWER +void sub_812B340(u8 taskId) +{ + u16 songNum = gBattleAnimArgs[0]; + s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]); + PlaySE2WithPanning(songNum, pan); + + DestroyAnimVisualTask(taskId); +} + +// used in 2 moves: +// Move_CONFUSE_RAY, Move_WILL_O_WISP +void sub_812B374(u8 taskId) +{ + u8 r5 = gBattleAnimArgs[1]; + s8 panIncrement = gBattleAnimArgs[2]; + s16 r9 = gBattleAnimArgs[3]; + s8 r1 = gBattleAnimArgs[0]; + + s8 sourcePan = BattleAnimAdjustPanning(r1); + s8 targetPan = BattleAnimAdjustPanning(r5); + panIncrement = CalculatePanIncrement(sourcePan, targetPan, panIncrement); + + TASK.data[1] = sourcePan; + TASK.data[2] = targetPan; + TASK.data[3] = panIncrement; + TASK.data[5] = r9; + TASK.data[10] = 0; + TASK.data[11] = sourcePan; + + TASK.func = sub_812B404; + TASK.func(taskId); +} + +static void sub_812B404(u8 taskId) +{ + u16 dPan = TASK.data[3]; + + if (TASK.data[10]++ == TASK.data[5]) + { + u16 oldPan; + TASK.data[10] = 0; + oldPan = TASK.data[11]; + TASK.data[11] = dPan + oldPan; + TASK.data[11] = sub_8077104(TASK.data[11], oldPan); + } + + gUnknown_0202F7D2 = TASK.data[11]; + + if (TASK.data[11] == TASK.data[2]) + { + DestroyAnimVisualTask(taskId); + } +}
\ No newline at end of file diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c index 8242a1ddd..a0c74be1d 100644 --- a/src/battle/battle_anim.c +++ b/src/battle/battle_anim.c @@ -43,7 +43,7 @@ EWRAM_DATA u16 sAnimMoveIndex = 0; // set but unused. EWRAM_DATA u8 gAnimBankAttacker = 0; EWRAM_DATA u8 gAnimBankTarget = 0; EWRAM_DATA u16 gAnimSpeciesByBanks[4] = {0}; -EWRAM_DATA u8 gUnknown_0202F7D2 = 0; +EWRAM_DATA u8 gUnknown_0202F7D2 = 0; // some global pan variable extern u16 gBattle_BG1_Y; extern u16 gBattle_WIN1H; extern u16 gBattle_WIN0V; @@ -1489,9 +1489,9 @@ s8 BattleAnimAdjustPanning2(s8 pan) return pan; } -s16 sub_8077104(s16 a) +s16 sub_8077104(s16 newPan, int oldPan) { - s16 var = a; + s16 var = newPan; if (var > 63) var = 63; diff --git a/src/unused_81258BC.c b/src/unused_81258BC.c new file mode 100644 index 000000000..c509ea4c9 --- /dev/null +++ b/src/unused_81258BC.c @@ -0,0 +1,36 @@ +#include "constants/songs.h" +#include "global.h" +#include "menu.h" +#include "mystery_event_script.h" +#include "sound.h" +#include "text.h" + +void sub_812AF10(void); + +bool8 unref_sub_812AECC(u8 *script) +{ + u8 result = RunMysteryEventScript(script); + switch (result) + { + case 0: + return FALSE; + case 1: + PlaySE(SE_BOO); + return TRUE; + case 2: + sub_812AF10(); + return FALSE; + case 3: + PlaySE(SE_BOO); + sub_812AF10(); + return TRUE; + default: + return FALSE; + } +} + +void sub_812AF10(void) +{ + MenuDrawTextWindow(2, 14, 27, 19); + MenuPrint(gStringVar4, 3, 15); +}
\ No newline at end of file |