diff options
Diffstat (limited to 'asm/ground.s')
-rw-r--r-- | asm/ground.s | 1675 |
1 files changed, 1675 insertions, 0 deletions
diff --git a/asm/ground.s b/asm/ground.s new file mode 100644 index 000000000..c5f3d80b6 --- /dev/null +++ b/asm/ground.s @@ -0,0 +1,1675 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8114994 +sub_8114994: @ 8114994 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, =gBattleAnimAttacker + ldrb r0, [r5] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x20] + ldrb r0, [r5] + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + movs r0, 0x14 + strh r0, [r4, 0x2E] + ldr r5, =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x36] + ldr r0, =0x0000ffd8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80A68D4 + ldr r0, =sub_81149FC + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114994 + + thumb_func_start sub_81149FC +sub_81149FC: @ 81149FC + push {r4,r5,lr} + adds r5, r0, 0 + bl TranslateAnimArc + lsls r0, 24 + cmp r0, 0 + beq _08114A50 + ldrh r0, [r5, 0x24] + ldrh r1, [r5, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r5, 0x20] + ldrh r0, [r5, 0x26] + ldrh r2, [r5, 0x22] + adds r0, r2 + strh r0, [r5, 0x22] + strh r1, [r5, 0x26] + strh r1, [r5, 0x24] + movs r0, 0x14 + strh r0, [r5, 0x2E] + ldr r4, =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x32] + ldrb r0, [r4] + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x36] + movs r0, 0x28 + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80A68D4 + ldr r0, =sub_8114A60 + str r0, [r5, 0x1C] +_08114A50: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81149FC + + thumb_func_start sub_8114A60 +sub_8114A60: @ 8114A60 + push {r4,lr} + adds r4, r0, 0 + bl TranslateAnimArc + lsls r0, 24 + cmp r0, 0 + beq _08114A74 + adds r0, r4, 0 + bl DestroyAnimSprite +_08114A74: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8114A60 + + thumb_func_start sub_8114A7C +sub_8114A7C: @ 8114A7C + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80A6980 + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerSide + lsls r0, 24 + cmp r0, 0 + beq _08114A9C + ldr r1, =gBattleAnimArgs + ldrh r0, [r1, 0x4] + negs r0, r0 + strh r0, [r1, 0x4] +_08114A9C: + ldr r4, =gBattleAnimArgs + ldrh r0, [r4, 0x8] + strh r0, [r6, 0x2E] + ldr r5, =gBattleAnimTarget + ldrb r0, [r5] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x4] + adds r0, r1 + strh r0, [r6, 0x32] + ldrb r0, [r5] + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldrh r4, [r4, 0x6] + adds r0, r4 + strh r0, [r6, 0x36] + ldr r0, =sub_80A6EEC + str r0, [r6, 0x1C] + ldr r1, =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114A7C + + thumb_func_start sub_8114AF0 +sub_8114AF0: @ 8114AF0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_80A69CC + ldr r4, =gBattleAnimTarget + ldrb r0, [r4] + movs r1, 0x2 + bl GetBattlerSpriteCoord2 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldrb r0, [r4] + movs r1, 0x3 + bl GetBattlerSpriteCoord2 + lsls r0, 24 + lsrs r7, r0, 24 + bl Random2 + movs r4, 0x1F + adds r5, r4, 0 + ands r5, r0 + bl Random2 + ands r4, r0 + adds r1, r5, 0 + cmp r1, 0x10 + ble _08114B38 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 +_08114B38: + lsls r0, r4, 16 + asrs r1, r0, 16 + cmp r1, 0x10 + ble _08114B48 + movs r0, 0x10 + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 +_08114B48: + ldr r0, =gBattleAnimArgs + ldrh r0, [r0, 0x4] + strh r0, [r6, 0x2E] + mov r1, r8 + adds r0, r1, r5 + strh r0, [r6, 0x32] + adds r0, r7, r4 + strh r0, [r6, 0x36] + ldr r0, =sub_80A6EEC + str r0, [r6, 0x1C] + ldr r1, =move_anim_8074EE0 + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114AF0 + + thumb_func_start sub_8114B80 +sub_8114B80: @ 8114B80 + push {r4-r6,lr} + adds r5, r0, 0 + ldrh r2, [r5, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + adds r1, 0x1 + ldr r3, =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + ldr r6, =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08114BF4 + ldr r4, =gBattleAnimAttacker + ldrb r0, [r4] + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldrh r2, [r6, 0x2] + adds r0, r2 + strh r0, [r5, 0x20] + ldrb r0, [r4] + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldrh r3, [r6, 0x4] + adds r0, r3 + strh r0, [r5, 0x22] + movs r1, 0x2 + ldrsh r0, [r6, r1] + movs r2, 0x1 + negs r2, r2 + adds r1, r2, 0 + cmp r0, 0 + ble _08114BDA + movs r1, 0x1 +_08114BDA: + strh r1, [r5, 0x2E] + ldr r0, =sub_8114C10 + b _08114C02 + .pool +_08114BF4: + ldrh r0, [r6, 0x2] + strh r0, [r5, 0x20] + ldrh r0, [r6, 0x4] + strh r0, [r5, 0x22] + negs r0, r0 + strh r0, [r5, 0x26] + ldr r0, =sub_8114C4C +_08114C02: + str r0, [r5, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114B80 + + thumb_func_start sub_8114C10 +sub_8114C10: @ 8114C10 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _08114C2E + movs r0, 0 + strh r0, [r2, 0x30] + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] +_08114C2E: + ldrh r0, [r2, 0x22] + subs r0, 0x4 + strh r0, [r2, 0x22] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x4 + negs r1, r1 + cmp r0, r1 + bge _08114C46 + adds r0, r2, 0 + bl DestroyAnimSprite +_08114C46: + pop {r0} + bx r0 + thumb_func_end sub_8114C10 + + thumb_func_start sub_8114C4C +sub_8114C4C: @ 8114C4C + push {lr} + adds r3, r0, 0 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _08114C5E + cmp r1, 0x1 + beq _08114C74 + b _08114CB6 +_08114C5E: + ldrh r0, [r3, 0x26] + adds r0, 0x4 + strh r0, [r3, 0x26] + lsls r0, 16 + cmp r0, 0 + blt _08114CB6 + strh r1, [r3, 0x26] + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _08114CB6 +_08114C74: + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _08114CB6 + movs r0, 0 + strh r0, [r3, 0x30] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + ldrb r2, [r1] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x32] + adds r0, 0x1 + strh r0, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _08114CB6 + adds r0, r3, 0 + bl DestroyAnimSprite +_08114CB6: + pop {r0} + bx r0 + thumb_func_end sub_8114C4C + + thumb_func_start sub_8114CBC +sub_8114CBC: @ 8114CBC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + adds r1, r0, r1 + ldr r0, =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _08114CE8 + ldr r0, =sub_8114CFC + b _08114CEA + .pool +_08114CE8: + ldr r0, =sub_8114EB4 +_08114CEA: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114CBC + + thumb_func_start sub_8114CFC +sub_8114CFC: @ 8114CFC + 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 _08114D16 + b _08114EAA +_08114D16: + lsls r0, 2 + ldr r1, =_08114D28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08114D28: + .4byte _08114D3C + .4byte _08114DC4 + .4byte _08114DD4 + .4byte _08114E78 + .4byte _08114E8C +_08114D3C: + movs r0, 0 + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80A8364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _08114D70 + ldr r0, =gBattle_BG1_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, =gBattle_BG1_Y + b _08114D78 + .pool +_08114D70: + ldr r0, =gBattle_BG2_X + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, =gBattle_BG2_Y +_08114D78: + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + cmp r1, 0 + bge _08114D9A + movs r0, 0 + strh r0, [r4, 0x24] +_08114D9A: + ldr r2, =gSprites + movs r3, 0x1C + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08114E7E + .pool +_08114DC4: + ldrb r0, [r4, 0x1E] + movs r2, 0x24 + ldrsh r1, [r4, r2] + movs r3, 0x26 + ldrsh r2, [r4, r3] + bl sub_81150E0 + b _08114E7E +_08114DD4: + ldrh r0, [r4, 0xC] + adds r0, 0x6 + movs r1, 0x7F + ands r0, r1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + adds r0, 0x1 + strh r0, [r4, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _08114DF6 + movs r0, 0 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] +_08114DF6: + ldr r1, =gSineTable + movs r2, 0xC + ldrsh r0, [r4, r2] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 20 + ldrh r3, [r4, 0xE] + adds r2, r0, r3 + strh r2, [r4, 0x12] + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _08114E20 + ldr r1, =gBattle_BG1_Y + b _08114E22 + .pool +_08114E20: + ldr r1, =gBattle_BG2_Y +_08114E22: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0x3F + ble _08114EAA + ldrh r0, [r4, 0x24] + movs r1, 0x78 + subs r2, r1, r0 + strh r2, [r4, 0x12] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _08114E4C + ldr r1, =gBattle_BG1_Y + b _08114E4E + .pool +_08114E4C: + ldr r1, =gBattle_BG2_Y +_08114E4E: + ldrh r0, [r4, 0x22] + subs r0, r2 + strh r0, [r1] + ldr r2, =gSprites + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x88 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r1, 0x24] + b _08114E7E + .pool +_08114E78: + ldr r1, =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_08114E7E: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08114EAA + .pool +_08114E8C: + adds r0, r2, 0 + bl DestroyAnimVisualTask + ldr r2, =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08114EAA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114CFC + + thumb_func_start sub_8114EB4 +sub_8114EB4: @ 8114EB4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0 + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + ldr r2, =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r3] + movs r4, 0 + strh r4, [r1, 0x24] + strh r4, [r1, 0x26] + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80A8364 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08114F00 + ldr r0, =gBattle_BG1_Y + b _08114F02 + .pool +_08114F00: + ldr r0, =gBattle_BG2_Y +_08114F02: + strh r4, [r0] + adds r0, r5, 0 + bl DestroyAnimVisualTask + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114EB4 + + thumb_func_start sub_8114F14 +sub_8114F14: @ 8114F14 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + adds r1, r0, r1 + ldr r0, =gBattleAnimArgs + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bne _08114F40 + ldr r0, =sub_8114F54 + b _08114F42 + .pool +_08114F40: + ldr r0, =sub_8114FD8 +_08114F42: + str r0, [r1] + ldr r1, [r1] + adds r0, r2, 0 + bl _call_via_r1 + pop {r0} + bx r0 + .pool + thumb_func_end sub_8114F14 + + thumb_func_start sub_8114F54 +sub_8114F54: @ 8114F54 + push {r4,r5,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 r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _08114F78 + cmp r5, 0x1 + beq _08114FCC + b _08114FD2 + .pool +_08114F78: + movs r0, 0 + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r3, =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r5, [r0, 0x24] + movs r1, 0x1C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x22] + movs r0, 0xA0 + subs r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08114FD2 + .pool +_08114FCC: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_08114FD2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8114F54 + + thumb_func_start sub_8114FD8 +sub_8114FD8: @ 8114FD8 + 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 + bhi _081150DA + lsls r0, 2 + ldr r1, =_08115004 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_08115004: + .4byte _08115018 + .4byte _0811506C + .4byte _0811507A + .4byte _08115094 + .4byte _081150D4 +_08115018: + movs r0, 0 + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1C] + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl sub_80A8364 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1E] + cmp r0, 0x1 + bne _08115044 + ldr r0, =gBattle_BG1_X + b _08115046 + .pool +_08115044: + ldr r0, =gBattle_BG2_X +_08115046: + ldrh r0, [r0] + strh r0, [r4, 0x20] + ldr r0, =gBattleAnimAttacker + ldrb r0, [r0] + bl GetBattlerYCoordWithElevation + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + subs r1, 0x20 + strh r1, [r4, 0x24] + adds r0, 0x20 + strh r0, [r4, 0x26] + b _081150C2 + .pool +_0811506C: + ldrb r0, [r4, 0x1E] + movs r1, 0x26 + ldrsh r2, [r4, r1] + movs r1, 0 + bl sub_81150E0 + b _081150C2 +_0811507A: + ldr r2, =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x60 + strh r1, [r0, 0x26] + b _081150C2 + .pool +_08115094: + ldr r2, =gSprites + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x26] + subs r1, 0x8 + strh r1, [r0, 0x26] + movs r0, 0x1C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _081150DA + ldr r1, =gScanlineEffect + movs r0, 0x3 + strb r0, [r1, 0x15] +_081150C2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _081150DA + .pool +_081150D4: + adds r0, r2, 0 + bl DestroyAnimVisualTask +_081150DA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8114FD8 + + thumb_func_start sub_81150E0 +sub_81150E0: @ 81150E0 + push {r4-r6,lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + cmp r0, 0x1 + bne _08115104 + ldr r0, =gBattle_BG1_X + ldrh r3, [r0] + ldr r0, =0x04000014 + b _0811510A + .pool +_08115104: + ldr r0, =gBattle_BG2_X + ldrh r3, [r0] + ldr r0, =0x04000018 +_0811510A: + str r0, [sp] + lsls r0, r1, 16 + cmp r0, 0 + bge _08115114 + movs r1, 0 +_08115114: + lsls r2, r1, 16 + lsls r0, r4, 16 + asrs r4, r0, 16 + cmp r2, r0 + bge _08115140 + ldr r5, =gScanlineEffectRegBuffers + movs r0, 0xF0 + lsls r0, 3 + adds r6, r5, r0 +_08115126: + asrs r2, 16 + lsls r1, r2, 1 + adds r0, r1, r5 + strh r3, [r0] + adds r1, r6 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 16 + lsrs r1, r2, 16 + lsls r2, r1, 16 + asrs r0, r2, 16 + cmp r0, r4 + blt _08115126 +_08115140: + lsls r1, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + bgt _0811516E + ldr r4, =gScanlineEffectRegBuffers + lsls r0, r3, 16 + asrs r0, 16 + adds r3, r0, 0 + adds r3, 0xF0 + movs r0, 0xF0 + lsls r0, 3 + adds r5, r4, r0 +_08115158: + asrs r2, r1, 16 + lsls r1, r2, 1 + adds r0, r1, r4 + strh r3, [r0] + adds r1, r5 + strh r3, [r1] + adds r2, 0x1 + lsls r1, r2, 16 + asrs r0, r1, 16 + cmp r0, 0x9F + ble _08115158 +_0811516E: + ldr r0, =0xa2600001 + str r0, [sp, 0x4] + mov r1, sp + movs r2, 0 + movs r0, 0x1 + strb r0, [r1, 0x8] + mov r0, sp + strb r2, [r0, 0x9] + ldr r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + bl ScanlineEffect_SetParams + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81150E0 + + thumb_func_start sub_81151A0 +sub_81151A0: @ 81151A0 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, =gBattleAnimArgs + movs r2, 0 + ldrsh r1, [r0, r2] + adds r7, r0, 0 + cmp r1, 0 + bne _081151BC + ldr r0, =gBattleAnimAttacker + b _081151BE + .pool +_081151BC: + ldr r0, =gBattleAnimTarget +_081151BE: + ldrb r4, [r0] + movs r6, 0x18 + adds r1, r7, 0 + movs r2, 0x2 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _081151DA + negs r0, r6 + lsls r0, 16 + lsrs r6, r0, 16 + movs r2, 0x4 + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0x4] +_081151DA: + adds r0, r4, 0 + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + adds r0, r6 + strh r0, [r5, 0x20] + adds r0, r4, 0 + bl GetBattlerYCoordWithElevation + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x1E + strh r0, [r5, 0x22] + ldrh r1, [r7, 0xA] + strh r1, [r5, 0x2E] + ldrh r1, [r7, 0x4] + ldrh r2, [r5, 0x20] + adds r1, r2 + strh r1, [r5, 0x32] + ldrh r1, [r7, 0x6] + adds r0, r1 + strh r0, [r5, 0x36] + ldrh r0, [r7, 0x8] + strh r0, [r5, 0x38] + adds r0, r5, 0 + bl sub_80A68D4 + ldr r0, =sub_8115228 + str r0, [r5, 0x1C] + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81151A0 + + thumb_func_start sub_8115228 +sub_8115228: @ 8115228 + push {r4,lr} + adds r4, r0, 0 + bl TranslateAnimArc + lsls r0, 24 + cmp r0, 0 + beq _0811523C + adds r0, r4, 0 + bl DestroyAnimSprite +_0811523C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8115228 + + thumb_func_start sub_8115244 +sub_8115244: @ 8115244 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, =gBattleAnimArgs + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08115260 + ldr r0, =gBattleAnimAttacker + b _08115262 + .pool +_08115260: + ldr r0, =gBattleAnimTarget +_08115262: + ldrb r5, [r0] + adds r0, r5, 0 + movs r1, 0 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x0000fff0 + adds r0, r2 + ldr r4, =gBattleAnimArgs + movs r3, 0x2 + ldrsh r1, [r4, r3] + lsls r1, 5 + adds r0, r1 + strh r0, [r6, 0x20] + adds r0, r5, 0 + bl GetBattlerYCoordWithElevation + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x20 + strh r0, [r6, 0x22] + ldrh r2, [r6, 0x4] + lsls r1, r2, 22 + lsrs r1, 22 + movs r3, 0x2 + ldrsh r0, [r4, r3] + lsls r0, 3 + adds r1, r0 + ldr r3, =0x000003ff + adds r0, r3, 0 + ands r1, r0 + ldr r0, =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r6, 0x4] + ldr r1, =DestroyAnimSprite + adds r0, r6, 0 + bl StoreSpriteCallbackInData6 + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x2E] + ldr r0, =sub_80A64B0 + str r0, [r6, 0x1C] + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8115244 + + thumb_func_start sub_81152DC +sub_81152DC: @ 81152DC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + ldr r0, =gBattleAnimArgs + ldrh r2, [r0, 0x2] + movs r3, 0x2 + ldrsh r1, [r0, r3] + adds r6, r0, 0 + cmp r1, 0 + beq _08115308 + adds r0, r2, 0x3 + b _08115314 + .pool +_08115308: + ldr r0, =gAnimMovePower + ldrh r0, [r0] + movs r1, 0xA + bl __udivsi3 + adds r0, 0x3 +_08115314: + strh r0, [r4, 0x26] + strh r0, [r4, 0x24] + adds r1, r6, 0 + ldrh r0, [r1, 0x4] + strh r0, [r4, 0xE] + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x4 + beq _08115340 + cmp r0, 0x5 + bne _08115380 + ldr r0, =gBattle_BG3_X + ldrh r0, [r0] + strh r0, [r4, 0x22] + ldr r0, =sub_81153AC + b _0811539E + .pool +_08115340: + movs r0, 0 + strh r0, [r4, 0x22] + movs r5, 0 +_08115346: + lsls r0, r5, 24 + lsrs r0, 24 + bl IsBattlerSpriteVisible + lsls r0, 24 + cmp r0, 0 + beq _08115370 + movs r3, 0x22 + ldrsh r0, [r4, r3] + adds r0, 0x9 + lsls r0, 1 + adds r1, r4, 0 + adds r1, 0x8 + adds r1, r0 + ldr r0, =gBattlerSpriteIds + adds r0, r5, r0 + ldrb r0, [r0] + strh r0, [r1] + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_08115370: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x3 + bls _08115346 + b _0811539C + .pool +_08115380: + ldrb r0, [r6] + bl GetAnimBattlerSpriteId + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x1A] + cmp r0, 0xFF + bne _08115398 + adds r0, r5, 0 + bl DestroyAnimVisualTask + b _081153A0 +_08115398: + movs r0, 0x1 + strh r0, [r4, 0x22] +_0811539C: + ldr r0, =sub_81154A4 +_0811539E: + str r0, [r4] +_081153A0: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81152DC + + thumb_func_start sub_81153AC +sub_81153AC: @ 81153AC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =gTasks + adds r3, r0, r1 + movs r0, 0x8 + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _08115430 + cmp r1, 0x1 + bgt _081153D4 + cmp r1, 0 + beq _081153DA + b _0811549C + .pool +_081153D4: + cmp r1, 0x2 + beq _08115490 + b _0811549C +_081153DA: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0811549C + strh r1, [r3, 0xA] + ldrh r1, [r3, 0xC] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08115404 + ldr r1, =gBattle_BG3_X + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _0811540E + .pool +_08115404: + ldr r0, =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x26] + subs r1, r2 + strh r1, [r0] +_0811540E: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r3, r2] + cmp r0, r1 + bne _0811549C + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + b _08115484 + .pool +_08115430: + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0811549C + movs r0, 0 + strh r0, [r3, 0xA] + ldrh r0, [r3, 0xC] + ands r1, r0 + cmp r1, 0 + bne _0811545C + ldr r1, =gBattle_BG3_X + ldrh r0, [r3, 0x24] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r1] + b _08115466 + .pool +_0811545C: + ldr r0, =gBattle_BG3_X + ldrh r1, [r3, 0x22] + ldrh r2, [r3, 0x24] + subs r1, r2 + strh r1, [r0] +_08115466: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _0811549C + movs r0, 0 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x24] + subs r0, 0x1 + strh r0, [r3, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _0811549C +_08115484: + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + b _0811549C + .pool +_08115490: + ldr r1, =gBattle_BG3_X + ldrh r0, [r3, 0x22] + strh r0, [r1] + adds r0, r2, 0 + bl DestroyAnimVisualTask +_0811549C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_81153AC + + thumb_func_start sub_81154A4 +sub_81154A4: @ 81154A4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, =gTasks + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _08115504 + cmp r5, 0x1 + bgt _081154CC + cmp r5, 0 + beq _081154D2 + b _0811557E + .pool +_081154CC: + cmp r5, 0x2 + beq _08115540 + b _0811557E +_081154D2: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0811557E + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_8115588 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + movs r2, 0xE + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0811557E + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + b _08115538 +_08115504: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0811557E + strh r5, [r4, 0xA] + adds r0, r4, 0 + bl sub_8115588 + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _0811557E + strh r5, [r4, 0xC] + ldrh r0, [r4, 0x24] + subs r0, 0x1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _0811557E +_08115538: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0811557E +_08115540: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r4, r7] + cmp r2, r0 + bge _08115578 + ldr r0, =gSprites + mov r12, r0 + adds r5, r4, 0 + adds r5, 0x8 + movs r6, 0 +_08115554: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + strh r6, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r2, r0 + blt _08115554 +_08115578: + adds r0, r3, 0 + bl DestroyAnimVisualTask +_0811557E: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81154A4 + + thumb_func_start sub_8115588 +sub_8115588: @ 8115588 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0xC] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _081155B0 + movs r0, 0x24 + ldrsh r1, [r3, r0] + lsrs r0, r1, 31 + adds r1, r0 + asrs r1, 1 + ldrh r2, [r3, 0x24] + adds r0, r4, 0 + ands r0, r2 + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + b _081155C0 +_081155B0: + movs r1, 0x24 + ldrsh r0, [r3, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + lsls r0, 16 + lsrs r4, r0, 16 +_081155C0: + movs r2, 0 + movs r7, 0x22 + ldrsh r0, [r3, r7] + cmp r2, r0 + bge _081155F4 + ldr r6, =gSprites + adds r5, r3, 0 + adds r5, 0x8 +_081155D0: + adds r0, r2, 0 + adds r0, 0x9 + lsls r0, 1 + adds r0, r5, r0 + movs r7, 0 + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r4, [r0, 0x24] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0x22 + ldrsh r0, [r3, r1] + cmp r2, r0 + blt _081155D0 +_081155F4: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8115588 + + thumb_func_start AnimTask_IsPowerOver99 +AnimTask_IsPowerOver99: @ 8115600 + push {lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, =gBattleAnimArgs + movs r2, 0 + ldr r0, =gAnimMovePower + ldrh r0, [r0] + cmp r0, 0x63 + bls _08115614 + movs r2, 0x1 +_08115614: + strh r2, [r3, 0x1E] + adds r0, r1, 0 + bl DestroyAnimVisualTask + pop {r0} + bx r0 + .pool + thumb_func_end AnimTask_IsPowerOver99 + + thumb_func_start sub_8115628 +sub_8115628: @ 8115628 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, =gBattleAnimArgs + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + beq _08115648 + ldr r0, =gBattleAnimTarget + b _0811564A + .pool +_08115648: + ldr r0, =gBattleAnimAttacker +_0811564A: + ldrb r0, [r0] + adds r5, r0, 0 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + ble _0811565A + movs r0, 0x2 + eors r5, r0 +_0811565A: + ldr r0, =sub_81156D0 + ldrb r1, [r6, 0x2] + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r0, =gTasks + adds r4, r0 + adds r0, r5, 0 + movs r1, 0x2 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x20 + subs r1, r0 + ldr r2, =0x000001ff + adds r0, r2, 0 + ands r1, r0 + strh r1, [r4, 0xA] + adds r0, r5, 0 + movs r1, 0x3 + bl GetBattlerSpriteCoord + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 + subs r1, r0 + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0xC] + ldr r2, =gBattle_BG3_X + ldrh r0, [r4, 0xA] + strh r0, [r2] + ldr r0, =gBattle_BG3_Y + strh r1, [r0] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0xE] + adds r0, r7, 0 + bl DestroyAnimVisualTask + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8115628 + + thumb_func_start sub_81156D0 +sub_81156D0: @ 81156D0 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r1, =gTasks + adds r2, r0, r1 + ldr r0, =gBattleAnimArgs + movs r4, 0xE + ldrsh r1, [r0, r4] + movs r4, 0xE + ldrsh r0, [r2, r4] + cmp r1, r0 + bne _08115710 + ldr r0, =gBattle_BG3_X + movs r1, 0 + strh r1, [r0] + ldr r0, =gBattle_BG3_Y + strh r1, [r0] + adds r0, r3, 0 + bl DestroyTask + b _0811571C + .pool +_08115710: + ldr r1, =gBattle_BG3_X + ldrh r0, [r2, 0xA] + strh r0, [r1] + ldr r1, =gBattle_BG3_Y + ldrh r0, [r2, 0xC] + strh r0, [r1] +_0811571C: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_81156D0 + + .align 2, 0 |