diff options
Diffstat (limited to 'asm/rock.s')
-rw-r--r-- | asm/rock.s | 1469 |
1 files changed, 1469 insertions, 0 deletions
diff --git a/asm/rock.s b/asm/rock.s new file mode 100644 index 000000000..ed8147600 --- /dev/null +++ b/asm/rock.s @@ -0,0 +1,1469 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_81109F0 +sub_81109F0: @ 81109F0 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, =gBattleAnimArgs + movs r1, 0x6 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _08110A10 + ldr r0, =gBattleAnimTarget + ldrb r0, [r0] + adds r2, r5, 0 + adds r2, 0x20 + adds r3, r5, 0 + adds r3, 0x22 + movs r1, 0 + bl SetAverageBattlerPositions +_08110A10: + ldrh r0, [r6] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r4, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x22] + adds r0, 0xE + strh r0, [r5, 0x22] + ldrb r1, [r6, 0x2] + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + strh r4, [r5, 0x2E] + strh r4, [r5, 0x30] + movs r0, 0x4 + strh r0, [r5, 0x32] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldr r0, =0x0000ffba + strh r0, [r5, 0x36] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x38] + ldr r1, =sub_8110A70 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + ldr r1, =sub_80A6450 + str r1, [r5, 0x1C] + adds r0, r5, 0 + bl _call_via_r1 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81109F0 + + thumb_func_start sub_8110A70 +sub_8110A70: @ 8110A70 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x38] + ldrh r2, [r4, 0x20] + adds r0, r1, r2 + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r0, 0x20 + strh r0, [r4, 0x34] + ldr r0, =0x0000ffe8 + strh r0, [r4, 0x36] + ldr r1, =move_anim_8074EE0 + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + ldr r1, =sub_80A6450 + str r1, [r4, 0x1C] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110A70 + + thumb_func_start sub_8110AB4 +sub_8110AB4: @ 8110AB4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r4, =gBattleAnimArgs + ldrb r1, [r4, 0xA] + bl StartSpriteAnim + adds r0, r5, 0 + bl AnimateSprite + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _08110AE4 + ldrh r0, [r5, 0x20] + ldrh r1, [r4] + subs r0, r1 + b _08110AEA + .pool +_08110AE4: + ldrh r0, [r4] + ldrh r1, [r5, 0x20] + adds r0, r1 +_08110AEA: + strh r0, [r5, 0x20] + ldr r3, =gBattleAnimArgs + ldrh r2, [r3, 0x2] + ldrh r0, [r5, 0x22] + adds r2, r0 + movs r4, 0 + strh r2, [r5, 0x22] + ldrh r0, [r3, 0x8] + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x20] + strh r0, [r5, 0x30] + ldrh r1, [r3, 0x4] + adds r0, r1 + strh r0, [r5, 0x32] + strh r2, [r5, 0x34] + ldrh r0, [r3, 0x6] + adds r2, r0 + strh r2, [r5, 0x36] + adds r0, r5, 0 + bl sub_80A6E14 + strh r4, [r5, 0x34] + strh r4, [r5, 0x36] + ldr r0, =sub_80A656C + str r0, [r5, 0x1C] + ldr r1, =move_anim_8074EE0 + adds r0, r5, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110AB4 + + thumb_func_start sub_8110B38 +sub_8110B38: @ 8110B38 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gBattleAnimArgs + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08110B54 + adds r0, r4, 0 + movs r1, 0 + bl sub_80A69CC + b _08110B5C + .pool +_08110B54: + adds r0, r4, 0 + movs r1, 0 + bl sub_80A6980 +_08110B5C: + ldr r1, =gBattleAnimArgs + ldrh r0, [r1, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r1, 0x4] + strh r0, [r4, 0x30] + ldrh r0, [r1, 0x8] + strh r0, [r4, 0x32] + ldrh r0, [r1, 0xA] + strh r0, [r4, 0x34] + ldr r0, =sub_8110B80 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110B38 + + thumb_func_start sub_8110B80 +sub_8110B80: @ 8110B80 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r0, r1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x34 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x38] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x2E] + subs r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08110BC6 + adds r0, r4, 0 + bl DestroyAnimSprite +_08110BC6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8110B80 + + thumb_func_start AnimTask_LoadSandstormBackground +AnimTask_LoadSandstormBackground: @ 8110BCC + push {r4-r6,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, =0x00003f42 + movs r0, 0x50 + bl SetGpuReg + movs r1, 0x80 + lsls r1, 5 + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl SetAnimBgAttribute + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _08110C10 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0x1 + bl SetAnimBgAttribute +_08110C10: + ldr r0, =gBattle_BG1_X + strh r5, [r0] + ldr r4, =gBattle_BG1_Y + strh r5, [r4] + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + ldrh r1, [r4] + movs r0, 0x16 + bl SetGpuReg + mov r0, sp + bl sub_80A6B30 + mov r0, sp + ldrb r0, [r0, 0x9] + ldr r1, =gUnknown_08D8D58C + mov r2, sp + ldrh r2, [r2, 0xA] + bl sub_80A6CC0 + ldr r1, =gUnknown_08D8D410 + mov r0, sp + movs r2, 0 + bl sub_80A6D60 + ldr r0, =gBattleAnimSpritePalette_261 + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r0, =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08110C6E + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _08110C6E + movs r5, 0x1 +_08110C6E: + ldr r0, =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + strh r5, [r1, 0x8] + ldr r0, =sub_8110CB0 + str r0, [r1] + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end AnimTask_LoadSandstormBackground + + thumb_func_start sub_8110CB0 +sub_8110CB0: @ 8110CB0 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0 + bne _08110CE4 + ldr r1, =gBattle_BG1_X + ldr r3, =0x0000fffa + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + b _08110CEA + .pool +_08110CE4: + ldr r1, =gBattle_BG1_X + ldrh r0, [r1] + adds r0, 0x6 +_08110CEA: + strh r0, [r1] + ldr r1, =gBattle_BG1_Y + ldr r3, =0x0000ffff + adds r0, r3, 0 + ldrh r3, [r1] + adds r0, r3 + strh r0, [r1] + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r0, r2 + movs r3, 0x20 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0x4 + bls _08110D0C + b _08110E3A +_08110D0C: + lsls r0, 2 + ldr r1, =_08110D28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08110D28: + .4byte _08110D3C + .4byte _08110D7E + .4byte _08110D98 + .4byte _08110DDA + .4byte _08110DFC +_08110D3C: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _08110E3A + strh r5, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bne _08110E3A + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r5, [r4, 0x1E] + b _08110E3A +_08110D7E: + adds r0, r4, r5 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0x1E] + adds r0, 0x1 + strh r0, [r1, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x65 + bne _08110E3A + movs r0, 0x7 + strh r0, [r1, 0x1E] + b _08110DF0 +_08110D98: + adds r0, r4, r5 + lsls r0, 3 + adds r4, r0, r2 + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _08110E3A + movs r0, 0 + strh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + subs r1, 0x1 + strh r1, [r4, 0x1E] + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl SetGpuReg + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r1, 0 + bne _08110E3A + ldrh r0, [r4, 0x20] + adds r0, 0x1 + strh r0, [r4, 0x20] + strh r1, [r4, 0x1E] + b _08110E3A +_08110DDA: + mov r0, sp + bl sub_80A6B30 + mov r0, sp + ldrb r0, [r0, 0x9] + bl sub_80A6C68 + ldr r0, =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 +_08110DF0: + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + b _08110E3A + .pool +_08110DFC: + bl IsContest + lsls r0, 24 + cmp r0, 0 + bne _08110E10 + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl SetAnimBgAttribute +_08110E10: + ldr r0, =gBattle_BG1_X + movs r1, 0 + strh r1, [r0] + ldr r0, =gBattle_BG1_Y + strh r1, [r0] + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1 + movs r1, 0x4 + movs r2, 0x1 + bl SetAnimBgAttribute + adds r0, r5, 0 + bl DestroyAnimVisualTask +_08110E3A: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110CB0 + + thumb_func_start sub_8110E4C +sub_8110E4C: @ 8110E4C + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08110EC8 + ldr r4, =gBattleAnimArgs + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08110E98 + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _08110E98 + movs r0, 0x98 + lsls r0, 1 + strh r0, [r5, 0x20] + ldrh r0, [r4, 0x2] + negs r0, r0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r5, 0x38] + ldrb r1, [r5, 0x3] + subs r0, 0x40 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x3] + b _08110E9C + .pool +_08110E98: + ldr r0, =0x0000ffc0 + strh r0, [r5, 0x20] +_08110E9C: + ldr r4, =gBattleAnimArgs + ldrh r0, [r4] + strh r0, [r5, 0x22] + ldr r1, =gUnknown_08596BC0 + adds r0, r5, 0 + bl SetSubspriteTables + ldrh r0, [r4, 0x2] + strh r0, [r5, 0x30] + ldrh r0, [r4, 0x4] + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _08110F24 + .pool +_08110EC8: + ldrh r1, [r5, 0x30] + ldrh r3, [r5, 0x34] + adds r1, r3 + ldrh r2, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r2, r0 + lsls r0, r1, 16 + asrs r0, 24 + ldrh r3, [r5, 0x24] + adds r0, r3 + strh r0, [r5, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r3, [r5, 0x26] + adds r0, r3 + strh r0, [r5, 0x26] + movs r0, 0xFF + ands r1, r0 + strh r1, [r5, 0x34] + ands r2, r0 + strh r2, [r5, 0x36] + movs r1, 0x38 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08110F0E + movs r2, 0x20 + ldrsh r0, [r5, r2] + movs r3, 0x24 + ldrsh r1, [r5, r3] + adds r0, r1 + movs r1, 0x88 + lsls r1, 1 + cmp r0, r1 + ble _08110F24 + b _08110F20 +_08110F0E: + movs r1, 0x20 + ldrsh r0, [r5, r1] + movs r2, 0x24 + ldrsh r1, [r5, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bge _08110F24 +_08110F20: + ldr r0, =DestroyAnimSprite + str r0, [r5, 0x1C] +_08110F24: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110E4C + + thumb_func_start sub_8110F30 +sub_8110F30: @ 8110F30 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl sub_80A69CC + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x32] + ldrh r0, [r5, 0x4] + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x36] + ldr r0, =sub_80A6EEC + str r0, [r4, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r4, 0 + bl StoreSpriteCallbackInData6 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110F30 + + thumb_func_start sub_8110F74 +sub_8110F74: @ 8110F74 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =gTasks + adds r6, r1, r0 + ldr r5, =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldrb r0, [r5] + movs r1, 0x1 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 8 + movs r1, 0xC0 + lsls r1, 13 + adds r0, r1 + lsrs r7, r0, 16 + ldr r4, =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldrb r0, [r4] + movs r1, 0x1 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 8 + movs r2, 0xC0 + lsls r2, 13 + adds r0, r2 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r5] + movs r0, 0x2 + eors r0, r1 + ldrb r4, [r4] + cmp r0, r4 + bne _08110FE4 + mov r8, r7 +_08110FE4: + bl sub_811135C + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x1 + bne _08111000 + movs r0, 0x20 + b _08111006 + .pool +_08111000: + lsls r1, r5, 3 + movs r0, 0x30 + subs r0, r1 +_08111006: + strh r0, [r6, 0x18] + movs r4, 0 + strh r4, [r6, 0x8] + strh r4, [r6, 0x1E] + strh r4, [r6, 0x1A] + movs r0, 0x1 + strh r0, [r6, 0x20] + movs r1, 0x18 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _0811101E + adds r0, 0x7 +_0811101E: + asrs r0, 3 + subs r0, 0x1 + strh r0, [r6, 0x1C] + mov r2, r9 + lsls r0, r2, 3 + strh r0, [r6, 0xC] + lsls r0, r7, 3 + strh r0, [r6, 0xE] + mov r1, r10 + subs r0, r1, r2 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x10] + mov r1, r8 + subs r0, r1, r7 + lsls r0, 3 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x12] + strh r4, [r6, 0x14] + strh r4, [r6, 0x16] + movs r0, 0x40 + negs r0, r0 + bl BattleAnimAdjustPanning + adds r4, r0, 0 + lsls r4, 24 + asrs r4, 8 + lsrs r4, 16 + movs r0, 0x3F + bl BattleAnimAdjustPanning + lsls r0, 24 + strh r4, [r6, 0x22] + asrs r0, 24 + lsls r4, 16 + asrs r4, 16 + subs r0, r4 + movs r2, 0x18 + ldrsh r1, [r6, r2] + bl __divsi3 + strh r0, [r6, 0x24] + strh r5, [r6, 0xA] + movs r0, 0 + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x26] + ldr r0, =sub_81110A4 + str r0, [r6] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8110F74 + + thumb_func_start sub_81110A4 +sub_81110A4: @ 81110A4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bls _081110BE + b _0811120C +_081110BE: + lsls r0, 2 + ldr r1, =_081110D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081110D0: + .4byte _081110E4 + .4byte _08111148 + .4byte _08111150 + .4byte _081111AC + .4byte _081111FE +_081110E4: + ldrh r2, [r4, 0x14] + ldrh r0, [r4, 0x10] + subs r2, r0 + strh r2, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + ldr r3, =gSprites + movs r0, 0x26 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + lsls r2, 16 + asrs r2, 19 + strh r2, [r0, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _08111134 + movs r0, 0x14 + strh r0, [r4, 0x1E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_08111134: + ldrh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xA2 + bl PlaySE12WithPanning + b _0811120C + .pool +_08111148: + ldrh r0, [r4, 0x1E] + subs r0, 0x1 + strh r0, [r4, 0x1E] + b _081111F0 +_08111150: + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _08111170 + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0x14] + adds r0, r2 + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + b _0811117A +_08111170: + strh r0, [r4, 0x14] + strh r0, [r4, 0x16] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_0811117A: + ldr r2, =gSprites + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x14] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x24] + movs r1, 0x26 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 19 + strh r0, [r1, 0x26] + b _0811120C + .pool +_081111AC: + ldrh r0, [r4, 0x10] + ldrh r2, [r4, 0xC] + adds r0, r2 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x12] + ldrh r1, [r4, 0xE] + adds r0, r1 + strh r0, [r4, 0xE] + ldrh r0, [r4, 0x1A] + adds r0, 0x1 + strh r0, [r4, 0x1A] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1C + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _081111EA + movs r0, 0 + strh r0, [r4, 0x1A] + adds r0, r4, 0 + bl sub_8111214 + ldrh r1, [r4, 0x24] + ldrh r0, [r4, 0x22] + adds r1, r0 + strh r1, [r4, 0x22] + lsls r1, 24 + asrs r1, 24 + movs r0, 0xAF + bl PlaySE12WithPanning +_081111EA: + ldrh r0, [r4, 0x18] + subs r0, 0x1 + strh r0, [r4, 0x18] +_081111F0: + lsls r0, 16 + cmp r0, 0 + bne _0811120C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0811120C +_081111FE: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0811120C + adds r0, r2, 0 + bl DestroyAnimVisualTask +_0811120C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81110A4 + + thumb_func_start sub_8111214 +sub_8111214: @ 8111214 + push {r4-r7,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bhi _08111304 + lsls r0, 2 + ldr r1, =_08111234 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08111234: + .4byte _08111248 + .4byte _08111254 + .4byte _08111254 + .4byte _08111260 + .4byte _0811126C +_08111248: + ldr r3, =gUnknown_08596C28 + movs r5, 0 + b _08111270 + .pool +_08111254: + ldr r3, =gUnknown_08596C40 + movs r5, 0x50 + b _08111270 + .pool +_08111260: + ldr r3, =gUnknown_08596C40 + movs r5, 0x40 + b _08111270 + .pool +_0811126C: + ldr r3, =gUnknown_08596C40 + movs r5, 0x30 +_08111270: + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0xE] + lsls r2, 16 + asrs r2, 19 + lsls r2, 16 + movs r6, 0x20 + ldrsh r0, [r4, r6] + lsls r0, 2 + adds r1, r0 + lsls r1, 16 + lsrs r6, r1, 16 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r0, r3, 0 + movs r3, 0x23 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _081112FC + ldr r1, =gSprites + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x12 + strh r1, [r0, 0x2E] + movs r2, 0x20 + ldrsh r1, [r4, r2] + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 2 + adds r2, r6, r2 + movs r6, 0xA + ldrsh r3, [r4, r6] + lsls r1, r3, 1 + adds r1, r3 + adds r2, r1 + strh r2, [r0, 0x32] + strh r7, [r0, 0x36] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r2, 1 + movs r3, 0x10 + negs r3, r3 + adds r1, r3, 0 + subs r1, r2 + strh r1, [r0, 0x38] + ldrh r3, [r0, 0x4] + lsls r2, r3, 22 + lsrs r2, 22 + adds r2, r5 + ldr r5, =0x000003ff + adds r1, r5, 0 + ands r2, r1 + ldr r1, =0xfffffc00 + ands r1, r3 + orrs r1, r2 + strh r1, [r0, 0x4] + bl sub_80A68D4 + ldrh r0, [r4, 0x1E] + adds r0, 0x1 + strh r0, [r4, 0x1E] +_081112FC: + movs r6, 0x20 + ldrsh r0, [r4, r6] + negs r0, r0 + strh r0, [r4, 0x20] +_08111304: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8111214 + + thumb_func_start sub_811131C +sub_811131C: @ 811131C + push {r4,lr} + adds r4, r0, 0 + bl TranslateAnimArc + lsls r0, 24 + cmp r0, 0 + beq _0811134E + ldr r0, =sub_81110A4 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xFF + beq _08111348 + ldr r0, =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x1E] + subs r0, 0x1 + strh r0, [r1, 0x1E] +_08111348: + adds r0, r4, 0 + bl DestroySprite +_0811134E: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_811131C + + thumb_func_start sub_811135C +sub_811135C: @ 811135C + push {lr} + ldr r0, =gAnimDisableStructPtr + ldr r0, [r0] + ldrb r1, [r0, 0x11] + lsrs r0, r1, 4 + lsls r1, 28 + lsrs r1, 28 + subs r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xFF + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x4 + bls _0811137E + movs r1, 0x1 +_0811137E: + adds r0, r1, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_811135C + + thumb_func_start sub_8111388 +sub_8111388: @ 8111388 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gBattleAnimArgs + ldrb r1, [r5, 0x8] + bl StartSpriteAnim + ldrh r0, [r5] + strh r0, [r4, 0x24] + ldrh r0, [r5, 0x2] + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + ldrh r1, [r5, 0x4] + subs r0, r1 + strh r0, [r4, 0x34] + movs r0, 0x3 + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x6] + strh r0, [r4, 0x30] + ldr r0, =sub_81113C8 + str r0, [r4, 0x1C] + adds r4, 0x3E + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8111388 + + thumb_func_start sub_81113C8 +sub_81113C8: @ 81113C8 + push {lr} + adds r2, r0, 0 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x34] + movs r3, 0x34 + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08111400 + ldrh r3, [r2, 0x32] + adds r0, r1, r3 + strh r0, [r2, 0x26] + ldrh r0, [r2, 0x2E] + adds r1, r0 + strh r1, [r2, 0x34] + adds r0, 0x1 + strh r0, [r2, 0x2E] + lsls r1, 16 + cmp r1, 0 + ble _08111412 + movs r0, 0 + strh r0, [r2, 0x34] + b _08111412 +_08111400: + ldrh r0, [r2, 0x30] + subs r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _08111412 + adds r0, r2, 0 + bl DestroyAnimSprite +_08111412: + pop {r0} + bx r0 + thumb_func_end sub_81113C8 + + thumb_func_start sub_8111418 +sub_8111418: @ 8111418 + push {r4,lr} + adds r4, r0, 0 + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08111434 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08111434: + adds r0, r4, 0 + bl TranslateAnimSpriteToTargetMonLocation + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8111418 + + thumb_func_start sub_8111444 +sub_8111444: @ 8111444 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x1 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gBattleAnimArgs + ldrh r3, [r2] + ldrh r5, [r4, 0x20] + adds r1, r3, r5 + strh r1, [r4, 0x20] + ldrh r1, [r2, 0x2] + adds r0, r1 + strh r0, [r4, 0x22] + strh r3, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r2, 0x4] + strh r0, [r4, 0x38] + ldrb r1, [r2, 0x6] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, =sub_811149C + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8111444 + + thumb_func_start sub_811149C +sub_811149C: @ 811149C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x8 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + ldrh r0, [r4, 0x32] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + movs r1, 0x34 + ldrsh r0, [r4, r1] + movs r1, 0x28 + bl __divsi3 + ldrh r1, [r4, 0x24] + adds r1, r0 + strh r1, [r4, 0x24] + movs r2, 0x2E + ldrsh r0, [r4, r2] + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + ldrh r1, [r4, 0x26] + subs r1, r0 + strh r1, [r4, 0x26] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8C + ble _081114E6 + adds r0, r4, 0 + bl DestroyAnimSprite +_081114E6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_811149C + + thumb_func_start AnimTask_GetSeismicTossDamageLevel +AnimTask_GetSeismicTossDamageLevel: @ 81114EC + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =gAnimMoveDmg + ldr r0, [r2] + cmp r0, 0x20 + bgt _08111500 + ldr r1, =gBattleAnimArgs + movs r0, 0 + strh r0, [r1, 0xE] +_08111500: + ldr r2, [r2] + adds r0, r2, 0 + subs r0, 0x21 + cmp r0, 0x20 + bhi _08111510 + ldr r1, =gBattleAnimArgs + movs r0, 0x1 + strh r0, [r1, 0xE] +_08111510: + cmp r2, 0x41 + ble _0811151A + ldr r1, =gBattleAnimArgs + movs r0, 0x2 + strh r0, [r1, 0xE] +_0811151A: + adds r0, r3, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .pool + thumb_func_end AnimTask_GetSeismicTossDamageLevel + + thumb_func_start sub_811152C +sub_811152C: @ 811152C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _0811154E + movs r0, 0 + bl sub_80A6DAC + movs r0, 0xC8 + strh r0, [r5, 0xA] +_0811154E: + ldr r4, =gBattle_BG3_Y + movs r1, 0xA + ldrsh r0, [r5, r1] + movs r1, 0xA + bl __divsi3 + ldrh r1, [r4] + adds r1, r0 + strh r1, [r4] + ldrh r0, [r5, 0xA] + subs r0, 0x3 + strh r0, [r5, 0xA] + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x78 + bne _0811157A + movs r0, 0x1 + bl sub_80A6DAC + adds r0, r6, 0 + bl DestroyAnimVisualTask +_0811157A: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_811152C + + thumb_func_start sub_8111590 +sub_8111590: @ 8111590 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081115BC + movs r0, 0 + bl sub_80A6DAC + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldr r0, =gBattle_BG3_Y + ldrh r0, [r0] + strh r0, [r4, 0xC] +_081115BC: + ldrh r0, [r4, 0xA] + adds r0, 0x50 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0xA] + ldr r6, =gBattle_BG3_Y + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r0, 0x4 + bl Cos + ldrh r4, [r4, 0xC] + adds r0, r4 + strh r0, [r6] + ldr r0, =gBattleAnimArgs + movs r2, 0xE + ldrsh r1, [r0, r2] + ldr r0, =0x00000fff + cmp r1, r0 + bne _081115F4 + movs r0, 0 + strh r0, [r6] + movs r0, 0x1 + bl sub_80A6DAC + adds r0, r5, 0 + bl DestroyAnimVisualTask +_081115F4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8111590 + + .align 2, 0 |