summaryrefslogtreecommitdiff
path: root/asm/battle_script_commands.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_script_commands.s')
-rw-r--r--asm/battle_script_commands.s4138
1 files changed, 0 insertions, 4138 deletions
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 1d0282835..ed848ba78 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -5,4144 +5,6 @@
.text
- thumb_func_start atk24
-atk24: @ 80223F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08022534 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _0802240A
- b _0802258A
-_0802240A:
- movs r5, 0
-_0802240C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08022538 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802243C
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802243C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_0802243C:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802240C
- cmp r6, 0
- bne _08022450
- ldr r0, _0802253C @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08022450:
- movs r6, 0
- movs r5, 0
-_08022454:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08022540 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022484
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022484
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08022484:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08022454
- ldr r2, _0802253C @ =gBattleOutcome
- cmp r6, 0
- bne _08022498
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08022498:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08022582
- ldr r0, _08022544 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x2
- ands r1, r2
- mov r8, r0
- cmp r1, 0
- beq _08022582
- movs r3, 0
- movs r5, 0
- ldr r0, _08022548 @ =gBattlersCount
- ldrb r1, [r0]
- mov r12, r0
- ldr r7, _0802254C @ =gBattlescriptCurrInstr
- cmp r3, r1
- bge _080224E4
- ldr r0, _08022550 @ =gHitMarker
- movs r6, 0x80
- lsls r6, 21
- ldr r4, [r0]
- adds r2, r1, 0
- ldr r1, _08022554 @ =gSpecialStatuses
-_080224C8:
- adds r0, r6, 0
- lsls r0, r5
- ands r0, r4
- cmp r0, 0
- beq _080224DC
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080224DC
- adds r3, 0x1
-_080224DC:
- adds r1, 0x28
- adds r5, 0x2
- cmp r5, r2
- blt _080224C8
-_080224E4:
- movs r2, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r1, [r0]
- cmp r5, r1
- bge _0802251E
- ldr r0, _08022550 @ =gHitMarker
- movs r4, 0x80
- lsls r4, 21
- mov r12, r4
- ldr r6, [r0]
- ldr r0, _08022554 @ =gSpecialStatuses
- adds r4, r1, 0
- adds r1, r0, 0
- adds r1, 0x14
-_08022502:
- mov r0, r12
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08022516
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022516
- adds r2, 0x1
-_08022516:
- adds r1, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08022502
-_0802251E:
- mov r1, r8
- ldr r0, [r1]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022558
- adds r0, r2, r3
- cmp r0, 0x1
- bgt _08022560
- b _0802257A
- .align 2, 0
-_08022534: .4byte gBattleControllerExecFlags
-_08022538: .4byte gPlayerParty
-_0802253C: .4byte gBattleOutcome
-_08022540: .4byte gEnemyParty
-_08022544: .4byte gBattleTypeFlags
-_08022548: .4byte gBattlersCount
-_0802254C: .4byte gBattlescriptCurrInstr
-_08022550: .4byte gHitMarker
-_08022554: .4byte gSpecialStatuses
-_08022558:
- cmp r2, 0
- beq _0802257A
- cmp r3, 0
- beq _0802257A
-_08022560:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _0802258A
-_0802257A:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _0802258A
-_08022582:
- ldr r1, _08022594 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802258A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022594: .4byte gBattlescriptCurrInstr
- thumb_func_end atk24
-
- thumb_func_start MoveValuesCleanUp
-MoveValuesCleanUp: @ 8022598
- ldr r1, _080225C0 @ =gMoveResultFlags
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080225C4 @ =gBattleScripting
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0, 0xE]
- ldr r0, _080225C8 @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _080225CC @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _080225D0 @ =gHitMarker
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _080225D4 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_080225C0: .4byte gMoveResultFlags
-_080225C4: .4byte gBattleScripting
-_080225C8: .4byte gCritMultiplier
-_080225CC: .4byte gBattleCommunication
-_080225D0: .4byte gHitMarker
-_080225D4: .4byte 0xffffbfff
- thumb_func_end MoveValuesCleanUp
-
- thumb_func_start atk25_movevaluescleanup
-atk25_movevaluescleanup: @ 80225D8
- push {lr}
- bl MoveValuesCleanUp
- ldr r1, _080225EC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080225EC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk25_movevaluescleanup
-
- thumb_func_start atk26_setmultihit
-atk26_setmultihit: @ 80225F0
- ldr r3, _08022600 @ =gMultiHitCounter
- ldr r2, _08022604 @ =gBattlescriptCurrInstr
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08022600: .4byte gMultiHitCounter
-_08022604: .4byte gBattlescriptCurrInstr
- thumb_func_end atk26_setmultihit
-
- thumb_func_start atk27_decrementmultihit
-atk27_decrementmultihit: @ 8022608
- push {lr}
- ldr r1, _08022624 @ =gMultiHitCounter
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _0802262C
- ldr r1, _08022628 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08022646
- .align 2, 0
-_08022624: .4byte gMultiHitCounter
-_08022628: .4byte gBattlescriptCurrInstr
-_0802262C:
- ldr r3, _0802264C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08022646:
- pop {r0}
- bx r0
- .align 2, 0
-_0802264C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk27_decrementmultihit
-
- thumb_func_start atk28_goto
-atk28_goto: @ 8022650
- ldr r3, _0802266C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_0802266C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk28_goto
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8022670
- push {r4-r6,lr}
- ldr r3, _080226B4 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08022708
- lsls r0, r6, 2
- ldr r1, _080226B8 @ =_080226BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080226B4: .4byte gBattlescriptCurrInstr
-_080226B8: .4byte _080226BC
- .align 2, 0
-_080226BC:
- .4byte _080226D4
- .4byte _080226DC
- .4byte _080226E4
- .4byte _080226EC
- .4byte _080226F4
- .4byte _080226FE
-_080226D4:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08022708
- b _08022706
-_080226DC:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08022708
- b _08022706
-_080226E4:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08022708
- b _08022706
-_080226EC:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08022708
- b _08022706
-_080226F4:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08022708
- b _08022706
-_080226FE:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08022708
-_08022706:
- str r2, [r3]
-_08022708:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start atk2A_jumpifhalfword
-atk2A_jumpifhalfword: @ 8022710
- push {r4-r6,lr}
- ldr r3, _0802275C @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _080227B0
- lsls r0, r6, 2
- ldr r1, _08022760 @ =_08022764
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802275C: .4byte gBattlescriptCurrInstr
-_08022760: .4byte _08022764
- .align 2, 0
-_08022764:
- .4byte _0802277C
- .4byte _08022784
- .4byte _0802278C
- .4byte _08022794
- .4byte _0802279C
- .4byte _080227A6
-_0802277C:
- ldrh r0, [r5]
- cmp r0, r4
- bne _080227B0
- b _080227AE
-_08022784:
- ldrh r0, [r5]
- cmp r0, r4
- beq _080227B0
- b _080227AE
-_0802278C:
- ldrh r0, [r5]
- cmp r0, r4
- bls _080227B0
- b _080227AE
-_08022794:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _080227B0
- b _080227AE
-_0802279C:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _080227B0
- b _080227AE
-_080227A6:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _080227B0
-_080227AE:
- str r2, [r3]
-_080227B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2A_jumpifhalfword
-
- thumb_func_start atk2B_jumpifword
-atk2B_jumpifword: @ 80227B8
- push {r4-r6,lr}
- ldr r3, _08022810 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08022864
- lsls r0, r6, 2
- ldr r1, _08022814 @ =_08022818
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08022810: .4byte gBattlescriptCurrInstr
-_08022814: .4byte _08022818
- .align 2, 0
-_08022818:
- .4byte _08022830
- .4byte _08022838
- .4byte _08022840
- .4byte _08022848
- .4byte _08022850
- .4byte _0802285A
-_08022830:
- ldr r0, [r5]
- cmp r0, r4
- bne _08022864
- b _08022862
-_08022838:
- ldr r0, [r5]
- cmp r0, r4
- beq _08022864
- b _08022862
-_08022840:
- ldr r0, [r5]
- cmp r0, r4
- bls _08022864
- b _08022862
-_08022848:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08022864
- b _08022862
-_08022850:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08022864
- b _08022862
-_0802285A:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08022864
-_08022862:
- str r2, [r3]
-_08022864:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk2B_jumpifword
-
- thumb_func_start atk2C_jumpifarrayequal
-atk2C_jumpifarrayequal: @ 802286C
- push {r4-r7,lr}
- ldr r2, _080228C4 @ =gBattlescriptCurrInstr
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _080228E4
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _080228C8
- adds r0, r3, 0
- b _080228E0
- .align 2, 0
-_080228C4: .4byte gBattlescriptCurrInstr
-_080228C8:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _080228E4
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _080228C8
- ldr r0, [r2]
-_080228E0:
- adds r0, 0xE
- str r0, [r2]
-_080228E4:
- cmp r1, r6
- bne _080228EC
- mov r7, r12
- str r7, [r2]
-_080228EC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2C_jumpifarrayequal
-
- thumb_func_start atk2D_jumpifarraynotequal
-atk2D_jumpifarraynotequal: @ 80228F4
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08022968 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _0802295E
-_08022942:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08022950
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08022950:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08022942
-_0802295E:
- cmp r7, r6
- beq _0802296C
- mov r0, r12
- b _08022970
- .align 2, 0
-_08022968: .4byte gBattlescriptCurrInstr
-_0802296C:
- ldr r0, [r3]
- adds r0, 0xE
-_08022970:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk2D_jumpifarraynotequal
-
- thumb_func_start atk2E_setbyte
-atk2E_setbyte: @ 8022978
- ldr r3, _0802299C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802299C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2E_setbyte
-
- thumb_func_start atk2F_addbyte
-atk2F_addbyte: @ 80229A0
- ldr r3, _080229C8 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080229C8: .4byte gBattlescriptCurrInstr
- thumb_func_end atk2F_addbyte
-
- thumb_func_start atk30_subbyte
-atk30_subbyte: @ 80229CC
- ldr r3, _080229F4 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080229F4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk30_subbyte
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 80229F8
- push {r4-r6,lr}
- ldr r3, _08022A48 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08022A3C
-_08022A2E:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08022A2E
-_08022A3C:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A48: .4byte gBattlescriptCurrInstr
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_copyarraywithindex
-atk32_copyarraywithindex: @ 8022A4C
- push {r4-r7,lr}
- ldr r3, _08022AB4 @ =gBattlescriptCurrInstr
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _08022AA8
-_08022A96:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08022A96
-_08022AA8:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022AB4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk32_copyarraywithindex
-
- thumb_func_start atk33_orbyte
-atk33_orbyte: @ 8022AB8
- ldr r3, _08022AE0 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08022AE0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk33_orbyte
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 8022AE4
- push {r4,lr}
- ldr r4, _08022B18 @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022B18: .4byte gBattlescriptCurrInstr
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 8022B1C
- push {r4,lr}
- ldr r4, _08022B5C @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022B5C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk35_orword
-
- thumb_func_start atk36_bicbyte
-atk36_bicbyte: @ 8022B60
- ldr r3, _08022B88 @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08022B88: .4byte gBattlescriptCurrInstr
- thumb_func_end atk36_bicbyte
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8022B8C
- push {r4,lr}
- ldr r4, _08022BC0 @ =gBattlescriptCurrInstr
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022BC0: .4byte gBattlescriptCurrInstr
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8022BC4
- push {r4,lr}
- ldr r4, _08022C04 @ =gBattlescriptCurrInstr
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022C04: .4byte gBattlescriptCurrInstr
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 8022C08
- push {r4,r5,lr}
- ldr r0, _08022C3C @ =gBattleControllerExecFlags
- ldr r4, [r0]
- cmp r4, 0
- bne _08022C34
- ldr r5, _08022C40 @ =gBattlescriptCurrInstr
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08022C44 @ =gPauseCounterBattle
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _08022C34
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_08022C34:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022C3C: .4byte gBattleControllerExecFlags
-_08022C40: .4byte gBattlescriptCurrInstr
-_08022C44: .4byte gPauseCounterBattle
- thumb_func_end atk39_pause
-
- thumb_func_start atk3A_waitstate
-atk3A_waitstate: @ 8022C48
- push {lr}
- ldr r0, _08022C60 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08022C5A
- ldr r1, _08022C64 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08022C5A:
- pop {r0}
- bx r0
- .align 2, 0
-_08022C60: .4byte gBattleControllerExecFlags
-_08022C64: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3A_waitstate
-
- thumb_func_start atk3B_healthbar_update
-atk3B_healthbar_update: @ 8022C68
- push {lr}
- ldr r0, _08022C7C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08022C88
- ldr r0, _08022C80 @ =gActiveBattler
- ldr r1, _08022C84 @ =gBattlerTarget
- b _08022C8C
- .align 2, 0
-_08022C7C: .4byte gBattlescriptCurrInstr
-_08022C80: .4byte gActiveBattler
-_08022C84: .4byte gBattlerTarget
-_08022C88:
- ldr r0, _08022CB0 @ =gActiveBattler
- ldr r1, _08022CB4 @ =gBattlerAttacker
-_08022C8C:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _08022CB8 @ =gBattleMoveDamage
- ldrh r1, [r0]
- movs r0, 0
- bl BtlController_EmitHealthBarUpdate
- ldr r0, _08022CB0 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBattlerForControllerExec
- ldr r1, _08022CBC @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08022CB0: .4byte gActiveBattler
-_08022CB4: .4byte gBattlerAttacker
-_08022CB8: .4byte gBattleMoveDamage
-_08022CBC: .4byte gBattlescriptCurrInstr
- thumb_func_end atk3B_healthbar_update
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8022CC0
- push {lr}
- bl BattleScriptPop
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start atk3D_end
-atk3D_end: @ 8022CCC
- ldr r0, _08022CE0 @ =gMoveResultFlags
- movs r1, 0
- strb r1, [r0]
- ldr r0, _08022CE4 @ =gActiveBattler
- strb r1, [r0]
- ldr r1, _08022CE8 @ =gCurrentActionFuncId
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08022CE0: .4byte gMoveResultFlags
-_08022CE4: .4byte gActiveBattler
-_08022CE8: .4byte gCurrentActionFuncId
- thumb_func_end atk3D_end
-
- thumb_func_start atk3E_end2
-atk3E_end2: @ 8022CEC
- ldr r1, _08022CFC @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08022D00 @ =gCurrentActionFuncId
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08022CFC: .4byte gActiveBattler
-_08022D00: .4byte gCurrentActionFuncId
- thumb_func_end atk3E_end2
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 8022D04
- push {lr}
- bl BattleScriptPop
- ldr r3, _08022D38 @ =gBattleResources
- ldr r0, [r3]
- ldr r0, [r0, 0xC]
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08022D1E
- subs r0, 0x1
- strb r0, [r1]
-_08022D1E:
- ldr r2, _08022D3C @ =gBattleMainFunc
- ldr r0, [r3]
- ldr r1, [r0, 0xC]
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_08022D38: .4byte gBattleResources
-_08022D3C: .4byte gBattleMainFunc
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 8022D40
- push {r4,lr}
- ldr r4, _08022D6C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- adds r0, 0x5
- bl BattleScriptPush
- ldr r2, [r4]
- 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, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022D6C: .4byte gBattlescriptCurrInstr
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8022D70
- push {r4,lr}
- ldr r4, _08022DB8 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08022DBC @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08022D9E
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08022DC0
-_08022D9E:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022DC4
- .align 2, 0
-_08022DB8: .4byte gBattlescriptCurrInstr
-_08022DBC: .4byte gBattleMons
-_08022DC0:
- adds r0, r3, 0x7
- str r0, [r4]
-_08022DC4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start atk43_jumpifabilitypresent
-atk43_jumpifabilitypresent: @ 8022DCC
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08022E04 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08022E08
- 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 _08022E0E
- .align 2, 0
-_08022E04: .4byte gBattlescriptCurrInstr
-_08022E08:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08022E0E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk43_jumpifabilitypresent
-
- thumb_func_start atk44_endselectionscript
-atk44_endselectionscript: @ 8022E18
- ldr r0, _08022E2C @ =gBattlerAttacker
- ldrb r0, [r0]
- ldr r1, _08022E30 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x54
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08022E2C: .4byte gBattlerAttacker
-_08022E30: .4byte gBattleStruct
- thumb_func_end atk44_endselectionscript
-
- thumb_func_start atk45_playanimation
-atk45_playanimation: @ 8022E34
- push {r4-r6,lr}
- ldr r4, _08022E84 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r6, _08022E88 @ =gActiveBattler
- strb r0, [r6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r5, [r2, 0x2]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _08022E6E
- cmp r0, 0x11
- beq _08022E6E
- cmp r0, 0x2
- beq _08022E6E
- cmp r0, 0x19
- bne _08022E8C
-_08022E6E:
- ldr r4, _08022E84 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl BtlController_EmitBattleAnimation
- ldr r0, _08022E88 @ =gActiveBattler
- ldrb r0, [r0]
- b _08022EE4
- .align 2, 0
-_08022E84: .4byte gBattlescriptCurrInstr
-_08022E88: .4byte gActiveBattler
-_08022E8C:
- ldr r0, _08022EA4 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08022EAC
- adds r0, r2, 0x7
- bl BattleScriptPush
- ldr r0, _08022EA8 @ =BattleScript_Pausex20
- b _08022EEC
- .align 2, 0
-_08022EA4: .4byte gHitMarker
-_08022EA8: .4byte BattleScript_Pausex20
-_08022EAC:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08022ED8
- ldr r1, _08022ED0 @ =gStatuses3
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08022ED4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08022ED8
- adds r0, r2, 0x7
- b _08022EEC
- .align 2, 0
-_08022ED0: .4byte gStatuses3
-_08022ED4: .4byte 0x000400c0
-_08022ED8:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl BtlController_EmitBattleAnimation
- ldrb r0, [r6]
-_08022EE4:
- bl MarkBattlerForControllerExec
- ldr r0, [r4]
- adds r0, 0x7
-_08022EEC:
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk45_playanimation
-
- thumb_func_start atk46_playanimation2
-atk46_playanimation2: @ 8022EF4
- push {r4-r7,lr}
- ldr r6, _08022F5C @ =gBattlescriptCurrInstr
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r7, _08022F60 @ =gActiveBattler
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _08022F3E
- cmp r0, 0x11
- beq _08022F3E
- cmp r0, 0x2
- bne _08022F64
-_08022F3E:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl BtlController_EmitBattleAnimation
- ldr r0, _08022F60 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBattlerForControllerExec
- ldr r1, _08022F5C @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08022FBA
- .align 2, 0
-_08022F5C: .4byte gBattlescriptCurrInstr
-_08022F60: .4byte gActiveBattler
-_08022F64:
- ldr r0, _08022F74 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08022F78
- adds r0, r2, 0
- b _08022FB6
- .align 2, 0
-_08022F74: .4byte gHitMarker
-_08022F78:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08022FA4
- ldr r1, _08022F9C @ =gStatuses3
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08022FA0 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08022FA4
- adds r0, r2, 0
- b _08022FB6
- .align 2, 0
-_08022F9C: .4byte gStatuses3
-_08022FA0: .4byte 0x000400c0
-_08022FA4:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl BtlController_EmitBattleAnimation
- ldrb r0, [r7]
- bl MarkBattlerForControllerExec
- ldr r0, [r6]
-_08022FB6:
- adds r0, 0xA
- str r0, [r6]
-_08022FBA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk46_playanimation2
-
- thumb_func_start atk47_setgraphicalstatchangevalues
-atk47_setgraphicalstatchangevalues: @ 8022FC0
- push {r4,lr}
- movs r3, 0
- ldr r1, _08022FDC @ =gBattleScripting
- ldrb r0, [r1, 0x1A]
- movs r2, 0xF0
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0x20
- beq _08022FEE
- cmp r2, 0x20
- bgt _08022FE0
- cmp r2, 0x10
- beq _08022FEA
- b _08022FF8
- .align 2, 0
-_08022FDC: .4byte gBattleScripting
-_08022FE0:
- cmp r2, 0x90
- beq _08022FF2
- cmp r2, 0xA0
- beq _08022FF6
- b _08022FF8
-_08022FEA:
- movs r3, 0xF
- b _08022FF8
-_08022FEE:
- movs r3, 0x27
- b _08022FF8
-_08022FF2:
- movs r3, 0x16
- b _08022FF8
-_08022FF6:
- movs r3, 0x2E
-_08022FF8:
- ldrb r1, [r4, 0x1A]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- movs r1, 0
- strb r0, [r4, 0x10]
- strb r1, [r4, 0x11]
- ldr r1, _08023018 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023018: .4byte gBattlescriptCurrInstr
- thumb_func_end atk47_setgraphicalstatchangevalues
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 802301C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08023090 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl GetBattlerForBattleScript
- ldr r2, _08023094 @ =gActiveBattler
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08023130
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802305C
- movs r1, 0x2D
-_0802305C:
- cmp r4, 0
- beq _08023104
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08023098 @ =gUnknown_2023BFC
- mov r9, r0
- lsls r5, r1, 16
-_0802306A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080230F6
- ldr r0, _08023090 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802309C
- ldr r0, _08023094 @ =gActiveBattler
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080230E4
- .align 2, 0
-_08023090: .4byte gBattlescriptCurrInstr
-_08023094: .4byte gActiveBattler
-_08023098: .4byte gUnknown_2023BFC
-_0802309C:
- ldr r6, _08023120 @ =gActiveBattler
- ldrb r0, [r6]
- str r3, [sp]
- bl GetBattlerPosition
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08023124 @ =gSideTimers
- adds r0, r1
- ldrb r0, [r0, 0x4]
- ldr r3, [sp]
- cmp r0, 0
- bne _080230F6
- ldr r0, _08023128 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080230F6
- cmp r0, 0x49
- beq _080230F6
- cmp r0, 0x33
- bne _080230DA
- cmp r7, 0x6
- beq _080230F6
-_080230DA:
- cmp r0, 0x34
- bne _080230E2
- cmp r7, 0x1
- beq _080230F6
-_080230E2:
- adds r0, r7, r2
-_080230E4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080230F6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080230F6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802306A
-_08023104:
- ldr r0, _0802312C @ =gBattlescriptCurrInstr
- mov r9, r0
- cmp r3, 0x1
- ble _08023192
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08023192
- movs r0, 0x3A
- b _08023190
- .align 2, 0
-_08023120: .4byte gActiveBattler
-_08023124: .4byte gSideTimers
-_08023128: .4byte gBattleMons
-_0802312C: .4byte gBattlescriptCurrInstr
-_08023130:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802313C
- movs r1, 0x26
-_0802313C:
- mov r9, r5
- cmp r4, 0
- beq _08023178
- ldr r6, _080231AC @ =gUnknown_2023BFC
- adds r5, r2, 0
- lsls r2, r1, 16
-_08023148:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802316A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802316A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802316A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08023148
-_08023178:
- cmp r3, 0x1
- ble _08023192
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08023192
- movs r0, 0x38
-_08023190:
- mov r8, r0
-_08023192:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080231B0
- cmp r3, 0x1
- bgt _080231B0
- adds r0, r2, 0x4
- mov r1, r9
- b _080231FE
- .align 2, 0
-_080231AC: .4byte gUnknown_2023BFC
-_080231B0:
- cmp r3, 0
- beq _080231F8
- ldr r4, _080231EC @ =gBattleScripting
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _080231F8
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl BtlController_EmitBattleAnimation
- ldr r0, _080231F0 @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBattlerForControllerExec
- ldr r0, _080231F4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080231E8
- cmp r3, 0x1
- ble _080231E8
- movs r0, 0x1
- strb r0, [r4, 0x1B]
-_080231E8:
- ldr r1, _080231F4 @ =gBattlescriptCurrInstr
- b _080231FA
- .align 2, 0
-_080231EC: .4byte gBattleScripting
-_080231F0: .4byte gActiveBattler
-_080231F4: .4byte gBattlescriptCurrInstr
-_080231F8:
- mov r1, r9
-_080231FA:
- ldr r0, [r1]
- adds r0, 0x4
-_080231FE:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start atk49_moveend
-atk49_moveend: @ 8023210
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r0, 0
- mov r10, r0
- ldr r2, _08023260 @ =gChosenMove
- ldrh r1, [r2]
- ldr r0, _08023264 @ =0x0000ffff
- movs r3, 0
- str r3, [sp, 0x18]
- cmp r1, r0
- beq _08023232
- ldrh r2, [r2]
- str r2, [sp, 0x18]
-_08023232:
- ldr r0, _08023268 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- str r4, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _0802326C @ =gBattleMons
- ldr r0, _08023270 @ =gBattlerAttacker
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08023278
- ldr r1, _08023274 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _08023282
- .align 2, 0
-_08023260: .4byte gChosenMove
-_08023264: .4byte 0x0000ffff
-_08023268: .4byte gBattlescriptCurrInstr
-_0802326C: .4byte gBattleMons
-_08023270: .4byte gBattlerAttacker
-_08023274: .4byte gEnigmaBerries
-_08023278:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_08023282:
- str r0, [sp, 0x8]
- ldr r1, _080232A4 @ =gBattleStruct
- ldr r0, _080232A8 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, 0xC8
- ldr r1, [r1]
- adds r0, r1, r0
- str r0, [sp, 0xC]
- ldrb r0, [r1, 0x13]
- cmp r0, 0
- beq _08023334
- movs r5, 0x3F
- ands r5, r0
- str r5, [sp, 0x4]
- b _08023346
- .align 2, 0
-_080232A4: .4byte gBattleStruct
-_080232A8: .4byte gBattlerAttacker
-_080232AC:
- ldr r4, _080232C0 @ =gActiveBattler
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl BtlController_EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- b _0802379E
- .align 2, 0
-_080232C0: .4byte gActiveBattler
-_080232C4:
- ldr r4, _080232E8 @ =gActiveBattler
- strb r2, [r4]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r0, [r1]
- ldr r2, _080232EC @ =0xfffbff3f
- ands r0, r2
- str r0, [r1]
- b _0802379E
- .align 2, 0
-_080232E8: .4byte gActiveBattler
-_080232EC: .4byte 0xfffbff3f
-_080232F0:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _08023324 @ =gBattleScripting
- strb r4, [r0, 0x14]
- bl MoveValuesCleanUp
- ldr r2, _08023328 @ =gBattleScriptsForMoveEffects
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl BattleScriptPush
- ldr r1, _0802332C @ =gBattlescriptCurrInstr
- ldr r0, _08023330 @ =BattleScript_FlushMessageBox
- bl _08023BFC
- .align 2, 0
-_08023324: .4byte gBattleScripting
-_08023328: .4byte gBattleScriptsForMoveEffects
-_0802332C: .4byte gBattlescriptCurrInstr
-_08023330: .4byte BattleScript_FlushMessageBox
-_08023334:
- ldr r2, _0802334C @ =gBattleMoves
- ldr r0, _08023350 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_08023346:
- ldr r1, _08023354 @ =gBattleScripting
- mov r12, r1
- b _08023362
- .align 2, 0
-_0802334C: .4byte gBattleMoves
-_08023350: .4byte gCurrentMove
-_08023354: .4byte gBattleScripting
-_08023358:
- mov r2, r10
- cmp r2, 0
- beq _08023362
- bl _08023BE8
-_08023362:
- mov r3, r12
- ldrb r0, [r3, 0x14]
- cmp r0, 0x11
- bls _0802336E
- bl _08023BB4
-_0802336E:
- lsls r0, 2
- ldr r1, _08023378 @ =_0802337C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023378: .4byte _0802337C
- .align 2, 0
-_0802337C:
- .4byte _080233C4
- .4byte _080234A0
- .4byte _0802355C
- .4byte _08023580
- .4byte _08023598
- .4byte _080235C0
- .4byte _080235E4
- .4byte _0802368C
- .4byte _08023702
- .4byte _08023738
- .4byte _080237D8
- .4byte _080236CC
- .4byte _080236EC
- .4byte _0802381C
- .4byte _08023860
- .4byte _08023A40
- .4byte _08023B28
- .4byte _08023BB4
-_080233C4:
- ldr r6, _0802347C @ =gBattleMons
- ldr r5, _08023480 @ =gBattlerTarget
- ldrb r3, [r5]
- movs r7, 0x58
- adds r2, r3, 0
- muls r2, r7
- adds r0, r6, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 16
- ands r0, r1
- cmp r0, 0
- bne _080233E4
- b _080237C8
-_080233E4:
- adds r0, r2, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080233EE
- b _080237C8
-_080233EE:
- ldr r0, _08023484 @ =gBattlerAttacker
- ldrb r1, [r0]
- cmp r1, r3
- bne _080233F8
- b _080237C8
-_080233F8:
- adds r0, r1, 0
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _08023410
- b _080237C8
-_08023410:
- ldr r0, _08023488 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802341E
- b _080237C8
-_0802341E:
- ldr r2, _0802348C @ =gSpecialStatuses
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r3
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08023442
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08023442
- b _080237C8
-_08023442:
- ldr r2, _08023490 @ =gBattleMoves
- ldr r0, _08023494 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023458
- b _080237C8
-_08023458:
- adds r0, r3, 0
- muls r0, r7
- adds r1, r0, r6
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- ble _0802346A
- b _080237C8
-_0802346A:
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl BattleScriptPushCursor
- ldr r1, _08023498 @ =gBattlescriptCurrInstr
- ldr r0, _0802349C @ =BattleScript_RageIsBuilding
- str r0, [r1]
- b _080236FC
- .align 2, 0
-_0802347C: .4byte gBattleMons
-_08023480: .4byte gBattlerTarget
-_08023484: .4byte gBattlerAttacker
-_08023488: .4byte gMoveResultFlags
-_0802348C: .4byte gSpecialStatuses
-_08023490: .4byte gBattleMoves
-_08023494: .4byte gCurrentMove
-_08023498: .4byte gBattlescriptCurrInstr
-_0802349C: .4byte BattleScript_RageIsBuilding
-_080234A0:
- ldr r4, _0802353C @ =gBattleMons
- ldr r6, _08023540 @ =gBattlerTarget
- ldrb r2, [r6]
- movs r5, 0x58
- mov r12, r5
- mov r1, r12
- muls r1, r2
- adds r7, r4, 0
- adds r7, 0x4C
- adds r5, r1, r7
- ldr r3, [r5]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- bne _080234C0
- b _080237C8
-_080234C0:
- adds r0, r1, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080234CA
- b _080237C8
-_080234CA:
- ldr r0, _08023544 @ =gBattlerAttacker
- ldrb r0, [r0]
- cmp r0, r2
- bne _080234D4
- b _080237C8
-_080234D4:
- ldr r0, _08023548 @ =gSpecialStatuses
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _080234E8
- b _080237C8
-_080234E8:
- ldr r0, _0802354C @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080234F6
- b _080237C8
-_080234F6:
- ldr r0, [sp, 0x4]
- cmp r0, 0xA
- beq _080234FE
- b _080237C8
-_080234FE:
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r5]
- ldr r4, _08023550 @ =gActiveBattler
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r6]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl BtlController_EmitSetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- bl BattleScriptPushCursor
- ldr r1, _08023554 @ =gBattlescriptCurrInstr
- ldr r0, _08023558 @ =BattleScript_DefrostedViaFireMove
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _080237C8
- .align 2, 0
-_0802353C: .4byte gBattleMons
-_08023540: .4byte gBattlerTarget
-_08023544: .4byte gBattlerAttacker
-_08023548: .4byte gSpecialStatuses
-_0802354C: .4byte gMoveResultFlags
-_08023550: .4byte gActiveBattler
-_08023554: .4byte gBattlescriptCurrInstr
-_08023558: .4byte BattleScript_DefrostedViaFireMove
-_0802355C:
- ldr r0, _0802357C @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08023576
- b _080237C8
-_08023576:
- movs r3, 0x1
- mov r10, r3
- b _080237C8
- .align 2, 0
-_0802357C: .4byte gBattlerTarget
-_08023580:
- ldr r0, _08023594 @ =gBattlerTarget
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- b _080236F6
- .align 2, 0
-_08023594: .4byte gBattlerTarget
-_08023598:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080235B0
- b _080237C8
-_080235B0:
- movs r5, 0x1
- mov r10, r5
- ldr r0, _080235BC @ =gBattleScripting
- mov r12, r0
- b _08023BB4
- .align 2, 0
-_080235BC: .4byte gBattleScripting
-_080235C0:
- ldr r0, _080235E0 @ =gBattlerAttacker
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _080235DA
- b _080237C8
-_080235DA:
- movs r1, 0x1
- mov r10, r1
- b _080237C8
- .align 2, 0
-_080235E0: .4byte gBattlerAttacker
-_080235E4:
- ldr r0, _08023674 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08023628
- ldr r2, [sp, 0x8]
- cmp r2, 0x1D
- bne _08023628
- ldr r0, _08023678 @ =gChosenMove
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, 0xA5
- beq _08023628
- ldr r4, [sp, 0xC]
- ldrh r1, [r4]
- cmp r1, 0
- beq _08023610
- ldr r0, _0802367C @ =0x0000ffff
- cmp r1, r0
- bne _08023628
-_08023610:
- cmp r2, 0xE2
- bne _08023622
- ldr r0, _08023680 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08023622
- b _08023AFA
-_08023622:
- ldrh r0, [r3]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08023628:
- movs r4, 0
- ldr r2, _08023684 @ =gBattleMons
- ldr r3, _08023688 @ =gBattlerAttacker
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08023660
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_0802364A:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08023660
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802364A
-_08023660:
- cmp r4, 0x4
- bne _0802366A
- movs r0, 0
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_0802366A:
- mov r2, r12
- ldrb r0, [r2, 0x14]
- adds r0, 0x1
- strb r0, [r2, 0x14]
- b _08023BB4
- .align 2, 0
-_08023674: .4byte gHitMarker
-_08023678: .4byte gChosenMove
-_0802367C: .4byte 0x0000ffff
-_08023680: .4byte gMoveResultFlags
-_08023684: .4byte gBattleMons
-_08023688: .4byte gBattlerAttacker
-_0802368C:
- movs r4, 0
- ldr r0, _080236C0 @ =gBattlersCount
- ldrb r3, [r0]
- cmp r4, r3
- blt _08023698
- b _08023846
-_08023698:
- ldr r7, _080236C4 @ =gBattleStruct
- movs r6, 0
- movs r3, 0xD0
- adds r5, r0, 0
- ldr r2, _080236C8 @ =gBattleMons
-_080236A2:
- ldr r0, [r7]
- adds r0, r3
- ldrh r1, [r0]
- cmp r1, 0
- beq _080236B0
- strh r1, [r2, 0x2E]
- strh r6, [r0]
-_080236B0:
- adds r3, 0x2
- adds r2, 0x58
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _080236A2
- b _08023846
- .align 2, 0
-_080236C0: .4byte gBattlersCount
-_080236C4: .4byte gBattleStruct
-_080236C8: .4byte gBattleMons
-_080236CC:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ItemBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
- movs r2, 0x1
- mov r10, r2
- ldr r3, _080236E8 @ =gBattleScripting
- mov r12, r3
- b _08023BB4
- .align 2, 0
-_080236E8: .4byte gBattleScripting
-_080236EC:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl ItemBattleEffects
-_080236F6:
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
-_080236FC:
- movs r4, 0x1
- mov r10, r4
- b _080237C8
-_08023702:
- ldr r1, _08023728 @ =gStatuses3
- ldr r0, _0802372C @ =gBattlerAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08023730 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08023718
- b _08023AFA
-_08023718:
- ldr r0, _08023734 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023726
- b _080232AC
-_08023726:
- b _08023AFA
- .align 2, 0
-_08023728: .4byte gStatuses3
-_0802372C: .4byte gBattlerAttacker
-_08023730: .4byte 0x000400c0
-_08023734: .4byte gHitMarker
-_08023738:
- ldr r0, _080237A8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023764
- ldr r1, _080237AC @ =gStatuses3
- ldr r0, _080237B0 @ =gBattlerAttacker
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080237B4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08023764
- adds r0, r2, 0
- bl WasUnableToUseMove
- lsls r0, 24
- cmp r0, 0
- beq _080237C8
-_08023764:
- ldr r4, _080237B8 @ =gActiveBattler
- ldr r5, _080237B0 @ =gBattlerAttacker
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitSpriteInvisibility
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r0, _080237AC @ =gStatuses3
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080237BC @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _080237C0 @ =gSpecialStatuses
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0802379E:
- ldr r1, _080237C4 @ =gBattleScripting
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- b _08023BFE
- .align 2, 0
-_080237A8: .4byte gMoveResultFlags
-_080237AC: .4byte gStatuses3
-_080237B0: .4byte gBattlerAttacker
-_080237B4: .4byte 0x000400c0
-_080237B8: .4byte gActiveBattler
-_080237BC: .4byte 0xfffbff3f
-_080237C0: .4byte gSpecialStatuses
-_080237C4: .4byte gBattleScripting
-_080237C8:
- ldr r1, _080237D4 @ =gBattleScripting
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- mov r12, r1
- b _08023BB4
- .align 2, 0
-_080237D4: .4byte gBattleScripting
-_080237D8:
- ldr r0, _08023808 @ =gSpecialStatuses
- ldr r6, _0802380C @ =gBattlerTarget
- ldrb r2, [r6]
- lsls r3, r2, 2
- adds r1, r3, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _08023846
- ldr r0, _08023810 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r2, r0
- bcs _08023846
- ldr r5, _08023814 @ =gStatuses3
- adds r0, r3, r5
- ldr r0, [r0]
- ldr r1, _08023818 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08023806
- b _080232C4
-_08023806:
- b _08023846
- .align 2, 0
-_08023808: .4byte gSpecialStatuses
-_0802380C: .4byte gBattlerTarget
-_08023810: .4byte gBattlersCount
-_08023814: .4byte gStatuses3
-_08023818: .4byte 0x000400c0
-_0802381C:
- movs r4, 0
- ldr r0, _08023850 @ =gBattlersCount
- ldrb r2, [r0]
- cmp r4, r2
- bge _08023846
- ldr r2, _08023854 @ =gDisableStructs
- ldr r5, _08023858 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _0802385C @ =gUnknown_2023C34
-_0802382E:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _0802383A
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_0802383A:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _0802382E
-_08023846:
- mov r1, r12
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- b _08023BB4
- .align 2, 0
-_08023850: .4byte gBattlersCount
-_08023854: .4byte gDisableStructs
-_08023858: .4byte 0xfeffffff
-_0802385C: .4byte gUnknown_2023C34
-_08023860:
- ldr r1, _08023914 @ =gHitMarker
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08023918 @ =gBattlerAttacker
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _0802388A
- ldr r0, _0802391C @ =gActiveBattler
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08023920 @ =gBattlerTarget
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08023924 @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_0802388A:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080238A6
- ldr r0, _08023928 @ =gLastPrintedMoves
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _0802392C @ =gChosenMove
- ldrh r0, [r0]
- strh r0, [r1]
-_080238A6:
- ldr r0, _08023930 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08023934 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _080238C0
- b _08023A2C
-_080238C0:
- ldr r0, _08023938 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x91
- ldrb r1, [r1]
- ands r1, r3
- adds r7, r0, 0
- cmp r1, 0
- beq _080238D2
- b _08023A2C
-_080238D2:
- ldr r0, _0802393C @ =gBattleMoves
- ldr r2, [sp, 0x18]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r1, [r1]
- mov r8, r0
- cmp r1, 0x7F
- bne _080238E8
- b _08023A2C
-_080238E8:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802394C
- ldr r0, _08023940 @ =gLastMoves
- lsls r1, r4, 1
- adds r1, r0
- ldr r0, _0802392C @ =gChosenMove
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, _08023944 @ =gLastResultingMoves
- mov r3, r9
- ldrb r1, [r3]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08023948 @ =gCurrentMove
- ldrh r0, [r0]
- strh r0, [r1]
- b _08023966
- .align 2, 0
-_08023914: .4byte gHitMarker
-_08023918: .4byte gBattlerAttacker
-_0802391C: .4byte gActiveBattler
-_08023920: .4byte gBattlerTarget
-_08023924: .4byte 0xffffefff
-_08023928: .4byte gLastPrintedMoves
-_0802392C: .4byte gChosenMove
-_08023930: .4byte gAbsentBattlerFlags
-_08023934: .4byte gBitTable
-_08023938: .4byte gBattleStruct
-_0802393C: .4byte gBattleMoves
-_08023940: .4byte gLastMoves
-_08023944: .4byte gLastResultingMoves
-_08023948: .4byte gCurrentMove
-_0802394C:
- ldr r1, _080239B4 @ =gLastMoves
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _080239B8 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _080239BC @ =gLastResultingMoves
- mov r4, r9
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08023966:
- ldr r2, _080239C0 @ =gBattlerTarget
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08023984
- ldr r0, _080239C4 @ =gLastHitBy
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08023984:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08023A20
- ldr r0, _080239C8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023A20
- ldr r0, _080239CC @ =gChosenMove
- ldrh r3, [r0]
- ldr r0, _080239B8 @ =0x0000ffff
- cmp r3, r0
- bne _080239D4
- ldr r1, _080239D0 @ =gLastLandedMoves
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
- b _08023A2C
- .align 2, 0
-_080239B4: .4byte gLastMoves
-_080239B8: .4byte 0x0000ffff
-_080239BC: .4byte gLastResultingMoves
-_080239C0: .4byte gBattlerTarget
-_080239C4: .4byte gLastHitBy
-_080239C8: .4byte gMoveResultFlags
-_080239CC: .4byte gChosenMove
-_080239D0: .4byte gLastLandedMoves
-_080239D4:
- ldr r0, _080239F8 @ =gLastLandedMoves
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r4, _080239FC @ =gCurrentMove
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r0, 0x13]
- cmp r3, 0
- beq _08023A04
- ldr r0, _08023A00 @ =gLastHitByType
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08023A2A
- .align 2, 0
-_080239F8: .4byte gLastLandedMoves
-_080239FC: .4byte gCurrentMove
-_08023A00: .4byte gLastHitByType
-_08023A04:
- ldr r0, _08023A1C @ =gLastHitByType
- ldrb r2, [r2]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08023A2C
- .align 2, 0
-_08023A1C: .4byte gLastHitByType
-_08023A20:
- ldr r0, _08023A38 @ =gLastLandedMoves
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08023A3C @ =0x0000ffff
-_08023A2A:
- strh r0, [r1]
-_08023A2C:
- mov r4, r12
- ldrb r0, [r4, 0x14]
- adds r0, 0x1
- strb r0, [r4, 0x14]
- b _08023BB4
- .align 2, 0
-_08023A38: .4byte gLastLandedMoves
-_08023A3C: .4byte 0x0000ffff
-_08023A40:
- ldr r0, _08023B04 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r7, _08023B08 @ =gBitTable
- ldr r2, _08023B0C @ =gBattlerAttacker
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r7
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- bne _08023AFA
- ldr r6, _08023B10 @ =gBattleStruct
- ldr r5, [r6]
- adds r0, r5, 0
- adds r0, 0x91
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- bne _08023AFA
- ldr r1, _08023B14 @ =gBattleMoves
- ldr r2, [sp, 0x18]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08023AFA
- ldr r0, _08023B18 @ =gHitMarker
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _08023AFA
- ldr r4, _08023B1C @ =gBattlerTarget
- ldrb r0, [r4]
- cmp r3, r0
- beq _08023AFA
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _08023AFA
- ldr r0, _08023B20 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08023AFA
- lsls r1, r2, 1
- adds r1, r5
- adds r1, 0x98
- ldr r3, _08023B24 @ =gChosenMove
- ldrh r0, [r3]
- strb r0, [r1]
- ldrb r1, [r4]
- ldr r0, [r6]
- lsls r1, 1
- adds r1, r0
- adds r1, 0x99
- ldrh r0, [r3]
- lsrs r0, 8
- strb r0, [r1]
- ldrb r0, [r4]
- mov r2, r9
- ldrb r1, [r2]
- ldr r2, [r6]
- lsls r0, 3
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- adds r0, 0xE0
- ldrh r1, [r3]
- strb r1, [r0]
- ldrb r1, [r4]
- mov r4, r9
- ldrb r0, [r4]
- ldr r2, [r6]
- lsls r1, 3
- lsls r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0xE1
- ldrh r0, [r3]
- lsrs r0, 8
- strb r0, [r1]
-_08023AFA:
- mov r5, r12
- ldrb r0, [r5, 0x14]
- adds r0, 0x1
- strb r0, [r5, 0x14]
- b _08023BB4
- .align 2, 0
-_08023B04: .4byte gAbsentBattlerFlags
-_08023B08: .4byte gBitTable
-_08023B0C: .4byte gBattlerAttacker
-_08023B10: .4byte gBattleStruct
-_08023B14: .4byte gBattleMoves
-_08023B18: .4byte gHitMarker
-_08023B1C: .4byte gBattlerTarget
-_08023B20: .4byte gMoveResultFlags
-_08023B24: .4byte gChosenMove
-_08023B28:
- ldr r5, _08023C10 @ =gHitMarker
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08023BAC
- ldr r0, _08023C14 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023BAC
- ldr r1, _08023C18 @ =gProtectStructs
- ldr r0, _08023C1C @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08023BAC
- ldr r0, _08023C20 @ =gBattleMoves
- mov r9, r0
- ldr r1, _08023C24 @ =gCurrentMove
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08023BAC
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08023BAC
- ldr r7, _08023C28 @ =gBattlerTarget
- ldrb r0, [r7]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08023C2C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08023BA2
- bl _080232F0
-_08023BA2:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _08023C30 @ =gBattleScripting
- mov r12, r2
-_08023BAC:
- mov r3, r12
- ldrb r0, [r3, 0x14]
- adds r0, 0x1
- strb r0, [r3, 0x14]
-_08023BB4:
- ldr r4, [sp, 0x10]
- cmp r4, 0x1
- bne _08023BC6
- mov r5, r10
- cmp r5, 0
- bne _08023BC6
- movs r0, 0x11
- mov r1, r12
- strb r0, [r1, 0x14]
-_08023BC6:
- ldr r2, [sp, 0x10]
- cmp r2, 0x2
- bne _08023BDC
- ldr r4, [sp, 0x14]
- mov r3, r12
- ldrb r3, [r3, 0x14]
- cmp r4, r3
- bne _08023BDC
- movs r0, 0x11
- mov r4, r12
- strb r0, [r4, 0x14]
-_08023BDC:
- mov r5, r12
- ldrb r0, [r5, 0x14]
- cmp r0, 0x11
- beq _08023BE8
- bl _08023358
-_08023BE8:
- mov r1, r12
- ldrb r0, [r1, 0x14]
- cmp r0, 0x11
- bne _08023BFE
- mov r2, r10
- cmp r2, 0
- bne _08023BFE
- ldr r1, _08023C34 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x3
-_08023BFC:
- str r0, [r1]
-_08023BFE:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023C10: .4byte gHitMarker
-_08023C14: .4byte gBattleTypeFlags
-_08023C18: .4byte gProtectStructs
-_08023C1C: .4byte gBattlerAttacker
-_08023C20: .4byte gBattleMoves
-_08023C24: .4byte gCurrentMove
-_08023C28: .4byte gBattlerTarget
-_08023C2C: .4byte gBattleMons
-_08023C30: .4byte gBattleScripting
-_08023C34: .4byte gBattlescriptCurrInstr
- thumb_func_end atk49_moveend
-
- thumb_func_start atk4A_typecalc2
-atk4A_typecalc2: @ 8023C38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08023C9C @ =gBattleMoves
- ldr r0, _08023CA0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08023CA4 @ =gBattleMons
- ldr r3, _08023CA8 @ =gBattlerTarget
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08023CCC
- mov r1, r8
- cmp r1, 0x4
- bne _08023CCC
- ldr r3, _08023CAC @ =gLastUsedAbility
- strb r0, [r3]
- ldr r2, _08023CB0 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08023CB4 @ =gLastLandedMoves
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _08023CB8 @ =gBattleCommunication
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl RecordAbilityBattle
- b _08023DAE
- .align 2, 0
-_08023C9C: .4byte gBattleMoves
-_08023CA0: .4byte gCurrentMove
-_08023CA4: .4byte gBattleMons
-_08023CA8: .4byte gBattlerTarget
-_08023CAC: .4byte gLastUsedAbility
-_08023CB0: .4byte gMoveResultFlags
-_08023CB4: .4byte gLastLandedMoves
-_08023CB8: .4byte gBattleCommunication
-_08023CBC:
- ldr r0, _08023CC8 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08023DAE
- .align 2, 0
-_08023CC8: .4byte gMoveResultFlags
-_08023CCC:
- ldr r1, _08023CD8 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08023D8E
- .align 2, 0
-_08023CD8: .4byte gTypeEffectiveness
-_08023CDC:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _08023D88
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023D1A
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08023CBC
- cmp r1, 0x5
- bne _08023D0E
- movs r0, 0x4
- orrs r4, r0
-_08023D0E:
- cmp r1, 0x14
- bne _08023D1A
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D1A:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _08023D88
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _08023D42
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023CBC
-_08023D42:
- cmp r1, r2
- beq _08023D58
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _08023D58
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D58:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _08023D88
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _08023D88
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _08023D88
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08023D88:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08023D8E:
- cmp r0, 0xFF
- beq _08023DAE
- cmp r0, 0xFE
- bne _08023CDC
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _08023D88
-_08023DAE:
- ldr r2, _08023E5C @ =gBattleMons
- ldr r0, _08023E60 @ =gBattlerTarget
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _08023E2A
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _08023E2A
- ldr r0, _08023E64 @ =gBattlerAttacker
- ldrb r0, [r0]
- ldr r7, _08023E68 @ =gCurrentMove
- ldrh r1, [r7]
- bl AttacksThisTurn
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _08023E2A
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08023DF0
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _08023E2A
-_08023DF0:
- ldr r2, _08023E6C @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023E2A
- ldr r3, _08023E70 @ =gLastUsedAbility
- strb r6, [r3]
- ldr r2, _08023E74 @ =gMoveResultFlags
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08023E78 @ =gLastLandedMoves
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08023E7C @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl RecordAbilityBattle
-_08023E2A:
- ldr r0, _08023E74 @ =gMoveResultFlags
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08023E48
- ldr r2, _08023E80 @ =gProtectStructs
- ldr r0, _08023E64 @ =gBattlerAttacker
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_08023E48:
- ldr r1, _08023E84 @ =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
-_08023E5C: .4byte gBattleMons
-_08023E60: .4byte gBattlerTarget
-_08023E64: .4byte gBattlerAttacker
-_08023E68: .4byte gCurrentMove
-_08023E6C: .4byte gBattleMoves
-_08023E70: .4byte gLastUsedAbility
-_08023E74: .4byte gMoveResultFlags
-_08023E78: .4byte gLastLandedMoves
-_08023E7C: .4byte gBattleCommunication
-_08023E80: .4byte gProtectStructs
-_08023E84: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4A_typecalc2
-
- thumb_func_start atk4B_returnatktoball
-atk4B_returnatktoball: @ 8023E88
- push {r4,lr}
- ldr r4, _08023EC4 @ =gActiveBattler
- ldr r0, _08023EC8 @ =gBattlerAttacker
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08023ECC @ =gHitMarker
- ldr r1, _08023ED0 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08023EB6
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitReturnMonToBall
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_08023EB6:
- ldr r1, _08023ED4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023EC4: .4byte gActiveBattler
-_08023EC8: .4byte gBattlerAttacker
-_08023ECC: .4byte gHitMarker
-_08023ED0: .4byte gBitTable
-_08023ED4: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4B_returnatktoball
-
- thumb_func_start atk4C_getswitchedmondata
-atk4C_getswitchedmondata: @ 8023ED8
- push {r4,r5,lr}
- ldr r0, _08023F30 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08023F28
- ldr r5, _08023F34 @ =gBattlescriptCurrInstr
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r4, _08023F38 @ =gActiveBattler
- strb r0, [r4]
- ldr r3, _08023F3C @ =gBattlerPartyIndexes
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r3
- ldr r1, _08023F40 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x5C
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08023F44 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitGetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_08023F28:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F30: .4byte gBattleControllerExecFlags
-_08023F34: .4byte gBattlescriptCurrInstr
-_08023F38: .4byte gActiveBattler
-_08023F3C: .4byte gBattlerPartyIndexes
-_08023F40: .4byte gBattleStruct
-_08023F44: .4byte gBitTable
- thumb_func_end atk4C_getswitchedmondata
-
- thumb_func_start atk4D_switchindataupdate
-atk4D_switchindataupdate: @ 8023F48
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _080240A0 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _08023F56
- b _08024098
-_08023F56:
- ldr r0, _080240A4 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r4, _080240A8 @ =gActiveBattler
- strb r0, [r4]
- ldr r6, _080240AC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _080240B0 @ =gBattleBufferB
- adds r7, r4, 0
-_08023F84:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _08023F84
- ldr r4, _080240AC @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _080240B4 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080240B8 @ =gWishFutureKnock
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _080240BC @ =gBitTable
- ldr r2, _080240C0 @ =gBattlerPartyIndexes
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _08024022
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_08024022:
- ldr r2, _080240C4 @ =gBattleMoves
- ldr r0, _080240C8 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08024068
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_08024042:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08024042
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08024068:
- bl SwitchInClearSetData
- ldr r0, _080240CC @ =gBattleScripting
- ldr r3, _080240A8 @ =gActiveBattler
- ldrb r2, [r3]
- strb r2, [r0, 0x17]
- ldr r1, _080240D0 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _080240C0 @ =gBattlerPartyIndexes
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080240A4 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024098:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080240A0: .4byte gBattleControllerExecFlags
-_080240A4: .4byte gBattlescriptCurrInstr
-_080240A8: .4byte gActiveBattler
-_080240AC: .4byte gBattleMons
-_080240B0: .4byte gBattleBufferB
-_080240B4: .4byte gBaseStats
-_080240B8: .4byte gWishFutureKnock
-_080240BC: .4byte gBitTable
-_080240C0: .4byte gBattlerPartyIndexes
-_080240C4: .4byte gBattleMoves
-_080240C8: .4byte gCurrentMove
-_080240CC: .4byte gBattleScripting
-_080240D0: .4byte gBattleTextBuff1
- thumb_func_end atk4D_switchindataupdate
-
- thumb_func_start atk4E_switchinanim
-atk4E_switchinanim: @ 80240D4
- push {r4-r6,lr}
- ldr r0, _08024168 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08024160
- ldr r0, _0802416C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl GetBattlerForBattleScript
- ldr r6, _08024170 @ =gActiveBattler
- strb r0, [r6]
- ldrb r0, [r6]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802412A
- ldr r0, _08024174 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08024178 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _0802412A
- ldr r4, _0802417C @ =gBattleMons
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- muls r1, r5
- adds r4, 0x48
- adds r1, r4
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_0802412A:
- ldr r2, _08024180 @ =gAbsentBattlerFlags
- ldr r1, _08024184 @ =gBitTable
- ldr r5, _08024170 @ =gActiveBattler
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _08024188 @ =gBattlerPartyIndexes
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _0802416C @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl BtlController_EmitSwitchInAnim
- ldrb r0, [r5]
- bl MarkBattlerForControllerExec
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08024160:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08024168: .4byte gBattleControllerExecFlags
-_0802416C: .4byte gBattlescriptCurrInstr
-_08024170: .4byte gActiveBattler
-_08024174: .4byte gBattleTypeFlags
-_08024178: .4byte 0x0001aa02
-_0802417C: .4byte gBattleMons
-_08024180: .4byte gAbsentBattlerFlags
-_08024184: .4byte gBitTable
-_08024188: .4byte gBattlerPartyIndexes
- thumb_func_end atk4E_switchinanim
-
- thumb_func_start atk4F_jumpifcantswitch
-atk4F_jumpifcantswitch: @ 802418C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241F0 @ =gBattlescriptCurrInstr
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl GetBattlerForBattleScript
- ldr r3, _080241F4 @ =gActiveBattler
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024204
- ldr r1, _080241F8 @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080241FC @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _080241D8
- ldr r1, _08024200 @ =gStatuses3
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08024204
-_080241D8:
- 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 _08024388
- .align 2, 0
-_080241F0: .4byte gBattlescriptCurrInstr
-_080241F4: .4byte gActiveBattler
-_080241F8: .4byte gBattleMons
-_080241FC: .4byte 0x0400e000
-_08024200: .4byte gStatuses3
-_08024204:
- ldr r5, _08024290 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080242A4
- ldr r4, _08024294 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08024298 @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _08024228
- ldr r0, _0802429C @ =gEnemyParty
- mov r8, r0
-_08024228:
- movs r5, 0
- ldrb r0, [r4]
- bl GetBattlerMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- bl GetLinkTrainerFlankId
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08024242
- movs r5, 0x3
-_08024242:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802428A
- ldr r7, _080242A0 @ =gBattlerPartyIndexes
-_0802424A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08024284
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08024284
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08024284
- ldr r0, _08024294 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802428A
-_08024284:
- adds r5, 0x1
- cmp r5, r6
- blt _0802424A
-_0802428A:
- cmp r5, r6
- beq _08024358
- b _08024380
- .align 2, 0
-_08024290: .4byte gBattleTypeFlags
-_08024294: .4byte gActiveBattler
-_08024298: .4byte gPlayerParty
-_0802429C: .4byte gEnemyParty
-_080242A0: .4byte gBattlerPartyIndexes
-_080242A4:
- ldr r0, _080242D4 @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _080242E4
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _080242D8
- movs r0, 0x3
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- b _080242DA
- .align 2, 0
-_080242D4: .4byte gActiveBattler
-_080242D8:
- adds r6, r7, 0
-_080242DA:
- ldr r0, _080242E0 @ =gEnemyParty
- mov r8, r0
- b _0802430A
- .align 2, 0
-_080242E0: .4byte gEnemyParty
-_080242E4:
- movs r0, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, [r5]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024304
- movs r0, 0x2
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r6, r0, 24
- b _08024306
-_08024304:
- adds r6, r7, 0
-_08024306:
- ldr r1, _08024374 @ =gPlayerParty
- mov r8, r1
-_0802430A:
- movs r5, 0
-_0802430C:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802434E
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802434E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802434E
- ldr r1, _08024378 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _0802434E
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _08024354
-_0802434E:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802430C
-_08024354:
- cmp r5, 0x6
- bne _08024380
-_08024358:
- ldr r3, _0802437C @ =gBattlescriptCurrInstr
- ldr r2, [r3]
- 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, [r3]
- b _08024388
- .align 2, 0
-_08024374: .4byte gPlayerParty
-_08024378: .4byte gBattlerPartyIndexes
-_0802437C: .4byte gBattlescriptCurrInstr
-_08024380:
- ldr r1, _08024394 @ =gBattlescriptCurrInstr
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024388:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024394: .4byte gBattlescriptCurrInstr
- thumb_func_end atk4F_jumpifcantswitch
-
- thumb_func_start sub_8024398
-sub_8024398: @ 8024398
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _080243E0 @ =gActiveBattler
- ldrb r0, [r4]
- ldr r5, _080243E4 @ =gBattleStruct
- ldr r1, [r5]
- adds r1, r0, r1
- adds r1, 0x58
- ldr r3, _080243E8 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x60
- ldr r0, [r5]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl BtlController_EmitChoosePokemon
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243E0: .4byte gActiveBattler
-_080243E4: .4byte gBattleStruct
-_080243E8: .4byte gBattlerPartyIndexes
- thumb_func_end sub_8024398
-
thumb_func_start atk50_openpartyscreen
atk50_openpartyscreen: @ 80243EC
push {r4-r7,lr}