summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s4657
1 files changed, 0 insertions, 4657 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 0a734e412..2e75b72c8 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -5,4663 +5,6 @@
.text
- thumb_func_start BattleIntroDrawPartySummaryScreens
-BattleIntroDrawPartySummaryScreens: @ 801333C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08013394 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _0801334E
- b _080134C8
-_0801334E:
- ldr r0, _08013398 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801335C
- b _08013468
-_0801335C:
- movs r7, 0
- add r0, sp, 0x4
- mov r8, r0
- mov r6, r8
- mov r5, sp
-_08013366:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0801339C @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801338C
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080133A4
-_0801338C:
- ldr r0, _080133A0 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080133B6
- .align 2, 0
-_08013394: .4byte gBattleControllerExecFlags
-_08013398: .4byte gBattleTypeFlags
-_0801339C: .4byte gEnemyParty
-_080133A0: .4byte 0x0000ffff
-_080133A4:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080133B6:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08013366
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r4, _08013410 @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl BtlController_EmitDrawPartyStatusSummary
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- movs r7, 0
- mov r6, r8
- mov r5, sp
-_080133E2:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08013414 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08013408
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _0801341C
-_08013408:
- ldr r0, _08013418 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801342E
- .align 2, 0
-_08013410: .4byte gActiveBattler
-_08013414: .4byte gPlayerParty
-_08013418: .4byte 0x0000ffff
-_0801341C:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801342E:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _080133E2
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _0801345C @ =gActiveBattler
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl BtlController_EmitDrawPartyStatusSummary
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08013460 @ =gBattleMainFunc
- ldr r0, _08013464 @ =BattleIntroPrintTrainerWantsToBattle
- b _080134C6
- .align 2, 0
-_0801345C: .4byte gActiveBattler
-_08013460: .4byte gBattleMainFunc
-_08013464: .4byte BattleIntroPrintTrainerWantsToBattle
-_08013468:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_0801346E:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _0801349C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08013494
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080134A4
-_08013494:
- ldr r0, _080134A0 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080134B6
- .align 2, 0
-_0801349C: .4byte gPlayerParty
-_080134A0: .4byte 0x0000ffff
-_080134A4:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080134B6:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0801346E
- ldr r1, _080134D4 @ =gBattleMainFunc
- ldr r0, _080134D8 @ =sub_8013514
-_080134C6:
- str r0, [r1]
-_080134C8:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080134D4: .4byte gBattleMainFunc
-_080134D8: .4byte sub_8013514
- thumb_func_end BattleIntroDrawPartySummaryScreens
-
- thumb_func_start BattleIntroPrintTrainerWantsToBattle
-BattleIntroPrintTrainerWantsToBattle: @ 80134DC
- push {lr}
- ldr r0, _08013504 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _080134FE
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08013508 @ =gActiveBattler
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0
- bl PrepareStringBattle
- ldr r1, _0801350C @ =gBattleMainFunc
- ldr r0, _08013510 @ =BattleIntroPrintWildMonAttacked
- str r0, [r1]
-_080134FE:
- pop {r0}
- bx r0
- .align 2, 0
-_08013504: .4byte gBattleControllerExecFlags
-_08013508: .4byte gActiveBattler
-_0801350C: .4byte gBattleMainFunc
-_08013510: .4byte BattleIntroPrintWildMonAttacked
- thumb_func_end BattleIntroPrintTrainerWantsToBattle
-
- thumb_func_start sub_8013514
-sub_8013514: @ 8013514
- push {lr}
- ldr r0, _08013550 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _0801354A
- ldr r1, _08013554 @ =gBattleMainFunc
- ldr r0, _08013558 @ =BattleIntroPrintPlayerSendsOut
- str r0, [r1]
- movs r0, 0
- movs r1, 0
- bl PrepareStringBattle
- ldr r0, _0801355C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA0
- lsls r1, 8
- ands r0, r1
- cmp r0, r1
- bne _0801354A
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08013560 @ =gBattleScripting
- strb r0, [r1, 0x17]
- ldr r0, _08013564 @ =gUnknown_81D91A1
- bl BattleScriptExecute
-_0801354A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013550: .4byte gBattleControllerExecFlags
-_08013554: .4byte gBattleMainFunc
-_08013558: .4byte BattleIntroPrintPlayerSendsOut
-_0801355C: .4byte gBattleTypeFlags
-_08013560: .4byte gBattleScripting
-_08013564: .4byte gUnknown_81D91A1
- thumb_func_end sub_8013514
-
- thumb_func_start BattleIntroPrintWildMonAttacked
-BattleIntroPrintWildMonAttacked: @ 8013568
- push {lr}
- ldr r0, _08013590 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _0801358A
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl PrepareStringBattle
- ldr r1, _08013594 @ =gBattleMainFunc
- ldr r0, _08013598 @ =BattleIntroOpponentSendsOutMonAnimation
- str r0, [r1]
-_0801358A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013590: .4byte gBattleControllerExecFlags
-_08013594: .4byte gBattleMainFunc
-_08013598: .4byte BattleIntroOpponentSendsOutMonAnimation
- thumb_func_end BattleIntroPrintWildMonAttacked
-
- thumb_func_start BattleIntroOpponentSendsOutMonAnimation
-BattleIntroOpponentSendsOutMonAnimation: @ 801359C
- push {r4,lr}
- ldr r0, _08013614 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801360C
- ldr r2, _08013618 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _0801361C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013606
- adds r4, r2, 0
-_080135B4:
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080135CE
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080135CE:
- ldr r0, _08013620 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080135F4
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080135F4
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080135F4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801361C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080135B4
-_08013606:
- ldr r1, _08013624 @ =gBattleMainFunc
- ldr r0, _08013628 @ =BattleIntroRecordMonsToDex
- str r0, [r1]
-_0801360C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013614: .4byte gBattleControllerExecFlags
-_08013618: .4byte gActiveBattler
-_0801361C: .4byte gBattlersCount
-_08013620: .4byte gBattleTypeFlags
-_08013624: .4byte gBattleMainFunc
-_08013628: .4byte BattleIntroRecordMonsToDex
- thumb_func_end BattleIntroOpponentSendsOutMonAnimation
-
- thumb_func_start BattleIntroRecordMonsToDex
-BattleIntroRecordMonsToDex: @ 801362C
- push {r4-r7,lr}
- ldr r0, _080136A4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801369C
- ldr r2, _080136A8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080136AC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013696
- adds r4, r2, 0
- ldr r6, _080136B0 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x48
-_0801364C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08013684
- ldr r0, _080136B4 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _080136B8 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _08013684
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r5
- adds r1, r7
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_08013684:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080136AC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801364C
-_08013696:
- ldr r1, _080136BC @ =gBattleMainFunc
- ldr r0, _080136C0 @ =BattleIntroPrintPlayerSendsOut
- str r0, [r1]
-_0801369C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080136A4: .4byte gBattleControllerExecFlags
-_080136A8: .4byte gActiveBattler
-_080136AC: .4byte gBattlersCount
-_080136B0: .4byte gBattleMons
-_080136B4: .4byte gBattleTypeFlags
-_080136B8: .4byte 0x0001aa02
-_080136BC: .4byte gBattleMainFunc
-_080136C0: .4byte BattleIntroPrintPlayerSendsOut
- thumb_func_end BattleIntroRecordMonsToDex
-
- thumb_func_start sub_80136C4
-sub_80136C4: @ 80136C4
- push {lr}
- ldr r0, _080136D8 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _080136D4
- ldr r1, _080136DC @ =gBattleMainFunc
- ldr r0, _080136E0 @ =BattleIntroPrintPlayerSendsOut
- str r0, [r1]
-_080136D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080136D8: .4byte gBattleControllerExecFlags
-_080136DC: .4byte gBattleMainFunc
-_080136E0: .4byte BattleIntroPrintPlayerSendsOut
- thumb_func_end sub_80136C4
-
- thumb_func_start BattleIntroPrintPlayerSendsOut
-BattleIntroPrintPlayerSendsOut: @ 80136E4
- push {lr}
- ldr r0, _08013718 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08013712
- ldr r0, _0801371C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801370C
- movs r0, 0
- bl GetBattlerAtPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl PrepareStringBattle
-_0801370C:
- ldr r1, _08013720 @ =gBattleMainFunc
- ldr r0, _08013724 @ =BattleIntroPlayerSendsOutMonAnimation
- str r0, [r1]
-_08013712:
- pop {r0}
- bx r0
- .align 2, 0
-_08013718: .4byte gBattleControllerExecFlags
-_0801371C: .4byte gBattleTypeFlags
-_08013720: .4byte gBattleMainFunc
-_08013724: .4byte BattleIntroPlayerSendsOutMonAnimation
- thumb_func_end BattleIntroPrintPlayerSendsOut
-
- thumb_func_start BattleIntroPlayerSendsOutMonAnimation
-BattleIntroPlayerSendsOutMonAnimation: @ 8013728
- push {r4,lr}
- ldr r0, _080137B4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _080137AC
- ldr r2, _080137B8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080137BC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013790
- adds r4, r2, 0
-_08013740:
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _08013758
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_08013758:
- ldr r0, _080137C0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801377E
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801377E
- movs r0, 0
- bl BtlController_EmitIntroTrainerBallThrow
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_0801377E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080137BC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013740
-_08013790:
- ldr r2, _080137C4 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xD9
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xB6
- strb r1, [r0]
- ldr r1, _080137C8 @ =gBattleMainFunc
- ldr r0, _080137CC @ =TryDoEventsBeforeFirstTurn
- str r0, [r1]
-_080137AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080137B4: .4byte gBattleControllerExecFlags
-_080137B8: .4byte gActiveBattler
-_080137BC: .4byte gBattlersCount
-_080137C0: .4byte gBattleTypeFlags
-_080137C4: .4byte gBattleStruct
-_080137C8: .4byte gBattleMainFunc
-_080137CC: .4byte TryDoEventsBeforeFirstTurn
- thumb_func_end BattleIntroPlayerSendsOutMonAnimation
-
- thumb_func_start sub_80137D0
-sub_80137D0: @ 80137D0
- push {r4,r5,lr}
- ldr r0, _08013840 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- bne _0801383A
- ldr r2, _08013844 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _08013848 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0801381E
- adds r4, r2, 0
- ldr r5, _0801384C @ =gBattlerPartyIndexes
-_080137EA:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801380C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl BtlController_EmitSwitchInAnim
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_0801380C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013848 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080137EA
-_0801381E:
- ldr r2, _08013850 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xD9
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0xB6
- strb r1, [r0]
- ldr r1, _08013854 @ =gBattleMainFunc
- ldr r0, _08013858 @ =TryDoEventsBeforeFirstTurn
- str r0, [r1]
-_0801383A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013840: .4byte gBattleControllerExecFlags
-_08013844: .4byte gActiveBattler
-_08013848: .4byte gBattlersCount
-_0801384C: .4byte gBattlerPartyIndexes
-_08013850: .4byte gBattleStruct
-_08013854: .4byte gBattleMainFunc
-_08013858: .4byte TryDoEventsBeforeFirstTurn
- thumb_func_end sub_80137D0
-
- thumb_func_start TryDoEventsBeforeFirstTurn
-TryDoEventsBeforeFirstTurn: @ 801385C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r0, _080138A0 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- beq _08013874
- b _08013ADA
-_08013874:
- ldr r0, _080138A4 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4C
- ldrb r0, [r0]
- cmp r0, 0
- bne _080138FA
- movs r5, 0
- ldr r1, _080138A8 @ =gBattlersCount
- adds r3, r1, 0
- ldrb r0, [r1]
- cmp r5, r0
- bge _0801389A
- ldr r2, _080138AC @ =gBattlerByTurnOrder
-_0801388E:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r0, [r1]
- cmp r5, r0
- blt _0801388E
-_0801389A:
- movs r5, 0
- b _080138F0
- .align 2, 0
-_080138A0: .4byte gBattleControllerExecFlags
-_080138A4: .4byte gBattleStruct
-_080138A8: .4byte gBattlersCount
-_080138AC: .4byte gBattlerByTurnOrder
-_080138B0:
- adds r4, r5, 0x1
- mov r8, r4
- ldrb r1, [r1]
- cmp r8, r1
- bge _080138EE
- ldr r6, _08013924 @ =gBattlerByTurnOrder
- ldr r3, _08013928 @ =gBattlersCount
- lsls r7, r5, 24
-_080138C0:
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, r4, r6
- ldrb r1, [r1]
- movs r2, 0x1
- str r3, [sp, 0x4]
- bl GetWhoStrikesFirst
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080138E4
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl SwapTurnOrder
- ldr r3, [sp, 0x4]
-_080138E4:
- adds r4, 0x1
- ldr r0, _08013928 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _080138C0
-_080138EE:
- mov r5, r8
-_080138F0:
- adds r1, r3, 0
- ldrb r0, [r3]
- subs r0, 0x1
- cmp r5, r0
- blt _080138B0
-_080138FA:
- ldr r4, _0801392C @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB6
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013930
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013930
- ldr r0, [r4]
- adds r0, 0xB6
- movs r1, 0x1
- strb r1, [r0]
- b _08013ADA
- .align 2, 0
-_08013924: .4byte gBattlerByTurnOrder
-_08013928: .4byte gBattlersCount
-_0801392C: .4byte gBattleStruct
-_08013930:
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x4C
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0801398A
- ldr r5, _08013AF0 @ =gBattlerByTurnOrder
- adds r4, r2, 0
-_08013944:
- ldr r0, [r4]
- adds r0, 0x4C
- ldrb r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _0801396A
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801396A:
- ldr r1, [r4]
- adds r1, 0x4C
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r1, r9
- cmp r1, 0
- beq _0801397C
- b _08013ADA
-_0801397C:
- ldr r0, [r4]
- adds r0, 0x4C
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013944
-_0801398A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080139A4
- b _08013ADA
-_080139A4:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- beq _080139BA
- b _08013ADA
-_080139BA:
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0xD9
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- adds r3, r1, 0
- ldrb r1, [r3]
- cmp r0, r1
- bcs _08013A14
- ldr r5, _08013AF0 @ =gBattlerByTurnOrder
- adds r4, r2, 0
-_080139D0:
- ldr r0, [r4]
- adds r0, 0xD9
- ldrb r0, [r0]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- str r3, [sp, 0x4]
- bl ItemBattleEffects
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080139F6
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080139F6:
- ldr r1, [r4]
- adds r1, 0xD9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r0, r9
- cmp r0, 0
- bne _08013ADA
- ldr r0, [r4]
- adds r0, 0xD9
- ldr r1, _08013AEC @ =gBattlersCount
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080139D0
-_08013A14:
- ldrb r0, [r3]
- cmp r0, 0
- beq _08013A22
- adds r5, r0, 0
-_08013A1C:
- subs r5, 0x1
- cmp r5, 0
- bne _08013A1C
-_08013A22:
- movs r5, 0
- ldr r1, _08013AE8 @ =gBattleStruct
- mov r8, r1
- movs r7, 0x6
- ldr r6, _08013AF4 @ =gChosenActionByBattler
- ldr r2, _08013AF8 @ =gChosenMoveByBattler
- movs r4, 0xFF
- movs r3, 0
-_08013A32:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5, r0
- adds r0, 0x5C
- strb r7, [r0]
- adds r1, r5, r6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- strh r3, [r2]
- adds r2, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _08013A32
- movs r0, 0
- bl TurnValuesCleanUp
- bl SpecialStatusesClear
- ldr r0, _08013AE8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x91
- ldr r1, _08013AFC @ =gAbsentBattlerFlags
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r1, _08013B00 @ =gBattleMainFunc
- ldr r0, _08013B04 @ =HandleTurnActionSelectionState
- str r0, [r1]
- bl ResetSentPokesToOpponentValue
- ldr r1, _08013B08 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_08013A74:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013A74
- movs r5, 0
- ldr r3, _08013AEC @ =gBattlersCount
- ldr r2, _08013AE8 @ =gBattleStruct
- ldr r6, _08013B0C @ =gBattleScripting
- ldr r7, _08013B10 @ =gMoveResultFlags
- ldrb r0, [r3]
- cmp r5, r0
- bge _08013AA6
- ldr r0, _08013B14 @ =gBattleMons
- movs r4, 0x9
- negs r4, r4
- adds r1, r0, 0
- adds r1, 0x50
-_08013A96:
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
- adds r1, 0x58
- adds r5, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- blt _08013A96
-_08013AA6:
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- movs r3, 0xC0
- lsls r3, 1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r1, 0
- strb r1, [r6, 0x14]
- ldr r0, [r2]
- adds r0, 0x4D
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- strb r1, [r7]
- bl Random
- ldr r1, _08013B18 @ =gRandomTurnNumber
- strh r0, [r1]
-_08013ADA:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013AE8: .4byte gBattleStruct
-_08013AEC: .4byte gBattlersCount
-_08013AF0: .4byte gBattlerByTurnOrder
-_08013AF4: .4byte gChosenActionByBattler
-_08013AF8: .4byte gChosenMoveByBattler
-_08013AFC: .4byte gAbsentBattlerFlags
-_08013B00: .4byte gBattleMainFunc
-_08013B04: .4byte HandleTurnActionSelectionState
-_08013B08: .4byte gBattleCommunication
-_08013B0C: .4byte gBattleScripting
-_08013B10: .4byte gMoveResultFlags
-_08013B14: .4byte gBattleMons
-_08013B18: .4byte gRandomTurnNumber
- thumb_func_end TryDoEventsBeforeFirstTurn
-
- thumb_func_start HandleEndTurn_ContinueBattle
-HandleEndTurn_ContinueBattle: @ 8013B1C
- push {r4-r6,lr}
- ldr r0, _08013BB4 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08013BAC
- ldr r1, _08013BB8 @ =gBattleMainFunc
- ldr r0, _08013BBC @ =BattleTurnPassed
- str r0, [r1]
- ldr r3, _08013BC0 @ =gBattlersCount
- ldr r1, _08013BC4 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_08013B34:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013B34
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bge _08013B86
- ldr r5, _08013BC8 @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x4C
-_08013B4A:
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r1, r5, 0
- adds r1, 0x50
- adds r1, r2, r1
- ldr r3, [r1]
- subs r0, 0x61
- ands r3, r0
- str r3, [r1]
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08013B7C
- movs r0, 0x80
- lsls r0, 5
- ands r3, r0
- cmp r3, 0
- beq _08013B7C
- lsls r0, r4, 24
- lsrs r0, 24
- bl CancelMultiTurnMoves
-_08013B7C:
- adds r4, 0x1
- ldr r0, _08013BC0 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _08013B4A
-_08013B86:
- ldr r2, _08013BCC @ =gBattleStruct
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- ldr r0, [r2]
- movs r3, 0xC0
- lsls r3, 1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x3]
- ldr r0, _08013BD0 @ =gMoveResultFlags
- strb r1, [r0]
-_08013BAC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BB4: .4byte gBattleControllerExecFlags
-_08013BB8: .4byte gBattleMainFunc
-_08013BBC: .4byte BattleTurnPassed
-_08013BC0: .4byte gBattlersCount
-_08013BC4: .4byte gBattleCommunication
-_08013BC8: .4byte gBattleMons
-_08013BCC: .4byte gBattleStruct
-_08013BD0: .4byte gMoveResultFlags
- thumb_func_end HandleEndTurn_ContinueBattle
-
- thumb_func_start BattleTurnPassed
-BattleTurnPassed: @ 8013BD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl TurnValuesCleanUp
- ldr r0, _08013C78 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013C04
- bl DoFieldEndTurnEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013BF8
- b _08013D20
-_08013BF8:
- bl DoBattlerEndTurnEffects
- lsls r0, 24
- cmp r0, 0
- beq _08013C04
- b _08013D20
-_08013C04:
- bl HandleFaintedMonActions
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08013C12
- b _08013D20
-_08013C12:
- ldr r0, _08013C7C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4D
- strb r1, [r0]
- bl HandleWishPerishSongOnTurnEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08013D20
- movs r0, 0
- bl TurnValuesCleanUp
- ldr r2, _08013C80 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08013C84 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013C88 @ =0xfff7ffff
- ands r0, r1
- ldr r1, _08013C8C @ =0xffbfffff
- ands r0, r1
- ldr r1, _08013C90 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08013C94 @ =gBattleScripting
- strb r4, [r0, 0x18]
- strb r4, [r0, 0x19]
- strb r4, [r0, 0x14]
- ldr r0, _08013C98 @ =gBattleMoveDamage
- str r4, [r0]
- ldr r0, _08013C9C @ =gMoveResultFlags
- strb r4, [r0]
- ldr r1, _08013CA0 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x4
-_08013C58:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08013C58
- ldr r0, _08013C78 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013CB0
- ldr r1, _08013CA4 @ =gCurrentActionFuncId
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _08013CA8 @ =gBattleMainFunc
- ldr r0, _08013CAC @ =RunTurnActionsFunctions
- str r0, [r1]
- b _08013D20
- .align 2, 0
-_08013C78: .4byte gBattleOutcome
-_08013C7C: .4byte gBattleStruct
-_08013C80: .4byte gHitMarker
-_08013C84: .4byte 0xfffffdff
-_08013C88: .4byte 0xfff7ffff
-_08013C8C: .4byte 0xffbfffff
-_08013C90: .4byte 0xffefffff
-_08013C94: .4byte gBattleScripting
-_08013C98: .4byte gBattleMoveDamage
-_08013C9C: .4byte gMoveResultFlags
-_08013CA0: .4byte gBattleCommunication
-_08013CA4: .4byte gCurrentActionFuncId
-_08013CA8: .4byte gBattleMainFunc
-_08013CAC: .4byte RunTurnActionsFunctions
-_08013CB0:
- ldr r1, _08013D30 @ =gBattleResults
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFE
- bhi _08013CBC
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_08013CBC:
- movs r2, 0
- ldr r4, _08013D34 @ =gBattlersCount
- ldr r0, _08013D38 @ =gBattleStruct
- mov r8, r0
- ldr r1, _08013D3C @ =gBattleMainFunc
- mov r10, r1
- ldr r0, _08013D40 @ =gAbsentBattlerFlags
- mov r12, r0
- ldr r1, _08013D44 @ =HandleTurnActionSelectionState
- mov r9, r1
- ldrb r0, [r4]
- cmp r2, r0
- bge _08013CF2
- ldr r7, _08013D48 @ =gChosenActionByBattler
- movs r6, 0xFF
- movs r5, 0
- ldr r3, _08013D4C @ =gChosenMoveByBattler
-_08013CDE:
- adds r1, r2, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- strh r5, [r3]
- adds r3, 0x2
- adds r2, 0x1
- ldrb r1, [r4]
- cmp r2, r1
- blt _08013CDE
-_08013CF2:
- movs r2, 0
- ldr r3, _08013D38 @ =gBattleStruct
- movs r1, 0x6
-_08013CF8:
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0x5C
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08013CF8
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0x91
- mov r2, r12
- ldrb r1, [r2]
- strb r1, [r0]
- mov r0, r9
- mov r1, r10
- str r0, [r1]
- bl Random
- ldr r1, _08013D50 @ =gRandomTurnNumber
- strh r0, [r1]
-_08013D20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D30: .4byte gBattleResults
-_08013D34: .4byte gBattlersCount
-_08013D38: .4byte gBattleStruct
-_08013D3C: .4byte gBattleMainFunc
-_08013D40: .4byte gAbsentBattlerFlags
-_08013D44: .4byte HandleTurnActionSelectionState
-_08013D48: .4byte gChosenActionByBattler
-_08013D4C: .4byte gChosenMoveByBattler
-_08013D50: .4byte gRandomTurnNumber
- thumb_func_end BattleTurnPassed
-
- thumb_func_start IsRunningFromBattleImpossible
-IsRunningFromBattleImpossible: @ 8013D54
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _08013D78 @ =gBattleMons
- ldr r0, _08013D7C @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08013D84
- ldr r1, _08013D80 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x7]
- b _08013D8E
- .align 2, 0
-_08013D78: .4byte gBattleMons
-_08013D7C: .4byte gActiveBattler
-_08013D80: .4byte gEnigmaBerries
-_08013D84:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r2, r0, 24
-_08013D8E:
- ldr r1, _08013EA4 @ =gPotentialItemEffectBattler
- ldr r3, _08013EA8 @ =gActiveBattler
- ldrb r0, [r3]
- strb r0, [r1]
- cmp r2, 0x25
- bne _08013D9C
- b _08013F18
-_08013D9C:
- ldr r0, _08013EAC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013DAA
- b _08013F18
-_08013DAA:
- ldr r1, _08013EB0 @ =gBattleMons
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x32
- bne _08013DBE
- b _08013F18
-_08013DBE:
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _08013EB4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _08013E52
- movs r7, 0
-_08013DD4:
- lsrs r4, r7, 24
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08013DF8
- ldr r1, _08013EB0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x17
- bne _08013DF8
- b _08013F20
-_08013DF8:
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08013E42
- ldr r3, _08013EB0 @ =gBattleMons
- ldr r0, _08013EA8 @ =gActiveBattler
- ldrb r0, [r0]
- movs r2, 0x58
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08013E42
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08013E42
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08013E42
- adds r0, r5, 0
- muls r0, r2
- adds r0, r3
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x47
- bne _08013E42
- b _08013F3C
-_08013E42:
- movs r0, 0x80
- lsls r0, 17
- adds r7, r0
- adds r5, 0x1
- ldr r0, _08013EB4 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _08013DD4
-_08013E52:
- ldr r4, _08013EA8 @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08013EC4
- ldr r6, _08013EB0 @ =gBattleMons
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08013E8A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08013EC4
-_08013E8A:
- ldr r0, _08013EB8 @ =gBattleScripting
- subs r1, r5, 0x1
- strb r1, [r0, 0x17]
- ldr r2, _08013EBC @ =gLastUsedAbility
- adds r0, r1, 0
- muls r0, r3
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _08013EC0 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013EA4: .4byte gPotentialItemEffectBattler
-_08013EA8: .4byte gActiveBattler
-_08013EAC: .4byte gBattleTypeFlags
-_08013EB0: .4byte gBattleMons
-_08013EB4: .4byte gBattlersCount
-_08013EB8: .4byte gBattleScripting
-_08013EBC: .4byte gLastUsedAbility
-_08013EC0: .4byte gBattleCommunication
-_08013EC4:
- ldr r1, _08013EF8 @ =gBattleMons
- ldr r0, _08013EFC @ =gActiveBattler
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08013F00 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08013EEE
- ldr r1, _08013F04 @ =gStatuses3
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08013F0C
-_08013EEE:
- ldr r1, _08013F08 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _08013F5E
- .align 2, 0
-_08013EF8: .4byte gBattleMons
-_08013EFC: .4byte gActiveBattler
-_08013F00: .4byte 0x0400e000
-_08013F04: .4byte gStatuses3
-_08013F08: .4byte gBattleCommunication
-_08013F0C:
- ldr r0, _08013F1C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08013F58
-_08013F18:
- movs r0, 0
- b _08013F5E
- .align 2, 0
-_08013F1C: .4byte gBattleTypeFlags
-_08013F20:
- ldr r0, _08013F30 @ =gBattleScripting
- strb r5, [r0, 0x17]
- ldr r1, _08013F34 @ =gLastUsedAbility
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08013F38 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013F30: .4byte gBattleScripting
-_08013F34: .4byte gLastUsedAbility
-_08013F38: .4byte gBattleCommunication
-_08013F3C:
- ldr r0, _08013F4C @ =gBattleScripting
- strb r5, [r0, 0x17]
- ldr r1, _08013F50 @ =gLastUsedAbility
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08013F54 @ =gBattleCommunication
- movs r0, 0x2
- b _08013F5C
- .align 2, 0
-_08013F4C: .4byte gBattleScripting
-_08013F50: .4byte gLastUsedAbility
-_08013F54: .4byte gBattleCommunication
-_08013F58:
- ldr r1, _08013F68 @ =gBattleCommunication
- movs r0, 0x1
-_08013F5C:
- strb r0, [r1, 0x5]
-_08013F5E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08013F68: .4byte gBattleCommunication
- thumb_func_end IsRunningFromBattleImpossible
-
- thumb_func_start sub_8013F6C
-sub_8013F6C: @ 8013F6C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r0, _08014008 @ =gBattlerPartyIndexes
- mov r8, r0
- ldr r1, _0801400C @ =gUnknown_203B0DC
- mov r12, r1
- ldr r7, _08014010 @ =gBattleStruct
- lsls r0, r5, 1
- adds r4, r0, r5
- adds r6, r0, 0
-_08013F88:
- mov r0, r12
- adds r2, r3, r0
- ldr r1, [r7]
- adds r0, r4, r3
- adds r0, r1
- adds r0, 0x60
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2
- ble _08013F88
- mov r1, r8
- adds r0, r6, r1
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _08014010 @ =gBattleStruct
- ldr r0, [r7]
- adds r0, r5, r0
- adds r0, 0x5C
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8127FF4
- ldr r0, _08014014 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014018
- movs r3, 0
- adds r4, r7, 0
- adds r6, r5
- movs r0, 0x2
- adds r1, r5, 0
- eors r1, r0
- ldr r7, _0801400C @ =gUnknown_203B0DC
- lsls r0, r1, 1
- adds r5, r0, r1
-_08013FE6:
- ldr r0, [r4]
- adds r1, r6, r3
- adds r1, r0
- adds r1, 0x60
- adds r2, r3, r7
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, [r4]
- adds r0, r5, r3
- adds r0, r1
- adds r0, 0x60
- ldrb r1, [r2]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _08013FE6
- b _08014032
- .align 2, 0
-_08014008: .4byte gBattlerPartyIndexes
-_0801400C: .4byte gUnknown_203B0DC
-_08014010: .4byte gBattleStruct
-_08014014: .4byte gBattleTypeFlags
-_08014018:
- movs r3, 0
- adds r2, r6, r5
- ldr r4, _0801403C @ =gUnknown_203B0DC
-_0801401E:
- ldr r0, [r7]
- adds r1, r2, r3
- adds r1, r0
- adds r1, 0x60
- adds r0, r3, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0801401E
-_08014032:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801403C: .4byte gUnknown_203B0DC
- thumb_func_end sub_8013F6C
-
- thumb_func_start HandleTurnActionSelectionState
-HandleTurnActionSelectionState: @ 8014040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _0801408C @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08014090 @ =gActiveBattler
- strb r1, [r0]
- ldr r0, _08014094 @ =gBattlersCount
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcc _08014064
- bl _08014C68
-_08014064:
- ldr r4, _08014090 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0801408C @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08014080
- bl _08014C4E
-_08014080:
- lsls r0, 2
- ldr r1, _08014098 @ =_0801409C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801408C: .4byte gBattleCommunication
-_08014090: .4byte gActiveBattler
-_08014094: .4byte gBattlersCount
-_08014098: .4byte _0801409C
- .align 2, 0
-_0801409C:
- .4byte _080140B8
- .4byte _080141DC
- .4byte _08014764
- .4byte _08014AA0
- .4byte _08014B44
- .4byte _08014B88
- .4byte _08014C20
-_080140B8:
- ldr r0, _08014150 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r4, _08014154 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0x5C
- movs r0, 0x6
- strb r0, [r1]
- ldr r0, _08014158 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08014114
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _08014114
- eors r5, r1
- adds r0, r5, 0
- bl GetBattlerAtPosition
- ldr r1, [r4]
- adds r1, 0x91
- ldrb r1, [r1]
- ldr r2, _0801415C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08014114
- ldr r4, _08014160 @ =gBattleCommunication
- adds r0, r5, 0
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _08014114
- bl _08014C4E
-_08014114:
- ldr r0, _08014154 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x91
- ldrb r3, [r0]
- ldr r1, _0801415C @ =gBitTable
- ldr r4, _08014150 @ =gActiveBattler
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _0801417C
- ldr r0, _08014164 @ =gChosenActionByBattler
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08014158 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08014168
- ldr r0, _08014160 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08014C4E
- .align 2, 0
-_08014150: .4byte gActiveBattler
-_08014154: .4byte gBattleStruct
-_08014158: .4byte gBattleTypeFlags
-_0801415C: .4byte gBitTable
-_08014160: .4byte gBattleCommunication
-_08014164: .4byte gChosenActionByBattler
-_08014168:
- ldr r0, _08014178 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08014C4E
- .align 2, 0
-_08014178: .4byte gBattleCommunication
-_0801417C:
- ldr r1, _080141B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _0801419C
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080141BC
-_0801419C:
- ldr r0, _080141B4 @ =gChosenActionByBattler
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080141B8 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08014C4E
- .align 2, 0
-_080141B0: .4byte gBattleMons
-_080141B4: .4byte gChosenActionByBattler
-_080141B8: .4byte gBattleCommunication
-_080141BC:
- ldr r0, _080141D4 @ =gChosenActionByBattler
- ldrb r1, [r0]
- ldr r0, _080141D8 @ =gBattleBufferB
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl BtlController_EmitChooseAction
- bl _08014B26
- .align 2, 0
-_080141D4: .4byte gChosenActionByBattler
-_080141D8: .4byte gBattleBufferB
-_080141DC:
- ldr r4, _08014234 @ =gBattleControllerExecFlags
- ldr r1, _08014238 @ =gBitTable
- ldr r3, _0801423C @ =gActiveBattler
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _0801420A
- bl _08014C4E
-_0801420A:
- ldr r2, _08014240 @ =gChosenActionByBattler
- adds r2, r5, r2
- ldr r1, _08014244 @ =gBattleBufferB
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08014228
- b _080146AC
-_08014228:
- lsls r0, 2
- ldr r1, _08014248 @ =_0801424C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08014234: .4byte gBattleControllerExecFlags
-_08014238: .4byte gBitTable
-_0801423C: .4byte gActiveBattler
-_08014240: .4byte gChosenActionByBattler
-_08014244: .4byte gBattleBufferB
-_08014248: .4byte _0801424C
- .align 2, 0
-_0801424C:
- .4byte _08014280
- .4byte _080143D4
- .4byte _08014450
- .4byte _080146AC
- .4byte _080146AC
- .4byte _08014620
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _080146AC
- .4byte _08014670
-_08014280:
- bl AreAllMovesUnusable
- lsls r0, 24
- cmp r0, 0
- beq _080142D8
- ldr r0, _080142C8 @ =gBattleCommunication
- ldr r3, _080142CC @ =gActiveBattler
- ldrb r1, [r3]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, _080142D0 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r4, [r1]
- ldrb r1, [r3]
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x84
- movs r0, 0x3
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, [r2]
- adds r2, r1, r2
- ldr r0, _080142D4 @ =gBattleBufferB
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2, 0xC]
- bl _08014C78
- .align 2, 0
-_080142C8: .4byte gBattleCommunication
-_080142CC: .4byte gActiveBattler
-_080142D0: .4byte gBattleStruct
-_080142D4: .4byte gBattleBufferB
-_080142D8:
- ldr r3, _08014318 @ =gDisableStructs
- ldr r5, _0801431C @ =gActiveBattler
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r3
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801432C
- ldr r1, _08014320 @ =gChosenMoveByBattler
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r2, [r5]
- ldr r0, _08014324 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, r2, r1
- adds r1, 0x80
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0xC]
- strb r0, [r1]
- ldr r1, _08014328 @ =gBattleCommunication
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08014C78
- .align 2, 0
-_08014318: .4byte gDisableStructs
-_0801431C: .4byte gActiveBattler
-_08014320: .4byte gChosenMoveByBattler
-_08014324: .4byte gBattleStruct
-_08014328: .4byte gBattleCommunication
-_0801432C:
- add r2, sp, 0x4
- ldr r3, _080143CC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x22
- ldrb r0, [r0]
- strb r0, [r2, 0x13]
- movs r4, 0
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x18]
- add r2, sp, 0x10
- mov r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801436E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801436E
- ldr r0, _080143D0 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl BtlController_EmitChooseMove
- b _0801460E
- .align 2, 0
-_080143CC: .4byte gBattleMons
-_080143D0: .4byte gBattleTypeFlags
-_080143D4:
- ldr r0, _08014410 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08014414 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _08014428
- ldr r1, _08014418 @ =gSelectionBattleScripts
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801441C @ =BattleScript_ActionSelectionItemsCantBeUsed
- str r1, [r0]
- ldr r0, _08014420 @ =gBattleCommunication
- ldrb r1, [r3]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- mov r0, r8
- ldrb r1, [r0]
- ldr r2, _08014424 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- mov r1, r8
- ldrb r0, [r1]
- b _0801472C
- .align 2, 0
-_08014410: .4byte gBattleTypeFlags
-_08014414: .4byte 0x00000902
-_08014418: .4byte gSelectionBattleScripts
-_0801441C: .4byte BattleScript_ActionSelectionItemsCantBeUsed
-_08014420: .4byte gBattleCommunication
-_08014424: .4byte gBattleStruct
-_08014428:
- ldr r2, _08014448 @ =gBattleStruct
- ldr r4, _0801444C @ =gActiveBattler
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x60
- ldr r1, [r2]
- adds r1, r0
- movs r0, 0
- bl BtlController_EmitChooseItem
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- b _080146AC
- .align 2, 0
-_08014448: .4byte gBattleStruct
-_0801444C: .4byte gActiveBattler
-_08014450:
- ldr r5, _080144A8 @ =gActiveBattler
- ldrb r0, [r5]
- ldr r3, _080144AC @ =gBattleStruct
- ldr r1, [r3]
- adds r1, r0, r1
- adds r1, 0x58
- ldr r2, _080144B0 @ =gBattlerPartyIndexes
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _080144B4 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080144B8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08014492
- ldr r0, _080144BC @ =gStatuses3
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _080144C0
-_08014492:
- lsls r1, r2, 1
- adds r1, r2
- adds r1, 0x60
- ldr r0, [r3]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _080145DE
- .align 2, 0
-_080144A8: .4byte gActiveBattler
-_080144AC: .4byte gBattleStruct
-_080144B0: .4byte gBattlerPartyIndexes
-_080144B4: .4byte gBattleMons
-_080144B8: .4byte 0x0400e000
-_080144BC: .4byte gStatuses3
-_080144C0:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08014548
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08014510
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08014510
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08014510
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _08014548
-_08014510:
- ldr r5, _08014574 @ =gActiveBattler
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08014584
- ldr r2, _08014578 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08014548
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08014584
-_08014548:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _0801457C @ =gLastUsedAbility
- ldrb r3, [r0]
- ldr r4, _08014580 @ =gBattleStruct
- ldr r0, _08014574 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, 0x60
- ldr r0, [r4]
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl BtlController_EmitChoosePokemon
- b _0801460E
- .align 2, 0
-_08014574: .4byte gActiveBattler
-_08014578: .4byte gBattleMons
-_0801457C: .4byte gLastUsedAbility
-_08014580: .4byte gBattleStruct
-_08014584:
- ldr r0, _080145A8 @ =gActiveBattler
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _080145B4
- ldr r0, _080145AC @ =gChosenActionByBattler
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080145B4
- ldr r0, _080145B0 @ =gBattleStruct
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5C
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- b _080145D0
- .align 2, 0
-_080145A8: .4byte gActiveBattler
-_080145AC: .4byte gChosenActionByBattler
-_080145B0: .4byte gBattleStruct
-_080145B4:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080145F0
- ldr r0, _080145E8 @ =gChosenActionByBattler
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _080145F0
- ldr r0, _080145EC @ =gBattleStruct
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0x5D
- ldrb r2, [r0]
- ldrb r1, [r1]
-_080145D0:
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x60
- adds r3, r0
- str r3, [sp]
- movs r0, 0
- movs r1, 0
-_080145DE:
- movs r3, 0
- bl BtlController_EmitChoosePokemon
- b _0801460E
- .align 2, 0
-_080145E8: .4byte gChosenActionByBattler
-_080145EC: .4byte gBattleStruct
-_080145F0:
- ldr r2, _08014618 @ =gBattleStruct
- ldr r0, _0801461C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x60
- ldr r0, [r2]
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl BtlController_EmitChoosePokemon
-_0801460E:
- ldr r0, _0801461C @ =gActiveBattler
- ldrb r0, [r0]
- bl MarkBattlerForControllerExec
- b _080146AC
- .align 2, 0
-_08014618: .4byte gBattleStruct
-_0801461C: .4byte gActiveBattler
-_08014620:
- bl IsPlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _080146AC
- ldr r1, _0801465C @ =gSelectionBattleScripts
- ldr r3, _08014660 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08014664 @ =gUnknown_81D8949
- str r1, [r0]
- ldr r0, _08014668 @ =gBattleCommunication
- ldrb r1, [r3]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r3]
- ldr r2, _0801466C @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r4, [r1]
- ldrb r0, [r3]
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0x84
- strb r4, [r0]
- b _08014C78
- .align 2, 0
-_0801465C: .4byte gSelectionBattleScripts
-_08014660: .4byte gActiveBattler
-_08014664: .4byte gUnknown_81D8949
-_08014668: .4byte gBattleCommunication
-_0801466C: .4byte gBattleStruct
-_08014670:
- ldr r4, _080146A8 @ =gBattleCommunication
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r2]
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl BtlController_EmitEndBounceEffect
- mov r3, r8
- ldrb r0, [r3]
- bl MarkBattlerForControllerExec
- b _08014C78
- .align 2, 0
-_080146A8: .4byte gBattleCommunication
-_080146AC:
- ldr r0, _080146D8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080146EC
- ldr r0, _080146DC @ =gBattleBufferB
- ldr r4, _080146E0 @ =gActiveBattler
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080146EC
- ldr r0, _080146E4 @ =gUnknown_81D8924
- bl BattleScriptExecute
- ldr r1, _080146E8 @ =gBattleCommunication
- ldrb r0, [r4]
- adds r0, r1
- b _08014926
- .align 2, 0
-_080146D8: .4byte gBattleTypeFlags
-_080146DC: .4byte gBattleBufferB
-_080146E0: .4byte gActiveBattler
-_080146E4: .4byte gUnknown_81D8924
-_080146E8: .4byte gBattleCommunication
-_080146EC:
- bl IsRunningFromBattleImpossible
- lsls r0, 24
- cmp r0, 0
- beq _08014750
- ldr r0, _08014738 @ =gBattleBufferB
- ldr r4, _0801473C @ =gActiveBattler
- ldrb r2, [r4]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08014750
- ldr r1, _08014740 @ =gSelectionBattleScripts
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08014744 @ =gUnknown_81D8943
- str r1, [r0]
- ldr r0, _08014748 @ =gBattleCommunication
- ldrb r1, [r4]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r4]
- ldr r2, _0801474C @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- ldrb r0, [r4]
-_0801472C:
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0x84
- strb r3, [r0]
- b _08014C78
- .align 2, 0
-_08014738: .4byte gBattleBufferB
-_0801473C: .4byte gActiveBattler
-_08014740: .4byte gSelectionBattleScripts
-_08014744: .4byte gUnknown_81D8943
-_08014748: .4byte gBattleCommunication
-_0801474C: .4byte gBattleStruct
-_08014750:
- ldr r2, _0801475C @ =gBattleCommunication
- ldr r0, _08014760 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_0801475C: .4byte gBattleCommunication
-_08014760: .4byte gActiveBattler
-_08014764:
- ldr r4, _080147A8 @ =gBattleControllerExecFlags
- ldr r1, _080147AC @ =gBitTable
- ldr r3, _080147B0 @ =gActiveBattler
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08014790
- b _08014C4E
-_08014790:
- ldr r1, _080147B4 @ =gChosenActionByBattler
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _0801479E
- b _08014C4E
-_0801479E:
- lsls r0, 2
- ldr r1, _080147B8 @ =_080147BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080147A8: .4byte gBattleControllerExecFlags
-_080147AC: .4byte gBitTable
-_080147B0: .4byte gActiveBattler
-_080147B4: .4byte gChosenActionByBattler
-_080147B8: .4byte _080147BC
- .align 2, 0
-_080147BC:
- .4byte _080147E4
- .4byte _080148D8
- .4byte _08014910
- .4byte _08014A08
- .4byte _08014A2C
- .4byte _08014A40
- .4byte _08014A54
- .4byte _08014A54
- .4byte _08014A68
- .4byte _08014A8C
-_080147E4:
- ldr r0, _08014804 @ =gBattleBufferB
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x9
- bgt _08014808
- cmp r1, 0x3
- blt _08014808
- adds r0, r4, r3
- strb r1, [r0]
- b _08014C78
- .align 2, 0
-_08014804: .4byte gBattleBufferB
-_08014808:
- adds r3, r7, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r6, r3, 0x2
- adds r0, r1, r6
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08014830 @ =0x0000ffff
- cmp r2, r0
- bne _08014838
- ldr r0, _08014834 @ =gBattleCommunication
- adds r0, r4, r0
- b _08014926
- .align 2, 0
-_08014830: .4byte 0x0000ffff
-_08014834: .4byte gBattleCommunication
-_08014838:
- bl TrySetCantSelectMoveBattleScript
- lsls r0, 24
- cmp r0, 0
- beq _0801487C
- ldr r0, _08014874 @ =gBattleCommunication
- ldrb r1, [r5]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldrb r1, [r5]
- ldr r2, _08014878 @ =gBattleStruct
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x54
- strb r3, [r1]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- strb r3, [r0]
- ldrb r1, [r5]
- ldr r0, [r2]
- adds r1, r0
- adds r1, 0x84
- movs r0, 0x1
- strb r0, [r1]
- b _08014C78
- .align 2, 0
-_08014874: .4byte gBattleCommunication
-_08014878: .4byte gBattleStruct
-_0801487C:
- mov r2, r8
- ldrb r0, [r2]
- ldr r4, _080148C8 @ =gBattleStruct
- ldr r1, [r4]
- adds r1, r0, r1
- adds r1, 0x80
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080148CC @ =gChosenMoveByBattler
- ldrb r2, [r2]
- lsls r5, r2, 1
- adds r5, r0
- ldr r3, _080148D0 @ =gBattleMons
- ldr r4, [r4]
- adds r0, r2, r4
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r5]
- mov r3, r8
- ldrb r0, [r3]
- adds r4, r0, r4
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r4, 0xC]
- ldr r0, _080148D4 @ =gBattleCommunication
- ldrb r1, [r3]
- b _08014B30
- .align 2, 0
-_080148C8: .4byte gBattleStruct
-_080148CC: .4byte gChosenMoveByBattler
-_080148D0: .4byte gBattleMons
-_080148D4: .4byte gBattleCommunication
-_080148D8:
- ldr r2, _08014900 @ =gBattleBufferB
- ldr r5, _08014904 @ =gActiveBattler
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _080148F6
- b _08014C48
-_080148F6:
- ldr r0, _08014908 @ =gLastUsedItem
- strh r3, [r0]
- ldr r0, _0801490C @ =gBattleCommunication
- ldrb r1, [r5]
- b _08014B30
- .align 2, 0
-_08014900: .4byte gBattleBufferB
-_08014904: .4byte gActiveBattler
-_08014908: .4byte gLastUsedItem
-_0801490C: .4byte gBattleCommunication
-_08014910:
- ldr r6, _0801492C @ =gBattleBufferB
- ldr r7, _08014930 @ =gActiveBattler
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r6, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08014938
- ldr r0, _08014934 @ =gBattleCommunication
- adds r0, r2, r0
-_08014926:
- movs r1, 0
- strb r1, [r0]
- b _08014C4E
- .align 2, 0
-_0801492C: .4byte gBattleBufferB
-_08014930: .4byte gActiveBattler
-_08014934: .4byte gBattleCommunication
-_08014938:
- ldr r0, _080149FC @ =gBattleStruct
- mov r12, r0
- ldr r0, [r0]
- adds r0, r2, r0
- adds r0, 0x5C
- strb r1, [r0]
- ldr r0, _08014A00 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080149F6
- ldrb r0, [r7]
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- mov r2, r12
- ldr r1, [r2]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r1
- adds r2, 0x60
- lsls r0, 9
- adds r5, r6, 0x2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r1, [r7]
- mov r0, r12
- ldr r2, [r0]
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r0, 0x61
- lsls r1, 9
- adds r6, 0x3
- adds r1, r6
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- mov r1, r12
- ldr r2, [r1]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r2
- adds r1, 0x60
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r5
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- mov r2, r12
- ldr r0, [r2]
- lsls r1, r4, 1
- adds r1, r4
- adds r1, r0
- adds r1, 0x62
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
-_080149F6:
- ldr r0, _08014A04 @ =gBattleCommunication
- ldrb r1, [r7]
- b _08014B30
- .align 2, 0
-_080149FC: .4byte gBattleStruct
-_08014A00: .4byte gBattleTypeFlags
-_08014A04: .4byte gBattleCommunication
-_08014A08:
- ldr r2, _08014A20 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08014A24 @ =gBattleCommunication
- ldr r0, _08014A28 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A20: .4byte gHitMarker
-_08014A24: .4byte gBattleCommunication
-_08014A28: .4byte gActiveBattler
-_08014A2C:
- ldr r2, _08014A38 @ =gBattleCommunication
- ldr r0, _08014A3C @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A38: .4byte gBattleCommunication
-_08014A3C: .4byte gActiveBattler
-_08014A40:
- ldr r2, _08014A4C @ =gBattleCommunication
- ldr r0, _08014A50 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A4C: .4byte gBattleCommunication
-_08014A50: .4byte gActiveBattler
-_08014A54:
- ldr r2, _08014A60 @ =gBattleCommunication
- ldr r0, _08014A64 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A60: .4byte gBattleCommunication
-_08014A64: .4byte gActiveBattler
-_08014A68:
- ldr r2, _08014A80 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08014A84 @ =gBattleCommunication
- ldr r0, _08014A88 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A80: .4byte gHitMarker
-_08014A84: .4byte gBattleCommunication
-_08014A88: .4byte gActiveBattler
-_08014A8C:
- ldr r2, _08014A98 @ =gBattleCommunication
- ldr r0, _08014A9C @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, r2
- b _08014B32
- .align 2, 0
-_08014A98: .4byte gBattleCommunication
-_08014A9C: .4byte gActiveBattler
-_08014AA0:
- ldr r3, _08014B08 @ =gBattleControllerExecFlags
- ldr r4, _08014B0C @ =gBitTable
- ldr r0, _08014B10 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08014ACA
- b _08014C4E
-_08014ACA:
- ldr r0, _08014B14 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08014AFE
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08014AFE
- adds r0, r5, 0
- eors r0, r1
- bl GetBattlerAtPosition
- ldr r1, _08014B18 @ =gBattleStruct
- ldr r1, [r1]
- adds r1, 0x91
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08014B1C
-_08014AFE:
- movs r0, 0
- movs r1, 0
- bl BtlController_EmitLinkStandbyMsg
- b _08014B24
- .align 2, 0
-_08014B08: .4byte gBattleControllerExecFlags
-_08014B0C: .4byte gBitTable
-_08014B10: .4byte gActiveBattler
-_08014B14: .4byte gBattleTypeFlags
-_08014B18: .4byte gBattleStruct
-_08014B1C:
- movs r0, 0
- movs r1, 0x1
- bl BtlController_EmitLinkStandbyMsg
-_08014B24:
- ldr r4, _08014B3C @ =gActiveBattler
-_08014B26:
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r0, _08014B40 @ =gBattleCommunication
- ldrb r1, [r4]
-_08014B30:
- adds r1, r0
-_08014B32:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08014C4E
- .align 2, 0
-_08014B3C: .4byte gActiveBattler
-_08014B40: .4byte gBattleCommunication
-_08014B44:
- ldr r3, _08014B78 @ =gBattleControllerExecFlags
- ldr r1, _08014B7C @ =gBitTable
- ldr r0, _08014B80 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08014C4E
- ldr r1, _08014B84 @ =gBattleCommunication
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08014C4E
- .align 2, 0
-_08014B78: .4byte gBattleControllerExecFlags
-_08014B7C: .4byte gBitTable
-_08014B80: .4byte gActiveBattler
-_08014B84: .4byte gBattleCommunication
-_08014B88:
- ldr r5, _08014BA8 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r0, _08014BAC @ =gBattleStruct
- ldr r0, [r0]
- adds r1, r2, r0
- adds r0, r1, 0
- adds r0, 0x54
- ldrb r0, [r0]
- cmp r0, 0
- beq _08014BB4
- ldr r0, _08014BB0 @ =gBattleCommunication
- adds r0, r2, r0
- adds r1, 0x84
- ldrb r1, [r1]
- strb r1, [r0]
- b _08014C4E
- .align 2, 0
-_08014BA8: .4byte gActiveBattler
-_08014BAC: .4byte gBattleStruct
-_08014BB0: .4byte gBattleCommunication
-_08014BB4:
- ldr r0, _08014C08 @ =gBattlerAttacker
- strb r2, [r0]
- ldr r7, _08014C0C @ =gBattlescriptCurrInstr
- ldr r6, _08014C10 @ =gSelectionBattleScripts
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08014C14 @ =gBattleControllerExecFlags
- ldr r1, _08014C18 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08014BFA
- ldr r0, _08014C1C @ =gBattleScriptingCommandsTable
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08014BFA:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08014C4E
- .align 2, 0
-_08014C08: .4byte gBattlerAttacker
-_08014C0C: .4byte gBattlescriptCurrInstr
-_08014C10: .4byte gSelectionBattleScripts
-_08014C14: .4byte gBattleControllerExecFlags
-_08014C18: .4byte gBitTable
-_08014C1C: .4byte gBattleScriptingCommandsTable
-_08014C20:
- ldr r3, _08014C88 @ =gBattleControllerExecFlags
- ldr r1, _08014C8C @ =gBitTable
- ldr r0, _08014C90 @ =gActiveBattler
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08014C4E
-_08014C48:
- ldr r0, _08014C94 @ =gBattleCommunication
- adds r0, r4, r0
- strb r3, [r0]
-_08014C4E:
- ldr r0, _08014C90 @ =gActiveBattler
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08014C98 @ =gBattlersCount
- lsls r1, 24
- lsrs r1, 24
- adds r2, r0, 0
- ldrb r3, [r2]
- cmp r1, r3
- bcs _08014C68
- bl _08014064
-_08014C68:
- ldr r0, _08014C94 @ =gBattleCommunication
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08014C78
- ldr r1, _08014C9C @ =gBattleMainFunc
- ldr r0, _08014CA0 @ =SetActionsAndBattlersTurnOrder
- str r0, [r1]
-_08014C78:
- 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
-_08014C88: .4byte gBattleControllerExecFlags
-_08014C8C: .4byte gBitTable
-_08014C90: .4byte gActiveBattler
-_08014C94: .4byte gBattleCommunication
-_08014C98: .4byte gBattlersCount
-_08014C9C: .4byte gBattleMainFunc
-_08014CA0: .4byte SetActionsAndBattlersTurnOrder
- thumb_func_end HandleTurnActionSelectionState
-
- thumb_func_start SwapTurnOrder
-SwapTurnOrder: @ 8014CA4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08014CD0 @ =gActionsByTurnOrder
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08014CD4 @ =gBattlerByTurnOrder
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014CD0: .4byte gActionsByTurnOrder
-_08014CD4: .4byte gBattlerByTurnOrder
- thumb_func_end SwapTurnOrder
-
- thumb_func_start GetWhoStrikesFirst
-GetWhoStrikesFirst: @ 8014CD8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08014DA0
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl AbilityBattleEffects
- lsls r0, 24
- cmp r0, 0
- bne _08014DA0
- ldr r1, _08014D58 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _08014D44
- ldr r0, _08014D5C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08014D54
-_08014D44:
- cmp r3, 0x22
- bne _08014D60
- ldr r0, _08014D5C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08014D60
-_08014D54:
- movs r3, 0x2
- b _08014D62
- .align 2, 0
-_08014D58: .4byte gBattleMons
-_08014D5C: .4byte gBattleWeather
-_08014D60:
- movs r3, 0x1
-_08014D62:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _08014D98 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _08014D82
- ldr r0, _08014D9C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08014D92
-_08014D82:
- cmp r2, 0x22
- bne _08014DA2
- ldr r0, _08014D9C @ =gBattleWeather
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08014DA2
-_08014D92:
- movs r7, 0x2
- b _08014DA4
- .align 2, 0
-_08014D98: .4byte gBattleMons
-_08014D9C: .4byte gBattleWeather
-_08014DA0:
- movs r3, 0x1
-_08014DA2:
- movs r7, 0x1
-_08014DA4:
- ldr r1, _08014DE8 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08014DEC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _08014DF4
- ldr r1, _08014DF0 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08014E08
- .align 2, 0
-_08014DE8: .4byte gBattleMons
-_08014DEC: .4byte gStatStageRatios
-_08014DF0: .4byte gEnigmaBerries
-_08014DF4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08014E08:
- ldr r0, _08014EC4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08014E3C
- ldr r0, _08014EC8 @ =0x00000822
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08014E3C
- mov r0, r9
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08014E3C
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08014E3C:
- cmp r6, 0x18
- bne _08014E46
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_08014E46:
- ldr r1, _08014ECC @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08014E64
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_08014E64:
- cmp r6, 0x1A
- bne _08014E80
- ldr r0, _08014ED0 @ =gRandomTurnNumber
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08014E80
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08014E80:
- ldr r1, _08014ECC @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _08014ED4 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _08014EDC
- ldr r1, _08014ED8 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08014EF0
- .align 2, 0
-_08014EC4: .4byte gBattleTypeFlags
-_08014EC8: .4byte 0x00000822
-_08014ECC: .4byte gBattleMons
-_08014ED0: .4byte gRandomTurnNumber
-_08014ED4: .4byte gStatStageRatios
-_08014ED8: .4byte gEnigmaBerries
-_08014EDC:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08014EF0:
- ldr r0, _08014F68 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08014F20
- ldr r0, _08014F6C @ =0x00000822
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08014F20
- mov r0, r10
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08014F20
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08014F20:
- cmp r6, 0x18
- bne _08014F26
- lsrs r7, 1
-_08014F26:
- ldr r2, _08014F70 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08014F42
- lsrs r7, 2
-_08014F42:
- cmp r6, 0x1A
- bne _08014F5C
- ldr r0, _08014F74 @ =gRandomTurnNumber
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08014F5C
- movs r7, 0x1
- negs r7, r7
-_08014F5C:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08014F78
- movs r3, 0
- b _08015014
- .align 2, 0
-_08014F68: .4byte gBattleTypeFlags
-_08014F6C: .4byte 0x00000822
-_08014F70: .4byte gBattleMons
-_08014F74: .4byte gRandomTurnNumber
-_08014F78:
- ldr r0, _08014F98 @ =gChosenActionByBattler
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _08014FC8
- ldr r0, _08014F9C @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08014FA0
- movs r3, 0xA5
- b _08014FCA
- .align 2, 0
-_08014F98: .4byte gChosenActionByBattler
-_08014F9C: .4byte gProtectStructs
-_08014FA0:
- ldr r0, _08014FC0 @ =gBattleStruct
- ldr r0, [r0]
- add r0, r9
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _08014FC4 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _08014FCA
- .align 2, 0
-_08014FC0: .4byte gBattleStruct
-_08014FC4: .4byte gBattleMons
-_08014FC8:
- movs r3, 0
-_08014FCA:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015014
- ldr r0, _08014FE8 @ =gProtectStructs
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08014FEC
- movs r2, 0xA5
- b _08015016
- .align 2, 0
-_08014FE8: .4byte gProtectStructs
-_08014FEC:
- ldr r0, _0801500C @ =gBattleStruct
- ldr r0, [r0]
- add r0, r10
- adds r0, 0x80
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08015010 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08015016
- .align 2, 0
-_0801500C: .4byte gBattleStruct
-_08015010: .4byte gBattleMons
-_08015014:
- movs r2, 0
-_08015016:
- ldr r4, _08015060 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801503A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08015078
-_0801503A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801506E
- cmp r8, r7
- bne _08015064
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08015064
- movs r3, 0x2
- b _08015094
- .align 2, 0
-_08015060: .4byte gBattleMoves
-_08015064:
- cmp r8, r7
- bcs _08015096
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _08015096
-_0801506E:
- cmp r1, r0
- bge _08015096
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _08015096
-_08015078:
- cmp r8, r7
- bne _0801508E
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801508E
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _08015096
-_0801508E:
- cmp r8, r7
- bcs _08015096
- movs r3, 0x1
-_08015094:
- str r3, [sp, 0x8]
-_08015096:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetWhoStrikesFirst
-
- thumb_func_start SetActionsAndBattlersTurnOrder
-SetActionsAndBattlersTurnOrder: @ 80150A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _080150FC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08015114
- ldr r0, _08015100 @ =gActiveBattler
- strb r3, [r0]
- ldr r4, _08015104 @ =gBattlersCount
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080150D0
- b _080152FA
-_080150D0:
- ldr r7, _08015108 @ =gActionsByTurnOrder
- ldr r6, _0801510C @ =gChosenActionByBattler
- mov r2, r8
- ldr r5, _08015110 @ =gBattlerByTurnOrder
-_080150D8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080150D8
- b _080152FA
- .align 2, 0
-_080150FC: .4byte gBattleTypeFlags
-_08015100: .4byte gActiveBattler
-_08015104: .4byte gBattlersCount
-_08015108: .4byte gActionsByTurnOrder
-_0801510C: .4byte gChosenActionByBattler
-_08015110: .4byte gBattlerByTurnOrder
-_08015114:
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08015164
- ldr r0, _08015158 @ =gActiveBattler
- strb r3, [r0]
- ldr r1, _0801515C @ =gBattlersCount
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08015174
- ldr r0, _08015160 @ =gChosenActionByBattler
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08015172
-_08015136:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801515C @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08015174
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08015136
- b _08015172
- .align 2, 0
-_08015158: .4byte gActiveBattler
-_0801515C: .4byte gBattlersCount
-_08015160: .4byte gChosenActionByBattler
-_08015164:
- ldr r0, _080151D8 @ =gChosenActionByBattler
- ldrb r0, [r0]
- ldr r2, _080151DC @ =gActiveBattler
- mov r8, r2
- cmp r0, 0x3
- bne _08015174
- strb r3, [r2]
-_08015172:
- movs r3, 0x5
-_08015174:
- cmp r3, 0x5
- bne _080151F8
- ldr r6, _080151E0 @ =gActionsByTurnOrder
- ldr r1, _080151D8 @ =gChosenActionByBattler
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _080151E4 @ =gBattlerByTurnOrder
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _080151E8 @ =gBattleMainFunc
- mov r10, r7
- ldr r0, _080151EC @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
- mov r12, r0
- ldr r1, _080151F0 @ =gBattleStruct
- mov r9, r1
- ldr r7, _080151F4 @ =gBattlersCount
- ldrb r7, [r7]
- cmp r5, r7
- bge _080151CC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _080151F4 @ =gBattlersCount
-_080151AE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080151C4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080151C4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080151AE
-_080151CC:
- mov r2, r12
- mov r3, r10
- str r2, [r3]
- mov r7, r9
- ldr r0, [r7]
- b _08015304
- .align 2, 0
-_080151D8: .4byte gChosenActionByBattler
-_080151DC: .4byte gActiveBattler
-_080151E0: .4byte gActionsByTurnOrder
-_080151E4: .4byte gBattlerByTurnOrder
-_080151E8: .4byte gBattleMainFunc
-_080151EC: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
-_080151F0: .4byte gBattleStruct
-_080151F4: .4byte gBattlersCount
-_080151F8:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- ldr r2, _08015288 @ =gBattlersCount
- ldrb r0, [r2]
- cmp r0, 0
- beq _0801523E
- ldr r6, _0801528C @ =gChosenActionByBattler
- mov r2, r8
- ldr r5, _08015290 @ =gActionsByTurnOrder
- ldr r4, _08015294 @ =gBattlerByTurnOrder
-_0801520E:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0801522C
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_0801522C:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015288 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801520E
-_0801523E:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _08015288 @ =gBattlersCount
- ldrb r0, [r7]
- cmp r0, 0
- beq _08015282
- ldr r6, _0801528C @ =gChosenActionByBattler
- ldr r5, _08015290 @ =gActionsByTurnOrder
- ldr r4, _08015294 @ =gBattlerByTurnOrder
-_08015252:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015270
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08015270:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015288 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08015252
-_08015282:
- movs r5, 0
- b _080152F0
- .align 2, 0
-_08015288: .4byte gBattlersCount
-_0801528C: .4byte gChosenActionByBattler
-_08015290: .4byte gActionsByTurnOrder
-_08015294: .4byte gBattlerByTurnOrder
-_08015298:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _080152EE
- ldr r6, _08015318 @ =gActionsByTurnOrder
- lsls r2, r5, 24
- mov r8, r2
-_080152A8:
- ldr r0, _0801531C @ =gBattlerByTurnOrder
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _080152E4
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080152E4
- cmp r2, 0x2
- beq _080152E4
- cmp r0, 0x2
- beq _080152E4
- adds r0, r3, 0
- movs r2, 0
- bl GetWhoStrikesFirst
- lsls r0, 24
- cmp r0, 0
- beq _080152E4
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl SwapTurnOrder
-_080152E4:
- adds r4, 0x1
- ldr r0, _08015320 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152A8
-_080152EE:
- adds r5, r7, 0
-_080152F0:
- ldr r1, _08015320 @ =gBattlersCount
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015298
-_080152FA:
- ldr r1, _08015324 @ =gBattleMainFunc
- ldr r0, _08015328 @ =CheckFocusPunch_ClearVarsBeforeTurnStarts
- str r0, [r1]
- ldr r0, _0801532C @ =gBattleStruct
- ldr r0, [r0]
-_08015304:
- adds r0, 0x48
- movs r1, 0
- strb r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015318: .4byte gActionsByTurnOrder
-_0801531C: .4byte gBattlerByTurnOrder
-_08015320: .4byte gBattlersCount
-_08015324: .4byte gBattleMainFunc
-_08015328: .4byte CheckFocusPunch_ClearVarsBeforeTurnStarts
-_0801532C: .4byte gBattleStruct
- thumb_func_end SetActionsAndBattlersTurnOrder
-
- thumb_func_start TurnValuesCleanUp
-TurnValuesCleanUp: @ 8015330
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _08015388 @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801538C @ =gBattlersCount
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08015428
- ldr r7, _08015390 @ =gProtectStructs
- adds r6, r5, 0
- ldr r0, _08015394 @ =gUnknown_2023C34
- mov r12, r0
- ldr r1, _08015398 @ =gDisableStructs
- mov r8, r1
- mov r10, r8
-_0801535E:
- mov r2, r9
- cmp r2, 0
- beq _0801539C
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _080153F8
- .align 2, 0
-_08015388: .4byte gActiveBattler
-_0801538C: .4byte gBattlersCount
-_08015390: .4byte gProtectStructs
-_08015394: .4byte gUnknown_2023C34
-_08015398: .4byte gDisableStructs
-_0801539C:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080153A8:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080153A8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080153C6
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080153C6:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _080153F8
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _080153F8
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08015440 @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_080153F8:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08015416
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08015444 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08015416:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015448 @ =gBattlersCount
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801535E
-_08015428:
- movs r0, 0
- ldr r2, _0801544C @ =gSideTimers
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015440: .4byte 0xffbfffff
-_08015444: .4byte 0xfeffffff
-_08015448: .4byte gBattlersCount
-_0801544C: .4byte gSideTimers
- thumb_func_end TurnValuesCleanUp
-
- thumb_func_start SpecialStatusesClear
-SpecialStatusesClear: @ 8015450
- push {r4-r6,lr}
- ldr r2, _08015494 @ =gActiveBattler
- movs r0, 0
- strb r0, [r2]
- ldr r0, _08015498 @ =gBattlersCount
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801548E
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _0801549C @ =gSpecialStatuses
-_08015468:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_08015474:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _08015474
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08015468
-_0801548E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015494: .4byte gActiveBattler
-_08015498: .4byte gBattlersCount
-_0801549C: .4byte gSpecialStatuses
- thumb_func_end SpecialStatusesClear
-
- thumb_func_start CheckFocusPunch_ClearVarsBeforeTurnStarts
-CheckFocusPunch_ClearVarsBeforeTurnStarts: @ 80154A0
- push {r4-r7,lr}
- ldr r0, _08015528 @ =gHitMarker
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801555E
- ldr r2, _0801552C @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x48
- ldr r1, _08015530 @ =gBattlersCount
- ldrb r0, [r0]
- mov r12, r2
- adds r6, r1, 0
- ldrb r1, [r6]
- cmp r0, r1
- bcs _0801555E
- ldr r5, _08015534 @ =gActiveBattler
- ldr r4, _08015538 @ =gBattlerAttacker
- movs r7, 0x84
- lsls r7, 1
-_080154CC:
- ldr r1, [r2]
- adds r1, 0x48
- ldrb r0, [r1]
- strb r0, [r4]
- strb r0, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _0801553C @ =gChosenMoveByBattler
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- bne _08015550
- ldr r1, _08015540 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08015550
- ldr r2, _08015544 @ =gDisableStructs
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08015550
- ldr r0, _08015548 @ =gProtectStructs
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _08015550
- ldr r0, _0801554C @ =gUnknown_81D9015
- bl BattleScriptExecute
- b _08015598
- .align 2, 0
-_08015528: .4byte gHitMarker
-_0801552C: .4byte gBattleStruct
-_08015530: .4byte gBattlersCount
-_08015534: .4byte gActiveBattler
-_08015538: .4byte gBattlerAttacker
-_0801553C: .4byte gChosenMoveByBattler
-_08015540: .4byte gBattleMons
-_08015544: .4byte gDisableStructs
-_08015548: .4byte gProtectStructs
-_0801554C: .4byte gUnknown_81D9015
-_08015550:
- mov r2, r12
- ldr r0, [r2]
- adds r0, 0x48
- ldrb r0, [r0]
- ldrb r1, [r6]
- cmp r0, r1
- bcc _080154CC
-_0801555E:
- bl TryClearRageStatuses
- ldr r1, _080155A0 @ =gCurrentTurnActionNumber
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080155A4 @ =gCurrentActionFuncId
- ldr r0, _080155A8 @ =gActionsByTurnOrder
- movs r3, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080155AC @ =gDynamicBasePower
- movs r2, 0
- strh r3, [r0]
- ldr r0, _080155B0 @ =gBattleStruct
- ldr r0, [r0]
- strb r2, [r0, 0x13]
- ldr r1, _080155B4 @ =gBattleMainFunc
- ldr r0, _080155B8 @ =RunTurnActionsFunctions
- str r0, [r1]
- ldr r0, _080155BC @ =gBattleCommunication
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r0, _080155C0 @ =gBattleScripting
- strb r2, [r0, 0x16]
- ldr r0, _080155C4 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r2, [r0]
-_08015598:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155A0: .4byte gCurrentTurnActionNumber
-_080155A4: .4byte gCurrentActionFuncId
-_080155A8: .4byte gActionsByTurnOrder
-_080155AC: .4byte gDynamicBasePower
-_080155B0: .4byte gBattleStruct
-_080155B4: .4byte gBattleMainFunc
-_080155B8: .4byte RunTurnActionsFunctions
-_080155BC: .4byte gBattleCommunication
-_080155C0: .4byte gBattleScripting
-_080155C4: .4byte gBattleResources
- thumb_func_end CheckFocusPunch_ClearVarsBeforeTurnStarts
-
- thumb_func_start RunTurnActionsFunctions
-RunTurnActionsFunctions: @ 80155C8
- push {r4-r6,lr}
- ldr r6, _0801561C @ =gBattleOutcome
- ldrb r0, [r6]
- ldr r2, _08015620 @ =gCurrentActionFuncId
- cmp r0, 0
- beq _080155D8
- movs r0, 0xC
- strb r0, [r2]
-_080155D8:
- ldr r5, _08015624 @ =gBattleStruct
- ldr r0, [r5]
- adds r0, 0x4B
- ldr r4, _08015628 @ =gCurrentTurnActionNumber
- ldrb r1, [r4]
- strb r1, [r0]
- ldr r1, _0801562C @ =sTurnActionsFuncsTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08015630 @ =gBattlersCount
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08015644
- ldr r2, _08015634 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08015638 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _0801563C @ =gBattleMainFunc
- ldr r2, _08015640 @ =sEndTurnFuncsTable
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _0801565C
- .align 2, 0
-_0801561C: .4byte gBattleOutcome
-_08015620: .4byte gCurrentActionFuncId
-_08015624: .4byte gBattleStruct
-_08015628: .4byte gCurrentTurnActionNumber
-_0801562C: .4byte sTurnActionsFuncsTable
-_08015630: .4byte gBattlersCount
-_08015634: .4byte gHitMarker
-_08015638: .4byte 0xffefffff
-_0801563C: .4byte gBattleMainFunc
-_08015640: .4byte sEndTurnFuncsTable
-_08015644:
- ldr r0, [r5]
- adds r0, 0x4B
- ldrb r0, [r0]
- cmp r0, r1
- beq _0801565C
- ldr r2, _08015664 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08015668 @ =0xfffffdff
- ands r0, r1
- ldr r1, _0801566C @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_0801565C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015664: .4byte gHitMarker
-_08015668: .4byte 0xfffffdff
-_0801566C: .4byte 0xfff7ffff
- thumb_func_end RunTurnActionsFunctions
-
- thumb_func_start HandleEndTurn_BattleWon
-HandleEndTurn_BattleWon: @ 8015670
- push {r4,lr}
- ldr r1, _080156A8 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080156AC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080156C4
- ldr r1, _080156B0 @ =gBattleTextBuff1
- ldr r4, _080156B4 @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080156B8 @ =gBattlerAttacker
- strb r0, [r1]
- ldr r1, _080156BC @ =gBattlescriptCurrInstr
- ldr r0, _080156C0 @ =gUnknown_81D88CC
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _0801576E
- .align 2, 0
-_080156A8: .4byte gCurrentActionFuncId
-_080156AC: .4byte gBattleTypeFlags
-_080156B0: .4byte gBattleTextBuff1
-_080156B4: .4byte gBattleOutcome
-_080156B8: .4byte gBattlerAttacker
-_080156BC: .4byte gBattlescriptCurrInstr
-_080156C0: .4byte gUnknown_81D88CC
-_080156C4:
- ldr r0, _080156E0 @ =0x00080900
- ands r0, r1
- cmp r0, 0
- beq _080156EC
- bl BattleStopLowHpSound
- movs r0, 0x9B
- lsls r0, 1
- bl PlayBGM
- ldr r1, _080156E4 @ =gBattlescriptCurrInstr
- ldr r0, _080156E8 @ =gUnknown_81D88D7
- b _0801576C
- .align 2, 0
-_080156E0: .4byte 0x00080900
-_080156E4: .4byte gBattlescriptCurrInstr
-_080156E8: .4byte gUnknown_81D88D7
-_080156EC:
- movs r0, 0xA
- ands r1, r0
- cmp r1, 0x8
- bne _08015768
- bl BattleStopLowHpSound
- ldr r1, _08015720 @ =gBattlescriptCurrInstr
- ldr r0, _08015724 @ =gUnknown_81D87EF
- str r0, [r1]
- ldr r2, _08015728 @ =gTrainers
- ldr r0, _0801572C @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x53
- cmp r0, 0x7
- bhi _0801575E
- lsls r0, 2
- ldr r1, _08015730 @ =_08015734
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015720: .4byte gBattlescriptCurrInstr
-_08015724: .4byte gUnknown_81D87EF
-_08015728: .4byte gTrainers
-_0801572C: .4byte gTrainerBattleOpponent_A
-_08015730: .4byte _08015734
- .align 2, 0
-_08015734:
- .4byte _0801575E
- .4byte _08015754
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _0801575E
- .4byte _08015754
-_08015754:
- movs r0, 0x9C
- lsls r0, 1
- bl PlayBGM
- b _0801576E
-_0801575E:
- movs r0, 0x9B
- lsls r0, 1
- bl PlayBGM
- b _0801576E
-_08015768:
- ldr r1, _0801577C @ =gBattlescriptCurrInstr
- ldr r0, _08015780 @ =gUnknown_81D8803
-_0801576C:
- str r0, [r1]
-_0801576E:
- ldr r1, _08015784 @ =gBattleMainFunc
- ldr r0, _08015788 @ =HandleEndTurn_FinishBattle
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801577C: .4byte gBattlescriptCurrInstr
-_08015780: .4byte gUnknown_81D8803
-_08015784: .4byte gBattleMainFunc
-_08015788: .4byte HandleEndTurn_FinishBattle
- thumb_func_end HandleEndTurn_BattleWon
-
- thumb_func_start HandleEndTurn_BattleLost
-HandleEndTurn_BattleLost: @ 801578C
- push {r4,lr}
- ldr r1, _080157C4 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080157C8 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r4, 0x2
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _080157E0
- ldr r1, _080157CC @ =gBattleTextBuff1
- ldr r4, _080157D0 @ =gBattleOutcome
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080157D4 @ =gBattlerAttacker
- strb r0, [r1]
- ldr r1, _080157D8 @ =gBattlescriptCurrInstr
- ldr r0, _080157DC @ =gUnknown_81D88CC
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08015830
- .align 2, 0
-_080157C4: .4byte gCurrentActionFuncId
-_080157C8: .4byte gBattleTypeFlags
-_080157CC: .4byte gBattleTextBuff1
-_080157D0: .4byte gBattleOutcome
-_080157D4: .4byte gBattlerAttacker
-_080157D8: .4byte gBattlescriptCurrInstr
-_080157DC: .4byte gUnknown_81D88CC
-_080157E0:
- movs r0, 0x8
- ands r1, r0
- cmp r1, 0
- beq _08015824
- bl sub_80803CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _08015824
- bl sub_80803D8
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801580C
- ldr r1, _08015808 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08015810
- .align 2, 0
-_08015808: .4byte gBattleCommunication
-_0801580C:
- ldr r0, _0801581C @ =gBattleCommunication
- strb r4, [r0, 0x5]
-_08015810:
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08015820 @ =gBattlerAttacker
- strb r0, [r1]
- b _0801582A
- .align 2, 0
-_0801581C: .4byte gBattleCommunication
-_08015820: .4byte gBattlerAttacker
-_08015824:
- ldr r1, _0801583C @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_0801582A:
- ldr r1, _08015840 @ =gBattlescriptCurrInstr
- ldr r0, _08015844 @ =gUnknown_81D8806
- str r0, [r1]
-_08015830:
- ldr r1, _08015848 @ =gBattleMainFunc
- ldr r0, _0801584C @ =HandleEndTurn_FinishBattle
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801583C: .4byte gBattleCommunication
-_08015840: .4byte gBattlescriptCurrInstr
-_08015844: .4byte gUnknown_81D8806
-_08015848: .4byte gBattleMainFunc
-_0801584C: .4byte HandleEndTurn_FinishBattle
- thumb_func_end HandleEndTurn_BattleLost
-
- thumb_func_start HandleEndTurn_RanFromBattle
-HandleEndTurn_RanFromBattle: @ 8015850
- push {lr}
- ldr r1, _08015878 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801587C @ =gProtectStructs
- ldr r0, _08015880 @ =gBattlerAttacker
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _0801588C
- cmp r0, 0x2
- beq _0801589C
- ldr r1, _08015884 @ =gBattlescriptCurrInstr
- ldr r0, _08015888 @ =gUnknown_81D8916
- b _080158A0
- .align 2, 0
-_08015878: .4byte gCurrentActionFuncId
-_0801587C: .4byte gProtectStructs
-_08015880: .4byte gBattlerAttacker
-_08015884: .4byte gBattlescriptCurrInstr
-_08015888: .4byte gUnknown_81D8916
-_0801588C:
- ldr r1, _08015894 @ =gBattlescriptCurrInstr
- ldr r0, _08015898 @ =gUnknown_81D8901
- b _080158A0
- .align 2, 0
-_08015894: .4byte gBattlescriptCurrInstr
-_08015898: .4byte gUnknown_81D8901
-_0801589C:
- ldr r1, _080158AC @ =gBattlescriptCurrInstr
- ldr r0, _080158B0 @ =gUnknown_81D890F
-_080158A0:
- str r0, [r1]
- ldr r1, _080158B4 @ =gBattleMainFunc
- ldr r0, _080158B8 @ =HandleEndTurn_FinishBattle
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080158AC: .4byte gBattlescriptCurrInstr
-_080158B0: .4byte gUnknown_81D890F
-_080158B4: .4byte gBattleMainFunc
-_080158B8: .4byte HandleEndTurn_FinishBattle
- thumb_func_end HandleEndTurn_RanFromBattle
-
- thumb_func_start HandleEndTurn_MonFled
-HandleEndTurn_MonFled: @ 80158BC
- ldr r1, _080158F0 @ =gCurrentActionFuncId
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080158F4 @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080158F8 @ =gBattlerAttacker
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080158FC @ =gBattlerPartyIndexes
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015900 @ =gBattlescriptCurrInstr
- ldr r0, _08015904 @ =gUnknown_81D891D
- str r0, [r1]
- ldr r1, _08015908 @ =gBattleMainFunc
- ldr r0, _0801590C @ =HandleEndTurn_FinishBattle
- str r0, [r1]
- bx lr
- .align 2, 0
-_080158F0: .4byte gCurrentActionFuncId
-_080158F4: .4byte gBattleTextBuff1
-_080158F8: .4byte gBattlerAttacker
-_080158FC: .4byte gBattlerPartyIndexes
-_08015900: .4byte gBattlescriptCurrInstr
-_08015904: .4byte gUnknown_81D891D
-_08015908: .4byte gBattleMainFunc
-_0801590C: .4byte HandleEndTurn_FinishBattle
- thumb_func_end HandleEndTurn_MonFled
-
thumb_func_start HandleEndTurn_FinishBattle
HandleEndTurn_FinishBattle: @ 8015910
push {r4-r7,lr}