summaryrefslogtreecommitdiff
path: root/asm/battle_script_commands.s
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-27 12:00:08 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-27 12:01:32 +0800
commitf4b4f5dd0c698bad4e9b10b712c15f5c448a0203 (patch)
tree24dbf071bfe67bffebccf217330c30f22a455c8d /asm/battle_script_commands.s
parentca130a8aeb39d05340495766a1f33dc854f6b4a1 (diff)
thru atkee
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r--asm/battle_script_commands.s3790
1 files changed, 0 insertions, 3790 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 5d8648ced..00d3e49c7 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -5,3796 +5,6 @@
.text
- thumb_func_start atkC1_hiddenpowercalc
-atkC1_hiddenpowercalc: @ 802B678
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0802B760 @ =gBattleMons
- ldr r0, _0802B764 @ =gBattlerAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrb r0, [r1, 0x14]
- mov r9, r0
- mov r7, r9
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r9, r0
- movs r4, 0x2
- mov r2, r9
- ands r2, r4
- asrs r2, 1
- ldrh r7, [r1, 0x14]
- mov r8, r7
- mov r0, r8
- lsls r0, 22
- lsrs r0, 27
- mov r8, r0
- ands r0, r4
- orrs r2, r0
- ldrb r6, [r1, 0x15]
- lsls r6, 25
- lsrs r6, 27
- adds r0, r6, 0
- ands r0, r4
- lsls r0, 1
- orrs r2, r0
- ldr r5, [r1, 0x14]
- lsls r5, 12
- lsrs r5, 27
- adds r0, r5, 0
- ands r0, r4
- lsls r0, 2
- orrs r2, r0
- ldrh r3, [r1, 0x16]
- lsls r3, 23
- lsrs r3, 27
- adds r0, r3, 0
- ands r0, r4
- lsls r0, 3
- orrs r2, r0
- ldrb r1, [r1, 0x17]
- lsls r1, 26
- lsrs r1, 27
- adds r0, r1, 0
- ands r0, r4
- lsls r0, 4
- orrs r2, r0
- movs r0, 0x1
- adds r4, r0, 0
- mov r7, r9
- ands r4, r7
- mov r7, r8
- ands r7, r0
- lsls r7, 1
- orrs r4, r7
- ands r6, r0
- lsls r6, 2
- orrs r4, r6
- ands r5, r0
- lsls r5, 3
- orrs r4, r5
- ands r3, r0
- lsls r3, 4
- orrs r4, r3
- ands r1, r0
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802B768 @ =gDynamicBasePower
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r6, _0802B76C @ =gBattleStruct
- ldr r5, [r6]
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1
- strb r0, [r5, 0x13]
- ldr r1, [r6]
- ldrb r0, [r1, 0x13]
- cmp r0, 0x8
- bls _0802B742
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_0802B742:
- ldr r2, [r6]
- ldrb r0, [r2, 0x13]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldr r1, _0802B770 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B760: .4byte gBattleMons
-_0802B764: .4byte gBattlerAttacker
-_0802B768: .4byte gDynamicBasePower
-_0802B76C: .4byte gBattleStruct
-_0802B770: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC1_hiddenpowercalc
-
- thumb_func_start atkC2_selectfirstvalidtarget
-atkC2_selectfirstvalidtarget: @ 802B774
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B7D0 @ =gBattlerTarget
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802B7D4 @ =gBattlersCount
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _0802B7D8 @ =gBattlescriptCurrInstr
- mov r8, r0
- cmp r1, 0
- beq _0802B7BE
- adds r3, r6, 0
- ldr r0, _0802B7DC @ =gBattlerAttacker
- ldrb r5, [r0]
- ldr r0, _0802B7E0 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802B7E4 @ =gAbsentBattlerFlags
-_0802B79C:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802B7B2
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802B7BE
-_0802B7B2:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _0802B79C
-_0802B7BE:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B7D0: .4byte gBattlerTarget
-_0802B7D4: .4byte gBattlersCount
-_0802B7D8: .4byte gBattlescriptCurrInstr
-_0802B7DC: .4byte gBattlerAttacker
-_0802B7E0: .4byte gBitTable
-_0802B7E4: .4byte gAbsentBattlerFlags
- thumb_func_end atkC2_selectfirstvalidtarget
-
- thumb_func_start atkC3_trysetfutureattack
-atkC3_trysetfutureattack: @ 802B7E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _0802B820 @ =gWishFutureKnock
- mov r8, r0
- ldr r7, _0802B824 @ =gBattlerTarget
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _0802B82C
- ldr r3, _0802B828 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802B8F6
- .align 2, 0
-_0802B820: .4byte gWishFutureKnock
-_0802B824: .4byte gBattlerTarget
-_0802B828: .4byte gBattlescriptCurrInstr
-_0802B82C:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _0802B8CC @ =gCurrentMove
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _0802B8D0 @ =gBattlerAttacker
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _0802B8D4 @ =gSideStatuses
- ldrb r0, [r7]
- bl GetBattlerPosition
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0802B8D8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _0802B8DC @ =gProtectStructs
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0802B8BA
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0802B8BA:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _0802B8E0 @ =0x00000161
- cmp r1, r0
- bne _0802B8E8
- ldr r0, _0802B8E4 @ =gBattleCommunication
- mov r1, r10
- strb r1, [r0, 0x5]
- b _0802B8EE
- .align 2, 0
-_0802B8CC: .4byte gCurrentMove
-_0802B8D0: .4byte gBattlerAttacker
-_0802B8D4: .4byte gSideStatuses
-_0802B8D8: .4byte gBattleMons
-_0802B8DC: .4byte gProtectStructs
-_0802B8E0: .4byte 0x00000161
-_0802B8E4: .4byte gBattleCommunication
-_0802B8E8:
- ldr r1, _0802B908 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_0802B8EE:
- ldr r1, _0802B90C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802B8F6:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B908: .4byte gBattleCommunication
-_0802B90C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC3_trysetfutureattack
-
- thumb_func_start atkC4_trydobeatup
-atkC4_trydobeatup: @ 802B910
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802B954 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- ldr r7, _0802B958 @ =gEnemyParty
- cmp r0, 0
- bne _0802B92A
- ldr r7, _0802B95C @ =gPlayerParty
-_0802B92A:
- ldr r2, _0802B960 @ =gBattleMons
- ldr r0, _0802B964 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802B96C
- ldr r3, _0802B968 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _0802BB08
- .align 2, 0
-_0802B954: .4byte gBattlerAttacker
-_0802B958: .4byte gEnemyParty
-_0802B95C: .4byte gPlayerParty
-_0802B960: .4byte gBattleMons
-_0802B964: .4byte gBattlerTarget
-_0802B968: .4byte gBattlescriptCurrInstr
-_0802B96C:
- ldr r6, _0802BAA8 @ =gBattleCommunication
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _0802B978
- b _0802BAD4
-_0802B978:
- adds r4, r6, 0
- movs r5, 0x64
-_0802B97C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802B9C0
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802B9C0
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802B9C0
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _0802B9D0
-_0802B9C0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _0802B97C
-_0802B9D0:
- ldr r1, _0802BAA8 @ =gBattleCommunication
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _0802BAD4
- ldr r1, _0802BAAC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _0802BAB0 @ =gBattlerAttacker
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802BAB4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _0802BAB8 @ =gBattleMoveDamage
- mov r8, r2
- ldr r5, _0802BABC @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _0802BAC0 @ =gBattleMoves
- ldr r0, _0802BAC4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _0802BAC8 @ =gBattleMons
- ldr r1, _0802BACC @ =gBattlerTarget
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _0802BAD0 @ =gProtectStructs
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0802BA9C
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802BA9C:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _0802BB0E
- .align 2, 0
-_0802BAA8: .4byte gBattleCommunication
-_0802BAAC: .4byte gBattleTextBuff1
-_0802BAB0: .4byte gBattlerAttacker
-_0802BAB4: .4byte gBattlescriptCurrInstr
-_0802BAB8: .4byte gBattleMoveDamage
-_0802BABC: .4byte gBaseStats
-_0802BAC0: .4byte gBattleMoves
-_0802BAC4: .4byte gCurrentMove
-_0802BAC8: .4byte gBattleMons
-_0802BACC: .4byte gBattlerTarget
-_0802BAD0: .4byte gProtectStructs
-_0802BAD4:
- mov r0, r8
- cmp r0, 0
- beq _0802BAF4
- ldr r3, _0802BAF0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _0802BB08
- .align 2, 0
-_0802BAF0: .4byte gBattlescriptCurrInstr
-_0802BAF4:
- ldr r3, _0802BB1C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_0802BB08:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BB0E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BB1C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC4_trydobeatup
-
- thumb_func_start atkC5_setsemiinvulnerablebit
-atkC5_setsemiinvulnerablebit: @ 802BB20
- push {lr}
- ldr r0, _0802BB34 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _0802BB60
- cmp r1, 0x5B
- bgt _0802BB38
- cmp r1, 0x13
- beq _0802BB44
- b _0802BB8C
- .align 2, 0
-_0802BB34: .4byte gCurrentMove
-_0802BB38:
- ldr r0, _0802BB54 @ =0x00000123
- cmp r1, r0
- beq _0802BB78
- adds r0, 0x31
- cmp r1, r0
- bne _0802BB8C
-_0802BB44:
- ldr r2, _0802BB58 @ =gStatuses3
- ldr r0, _0802BB5C @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _0802BB88
- .align 2, 0
-_0802BB54: .4byte 0x00000123
-_0802BB58: .4byte gStatuses3
-_0802BB5C: .4byte gBattlerAttacker
-_0802BB60:
- ldr r2, _0802BB70 @ =gStatuses3
- ldr r0, _0802BB74 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _0802BB88
- .align 2, 0
-_0802BB70: .4byte gStatuses3
-_0802BB74: .4byte gBattlerAttacker
-_0802BB78:
- ldr r2, _0802BB98 @ =gStatuses3
- ldr r0, _0802BB9C @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_0802BB88:
- orrs r0, r2
- str r0, [r1]
-_0802BB8C:
- ldr r1, _0802BBA0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BB98: .4byte gStatuses3
-_0802BB9C: .4byte gBattlerAttacker
-_0802BBA0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC5_setsemiinvulnerablebit
-
- thumb_func_start atkC6_clearsemiinvulnerablebit
-atkC6_clearsemiinvulnerablebit: @ 802BBA4
- push {lr}
- ldr r0, _0802BBB8 @ =gCurrentMove
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _0802BBE8
- cmp r1, 0x5B
- bgt _0802BBBC
- cmp r1, 0x13
- beq _0802BBC8
- b _0802BC16
- .align 2, 0
-_0802BBB8: .4byte gCurrentMove
-_0802BBBC:
- ldr r0, _0802BBDC @ =0x00000123
- cmp r1, r0
- beq _0802BC04
- adds r0, 0x31
- cmp r1, r0
- bne _0802BC16
-_0802BBC8:
- ldr r2, _0802BBE0 @ =gStatuses3
- ldr r0, _0802BBE4 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _0802BC12
- .align 2, 0
-_0802BBDC: .4byte 0x00000123
-_0802BBE0: .4byte gStatuses3
-_0802BBE4: .4byte gBattlerAttacker
-_0802BBE8:
- ldr r2, _0802BBFC @ =gStatuses3
- ldr r0, _0802BC00 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _0802BC12
- .align 2, 0
-_0802BBFC: .4byte gStatuses3
-_0802BC00: .4byte gBattlerAttacker
-_0802BC04:
- ldr r2, _0802BC24 @ =gStatuses3
- ldr r0, _0802BC28 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _0802BC2C @ =0xfffbffff
-_0802BC12:
- ands r0, r2
- str r0, [r1]
-_0802BC16:
- ldr r1, _0802BC30 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC24: .4byte gStatuses3
-_0802BC28: .4byte gBattlerAttacker
-_0802BC2C: .4byte 0xfffbffff
-_0802BC30: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC6_clearsemiinvulnerablebit
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 802BC34
- push {lr}
- ldr r0, _0802BC64 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802BC58
- ldr r2, _0802BC68 @ =gStatuses3
- ldr r0, _0802BC6C @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_0802BC58:
- ldr r1, _0802BC70 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC64: .4byte gHitMarker
-_0802BC68: .4byte gStatuses3
-_0802BC6C: .4byte gBattlerAttacker
-_0802BC70: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC7_setminimize
-
- thumb_func_start atkC8_sethail
-atkC8_sethail: @ 802BC74
- push {lr}
- ldr r3, _0802BC98 @ =gBattleWeather
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802BCA4
- ldr r2, _0802BC9C @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802BCA0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802BCB2
- .align 2, 0
-_0802BC98: .4byte gBattleWeather
-_0802BC9C: .4byte gMoveResultFlags
-_0802BCA0: .4byte gBattleCommunication
-_0802BCA4:
- strh r2, [r3]
- ldr r0, _0802BCC0 @ =gBattleCommunication
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _0802BCC4 @ =gWishFutureKnock
- adds r0, 0x28
- strb r1, [r0]
-_0802BCB2:
- ldr r1, _0802BCC8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802BCC0: .4byte gBattleCommunication
-_0802BCC4: .4byte gWishFutureKnock
-_0802BCC8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC8_sethail
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 802BCCC
- push {r4,lr}
- ldr r2, _0802BD10 @ =gBattleMons
- ldr r0, _0802BD14 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _0802BD20
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _0802BD20
- ldr r0, _0802BD18 @ =gBattleCommunication
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _0802BD20
- ldr r3, _0802BD1C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BD4C
- .align 2, 0
-_0802BD10: .4byte gBattleMons
-_0802BD14: .4byte gBattlerTarget
-_0802BD18: .4byte gBattleCommunication
-_0802BD1C: .4byte gBattlescriptCurrInstr
-_0802BD20:
- ldr r4, _0802BD54 @ =gActiveBattler
- ldr r0, _0802BD58 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _0802BD5C @ =gBattleMoveDamage
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _0802BD60 @ =0x00007fff
- movs r0, 0
- bl BtlController_EmitHealthBarUpdate
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _0802BD64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BD4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BD54: .4byte gActiveBattler
-_0802BD58: .4byte gBattlerAttacker
-_0802BD5C: .4byte gBattleMoveDamage
-_0802BD60: .4byte 0x00007fff
-_0802BD64: .4byte gBattlescriptCurrInstr
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 802BD68
- push {r4,r5,lr}
- ldr r4, _0802BDA8 @ =gBattlerAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- ldr r5, _0802BDAC @ =gSideTimers
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _0802BDB0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BDA8: .4byte gBattlerAttacker
-_0802BDAC: .4byte gSideTimers
-_0802BDB0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 802BDB4
- push {r4,lr}
- ldr r0, _0802BE08 @ =gStatuses3
- ldr r3, _0802BE0C @ =gBattlerAttacker
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _0802BE10 @ =gDisableStructs
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _0802BE14 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BE08: .4byte gStatuses3
-_0802BE0C: .4byte gBattlerAttacker
-_0802BE10: .4byte gDisableStructs
-_0802BE14: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 802BE18
- push {r4,lr}
- ldr r2, _0802BE68 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802BE6C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802BE70 @ =gCurrentMove
- ldr r1, _0802BE74 @ =sNaturePowerMoves
- ldr r0, _0802BE78 @ =gBattleTerrain
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802BE7C @ =gBattlerTarget
- strb r0, [r1]
- ldr r3, _0802BE80 @ =gBattleScriptsForMoveEffects
- ldr r2, _0802BE84 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl BattleScriptPush
- ldr r1, _0802BE88 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BE68: .4byte gHitMarker
-_0802BE6C: .4byte 0xfffffbff
-_0802BE70: .4byte gCurrentMove
-_0802BE74: .4byte sNaturePowerMoves
-_0802BE78: .4byte gBattleTerrain
-_0802BE7C: .4byte gBattlerTarget
-_0802BE80: .4byte gBattleScriptsForMoveEffects
-_0802BE84: .4byte gBattleMoves
-_0802BE88: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 802BE8C
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802BED8 @ =gBattleMons
- ldr r3, _0802BEDC @ =gBattlerAttacker
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802BEE8
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802BEE0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802BEE4 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- b _0802BF02
- .align 2, 0
-_0802BED8: .4byte gBattleMons
-_0802BEDC: .4byte gBattlerAttacker
-_0802BEE0: .4byte gBattlescriptCurrInstr
-_0802BEE4: .4byte gActiveBattler
-_0802BEE8:
- ldr r3, _0802BF0C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BF02:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BF0C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802BF10
- push {lr}
- ldr r1, _0802BF48 @ =gBattleMons
- ldr r0, _0802BF4C @ =gBattlerTarget
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802BF54
- ldr r3, _0802BF50 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BF60
- .align 2, 0
-_0802BF48: .4byte gBattleMons
-_0802BF4C: .4byte gBattlerTarget
-_0802BF50: .4byte gBattlescriptCurrInstr
-_0802BF54:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802BF64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BF60:
- pop {r0}
- bx r0
- .align 2, 0
-_0802BF64: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802BF68
- push {lr}
- ldr r2, _0802BF94 @ =gProtectStructs
- ldr r0, _0802BF98 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802BF88
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802BFA0
-_0802BF88:
- ldr r1, _0802BF9C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BFBA
- .align 2, 0
-_0802BF94: .4byte gProtectStructs
-_0802BF98: .4byte gBattlerAttacker
-_0802BF9C: .4byte gBattlescriptCurrInstr
-_0802BFA0:
- ldr r3, _0802BFC0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BFBA:
- pop {r0}
- bx r0
- .align 2, 0
-_0802BFC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802BFC4
- push {r4,lr}
- ldr r4, _0802C008 @ =gDisableStructs
- ldr r3, _0802C00C @ =gBattlerTarget
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802C014
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802C010 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C02E
- .align 2, 0
-_0802C008: .4byte gDisableStructs
-_0802C00C: .4byte gBattlerTarget
-_0802C010: .4byte gBattlescriptCurrInstr
-_0802C014:
- ldr r3, _0802C034 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C02E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C034: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD0_settaunt
-
- thumb_func_start atkD1_trysethelpinghand
-atkD1_trysethelpinghand: @ 802C038
- push {r4,lr}
- ldr r4, _0802C0A0 @ =gBattlerAttacker
- ldrb r0, [r4]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r3, _0802C0A4 @ =gBattlerTarget
- strb r0, [r3]
- ldr r0, _0802C0A8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C0BC
- ldr r0, _0802C0AC @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0802C0B0 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C0BC
- ldr r1, _0802C0B4 @ =gProtectStructs
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802C0BC
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802C0BC
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802C0B8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C0D6
- .align 2, 0
-_0802C0A0: .4byte gBattlerAttacker
-_0802C0A4: .4byte gBattlerTarget
-_0802C0A8: .4byte gBattleTypeFlags
-_0802C0AC: .4byte gAbsentBattlerFlags
-_0802C0B0: .4byte gBitTable
-_0802C0B4: .4byte gProtectStructs
-_0802C0B8: .4byte gBattlescriptCurrInstr
-_0802C0BC:
- ldr r3, _0802C0DC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C0D6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C0DC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD1_trysethelpinghand
-
- thumb_func_start atkD2_tryswapitems
-atkD2_tryswapitems: @ 802C0E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _0802C1FC @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _0802C1DE
- ldr r0, _0802C200 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802C120
- ldr r0, [r4]
- ldr r1, _0802C204 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802C120
- ldr r0, _0802C208 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802C1DE
-_0802C120:
- ldr r6, _0802C200 @ =gBattlerAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r7, _0802C20C @ =gBattlerTarget
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0802C1FC @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _0802C204 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802C18A
- ldr r0, _0802C208 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802C18A
- ldr r0, _0802C210 @ =gWishFutureKnock
- adds r2, r0, 0
- adds r2, 0x29
- adds r0, r4, r2
- ldrb r1, [r0]
- ldr r4, _0802C214 @ =gBitTable
- ldr r3, _0802C218 @ =gBattlerPartyIndexes
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C1DE
- adds r0, r5, r2
- ldrb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C1DE
-_0802C18A:
- ldr r0, _0802C21C @ =gBattleMons
- mov r8, r0
- ldr r1, _0802C200 @ =gBattlerAttacker
- ldrb r4, [r1]
- movs r5, 0x58
- adds r0, r4, 0
- muls r0, r5
- add r0, r8
- mov r9, r0
- ldrh r3, [r0, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802C1B2
- ldr r0, _0802C20C @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r5
- add r0, r8
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802C1DE
-_0802C1B2:
- cmp r1, 0xAF
- beq _0802C1DE
- ldr r7, _0802C20C @ =gBattlerTarget
- ldrb r0, [r7]
- muls r0, r5
- mov r2, r8
- adds r1, r0, r2
- ldrh r2, [r1, 0x2E]
- cmp r2, 0xAF
- beq _0802C1DE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802C1DE
- adds r0, r2, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802C224
-_0802C1DE:
- ldr r3, _0802C220 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C37A
- .align 2, 0
-_0802C1FC: .4byte gBattleTypeFlags
-_0802C200: .4byte gBattlerAttacker
-_0802C204: .4byte 0x00000902
-_0802C208: .4byte gTrainerBattleOpponent_A
-_0802C20C: .4byte gBattlerTarget
-_0802C210: .4byte gWishFutureKnock
-_0802C214: .4byte gBitTable
-_0802C218: .4byte gBattlerPartyIndexes
-_0802C21C: .4byte gBattleMons
-_0802C220: .4byte gBattlescriptCurrInstr
-_0802C224:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802C258
- ldr r1, _0802C24C @ =gBattlescriptCurrInstr
- ldr r0, _0802C250 @ =BattleScript_StickyHoldActivates
- str r0, [r1]
- ldr r1, _0802C254 @ =gLastUsedAbility
- ldrb r0, [r7]
- muls r0, r5
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl RecordAbilityBattle
- b _0802C37A
- .align 2, 0
-_0802C24C: .4byte gBattlescriptCurrInstr
-_0802C250: .4byte BattleScript_StickyHoldActivates
-_0802C254: .4byte gLastUsedAbility
-_0802C258:
- ldr r3, _0802C344 @ =gBattleStruct
- mov r10, r3
- lsls r0, r4, 1
- adds r0, 0xD0
- ldr r1, [r3]
- adds r6, r1, r0
- mov r0, r9
- ldrh r0, [r0, 0x2E]
- mov r9, r0
- strh r2, [r6]
- ldr r1, _0802C348 @ =gBattlerAttacker
- ldrb r0, [r1]
- muls r0, r5
- add r0, r8
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r5
- add r0, r8
- mov r2, r9
- strh r2, [r0, 0x2E]
- ldr r4, _0802C34C @ =gActiveBattler
- ldr r3, _0802C348 @ =gBattlerAttacker
- ldrb r0, [r3]
- strb r0, [r4]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl BtlController_EmitSetMonData
- ldr r1, _0802C348 @ =gBattlerAttacker
- ldrb r0, [r1]
- bl MarkBattlerForControllerExec
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- muls r0, r5
- mov r1, r8
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl BtlController_EmitSetMonData
- ldrb r0, [r7]
- bl MarkBattlerForControllerExec
- ldrb r0, [r7]
- mov r2, r10
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- movs r3, 0
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r3, [r0]
- ldr r1, _0802C348 @ =gBattlerAttacker
- ldrb r0, [r1]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r3, [r0]
- ldr r2, _0802C348 @ =gBattlerAttacker
- ldrb r0, [r2]
- mov r3, r10
- ldr r1, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802C350 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802C354 @ =gBattleTextBuff1
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802C358 @ =gBattleTextBuff2
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r2, r9
- strb r2, [r1, 0x2]
- mov r3, r9
- lsrs r0, r3, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r3, 0
- beq _0802C360
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802C374
- ldr r1, _0802C35C @ =gBattleCommunication
- movs r0, 0x2
- b _0802C378
- .align 2, 0
-_0802C344: .4byte gBattleStruct
-_0802C348: .4byte gBattlerAttacker
-_0802C34C: .4byte gActiveBattler
-_0802C350: .4byte gBattlescriptCurrInstr
-_0802C354: .4byte gBattleTextBuff1
-_0802C358: .4byte gBattleTextBuff2
-_0802C35C: .4byte gBattleCommunication
-_0802C360:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802C374
- ldr r0, _0802C370 @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x5]
- b _0802C37A
- .align 2, 0
-_0802C370: .4byte gBattleCommunication
-_0802C374:
- ldr r1, _0802C38C @ =gBattleCommunication
- movs r0, 0x1
-_0802C378:
- strb r0, [r1, 0x5]
-_0802C37A:
- 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
-_0802C38C: .4byte gBattleCommunication
- thumb_func_end atkD2_tryswapitems
-
- thumb_func_start atkD3_trycopyability
-atkD3_trycopyability: @ 802C390
- push {r4,lr}
- ldr r3, _0802C3D0 @ =gBattleMons
- ldr r4, _0802C3D4 @ =gBattlerTarget
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802C3E4
- cmp r0, 0x19
- beq _0802C3E4
- ldr r0, _0802C3D8 @ =gBattlerAttacker
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802C3DC @ =gLastUsedAbility
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802C3E0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C3FE
- .align 2, 0
-_0802C3D0: .4byte gBattleMons
-_0802C3D4: .4byte gBattlerTarget
-_0802C3D8: .4byte gBattlerAttacker
-_0802C3DC: .4byte gLastUsedAbility
-_0802C3E0: .4byte gBattlescriptCurrInstr
-_0802C3E4:
- ldr r3, _0802C404 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C3FE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C404: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD3_trycopyability
-
- thumb_func_start atkD4_trywish
-atkD4_trywish: @ 802C408
- push {r4-r7,lr}
- ldr r7, _0802C41C @ =gBattlescriptCurrInstr
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802C420
- cmp r3, 0x1
- beq _0802C458
- b _0802C4D4
- .align 2, 0
-_0802C41C: .4byte gBattlescriptCurrInstr
-_0802C420:
- ldr r1, _0802C44C @ =gWishFutureKnock
- ldr r4, _0802C450 @ =gBattlerAttacker
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802C4A4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802C454 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802C4D2
- .align 2, 0
-_0802C44C: .4byte gWishFutureKnock
-_0802C450: .4byte gBattlerAttacker
-_0802C454: .4byte gBattlerPartyIndexes
-_0802C458:
- ldr r1, _0802C4BC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802C4C0 @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802C4C4 @ =gWishFutureKnock
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802C4C8 @ =gBattleMoveDamage
- ldr r6, _0802C4CC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802C490
- str r3, [r1]
-_0802C490:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802C4D0
-_0802C4A4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802C4D4
- .align 2, 0
-_0802C4BC: .4byte gBattleTextBuff1
-_0802C4C0: .4byte gBattlerTarget
-_0802C4C4: .4byte gWishFutureKnock
-_0802C4C8: .4byte gBattleMoveDamage
-_0802C4CC: .4byte gBattleMons
-_0802C4D0:
- adds r0, r2, 0x6
-_0802C4D2:
- str r0, [r7]
-_0802C4D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_trywish
-
- thumb_func_start atkD5_trysetroots
-atkD5_trysetroots: @ 802C4DC
- push {lr}
- ldr r1, _0802C514 @ =gStatuses3
- ldr r0, _0802C518 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802C520
- ldr r3, _0802C51C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C52C
- .align 2, 0
-_0802C514: .4byte gStatuses3
-_0802C518: .4byte gBattlerAttacker
-_0802C51C: .4byte gBattlescriptCurrInstr
-_0802C520:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802C530 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C52C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C530: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD5_trysetroots
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802C534
- push {lr}
- ldr r3, _0802C580 @ =gProtectStructs
- ldr r0, _0802C584 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802C554
- adds r0, r2, r3
- ldr r1, _0802C588 @ =gBattlerTarget
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C56C
-_0802C554:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802C572
- adds r0, r2, r3
- ldr r1, _0802C588 @ =gBattlerTarget
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802C572
-_0802C56C:
- ldr r1, _0802C58C @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0xE]
-_0802C572:
- ldr r1, _0802C590 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802C580: .4byte gProtectStructs
-_0802C584: .4byte gBattlerAttacker
-_0802C588: .4byte gBattlerTarget
-_0802C58C: .4byte gBattleScripting
-_0802C590: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start atkD7_setyawn
-atkD7_setyawn: @ 802C594
- push {r4,lr}
- ldr r1, _0802C5D8 @ =gStatuses3
- ldr r0, _0802C5DC @ =gBattlerTarget
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802C5BC
- ldr r1, _0802C5E0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C5E8
-_0802C5BC:
- ldr r3, _0802C5E4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C5F8
- .align 2, 0
-_0802C5D8: .4byte gStatuses3
-_0802C5DC: .4byte gBattlerTarget
-_0802C5E0: .4byte gBattleMons
-_0802C5E4: .4byte gBattlescriptCurrInstr
-_0802C5E8:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802C600 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C5F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C600: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD7_setyawn
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802C604
- push {lr}
- ldr r2, _0802C640 @ =gBattleMons
- ldr r0, _0802C644 @ =gBattlerTarget
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802C648 @ =gBattlerAttacker
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802C650
- ldr r3, _0802C64C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C662
- .align 2, 0
-_0802C640: .4byte gBattleMons
-_0802C644: .4byte gBattlerTarget
-_0802C648: .4byte gBattlerAttacker
-_0802C64C: .4byte gBattlescriptCurrInstr
-_0802C650:
- ldr r2, _0802C668 @ =gBattleMoveDamage
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802C66C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C662:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C668: .4byte gBattleMoveDamage
-_0802C66C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802C670
- push {r4,lr}
- ldr r4, _0802C6BC @ =gDynamicBasePower
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802C6AC
- ldr r2, _0802C6C0 @ =gBattleMoves
- ldr r0, _0802C6C4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802C6C8 @ =gBattleMons
- ldr r0, _0802C6CC @ =gBattlerAttacker
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802C6AC
- movs r0, 0x1
- strh r0, [r4]
-_0802C6AC:
- ldr r1, _0802C6D0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C6BC: .4byte gDynamicBasePower
-_0802C6C0: .4byte gBattleMoves
-_0802C6C4: .4byte gCurrentMove
-_0802C6C8: .4byte gBattleMons
-_0802C6CC: .4byte gBattlerAttacker
-_0802C6D0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_tryswapabilities
-atkDA_tryswapabilities: @ 802C6D4
- push {r4-r6,lr}
- ldr r5, _0802C738 @ =gBattleMons
- ldr r0, _0802C73C @ =gBattlerAttacker
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802C6FC
- ldr r0, _0802C740 @ =gBattlerTarget
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C71C
-_0802C6FC:
- cmp r1, 0x19
- beq _0802C71C
- ldr r6, _0802C740 @ =gBattlerTarget
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802C71C
- ldr r0, _0802C744 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802C74C
-_0802C71C:
- ldr r3, _0802C748 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C762
- .align 2, 0
-_0802C738: .4byte gBattleMons
-_0802C73C: .4byte gBattlerAttacker
-_0802C740: .4byte gBattlerTarget
-_0802C744: .4byte gMoveResultFlags
-_0802C748: .4byte gBattlescriptCurrInstr
-_0802C74C:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802C768 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C762:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C768: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDA_tryswapabilities
-
- thumb_func_start atkDB_tryimprison
-atkDB_tryimprison: @ 802C76C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _0802C78C @ =gStatuses3
- ldr r4, _0802C790 @ =gBattlerAttacker
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802C7BC
- b _0802C83E
- .align 2, 0
-_0802C78C: .4byte gStatuses3
-_0802C790: .4byte gBattlerAttacker
-_0802C794:
- ldr r0, _0802C7B4 @ =gStatuses3
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802C7B8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802C836
- .align 2, 0
-_0802C7B4: .4byte gStatuses3
-_0802C7B8: .4byte gBattlescriptCurrInstr
-_0802C7BC:
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldrb r0, [r4]
- bl PressurePPLoseOnUsingImprison
- movs r6, 0
- b _0802C82E
-_0802C7D2:
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802C828
- movs r4, 0
- ldr r7, _0802C864 @ =gBattlerAttacker
- mov r9, r7
- ldr r0, _0802C868 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802C7FC:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802C806:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802C810
- cmp r1, 0
- bne _0802C818
-_0802C810:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802C806
-_0802C818:
- cmp r2, 0x4
- bne _0802C824
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C7FC
-_0802C824:
- cmp r4, 0x4
- bne _0802C794
-_0802C828:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802C82E:
- ldr r0, _0802C86C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802C7D2
-_0802C836:
- ldr r0, _0802C86C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802C858
-_0802C83E:
- ldr r3, _0802C870 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802C858:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C864: .4byte gBattlerAttacker
-_0802C868: .4byte gBattleMons
-_0802C86C: .4byte gBattlersCount
-_0802C870: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDB_tryimprison
-
- thumb_func_start atkDC_trysetgrudge
-atkDC_trysetgrudge: @ 802C874
- push {lr}
- ldr r1, _0802C8AC @ =gStatuses3
- ldr r0, _0802C8B0 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802C8B8
- ldr r3, _0802C8B4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802C8C4
- .align 2, 0
-_0802C8AC: .4byte gStatuses3
-_0802C8B0: .4byte gBattlerAttacker
-_0802C8B4: .4byte gBattlescriptCurrInstr
-_0802C8B8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802C8C8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802C8C4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C8C8: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDC_trysetgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802C8CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802C930 @ =sWeightToDamageTable
- ldrh r0, [r2]
- ldr r1, _0802C934 @ =0x0000ffff
- cmp r0, r1
- beq _0802C944
- adds r6, r2, 0
- ldr r0, _0802C938 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802C8E8:
- ldr r0, _0802C93C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetPokedexHeightWeight
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802C916
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802C8E8
-_0802C916:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802C934 @ =0x0000ffff
- cmp r1, r0
- beq _0802C944
- ldr r0, _0802C940 @ =gDynamicBasePower
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802C94A
- .align 2, 0
-_0802C930: .4byte sWeightToDamageTable
-_0802C934: .4byte 0x0000ffff
-_0802C938: .4byte gBattleMons
-_0802C93C: .4byte gBattlerTarget
-_0802C940: .4byte gDynamicBasePower
-_0802C944:
- ldr r1, _0802C95C @ =gDynamicBasePower
- movs r0, 0x78
- strh r0, [r1]
-_0802C94A:
- ldr r1, _0802C960 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C95C: .4byte gDynamicBasePower
-_0802C960: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_assistattackselect
-atkDE_assistattackselect: @ 802C964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r10, r0
- ldr r0, _0802CA84 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x18
- str r0, [sp, 0x4]
- ldr r0, _0802CA88 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerPosition
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802CA8C @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802C994
- ldr r1, _0802CA90 @ =gEnemyParty
- str r1, [sp]
-_0802C994:
- movs r2, 0
-_0802C996:
- ldr r1, _0802CA94 @ =gBattlerPartyIndexes
- ldr r0, _0802CA88 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x8]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802CA3C
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802CA3C
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802CA3C
- movs r5, 0
- ldr r1, _0802CA98 @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, [sp, 0x4]
- adds r6, r0, r1
-_0802C9E0:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl IsInvalidForSleepTalkOrAssist
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802CA36
- ldr r0, _0802CA9C @ =sMovesForbiddenToCopy
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802CA2A
- cmp r4, r2
- beq _0802CA20
- ldr r5, _0802CA98 @ =0x0000ffff
- adds r2, r3, 0
-_0802CA12:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802CA2A
- cmp r4, r0
- bne _0802CA12
-_0802CA20:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802CA36
-_0802CA2A:
- cmp r4, 0
- beq _0802CA36
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802CA36:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802C9E0
-_0802CA3C:
- ldr r2, [sp, 0x8]
- cmp r2, 0x5
- ble _0802C996
- mov r1, r10
- cmp r1, 0
- beq _0802CAB4
- ldr r2, _0802CAA0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _0802CAA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802CAA8 @ =gCalledMove
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, [sp, 0x4]
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl GetMoveTarget
- ldr r1, _0802CAAC @ =gBattlerTarget
- strb r0, [r1]
- ldr r1, _0802CAB0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802CACE
- .align 2, 0
-_0802CA84: .4byte gBattleStruct
-_0802CA88: .4byte gBattlerAttacker
-_0802CA8C: .4byte gPlayerParty
-_0802CA90: .4byte gEnemyParty
-_0802CA94: .4byte gBattlerPartyIndexes
-_0802CA98: .4byte 0x0000ffff
-_0802CA9C: .4byte sMovesForbiddenToCopy
-_0802CAA0: .4byte gHitMarker
-_0802CAA4: .4byte 0xfffffbff
-_0802CAA8: .4byte gCalledMove
-_0802CAAC: .4byte gBattlerTarget
-_0802CAB0: .4byte gBattlescriptCurrInstr
-_0802CAB4:
- ldr r3, _0802CAE0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802CACE:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CAE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDE_assistattackselect
-
- thumb_func_start atkDF_trysetmagiccoat
-atkDF_trysetmagiccoat: @ 802CAE4
- push {lr}
- ldr r1, _0802CB2C @ =gBattlerTarget
- ldr r3, _0802CB30 @ =gBattlerAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802CB34 @ =gSpecialStatuses
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802CB38 @ =gCurrentTurnActionNumber
- ldrb r1, [r0]
- ldr r0, _0802CB3C @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802CB44
- ldr r3, _0802CB40 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CB5C
- .align 2, 0
-_0802CB2C: .4byte gBattlerTarget
-_0802CB30: .4byte gBattlerAttacker
-_0802CB34: .4byte gSpecialStatuses
-_0802CB38: .4byte gCurrentTurnActionNumber
-_0802CB3C: .4byte gBattlersCount
-_0802CB40: .4byte gBattlescriptCurrInstr
-_0802CB44:
- ldr r0, _0802CB60 @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802CB64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CB5C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802CB60: .4byte gProtectStructs
-_0802CB64: .4byte gBattlescriptCurrInstr
- thumb_func_end atkDF_trysetmagiccoat
-
- thumb_func_start atkE0_trysetsnatch
-atkE0_trysetsnatch: @ 802CB68
- push {lr}
- ldr r2, _0802CBAC @ =gSpecialStatuses
- ldr r3, _0802CBB0 @ =gBattlerAttacker
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802CBB4 @ =gCurrentTurnActionNumber
- ldrb r1, [r0]
- ldr r0, _0802CBB8 @ =gBattlersCount
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802CBC0
- ldr r3, _0802CBBC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CBD6
- .align 2, 0
-_0802CBAC: .4byte gSpecialStatuses
-_0802CBB0: .4byte gBattlerAttacker
-_0802CBB4: .4byte gCurrentTurnActionNumber
-_0802CBB8: .4byte gBattlersCount
-_0802CBBC: .4byte gBattlescriptCurrInstr
-_0802CBC0:
- ldr r0, _0802CBDC @ =gProtectStructs
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802CBE0 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CBD6:
- pop {r0}
- bx r0
- .align 2, 0
-_0802CBDC: .4byte gProtectStructs
-_0802CBE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE0_trysetsnatch
-
- thumb_func_start atkE1_trygetintimidatetarget
-atkE1_trygetintimidatetarget: @ 802CBE4
- push {r4-r6,lr}
- ldr r4, _0802CC88 @ =gBattleScripting
- ldr r0, _0802CC8C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xD8
- ldrb r0, [r0]
- strb r0, [r4, 0x17]
- ldrb r0, [r4, 0x17]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802CC90 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802CC94 @ =gBattleMons
- ldrb r1, [r4, 0x17]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802CC98 @ =gBattlerTarget
- ldr r1, _0802CC9C @ =gBattlersCount
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CC6A
- adds r4, r2, 0
- ldr r6, _0802CCA0 @ =gBitTable
-_0802CC2A:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802CC4C
- ldr r0, _0802CCA4 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802CC9C @ =gBattlersCount
- cmp r1, 0
- beq _0802CC60
-_0802CC4C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802CC9C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802CC2A
-_0802CC60:
- ldr r0, _0802CC98 @ =gBattlerTarget
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802CCAC
-_0802CC6A:
- ldr r3, _0802CCA8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802CCB4
- .align 2, 0
-_0802CC88: .4byte gBattleScripting
-_0802CC8C: .4byte gBattleStruct
-_0802CC90: .4byte gBattleTextBuff1
-_0802CC94: .4byte gBattleMons
-_0802CC98: .4byte gBattlerTarget
-_0802CC9C: .4byte gBattlersCount
-_0802CCA0: .4byte gBitTable
-_0802CCA4: .4byte gAbsentBattlerFlags
-_0802CCA8: .4byte gBattlescriptCurrInstr
-_0802CCAC:
- ldr r1, _0802CCBC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802CCB4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CCBC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE1_trygetintimidatetarget
-
- thumb_func_start atkE2_switchoutabilities
-atkE2_switchoutabilities: @ 802CCC0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0802CD28 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r4, _0802CD2C @ =gActiveBattler
- strb r0, [r4]
- ldr r3, _0802CD30 @ =gBattleMons
- ldrb r0, [r4]
- movs r6, 0x58
- adds r1, r0, 0
- muls r1, r6
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802CD1A
- adds r3, 0x4C
- adds r1, r3
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802CD34 @ =gBitTable
- ldrb r1, [r4]
- ldr r0, _0802CD38 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, r1, r0
- adds r0, 0x58
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- adds r0, r1, 0
- muls r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_0802CD1A:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CD28: .4byte gBattlescriptCurrInstr
-_0802CD2C: .4byte gActiveBattler
-_0802CD30: .4byte gBattleMons
-_0802CD34: .4byte gBitTable
-_0802CD38: .4byte gBattleStruct
- thumb_func_end atkE2_switchoutabilities
-
- thumb_func_start atkE3_jumpifhasnohp
-atkE3_jumpifhasnohp: @ 802CD3C
- push {r4,lr}
- ldr r4, _0802CD78 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r1, _0802CD7C @ =gActiveBattler
- strb r0, [r1]
- ldr r2, _0802CD80 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802CD84
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802CD8A
- .align 2, 0
-_0802CD78: .4byte gBattlescriptCurrInstr
-_0802CD7C: .4byte gActiveBattler
-_0802CD80: .4byte gBattleMons
-_0802CD84:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802CD8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpifhasnohp
-
- thumb_func_start atkE4_getsecretpowereffect
-atkE4_getsecretpowereffect: @ 802CD90
- push {lr}
- ldr r0, _0802CDA4 @ =gBattleTerrain
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802CE2C
- lsls r0, 2
- ldr r1, _0802CDA8 @ =_0802CDAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802CDA4: .4byte gBattleTerrain
-_0802CDA8: .4byte _0802CDAC
- .align 2, 0
-_0802CDAC:
- .4byte _0802CDCC
- .4byte _0802CDD8
- .4byte _0802CDE4
- .4byte _0802CDF0
- .4byte _0802CDFC
- .4byte _0802CE08
- .4byte _0802CE14
- .4byte _0802CE20
-_0802CDCC:
- ldr r1, _0802CDD4 @ =gBattleCommunication
- movs r0, 0x2
- b _0802CE30
- .align 2, 0
-_0802CDD4: .4byte gBattleCommunication
-_0802CDD8:
- ldr r1, _0802CDE0 @ =gBattleCommunication
- movs r0, 0x1
- b _0802CE30
- .align 2, 0
-_0802CDE0: .4byte gBattleCommunication
-_0802CDE4:
- ldr r1, _0802CDEC @ =gBattleCommunication
- movs r0, 0x1B
- b _0802CE30
- .align 2, 0
-_0802CDEC: .4byte gBattleCommunication
-_0802CDF0:
- ldr r1, _0802CDF8 @ =gBattleCommunication
- movs r0, 0x17
- b _0802CE30
- .align 2, 0
-_0802CDF8: .4byte gBattleCommunication
-_0802CDFC:
- ldr r1, _0802CE04 @ =gBattleCommunication
- movs r0, 0x16
- b _0802CE30
- .align 2, 0
-_0802CE04: .4byte gBattleCommunication
-_0802CE08:
- ldr r1, _0802CE10 @ =gBattleCommunication
- movs r0, 0x18
- b _0802CE30
- .align 2, 0
-_0802CE10: .4byte gBattleCommunication
-_0802CE14:
- ldr r1, _0802CE1C @ =gBattleCommunication
- movs r0, 0x7
- b _0802CE30
- .align 2, 0
-_0802CE1C: .4byte gBattleCommunication
-_0802CE20:
- ldr r1, _0802CE28 @ =gBattleCommunication
- movs r0, 0x8
- b _0802CE30
- .align 2, 0
-_0802CE28: .4byte gBattleCommunication
-_0802CE2C:
- ldr r1, _0802CE40 @ =gBattleCommunication
- movs r0, 0x5
-_0802CE30:
- strb r0, [r1, 0x3]
- ldr r1, _0802CE44 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802CE40: .4byte gBattleCommunication
-_0802CE44: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE4_getsecretpowereffect
-
- thumb_func_start atkE5_pickup
-atkE5_pickup: @ 802CE48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _0802CE90 @ =gBaseStats
- mov r8, r0
-_0802CE54:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802CE94 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802CE98
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x17]
- b _0802CEA2
- .align 2, 0
-_0802CE90: .4byte gBaseStats
-_0802CE94: .4byte gPlayerParty
-_0802CE98:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x16]
-_0802CEA2:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802CF0A
- cmp r5, 0
- beq _0802CF0A
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802CF0A
- cmp r6, 0
- bne _0802CF0A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802CF0A
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _0802CEE4 @ =sPickupItems
- b _0802CEF0
- .align 2, 0
-_0802CEE4: .4byte sPickupItems
-_0802CEE8:
- adds r1, 0x4
- adds r2, 0x1
- cmp r2, 0xE
- bhi _0802CEF6
-_0802CEF0:
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- ble _0802CEE8
-_0802CEF6:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802CF24 @ =gPlayerParty
- adds r0, r1
- lsls r2, 2
- ldr r1, _0802CF28 @ =sPickupItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
-_0802CF0A:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802CE54
- ldr r1, _0802CF2C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CF24: .4byte gPlayerParty
-_0802CF28: .4byte sPickupItems
-_0802CF2C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE5_pickup
-
- thumb_func_start atkE6_docastformchangeanimation
-atkE6_docastformchangeanimation: @ 802CF30
- push {r4,lr}
- ldr r4, _0802CF84 @ =gActiveBattler
- ldr r0, _0802CF88 @ =gBattleScripting
- ldrb r0, [r0, 0x17]
- strb r0, [r4]
- ldr r1, _0802CF8C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- ldr r3, _0802CF90 @ =gBattleStruct
- cmp r0, 0
- beq _0802CF60
- ldr r0, [r3]
- adds r0, 0x7F
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0802CF60:
- ldr r0, [r3]
- adds r0, 0x7F
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitBattleAnimation
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _0802CF94 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CF84: .4byte gActiveBattler
-_0802CF88: .4byte gBattleScripting
-_0802CF8C: .4byte gBattleMons
-_0802CF90: .4byte gBattleStruct
-_0802CF94: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE6_docastformchangeanimation
-
- thumb_func_start atkE7_trycastformdatachange
-atkE7_trycastformdatachange: @ 802CF98
- push {r4,lr}
- ldr r1, _0802CFC8 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r0, _0802CFCC @ =gBattleScripting
- ldrb r0, [r0, 0x17]
- bl CastformDataTypeChange
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802CFC2
- ldr r0, _0802CFD0 @ =BattleScript_CastformChange
- bl BattleScriptPushCursorAndCallback
- ldr r0, _0802CFD4 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x7F
- subs r1, r4, 0x1
- strb r1, [r0]
-_0802CFC2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CFC8: .4byte gBattlescriptCurrInstr
-_0802CFCC: .4byte gBattleScripting
-_0802CFD0: .4byte BattleScript_CastformChange
-_0802CFD4: .4byte gBattleStruct
- thumb_func_end atkE7_trycastformdatachange
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802CFD8
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802D014 @ =gBattleMoves
- ldr r0, _0802D018 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802D028
- ldr r1, _0802D01C @ =gStatuses3
- ldr r0, _0802D020 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802D04C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802D024 @ =gBattleCommunication
- strb r4, [r0, 0x5]
- b _0802D050
- .align 2, 0
-_0802D014: .4byte gBattleMoves
-_0802D018: .4byte gCurrentMove
-_0802D01C: .4byte gStatuses3
-_0802D020: .4byte gBattlerAttacker
-_0802D024: .4byte gBattleCommunication
-_0802D028:
- ldr r1, _0802D05C @ =gStatuses3
- ldr r0, _0802D060 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802D04C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802D064 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802D04C:
- cmp r4, 0
- beq _0802D06C
-_0802D050:
- ldr r1, _0802D068 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D086
- .align 2, 0
-_0802D05C: .4byte gStatuses3
-_0802D060: .4byte gBattlerAttacker
-_0802D064: .4byte gBattleCommunication
-_0802D068: .4byte gBattlescriptCurrInstr
-_0802D06C:
- ldr r3, _0802D08C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D086:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D08C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start atkE9_setweatherballtype
-atkE9_setweatherballtype: @ 802D090
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802D130
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _0802D130
- ldr r2, _0802D0E0 @ =gBattleWeather
- ldrb r0, [r2]
- cmp r0, 0
- beq _0802D0CE
- ldr r1, _0802D0E4 @ =gBattleScripting
- movs r0, 0x2
- strb r0, [r1, 0xE]
-_0802D0CE:
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802D0EC
- ldr r0, _0802D0E8 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8B
- b _0802D12E
- .align 2, 0
-_0802D0E0: .4byte gBattleWeather
-_0802D0E4: .4byte gBattleScripting
-_0802D0E8: .4byte gBattleStruct
-_0802D0EC:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802D100
- ldr r0, _0802D0FC @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x85
- b _0802D12E
- .align 2, 0
-_0802D0FC: .4byte gBattleStruct
-_0802D100:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802D114
- ldr r0, _0802D110 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8A
- b _0802D12E
- .align 2, 0
-_0802D110: .4byte gBattleStruct
-_0802D114:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D128
- ldr r0, _0802D124 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x8F
- b _0802D12E
- .align 2, 0
-_0802D124: .4byte gBattleStruct
-_0802D128:
- ldr r0, _0802D140 @ =gBattleStruct
- ldr r1, [r0]
- movs r0, 0x80
-_0802D12E:
- strb r0, [r1, 0x13]
-_0802D130:
- ldr r1, _0802D144 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802D140: .4byte gBattleStruct
-_0802D144: .4byte gBattlescriptCurrInstr
- thumb_func_end atkE9_setweatherballtype
-
- thumb_func_start atkEA_tryrecycleitem
-atkEA_tryrecycleitem: @ 802D148
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802D1B0 @ =gActiveBattler
- ldr r0, _0802D1B4 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _0802D1B8 @ =gBattleStruct
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, 0xB8
- ldr r1, [r1]
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802D1C8
- ldr r4, _0802D1BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802D1C8
- ldr r1, _0802D1C0 @ =gLastUsedItem
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl BtlController_EmitSetMonData
- ldrb r0, [r7]
- bl MarkBattlerForControllerExec
- ldr r1, _0802D1C4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D1E2
- .align 2, 0
-_0802D1B0: .4byte gActiveBattler
-_0802D1B4: .4byte gBattlerAttacker
-_0802D1B8: .4byte gBattleStruct
-_0802D1BC: .4byte gBattleMons
-_0802D1C0: .4byte gLastUsedItem
-_0802D1C4: .4byte gBattlescriptCurrInstr
-_0802D1C8:
- ldr r3, _0802D1EC @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D1E2:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1EC: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEA_tryrecycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802D1F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802D260 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802D264 @ =gBattlerAttacker
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802D268 @ =sTerrainToType
- ldr r4, _0802D26C @ =gBattleTerrain
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802D278
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802D278
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802D270 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802D274 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802D292
- .align 2, 0
-_0802D260: .4byte gBattleMons
-_0802D264: .4byte gBattlerAttacker
-_0802D268: .4byte sTerrainToType
-_0802D26C: .4byte gBattleTerrain
-_0802D270: .4byte gBattleTextBuff1
-_0802D274: .4byte gBattlescriptCurrInstr
-_0802D278:
- ldr r3, _0802D29C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D292:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D29C: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start atkEC_pursuitrelated
-atkEC_pursuitrelated: @ 802D2A0
- push {r4-r6,lr}
- ldr r5, _0802D314 @ =gBattlerAttacker
- ldrb r0, [r5]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- ldr r4, _0802D318 @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _0802D31C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r6, 0x1
- ands r0, r6
- cmp r0, 0
- beq _0802D340
- ldr r0, _0802D320 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _0802D324 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802D340
- ldr r0, _0802D328 @ =gChosenActionByBattler
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D340
- ldr r1, _0802D32C @ =gChosenMoveByBattler
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802D340
- ldr r0, _0802D330 @ =gActionsByTurnOrder
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802D334 @ =gCurrentMove
- strh r2, [r0]
- ldr r1, _0802D338 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r0, _0802D33C @ =gBattleScripting
- strb r6, [r0, 0x18]
- ldrb r1, [r5]
- adds r0, 0x20
- strb r1, [r0]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802D35A
- .align 2, 0
-_0802D314: .4byte gBattlerAttacker
-_0802D318: .4byte gActiveBattler
-_0802D31C: .4byte gBattleTypeFlags
-_0802D320: .4byte gAbsentBattlerFlags
-_0802D324: .4byte gBitTable
-_0802D328: .4byte gChosenActionByBattler
-_0802D32C: .4byte gChosenMoveByBattler
-_0802D330: .4byte gActionsByTurnOrder
-_0802D334: .4byte gCurrentMove
-_0802D338: .4byte gBattlescriptCurrInstr
-_0802D33C: .4byte gBattleScripting
-_0802D340:
- ldr r3, _0802D360 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802D35A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D360: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEC_pursuitrelated
-
- thumb_func_start atkED_snatchsetbattlers
-atkED_snatchsetbattlers: @ 802D364
- push {r4,lr}
- ldr r1, _0802D388 @ =gEffectBattler
- ldr r3, _0802D38C @ =gBattlerAttacker
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802D390 @ =gBattlerTarget
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802D398
- ldr r1, _0802D394 @ =gBattleScripting
- ldrb r0, [r1, 0x17]
- strb r0, [r2]
- strb r0, [r3]
- b _0802D39E
- .align 2, 0
-_0802D388: .4byte gEffectBattler
-_0802D38C: .4byte gBattlerAttacker
-_0802D390: .4byte gBattlerTarget
-_0802D394: .4byte gBattleScripting
-_0802D398:
- ldr r1, _0802D3B0 @ =gBattleScripting
- ldrb r0, [r1, 0x17]
- strb r0, [r2]
-_0802D39E:
- ldrb r0, [r4]
- strb r0, [r1, 0x17]
- ldr r1, _0802D3B4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D3B0: .4byte gBattleScripting
-_0802D3B4: .4byte gBattlescriptCurrInstr
- thumb_func_end atkED_snatchsetbattlers
-
- thumb_func_start atkEE_removelightscreenreflect
-atkEE_removelightscreenreflect: @ 802D3B8
- push {r4,lr}
- ldr r0, _0802D400 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802D404 @ =gSideTimers
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802D3E0
- ldrb r1, [r4, 0x2]
- cmp r1, 0
- beq _0802D418
-_0802D3E0:
- ldr r2, _0802D408 @ =gSideStatuses
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802D40C @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802D410 @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x2]
- ldr r1, _0802D414 @ =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0x18]
- strb r0, [r1, 0x19]
- b _0802D41E
- .align 2, 0
-_0802D400: .4byte gBattlerAttacker
-_0802D404: .4byte gSideTimers
-_0802D408: .4byte gSideStatuses
-_0802D40C: .4byte 0x0000fffe
-_0802D410: .4byte 0x0000fffd
-_0802D414: .4byte gBattleScripting
-_0802D418:
- ldr r0, _0802D42C @ =gBattleScripting
- strb r1, [r0, 0x18]
- strb r1, [r0, 0x19]
-_0802D41E:
- ldr r1, _0802D430 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D42C: .4byte gBattleScripting
-_0802D430: .4byte gBattlescriptCurrInstr
- thumb_func_end atkEE_removelightscreenreflect
-
thumb_func_start atkEF_handleballthrow
atkEF_handleballthrow: @ 802D434
push {r4-r6,lr}