summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s13887
-rw-r--r--asm/battle_anim.s8
-rw-r--r--asm/battle_anim_effects_2.s8
-rw-r--r--asm/battle_anim_effects_3.s24
-rw-r--r--asm/battle_bg.s (renamed from asm/battle_1.s)20
-rw-r--r--asm/battle_controller_oak.s7887
-rw-r--r--asm/battle_controller_pokedude.s206
-rw-r--r--asm/battle_interface.s4
-rw-r--r--asm/battle_message.s24
-rw-r--r--asm/battle_setup.s2183
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/cable_club.s8
-rw-r--r--asm/evolution_scene.s26
-rw-r--r--asm/field_control_avatar.s6
-rw-r--r--asm/field_effect.s28
-rw-r--r--asm/field_effect_helpers.s6
-rw-r--r--asm/field_ground_effect.s8
-rw-r--r--asm/field_map_obj.s12
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s2
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/link_rfu_2.s6
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/map_obj_80688E4.s6
-rw-r--r--asm/overworld.s18
-rw-r--r--asm/party_menu.s8
-rw-r--r--asm/pokemon_summary_screen.s8
-rw-r--r--asm/post_battle_event_funcs.s4
-rw-r--r--asm/trade.s18
-rw-r--r--asm/trainer_see.s14
-rw-r--r--asm/wild_encounter.s14
31 files changed, 250 insertions, 24207 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
deleted file mode 100644
index 5e342a50f..000000000
--- a/asm/battle_2.s
+++ /dev/null
@@ -1,13887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_800FD9C
-sub_800FD9C: @ 800FD9C
- push {r4,lr}
- bl MoveSaveBlocks_ResetHeap
- bl AllocateBattleResources
- bl AllocateBattleSpritesData
- bl AllocateMonSpritesGfx
- ldr r4, _0800FDCC @ =gBattleTypeFlags
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FDD8
- bl HandleLinkBattleSetup
- ldr r0, _0800FDD0 @ =sub_80109C8
- bl SetMainCallback2
- ldr r1, _0800FDD4 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1]
- b _0800FE1C
- .align 2, 0
-_0800FDCC: .4byte gBattleTypeFlags
-_0800FDD0: .4byte sub_80109C8
-_0800FDD4: .4byte gBattleCommunication
-_0800FDD8:
- bl sub_800FE24
- ldr r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FE1C
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800FE06
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0800FDFE
- movs r0, 0x19
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FDFE:
- movs r0, 0x18
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE06:
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _0800FE16
- movs r0, 0x1A
- bl HelpSystem_SetSomeVariable2
- b _0800FE1C
-_0800FE16:
- movs r0, 0x17
- bl HelpSystem_SetSomeVariable2
-_0800FE1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_800FD9C
-
- thumb_func_start sub_800FE24
-sub_800FE24: @ 800FE24
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800FF28 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _0800FF2C @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _0800FF30 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0800FF34 @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_0800FE88:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800FE88
- movs r1, 0x50
- ldr r4, _0800FF3C @ =gUnknown_824EFE4
- ldr r0, _0800FF38 @ =gScanlineEffectRegBuffers
- ldr r3, _0800FF40 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800FEA6:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800FEA6
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl ScanlineEffect_SetParams
- bl ResetPaletteFade
- ldr r0, _0800FF44 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800FF48 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _0800FF4C @ =gBattle_BG1_X
- strh r1, [r0]
- ldr r0, _0800FF50 @ =gBattle_BG1_Y
- strh r1, [r0]
- ldr r0, _0800FF54 @ =gBattle_BG2_X
- strh r1, [r0]
- ldr r0, _0800FF58 @ =gBattle_BG2_Y
- strh r1, [r0]
- ldr r0, _0800FF5C @ =gBattle_BG3_X
- strh r1, [r0]
- ldr r0, _0800FF60 @ =gBattle_BG3_Y
- strh r1, [r0]
- bl sub_807FC5C
- ldr r1, _0800FF64 @ =gBattleTerrain
- strb r0, [r1]
- bl sub_800F34C
- bl LoadBattleTextboxAndBackground
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- bl FreeAllSpritePalettes
- ldr r1, _0800FF68 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800FF6C @ =VBlankCB_Battle
- bl SetVBlankCallback
- bl SetUpBattleVars
- ldr r0, _0800FF70 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FF78
- ldr r0, _0800FF74 @ =sub_8010BA0
- bl SetMainCallback2
- b _0800FF7E
- .align 2, 0
-_0800FF28: .4byte 0x05006000
-_0800FF2C: .4byte 0x00005051
-_0800FF30: .4byte gBattle_WIN0H
-_0800FF34: .4byte gBattle_WIN0V
-_0800FF38: .4byte gScanlineEffectRegBuffers
-_0800FF3C: .4byte gUnknown_824EFE4
-_0800FF40: .4byte 0x0000ff10
-_0800FF44: .4byte gBattle_BG0_X
-_0800FF48: .4byte gBattle_BG0_Y
-_0800FF4C: .4byte gBattle_BG1_X
-_0800FF50: .4byte gBattle_BG1_Y
-_0800FF54: .4byte gBattle_BG2_X
-_0800FF58: .4byte gBattle_BG2_Y
-_0800FF5C: .4byte gBattle_BG3_X
-_0800FF60: .4byte gBattle_BG3_Y
-_0800FF64: .4byte gBattleTerrain
-_0800FF68: .4byte gReservedSpritePaletteCount
-_0800FF6C: .4byte VBlankCB_Battle
-_0800FF70: .4byte gBattleTypeFlags
-_0800FF74: .4byte sub_8010BA0
-_0800FF78:
- ldr r0, _0800FFCC @ =sub_8010508
- bl SetMainCallback2
-_0800FF7E:
- ldr r0, _0800FFD0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800FF98
- ldr r0, _0800FFD4 @ =gEnemyParty
- ldr r1, _0800FFD8 @ =gTrainerBattleOpponent_A
- ldrh r1, [r1]
- bl sub_80112E0
- bl SetWildMonHeldItem
-_0800FF98:
- ldr r0, _0800FFDC @ =gMain
- ldr r1, _0800FFE0 @ =0x00000439
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800FFE4 @ =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0800FFAE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800FFAE
- movs r1, 0
- ldr r0, _0800FFE8 @ =gBattleCommunication
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FFCC: .4byte sub_8010508
-_0800FFD0: .4byte gBattleTypeFlags
-_0800FFD4: .4byte gEnemyParty
-_0800FFD8: .4byte gTrainerBattleOpponent_A
-_0800FFDC: .4byte gMain
-_0800FFE0: .4byte 0x00000439
-_0800FFE4: .4byte gPlayerParty
-_0800FFE8: .4byte gBattleCommunication
- thumb_func_end sub_800FE24
-
- thumb_func_start sub_800FFEC
-sub_800FFEC: @ 800FFEC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_08010002:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _080100B0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801004A
- cmp r7, 0
- beq _0801004A
- cmp r1, 0
- bne _0801004A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801004A:
- cmp r5, 0
- beq _0801007E
- cmp r7, 0
- beq _08010066
- cmp r5, r10
- beq _0801005A
- cmp r1, 0
- beq _08010066
-_0801005A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_08010066:
- cmp r5, 0
- beq _0801007E
- cmp r5, r10
- beq _0801007E
- cmp r7, 0
- bne _0801007E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0801007E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _08010002
- ldr r1, _080100B4 @ =gBattleStruct
- ldr r0, [r1]
- movs r2, 0xC3
- lsls r2, 1
- adds r0, r2
- strb r6, [r0]
- ldr r0, [r1]
- adds r2, 0x1
- adds r1, r0, r2
- lsrs r0, r6, 8
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080100B0: .4byte gPlayerParty
-_080100B4: .4byte gBattleStruct
- thumb_func_end sub_800FFEC
-
- thumb_func_start sub_80100B8
-sub_80100B8: @ 80100B8
- push {r4-r7,lr}
- ldr r0, _08010120 @ =gBattleStruct
- ldr r5, [r0]
- movs r0, 0xC4
- lsls r0, 1
- adds r4, r5, r0
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010134
- movs r2, 0
- ldr r7, _08010124 @ =gSaveBlock1Ptr
- movs r1, 0xC8
- lsls r1, 1
- adds r5, r1
- adds r6, r7, 0
- ldr r3, _08010128 @ =0x000030ec
-_080100DA:
- adds r0, r4, r2
- ldr r1, [r6]
- adds r1, r3
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _080100DA
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- movs r2, 0
- adds r3, r5, 0
- ldr r6, _08010124 @ =gSaveBlock1Ptr
- ldr r5, _0801012C @ =0x00003108
-_080100FA:
- adds r0, r3, r2
- ldr r1, [r6]
- adds r1, r5
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _080100FA
- ldr r0, [r7]
- ldr r1, _08010130 @ =0x0000311a
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- ldr r0, [r7]
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _08010174
- .align 2, 0
-_08010120: .4byte gBattleStruct
-_08010124: .4byte gSaveBlock1Ptr
-_08010128: .4byte 0x000030ec
-_0801012C: .4byte 0x00003108
-_08010130: .4byte 0x0000311a
-_08010134:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r3, r0, 0
- movs r2, 0
- movs r0, 0xC8
- lsls r0, 1
- adds r5, r0
-_0801014C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x5
- ble _0801014C
- adds r1, r4, r2
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r5, 0
- movs r2, 0
- adds r1, r0, 0
- adds r1, 0x11
-_08010168:
- strb r2, [r1]
- subs r1, 0x1
- cmp r1, r0
- bge _08010168
- movs r0, 0
- strb r0, [r4, 0x7]
-_08010174:
- strb r0, [r4, 0x1A]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80100B8
-
- thumb_func_start sub_801017C
-sub_801017C: @ 801017C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08010234 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08010194
- b _080102C0
-_08010194:
- bl IsEnigmaBerryValid
- cmp r0, 0x1
- bne _08010250
- movs r5, 0
- ldr r3, _08010238 @ =gEnigmaBerries
- ldr r0, _0801023C @ =gSaveBlock1Ptr
- mov r8, r0
- adds r6, r3, 0
- mov r4, r8
- ldr r2, _08010240 @ =0x000030ec
- adds r7, r3, 0
- adds r7, 0x38
-_080101AE:
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _080101AE
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r7, r3, 0
- adds r7, 0x8
- ldr r4, _0801023C @ =gSaveBlock1Ptr
- ldr r2, _08010244 @ =0x00003108
- adds r6, r3, 0
- adds r6, 0x40
-_080101EC:
- adds r1, r5, r7
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r5, r6
- ldr r0, [r4]
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x11
- ble _080101EC
- mov r1, r8
- ldr r0, [r1]
- ldr r2, _08010248 @ =0x0000311a
- adds r0, r2
- ldrb r1, [r0]
- strb r1, [r3, 0x7]
- ldrb r0, [r0]
- adds r1, r3, 0
- adds r1, 0x3F
- strb r0, [r1]
- mov r4, r8
- ldr r0, [r4]
- ldr r1, _0801024C @ =0x0000311b
- adds r0, r1
- ldrb r1, [r0]
- strb r1, [r3, 0x1A]
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x52
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_08010234: .4byte gBattleTypeFlags
-_08010238: .4byte gEnigmaBerries
-_0801023C: .4byte gSaveBlock1Ptr
-_08010240: .4byte 0x000030ec
-_08010244: .4byte 0x00003108
-_08010248: .4byte 0x0000311a
-_0801024C: .4byte 0x0000311b
-_08010250:
- movs r0, 0xAF
- bl ItemIdToBerryType
- lsls r0, 24
- lsrs r0, 24
- bl sub_809C8A0
- adds r6, r0, 0
- movs r5, 0
- ldr r4, _080102BC @ =gEnigmaBerries
- adds r7, r4, 0
- adds r7, 0x38
- adds r3, r4, 0
-_0801026A:
- adds r1, r5, r4
- adds r2, r6, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801026A
- adds r1, r5, r3
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r3, 0
- adds r0, 0x38
- adds r0, r5, r0
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- movs r5, 0
- adds r4, r3, 0
- adds r4, 0x8
- movs r1, 0
- adds r2, r3, 0
- adds r2, 0x40
-_0801029C:
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x11
- ble _0801029C
- movs r1, 0
- strb r1, [r3, 0x7]
- adds r0, r3, 0
- adds r0, 0x3F
- strb r1, [r0]
- strb r1, [r3, 0x1A]
- adds r0, 0x13
- strb r1, [r0]
- b _080103FC
- .align 2, 0
-_080102BC: .4byte gEnigmaBerries
-_080102C0:
- movs r0, 0x40
- ands r1, r0
- cmp r1, 0
- beq _0801034C
- movs r5, 0
- ldr r3, _08010340 @ =gEnigmaBerries
- ldr r2, _08010344 @ =gLinkPlayers
- mov r9, r2
- adds r6, r3, 0
- movs r4, 0x8
- adds r4, r6
- mov r8, r4
-_080102D8:
- lsls r0, r5, 8
- ldr r1, _08010348 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r3, [r0, 0x18]
- movs r4, 0
- adds r5, 0x1
- mov r10, r5
- lsls r1, r3, 3
- subs r0, r1, r3
- adds r5, r1, 0
- lsls r0, 2
- adds r1, r0, r6
-_080102F8:
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _080102F8
- subs r0, r5, r3
- lsls r0, 2
- adds r1, r4, r0
- adds r1, r6
- movs r2, 0xFF
- strb r2, [r1]
- movs r4, 0
- mov r2, r8
- adds r1, r0, r2
- adds r2, r7, 0
- adds r2, 0x8
-_0801031C:
- adds r0, r2, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _0801031C
- subs r0, r5, r3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x3
- ble _080102D8
- b _080103FC
- .align 2, 0
-_08010340: .4byte gEnigmaBerries
-_08010344: .4byte gLinkPlayers
-_08010348: .4byte gBlockRecvBuffer + 4
-_0801034C:
- movs r5, 0
- ldr r4, _0801040C @ =gEnigmaBerries
- mov r9, r4
-_08010352:
- lsls r0, r5, 8
- ldr r1, _08010410 @ =gBlockRecvBuffer + 4
- adds r7, r0, r1
- movs r4, 0
- adds r2, r5, 0x1
- mov r10, r2
- lsls r0, r5, 3
- mov r8, r0
- adds r1, r5, 0x2
- mov r12, r1
- subs r1, r0, r5
- mov r2, r12
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- lsls r1, 2
- adds r2, r1, r2
-_08010378:
- adds r0, r7, r4
- ldrb r1, [r0]
- strb r1, [r2]
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- adds r4, 0x1
- cmp r4, 0x5
- ble _08010378
- mov r0, r8
- subs r3, r0, r5
- lsls r3, 2
- adds r1, r4, r3
- add r1, r9
- ldrb r0, [r1]
- movs r2, 0xFF
- orrs r0, r2
- strb r0, [r1]
- mov r0, r12
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r1, r4, r2
- add r1, r9
- ldrb r0, [r1]
- movs r4, 0xFF
- orrs r0, r4
- strb r0, [r1]
- movs r4, 0
- ldr r0, _0801040C @ =gEnigmaBerries
- adds r0, 0x8
- adds r2, r0
- adds r3, r0
- adds r6, r7, 0
- adds r6, 0x8
-_080103C0:
- adds r0, r6, r4
- ldrb r1, [r0]
- strb r1, [r3]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r2, 0x1
- adds r3, 0x1
- adds r4, 0x1
- cmp r4, 0x11
- ble _080103C0
- mov r0, r8
- subs r2, r0, r5
- lsls r2, 2
- add r2, r9
- ldrb r0, [r7, 0x7]
- strb r0, [r2, 0x7]
- mov r1, r12
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r1, [r7, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r7, 0x1A]
- strb r1, [r2, 0x1A]
- ldrb r1, [r7, 0x1A]
- strb r1, [r0, 0x1A]
- mov r5, r10
- cmp r5, 0x1
- ble _08010352
-_080103FC:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801040C: .4byte gEnigmaBerries
-_08010410: .4byte gBlockRecvBuffer + 4
- thumb_func_end sub_801017C
-
- thumb_func_start sub_8010414
-sub_8010414: @ 8010414
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r6, 0
- ldr r0, _08010440 @ =gBlockRecvBuffer
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 1
- mov r12, r0
- cmp r2, r1
- bne _08010458
- cmp r3, 0
- bne _08010448
- ldr r0, _08010444 @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801044E
- .align 2, 0
-_08010440: .4byte gBlockRecvBuffer
-_08010444: .4byte gBattleTypeFlags
-_08010448:
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801044E:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08010458:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- cmp r2, r4
- bge _0801047C
- ldr r1, _08010490 @ =gBlockRecvBuffer
- mov r8, r1
- movs r5, 0x80
- lsls r5, 1
-_0801046A:
- adds r1, r5
- adds r2, 0x1
- cmp r2, r4
- bge _0801047C
- mov r7, r8
- ldrh r0, [r7]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0801046A
-_0801047C:
- cmp r2, r4
- bne _080104A4
- cmp r3, 0
- bne _08010494
- ldr r0, _0801048C @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0xC
- b _0801049A
- .align 2, 0
-_0801048C: .4byte gBattleTypeFlags
-_08010490: .4byte gBlockRecvBuffer
-_08010494:
- ldr r0, _080104EC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r2, 0x8
-_0801049A:
- orrs r1, r2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080104A4:
- cmp r6, 0
- bne _080104FC
- movs r2, 0
- ldr r5, _080104EC @ =gBattleTypeFlags
- cmp r2, r4
- bge _080104E2
- mov r0, r12
- ldrh r1, [r0]
- ldr r0, _080104F0 @ =0x00000201
- cmp r1, r0
- beq _080104DA
-_080104BA:
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- ldr r1, _080104F0 @ =0x00000201
- cmp r0, r1
- bls _080104CA
- cmp r2, r3
- bne _080104E2
-_080104CA:
- adds r2, 0x1
- cmp r2, r4
- bge _080104E2
- lsls r0, r2, 8
- add r0, r12
- ldrh r0, [r0]
- cmp r0, r1
- bne _080104BA
-_080104DA:
- cmp r2, r3
- beq _080104BA
- cmp r2, r3
- bge _080104BA
-_080104E2:
- cmp r2, r4
- bne _080104F4
- ldr r0, [r5]
- movs r1, 0xC
- b _080104F8
- .align 2, 0
-_080104EC: .4byte gBattleTypeFlags
-_080104F0: .4byte 0x00000201
-_080104F4:
- ldr r0, [r5]
- movs r1, 0x8
-_080104F8:
- orrs r0, r1
- str r0, [r5]
-_080104FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8010414
-
- thumb_func_start sub_8010508
-sub_8010508: @ 8010508
- push {r4-r6,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08010540 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _08010544 @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0x10
- bls _08010536
- b _080108B8
-_08010536:
- lsls r0, 2
- ldr r1, _08010548 @ =_0801054C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010540: .4byte gBattleStruct
-_08010544: .4byte gBattleCommunication
-_08010548: .4byte _0801054C
- .align 2, 0
-_0801054C:
- .4byte _08010590
- .4byte _080105D4
- .4byte _08010670
- .4byte _080106F4
- .4byte _0801071C
- .4byte _08010898
- .4byte _080108A4
- .4byte _0801074C
- .4byte _08010774
- .4byte _08010898
- .4byte _080108A4
- .4byte _080107A4
- .4byte _080107CC
- .4byte _08010898
- .4byte _080108A4
- .4byte _08010834
- .4byte _0801084C
-_08010590:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _080105BC
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _080105CC @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_080105BC:
- ldr r0, _080105D0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105C6
- b _080108B8
-_080105C6:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080108B8
- .align 2, 0
-_080105CC: .4byte gBattleCommunication
-_080105D0: .4byte gWirelessCommType
-_080105D4:
- ldr r2, _08010640 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r6, 0x2
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _08010658
- ldr r0, _08010644 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080105EC
- b _080108B8
-_080105EC:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _0801062A
- ldr r4, _08010648 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _0801064C @ =0x00000185
- adds r0, r1
- strb r6, [r0]
- bl sub_800FFEC
- bl sub_80100B8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r0, _08010650 @ =gBattleCommunication
- strb r6, [r0]
-_0801062A:
- ldr r0, _08010654 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010634
- b _080108B8
-_08010634:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080108B8
- .align 2, 0
-_08010640: .4byte gBattleTypeFlags
-_08010644: .4byte gReceivedRemoteLinkPlayers
-_08010648: .4byte gBattleStruct
-_0801064C: .4byte 0x00000185
-_08010650: .4byte gBattleCommunication
-_08010654: .4byte gWirelessCommType
-_08010658:
- movs r0, 0x4
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801066C @ =gBattleCommunication
- movs r0, 0xF
- strb r0, [r1]
- bl sub_801017C
- b _080108B8
- .align 2, 0
-_0801066C: .4byte gBattleCommunication
-_08010670:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801067E
- b _080108B8
-_0801067E:
- bl ResetBlockReceivedFlags
- movs r0, 0x2
- adds r1, r4, 0
- bl sub_8010414
- bl sub_801017C
- ldr r0, _080106E0 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080106E4 @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _080106E8 @ =gBattleStruct
- ldr r3, [r0]
- movs r4, 0xC3
- lsls r4, 1
- adds r0, r3, r4
- ldrb r1, [r0]
- adds r4, 0x1
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _080106EC @ =gBlockRecvBuffer
- lsls r1, r5, 8
- adds r0, 0x2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2, 0x10]
- bl SetDeoxysStats
- ldr r1, _080106F0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080106E0: .4byte sub_800F6FC
-_080106E4: .4byte gTasks
-_080106E8: .4byte gBattleStruct
-_080106EC: .4byte gBlockRecvBuffer
-_080106F0: .4byte gBattleCommunication
-_080106F4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010700
- b _080108B8
-_08010700:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010714 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010718 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010714: .4byte gPlayerParty
-_08010718: .4byte gBattleCommunication
-_0801071C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0801072A
- b _080108B8
-_0801072A:
- bl ResetBlockReceivedFlags
- ldr r0, _08010740 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _08010744 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010748 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010740: .4byte gEnemyParty
-_08010744: .4byte gBlockRecvBuffer
-_08010748: .4byte gBattleCommunication
-_0801074C:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010758
- b _080108B8
-_08010758:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801076C @ =gUnknown_202434C
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010770 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_0801076C: .4byte gUnknown_202434C
-_08010770: .4byte gBattleCommunication
-_08010774:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08010782
- b _080108B8
-_08010782:
- bl ResetBlockReceivedFlags
- ldr r0, _08010798 @ =gUnknown_20240F4
- lsls r1, r5, 8
- ldr r2, _0801079C @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- ldr r1, _080107A0 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010798: .4byte gUnknown_20240F4
-_0801079C: .4byte gBlockRecvBuffer
-_080107A0: .4byte gBattleCommunication
-_080107A4:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _080107B0
- b _080108B8
-_080107B0:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080107C4 @ =gUnknown_2024414
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _080107C8 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_080107C4: .4byte gUnknown_2024414
-_080107C8: .4byte gBattleCommunication
-_080107CC:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _080108B8
- bl ResetBlockReceivedFlags
- ldr r4, _08010820 @ =gUnknown_20241BC
- lsls r1, r5, 8
- ldr r0, _08010824 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _08010828 @ =0xfffffe70
- adds r0, r4, r1
- bl sub_8011D0C
- ldr r1, _0801082C @ =0xfffffed4
- adds r0, r4, r1
- bl sub_8011D0C
- adds r0, r4, 0
- subs r0, 0xC8
- bl sub_8011D0C
- adds r0, r4, 0
- subs r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- ldr r1, _08010830 @ =gBattleCommunication
- b _080108B2
- .align 2, 0
-_08010820: .4byte gUnknown_20241BC
-_08010824: .4byte gBlockRecvBuffer
-_08010828: .4byte 0xfffffe70
-_0801082C: .4byte 0xfffffed4
-_08010830: .4byte gBattleCommunication
-_08010834:
- bl sub_800D30C
- ldr r0, _08010848 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080108B8
- .align 2, 0
-_08010848: .4byte gBattleCommunication
-_0801084C:
- ldr r0, _08010880 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080108B8
- ldr r2, _08010884 @ =gPreBattleCallback1
- ldr r1, _08010888 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0801088C @ =sub_80123E4
- str r0, [r1]
- ldr r0, _08010890 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _08010894 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080108B8
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080108B8
- .align 2, 0
-_08010880: .4byte gUnknown_2023E83
-_08010884: .4byte gPreBattleCallback1
-_08010888: .4byte gMain
-_0801088C: .4byte sub_80123E4
-_08010890: .4byte BattleMainCB2
-_08010894: .4byte gBattleTypeFlags
-_08010898:
- ldr r0, _080108C0 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080108A4:
- ldr r1, _080108C0 @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080108B8
-_080108B2:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080108B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080108C0: .4byte gBattleCommunication
- thumb_func_end sub_8010508
-
- thumb_func_start sub_80108C4
-sub_80108C4: @ 80108C4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _080109BC @ =gUnknown_2022B58
- mov r9, r1
- movs r0, 0x18
- add r0, r9
- mov r10, r0
-_080108DC:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _080109C0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, r8
- lsls r5, r1, 5
- mov r1, r9
- adds r6, r5, r1
- strh r0, [r6]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r6, 0x2]
- mov r0, r9
- adds r0, 0x4
- adds r7, r5, r0
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r6, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r6, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r9
- adds r1, 0x14
- adds r1, r5, r1
- str r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- add r5, r10
- str r0, [r5]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r6, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- mov r4, r8
- adds r4, 0x1
- cmp r0, 0x1
- beq _08010994
- adds r2, r7, 0
- movs r1, 0
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0801097E
-_08010974:
- adds r1, 0x1
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08010974
-_0801097E:
- cmp r1, 0x5
- bgt _0801098E
- movs r3, 0
-_08010984:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x5
- ble _08010984
-_0801098E:
- adds r1, r2, r1
- movs r0, 0xFF
- strb r0, [r1]
-_08010994:
- mov r8, r4
- cmp r4, 0x2
- ble _080108DC
- ldr r0, _080109C4 @ =gBattleStruct
- ldr r0, [r0]
- movs r1, 0xC2
- lsls r1, 1
- adds r0, r1
- ldr r1, _080109BC @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080109BC: .4byte gUnknown_2022B58
-_080109C0: .4byte gPlayerParty
-_080109C4: .4byte gBattleStruct
- thumb_func_end sub_80108C4
-
- thumb_func_start sub_80109C8
-sub_80109C8: @ 80109C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _08010A0C @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0xB5
- strb r6, [r0]
- ldr r0, [r4]
- movs r1, 0xB0
- adds r1, r0
- mov r9, r1
- adds r0, 0xAE
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _08010A10 @ =gBattleCommunication
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08010A5C
- cmp r0, 0x1
- bgt _08010A14
- cmp r0, 0
- beq _08010A20
- b _08010B82
- .align 2, 0
-_08010A0C: .4byte gBattleStruct
-_08010A10: .4byte gBattleCommunication
-_08010A14:
- cmp r0, 0x2
- beq _08010AFC
- cmp r0, 0x3
- bne _08010A1E
- b _08010B2A
-_08010A1E:
- b _08010B82
-_08010A20:
- ldr r0, _08010A58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010A2A
- b _08010B82
-_08010A2A:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010A36
- b _08010B82
-_08010A36:
- bl sub_80108C4
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- movs r2, 0xC2
- lsls r2, 1
- adds r1, r2
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08010B82
- .align 2, 0
-_08010A58: .4byte gReceivedRemoteLinkPlayers
-_08010A5C:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010A6A
- b _08010B82
-_08010A6A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_08010A78:
- cmp r4, r6
- beq _08010ABA
- ldr r2, _08010A9C @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010AA0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010AAC
- b _08010ABA
- .align 2, 0
-_08010A9C: .4byte gLinkPlayers
-_08010AA0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010ABA
-_08010AAC:
- lsls r1, r4, 8
- ldr r0, _08010AE4 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _08010AE8 @ =gUnknown_2022B58
- movs r2, 0x60
- bl memcpy
-_08010ABA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _08010A78
- ldr r1, _08010AEC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08010AF0 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _08010AF4 @ =gBattleTypeFlags
- ldr r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _08010AF8 @ =sub_80109C8
- str r0, [r1, 0x8]
- bl sub_8128198
- b _08010B82
- .align 2, 0
-_08010AE4: .4byte gBlockRecvBuffer
-_08010AE8: .4byte gUnknown_2022B58
-_08010AEC: .4byte gBattleCommunication
-_08010AF0: .4byte gMain
-_08010AF4: .4byte gBattleTypeFlags
-_08010AF8: .4byte sub_80109C8
-_08010AFC:
- ldr r0, _08010B1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010B82
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _08010B20 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B24
- bl sub_800AB9C
- b _08010B82
- .align 2, 0
-_08010B1C: .4byte gPaletteFade
-_08010B20: .4byte gWirelessCommType
-_08010B24:
- bl sub_800AAC0
- b _08010B82
-_08010B2A:
- ldr r0, _08010B54 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08010B64
- bl IsRfuTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010B82
- ldr r1, _08010B58 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B5C @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B60 @ =sub_800FE24
- bl SetMainCallback2
- b _08010B82
- .align 2, 0
-_08010B54: .4byte gWirelessCommType
-_08010B58: .4byte gBattleTypeFlags
-_08010B5C: .4byte gMain
-_08010B60: .4byte sub_800FE24
-_08010B64:
- ldr r0, _08010B90 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010B82
- ldr r1, _08010B94 @ =gBattleTypeFlags
- mov r2, r8
- ldrh r0, [r2]
- str r0, [r1]
- ldr r1, _08010B98 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _08010B9C @ =sub_800FE24
- bl SetMainCallback2
-_08010B82:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010B90: .4byte gReceivedRemoteLinkPlayers
-_08010B94: .4byte gBattleTypeFlags
-_08010B98: .4byte gMain
-_08010B9C: .4byte sub_800FE24
- thumb_func_end sub_80109C8
-
- thumb_func_start sub_8010BA0
-sub_8010BA0: @ 8010BA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08010BD8 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- strb r7, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08010BDC @ =gBattleCommunication
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08010BCC
- b _080110F0
-_08010BCC:
- lsls r0, 2
- ldr r1, _08010BE0 @ =_08010BE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08010BD8: .4byte gBattleStruct
-_08010BDC: .4byte gBattleCommunication
-_08010BE0: .4byte _08010BE4
- .align 2, 0
-_08010BE4:
- .4byte _08010C18
- .4byte _08010C5C
- .4byte _08010CD4
- .4byte _08010DB6
- .4byte _08010DE0
- .4byte _080110D0
- .4byte _080110DC
- .4byte _08010ED8
- .4byte _08010F00
- .4byte _080110D0
- .4byte _080110DC
- .4byte _0801106C
- .4byte _08011084
-_08010C18:
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08010C44
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- bl sub_80357C8
- ldr r1, _08010C54 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1]
-_08010C44:
- ldr r0, _08010C58 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C4E
- b _080110F0
-_08010C4E:
- bl LoadWirelessStatusIndicatorSpriteGfx
- b _080110F0
- .align 2, 0
-_08010C54: .4byte gBattleCommunication
-_08010C58: .4byte gWirelessCommType
-_08010C5C:
- ldr r0, _08010CC0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010C66
- b _080110F0
-_08010C66:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _08010CAA
- ldr r4, _08010CC4 @ =gBattleStruct
- ldr r0, [r4]
- movs r5, 0xC2
- lsls r5, 1
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _08010CC8 @ =0x00000185
- adds r1, r0, r2
- movs r0, 0x2
- strb r0, [r1]
- bl sub_800FFEC
- bl sub_80100B8
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- adds r1, r5
- movs r2, 0x20
- bl SendBlock
- ldr r1, _08010CCC @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010CAA:
- ldr r0, _08010CD0 @ =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08010CB4
- b _080110F0
-_08010CB4:
- movs r0, 0
- movs r1, 0
- bl CreateWirelessStatusIndicatorSprite
- b _080110F0
- .align 2, 0
-_08010CC0: .4byte gReceivedRemoteLinkPlayers
-_08010CC4: .4byte gBattleStruct
-_08010CC8: .4byte 0x00000185
-_08010CCC: .4byte gBattleCommunication
-_08010CD0: .4byte gWirelessCommType
-_08010CD4:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010CE2
- b _080110F0
-_08010CE2:
- bl ResetBlockReceivedFlags
- movs r0, 0x4
- adds r1, r7, 0
- bl sub_8010414
- bl sub_801017C
- bl SetDeoxysStats
- ldr r0, _08010D4C @ =gDecompressionBuffer
- ldr r1, _08010D50 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _08010D54 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08010D58 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _08010D5C @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r5, _08010D60 @ =gLinkPlayers
- movs r4, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r6, 0x3
-_08010D3A:
- ldrh r0, [r5, 0x18]
- cmp r0, 0x1
- beq _08010D76
- cmp r0, 0x1
- bgt _08010D64
- cmp r0, 0
- beq _08010D6E
- b _08010D9C
- .align 2, 0
-_08010D4C: .4byte gDecompressionBuffer
-_08010D50: .4byte gPlayerParty
-_08010D54: .4byte sub_800F6FC
-_08010D58: .4byte gTasks
-_08010D5C: .4byte gBlockRecvBuffer
-_08010D60: .4byte gLinkPlayers
-_08010D64:
- cmp r0, 0x2
- beq _08010D7E
- cmp r0, 0x3
- beq _08010D8E
- b _08010D9C
-_08010D6E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D86
-_08010D76:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- b _08010D96
-_08010D7E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D86:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _08010D9C
-_08010D8E:
- ldrh r0, [r3]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 6
-_08010D96:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_08010D9C:
- adds r3, r7
- adds r5, 0x1C
- subs r6, 0x1
- cmp r6, 0
- bge _08010D3A
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _08010DD8 @ =gBattleCommunication
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08010DB6:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010DC2
- b _080110F0
-_08010DC2:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010DDC @ =gDecompressionBuffer
- movs r2, 0xC8
- bl SendBlock
- ldr r1, _08010DD8 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010DD8: .4byte gBattleCommunication
-_08010DDC: .4byte gDecompressionBuffer
-_08010DE0:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010DEE
- b _080110F0
-_08010DEE:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010E18 @ =gBlockRecvBuffer
- movs r5, 0
-_08010E00:
- cmp r6, r7
- bne _08010E34
- ldr r0, _08010E1C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010E20
- cmp r0, 0x1
- bge _08010E2C
- cmp r0, 0
- beq _08010E24
- b _08010EBE
- .align 2, 0
-_08010E18: .4byte gBlockRecvBuffer
-_08010E1C: .4byte gLinkPlayers
-_08010E20:
- cmp r0, 0x3
- bne _08010EBE
-_08010E24:
- ldr r0, _08010E28 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E28: .4byte gPlayerParty
-_08010E2C:
- ldr r0, _08010E30 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E30: .4byte gUnknown_20243B0
-_08010E34:
- ldr r2, _08010E54 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010E58
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E66
- b _08010E8C
- .align 2, 0
-_08010E54: .4byte gLinkPlayers
-_08010E58:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010E8C
-_08010E66:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E78
- cmp r2, 0x1
- bge _08010E84
- cmp r2, 0
- beq _08010E7C
- b _08010EBE
-_08010E78:
- cmp r2, 0x3
- bne _08010EBE
-_08010E7C:
- ldr r0, _08010E80 @ =gPlayerParty
- b _08010EA4
- .align 2, 0
-_08010E80: .4byte gPlayerParty
-_08010E84:
- ldr r0, _08010E88 @ =gUnknown_20243B0
- b _08010EA4
- .align 2, 0
-_08010E88: .4byte gUnknown_20243B0
-_08010E8C:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010E9E
- cmp r2, 0x1
- bge _08010EB4
- cmp r2, 0
- beq _08010EA2
- b _08010EBE
-_08010E9E:
- cmp r2, 0x3
- bne _08010EBE
-_08010EA2:
- ldr r0, _08010EB0 @ =gEnemyParty
-_08010EA4:
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
- b _08010EBE
- .align 2, 0
-_08010EB0: .4byte gEnemyParty
-_08010EB4:
- ldr r0, _08010ED0 @ =gUnknown_2024158
- adds r1, r4, 0
- movs r2, 0xC8
- bl memcpy
-_08010EBE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010E00
- ldr r1, _08010ED4 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010ED0: .4byte gUnknown_2024158
-_08010ED4: .4byte gBattleCommunication
-_08010ED8:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- bne _08010EE4
- b _080110F0
-_08010EE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08010EF8 @ =gDecompressionBuffer + 0x0C8
- movs r2, 0x64
- bl SendBlock
- ldr r1, _08010EFC @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_08010EF8: .4byte gDecompressionBuffer + 0x0C8
-_08010EFC: .4byte gBattleCommunication
-_08010F00:
- bl GetBlockReceivedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _08010F0E
- b _080110F0
-_08010F0E:
- bl ResetBlockReceivedFlags
- movs r6, 0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- mov r8, r0
- ldr r4, _08010F38 @ =gBlockRecvBuffer
- movs r5, 0
-_08010F20:
- cmp r6, r7
- bne _08010F54
- ldr r0, _08010F3C @ =gLinkPlayers
- adds r0, r5, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _08010F40
- cmp r0, 0x1
- bge _08010F4C
- cmp r0, 0
- beq _08010F44
- b _08010FDE
- .align 2, 0
-_08010F38: .4byte gBlockRecvBuffer
-_08010F3C: .4byte gLinkPlayers
-_08010F40:
- cmp r0, 0x3
- bne _08010FDE
-_08010F44:
- ldr r0, _08010F48 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010F48: .4byte gUnknown_202434C
-_08010F4C:
- ldr r0, _08010F50 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010F50: .4byte gUnknown_2024478
-_08010F54:
- ldr r2, _08010F74 @ =gLinkPlayers
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08010F78
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010F86
- b _08010FAC
- .align 2, 0
-_08010F74: .4byte gLinkPlayers
-_08010F78:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08010FAC
-_08010F86:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010F98
- cmp r2, 0x1
- bge _08010FA4
- cmp r2, 0
- beq _08010F9C
- b _08010FDE
-_08010F98:
- cmp r2, 0x3
- bne _08010FDE
-_08010F9C:
- ldr r0, _08010FA0 @ =gUnknown_202434C
- b _08010FC4
- .align 2, 0
-_08010FA0: .4byte gUnknown_202434C
-_08010FA4:
- ldr r0, _08010FA8 @ =gUnknown_2024478
- b _08010FC4
- .align 2, 0
-_08010FA8: .4byte gUnknown_2024478
-_08010FAC:
- adds r0, r5, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _08010FBE
- cmp r2, 0x1
- bge _08010FD4
- cmp r2, 0
- beq _08010FC2
- b _08010FDE
-_08010FBE:
- cmp r2, 0x3
- bne _08010FDE
-_08010FC2:
- ldr r0, _08010FD0 @ =gUnknown_20240F4
-_08010FC4:
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- b _08010FDE
- .align 2, 0
-_08010FD0: .4byte gUnknown_20240F4
-_08010FD4:
- ldr r0, _0801105C @ =gUnknown_2024220
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
-_08010FDE:
- movs r2, 0x80
- lsls r2, 1
- adds r4, r2
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08010F20
- ldr r4, _08011060 @ =gPlayerParty
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0xC8
- bl sub_8011D0C
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- movs r2, 0xC8
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- ldr r4, _08011064 @ =gEnemyParty
- adds r0, r4, 0
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0x64
- bl sub_8011D0C
- adds r0, r4, 0
- adds r0, 0xC8
- bl sub_8011D0C
- movs r2, 0x96
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl sub_8011D0C
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r4, r2
- bl sub_8011D0C
- ldr r1, _08011068 @ =gBattleCommunication
- b _080110EA
- .align 2, 0
-_0801105C: .4byte gUnknown_2024220
-_08011060: .4byte gPlayerParty
-_08011064: .4byte gEnemyParty
-_08011068: .4byte gBattleCommunication
-_0801106C:
- bl sub_800D30C
- ldr r0, _08011080 @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _080110F0
- .align 2, 0
-_08011080: .4byte gBattleCommunication
-_08011084:
- ldr r0, _080110B8 @ =gUnknown_2023E83
- adds r1, r0, 0x1
- bl BattleInitAllSprites
- lsls r0, 24
- cmp r0, 0
- beq _080110F0
- ldr r2, _080110BC @ =gPreBattleCallback1
- ldr r1, _080110C0 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _080110C4 @ =sub_80123E4
- str r0, [r1]
- ldr r0, _080110C8 @ =BattleMainCB2
- bl SetMainCallback2
- ldr r2, _080110CC @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080110F0
- movs r0, 0x20
- orrs r1, r0
- str r1, [r2]
- b _080110F0
- .align 2, 0
-_080110B8: .4byte gUnknown_2023E83
-_080110BC: .4byte gPreBattleCallback1
-_080110C0: .4byte gMain
-_080110C4: .4byte sub_80123E4
-_080110C8: .4byte BattleMainCB2
-_080110CC: .4byte gBattleTypeFlags
-_080110D0:
- ldr r0, _080110FC @ =gBattleCommunication
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- movs r1, 0x1
- strb r1, [r0, 0x1]
-_080110DC:
- ldr r1, _080110FC @ =gBattleCommunication
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _080110F0
-_080110EA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080110F0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080110FC: .4byte gBattleCommunication
- thumb_func_end sub_8010BA0
-
- thumb_func_start BattleMainCB2
-BattleMainCB2: @ 8011100
- push {lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- ldr r0, _08011160 @ =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r0, _08011164 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 9
- ands r0, r1
- cmp r0, 0
- beq _08011158
- ldr r2, _08011168 @ =gSpecialVar_Result
- ldr r1, _0801116C @ =gBattleOutcome
- movs r0, 0x3
- strb r0, [r1]
- movs r0, 0x3
- strh r0, [r2]
- bl ResetPaletteFadeControl
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08011170 @ =CB2_QuitRecordedBattle
- bl SetMainCallback2
-_08011158:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08011160: .4byte gMain
-_08011164: .4byte gBattleTypeFlags
-_08011168: .4byte gSpecialVar_Result
-_0801116C: .4byte gBattleOutcome
-_08011170: .4byte CB2_QuitRecordedBattle
- thumb_func_end BattleMainCB2
-
- thumb_func_start FreeRestoreBattleData
-FreeRestoreBattleData: @ 8011174
- push {lr}
- ldr r1, _080111AC @ =gMain
- ldr r0, _080111B0 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080111B4 @ =gScanlineEffect
- movs r0, 0x3
- strb r0, [r2, 0x15]
- ldr r0, _080111B8 @ =0x00000439
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl ZeroEnemyPartyMons
- movs r0, 0x53
- bl m4aSongNumStop
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
- pop {r0}
- bx r0
- .align 2, 0
-_080111AC: .4byte gMain
-_080111B0: .4byte gPreBattleCallback1
-_080111B4: .4byte gScanlineEffect
-_080111B8: .4byte 0x00000439
- thumb_func_end FreeRestoreBattleData
-
- thumb_func_start CB2_QuitRecordedBattle
-CB2_QuitRecordedBattle: @ 80111BC
- push {lr}
- bl UpdatePaletteFade
- ldr r0, _080111E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080111DE
- bl FreeRestoreBattleData
- bl FreeAllWindowBuffers
- ldr r0, _080111E8 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_080111DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080111E4: .4byte gPaletteFade
-_080111E8: .4byte gMain
- thumb_func_end CB2_QuitRecordedBattle
-
- thumb_func_start sub_80111EC
-sub_80111EC: @ 80111EC
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _080111F8 @ =sub_80111FC
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080111F8: .4byte sub_80111FC
- thumb_func_end sub_80111EC
-
- thumb_func_start sub_80111FC
-sub_80111FC: @ 80111FC
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r0, 0x2E
- ldrsh r6, [r5, r0]
- cmp r6, 0x1
- beq _08011236
- cmp r6, 0x1
- bgt _08011212
- cmp r6, 0
- beq _08011218
- b _080112D0
-_08011212:
- cmp r6, 0x2
- beq _080112A0
- b _080112D0
-_08011218:
- ldr r4, _08011298 @ =gUnknown_2022BC0
- movs r0, 0x80
- lsls r0, 5
- bl AllocZeroed
- str r0, [r4]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- strh r6, [r5, 0x30]
- ldr r0, _0801129C @ =0x00000281
- strh r0, [r5, 0x32]
- strh r6, [r5, 0x34]
- movs r0, 0x1
- strh r0, [r5, 0x36]
-_08011236:
- ldrh r0, [r5, 0x36]
- subs r0, 0x1
- strh r0, [r5, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _080112D0
- movs r0, 0x2
- strh r0, [r5, 0x36]
- movs r1, 0x30
- ldrsh r2, [r5, r1]
- movs r3, 0x34
- ldrsh r0, [r5, r3]
- lsls r0, 5
- adds r2, r0
- movs r3, 0x32
- ldrsh r1, [r5, r3]
- subs r1, r0
- movs r3, 0
- ldr r0, _08011298 @ =gUnknown_2022BC0
- mov r12, r0
- lsls r7, r2, 1
- movs r4, 0x3D
- lsls r6, r1, 1
-_08011264:
- mov r1, r12
- ldr r0, [r1]
- lsls r2, r3, 1
- adds r1, r7, r0
- adds r1, r2, r1
- strh r4, [r1]
- adds r0, r6, r0
- adds r2, r0
- strh r4, [r2]
- adds r3, 0x2
- cmp r3, 0x1D
- ble _08011264
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _080112D0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x20
- strh r0, [r5, 0x30]
- b _080112D0
- .align 2, 0
-_08011298: .4byte gUnknown_2022BC0
-_0801129C: .4byte 0x00000281
-_080112A0:
- ldrh r0, [r5, 0x30]
- subs r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _080112D0
- ldr r4, _080112D8 @ =gUnknown_2022BC0
- ldr r0, [r4]
- cmp r0, 0
- beq _080112CA
- movs r2, 0x80
- lsls r2, 5
- movs r1, 0
- bl memset
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_080112CA:
- ldr r0, _080112DC @ =sub_800FD9C
- bl SetMainCallback2
-_080112D0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080112D8: .4byte gUnknown_2022BC0
-_080112DC: .4byte sub_800FD9C
- thumb_func_end sub_80111FC
-
- thumb_func_start sub_80112E0
-sub_80112E0: @ 80112E0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08011304
- movs r0, 0
- b _080116AC
-_08011304:
- ldr r0, _08011334 @ =gBattleTypeFlags
- ldr r0, [r0]
- ldr r1, _08011338 @ =0x00080908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _08011318
- b _0801169C
-_08011318:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0801133C @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0801167E
- .align 2, 0
-_08011334: .4byte gBattleTypeFlags
-_08011338: .4byte 0x00080908
-_0801133C: .4byte gTrainers
-_08011340:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _08011354
- movs r4, 0x80
- mov r10, r4
- b _08011366
-_08011354:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _08011366
- movs r2, 0x78
- mov r10, r2
-_08011366:
- movs r6, 0
- ldr r0, _080113BC @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0801139E
-_08011384:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08011384
-_0801139E:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08011454
- cmp r0, 0x1
- bgt _080113C0
- cmp r0, 0
- beq _080113CE
- b _0801166C
- .align 2, 0
-_080113BC: .4byte gTrainers
-_080113C0:
- cmp r0, 0x2
- bne _080113C6
- b _08011514
-_080113C6:
- cmp r0, 0x3
- bne _080113CC
- b _080115A8
-_080113CC:
- b _0801166C
-_080113CE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _08011450 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011410
- adds r3, r1, 0
- movs r7, 0xB
-_080113F4:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080113F4
-_08011410:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0801166C
- .align 2, 0
-_08011450: .4byte gSpeciesNames
-_08011454:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0801150C @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _08011496
- adds r3, r1, 0
- movs r4, 0xB
-_0801147A:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801147A
-_08011496:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_080114E0:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _08011510 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080114E0
- b _0801166C
- .align 2, 0
-_0801150C: .4byte gSpeciesNames
-_08011510: .4byte gBattleMoves+0x4
-_08011514:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080115A4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _08011556
- adds r3, r1, 0
- movs r7, 0xB
-_0801153A:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0801153A
-_08011556:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0801166C
- .align 2, 0
-_080115A4: .4byte gSpeciesNames
-_080115A8:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _080116BC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _080115EA
- adds r3, r1, 0
- movs r4, 0xB
-_080115CE:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080115CE
-_080115EA:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_08011642:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _080116C0 @ =gBattleMoves+0x4
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08011642
-_0801166C:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _080116C4 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0801167E:
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011686
- b _08011340
-_08011686:
- ldr r2, _080116C8 @ =gBattleTypeFlags
- ldr r1, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x18]
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
-_0801169C:
- ldr r0, _080116C4 @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_080116AC:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080116BC: .4byte gSpeciesNames
-_080116C0: .4byte gBattleMoves+0x4
-_080116C4: .4byte gTrainers
-_080116C8: .4byte gBattleTypeFlags
- thumb_func_end sub_80112E0
-
- thumb_func_start sub_80116CC
-sub_80116CC: @ 80116CC
- push {lr}
- ldr r0, _080116EC @ =0x04000006
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _080116E6
- ldr r1, _080116F0 @ =0x04000008
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_080116E6:
- pop {r0}
- bx r0
- .align 2, 0
-_080116EC: .4byte 0x04000006
-_080116F0: .4byte 0x04000008
- thumb_func_end sub_80116CC
-
- thumb_func_start VBlankCB_Battle
-VBlankCB_Battle: @ 80116F4
- push {lr}
- bl Random
- ldr r0, _08011788 @ =gBattle_BG0_X
- ldrh r1, [r0]
- movs r0, 0x10
- bl SetGpuReg
- ldr r0, _0801178C @ =gBattle_BG0_Y
- ldrh r1, [r0]
- movs r0, 0x12
- bl SetGpuReg
- ldr r0, _08011790 @ =gBattle_BG1_X
- ldrh r1, [r0]
- movs r0, 0x14
- bl SetGpuReg
- ldr r0, _08011794 @ =gBattle_BG1_Y
- ldrh r1, [r0]
- movs r0, 0x16
- bl SetGpuReg
- ldr r0, _08011798 @ =gBattle_BG2_X
- ldrh r1, [r0]
- movs r0, 0x18
- bl SetGpuReg
- ldr r0, _0801179C @ =gBattle_BG2_Y
- ldrh r1, [r0]
- movs r0, 0x1A
- bl SetGpuReg
- ldr r0, _080117A0 @ =gBattle_BG3_X
- ldrh r1, [r0]
- movs r0, 0x1C
- bl SetGpuReg
- ldr r0, _080117A4 @ =gBattle_BG3_Y
- ldrh r1, [r0]
- movs r0, 0x1E
- bl SetGpuReg
- ldr r0, _080117A8 @ =gBattle_WIN0H
- ldrh r1, [r0]
- movs r0, 0x40
- bl SetGpuReg
- ldr r0, _080117AC @ =gBattle_WIN0V
- ldrh r1, [r0]
- movs r0, 0x44
- bl SetGpuReg
- ldr r0, _080117B0 @ =gUnknown_2022988
- ldrh r1, [r0]
- movs r0, 0x42
- bl SetGpuReg
- ldr r0, _080117B4 @ =gUnknown_202298A
- ldrh r1, [r0]
- movs r0, 0x46
- bl SetGpuReg
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl ScanlineEffect_InitHBlankDmaTransfer
- pop {r0}
- bx r0
- .align 2, 0
-_08011788: .4byte gBattle_BG0_X
-_0801178C: .4byte gBattle_BG0_Y
-_08011790: .4byte gBattle_BG1_X
-_08011794: .4byte gBattle_BG1_Y
-_08011798: .4byte gBattle_BG2_X
-_0801179C: .4byte gBattle_BG2_Y
-_080117A0: .4byte gBattle_BG3_X
-_080117A4: .4byte gBattle_BG3_Y
-_080117A8: .4byte gBattle_WIN0H
-_080117AC: .4byte gBattle_WIN0V
-_080117B0: .4byte gUnknown_2022988
-_080117B4: .4byte gUnknown_202298A
- thumb_func_end VBlankCB_Battle
-
- thumb_func_start nullsub_9
-nullsub_9: @ 80117B8
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_80117BC
-sub_80117BC: @ 80117BC
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _080117DC
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _080117EE
-_080117DC:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_080117EE:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08011822
- ldr r4, _08011828 @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_08011822:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte 0x00002710
- thumb_func_end sub_80117BC
-
- thumb_func_start sub_801182C
-sub_801182C: @ 801182C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08011848 @ =sub_80117BC
- str r0, [r4, 0x1C]
- movs r0, 0x61
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011848: .4byte sub_80117BC
- thumb_func_end sub_801182C
-
- thumb_func_start sub_801184C
-sub_801184C: @ 801184C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _08011894 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0xB5
- ldrb r2, [r0]
- ldr r0, _08011898 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080118BC
- ldr r1, _0801189C @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _080118A8
- cmp r0, 0x1
- bgt _080118A0
- cmp r0, 0
- beq _080118BC
- b _080118C4
- .align 2, 0
-_08011894: .4byte gBattleStruct
-_08011898: .4byte gBattleTypeFlags
-_0801189C: .4byte gLinkPlayers
-_080118A0:
- cmp r0, 0x2
- beq _080118BC
- cmp r0, 0x3
- bne _080118C4
-_080118A8:
- ldr r0, _080118B4 @ =gEnemyParty
- str r0, [sp, 0x4]
- ldr r1, _080118B8 @ =gPlayerParty
- str r1, [sp, 0x8]
- b _080118C4
- .align 2, 0
-_080118B4: .4byte gEnemyParty
-_080118B8: .4byte gPlayerParty
-_080118BC:
- ldr r2, _08011A10 @ =gPlayerParty
- str r2, [sp, 0x4]
- ldr r3, _08011A14 @ =gEnemyParty
- str r3, [sp, 0x8]
-_080118C4:
- movs r7, 0
- movs r0, 0
- mov r8, r0
- ldr r1, [sp]
- lsls r1, 2
- str r1, [sp, 0xC]
- movs r2, 0xCE
- lsls r2, 1
- mov r10, r2
- mov r9, r0
-_080118D8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r3, [sp, 0x4]
- adds r4, r3, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _0801191C
- cmp r6, 0
- beq _0801191C
- cmp r1, 0
- bne _0801191C
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0801191C:
- cmp r5, 0
- beq _08011948
- cmp r6, 0
- beq _08011934
- cmp r5, r10
- beq _0801192C
- cmp r1, 0
- beq _08011934
-_0801192C:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_08011934:
- cmp r5, 0
- beq _08011948
- cmp r5, r10
- beq _08011948
- cmp r6, 0
- bne _08011948
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_08011948:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _080118D8
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_08011972:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119B6
- cmp r6, 0
- beq _080119B6
- cmp r1, 0
- bne _080119B6
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_080119B6:
- cmp r5, 0
- beq _080119E2
- cmp r6, 0
- beq _080119CE
- cmp r5, r10
- beq _080119C6
- cmp r1, 0
- beq _080119CE
-_080119C6:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_080119CE:
- cmp r5, 0
- beq _080119E2
- cmp r5, r10
- beq _080119E2
- cmp r6, 0
- bne _080119E2
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_080119E2:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08011972
- ldr r1, _08011A18 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A10: .4byte gPlayerParty
-_08011A14: .4byte gEnemyParty
-_08011A18: .4byte gTasks
- thumb_func_end sub_801184C
-
- thumb_func_start sub_8011A1C
-sub_8011A1C: @ 8011A1C
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08011B40 @ =0x05006000
- mov r0, sp
- bl CpuSet
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0xF0
- bl SetGpuReg
- ldr r4, _08011B44 @ =0x00005051
- movs r0, 0x44
- adds r1, r4, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, _08011B48 @ =gBattle_WIN0H
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _08011B4C @ =gBattle_WIN0V
- strh r4, [r0]
- bl ScanlineEffect_Clear
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- movs r3, 0xF0
- movs r1, 0xF0
- lsls r1, 3
- adds r2, r0, r1
- movs r1, 0x4F
-_08011A80:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08011A80
- movs r1, 0x50
- ldr r0, _08011B50 @ =gScanlineEffectRegBuffers
- ldr r3, _08011B54 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08011A9C:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08011A9C
- bl ResetPaletteFade
- ldr r0, _08011B58 @ =gBattle_BG0_X
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08011B5C @ =gBattle_BG0_Y
- strh r4, [r0]
- ldr r0, _08011B60 @ =gBattle_BG1_X
- strh r4, [r0]
- ldr r0, _08011B64 @ =gBattle_BG1_Y
- strh r4, [r0]
- ldr r0, _08011B68 @ =gBattle_BG2_X
- strh r4, [r0]
- ldr r0, _08011B6C @ =gBattle_BG2_Y
- strh r4, [r0]
- ldr r0, _08011B70 @ =gBattle_BG3_X
- strh r4, [r0]
- ldr r0, _08011B74 @ =gBattle_BG3_Y
- strh r4, [r0]
- bl sub_800F34C
- ldr r0, _08011B78 @ =gBattleTextboxPalette
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800F380
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800FAE0
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- bl FreeAllSpritePalettes
- ldr r1, _08011B7C @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08011B80 @ =VBlankCB_Battle
- bl SetVBlankCallback
- ldr r0, _08011B84 @ =sub_800F6FC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08011B88 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_801184C
- ldr r0, _08011B8C @ =sub_8011B94
- bl SetMainCallback2
- ldr r0, _08011B90 @ =gBattleCommunication
- strb r4, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011B40: .4byte 0x05006000
-_08011B44: .4byte 0x00005051
-_08011B48: .4byte gBattle_WIN0H
-_08011B4C: .4byte gBattle_WIN0V
-_08011B50: .4byte gScanlineEffectRegBuffers
-_08011B54: .4byte 0x0000ff10
-_08011B58: .4byte gBattle_BG0_X
-_08011B5C: .4byte gBattle_BG0_Y
-_08011B60: .4byte gBattle_BG1_X
-_08011B64: .4byte gBattle_BG1_Y
-_08011B68: .4byte gBattle_BG2_X
-_08011B6C: .4byte gBattle_BG2_Y
-_08011B70: .4byte gBattle_BG3_X
-_08011B74: .4byte gBattle_BG3_Y
-_08011B78: .4byte gBattleTextboxPalette
-_08011B7C: .4byte gReservedSpritePaletteCount
-_08011B80: .4byte VBlankCB_Battle
-_08011B84: .4byte sub_800F6FC
-_08011B88: .4byte gTasks
-_08011B8C: .4byte sub_8011B94
-_08011B90: .4byte gBattleCommunication
- thumb_func_end sub_8011A1C
-
- thumb_func_start sub_8011B94
-sub_8011B94: @ 8011B94
- push {lr}
- bl sub_8011BB0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8011B94
-
- thumb_func_start sub_8011BB0
-sub_8011BB0: @ 8011BB0
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08011BC8 @ =gBattleCommunication
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08011BEA
- cmp r0, 0x1
- bgt _08011BCC
- cmp r0, 0
- beq _08011BD2
- b _08011C34
- .align 2, 0
-_08011BC8: .4byte gBattleCommunication
-_08011BCC:
- cmp r0, 0x2
- beq _08011C10
- b _08011C34
-_08011BD2:
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0xFF
- strb r0, [r4, 0x1]
- b _08011C08
-_08011BEA:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08011C34
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08011C08:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08011C34
-_08011C10:
- ldr r0, _08011C3C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08011C34
- ldr r0, _08011C40 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- bl sub_812C224
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
-_08011C34:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011C3C: .4byte gPaletteFade
-_08011C40: .4byte gMain
- thumb_func_end sub_8011BB0
-
- thumb_func_start sub_8011C44
-sub_8011C44: @ 8011C44
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- cmp r1, 0x6
- bhi _08011D04
- lsls r0, r1, 2
- ldr r1, _08011C60 @ =_08011C64
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08011C60: .4byte _08011C64
- .align 2, 0
-_08011C64:
- .4byte _08011C80
- .4byte _08011C94
- .4byte _08011CA8
- .4byte _08011CBC
- .4byte _08011CD0
- .4byte _08011CE4
- .4byte _08011CF8
-_08011C80:
- ldr r0, _08011C90 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011C90: .4byte gUnknown_8248320
-_08011C94:
- ldr r0, _08011CA4 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CA4: .4byte gUnknown_8248320
-_08011CA8:
- ldr r0, _08011CB8 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrh r0, [r1]
- lsls r0, 23
- lsrs r0, 27
- b _08011D04
- .align 2, 0
-_08011CB8: .4byte gUnknown_8248320
-_08011CBC:
- ldr r0, _08011CCC @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 29
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CCC: .4byte gUnknown_8248320
-_08011CD0:
- ldr r0, _08011CE0 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 28
- lsrs r0, 31
- b _08011D04
- .align 2, 0
-_08011CE0: .4byte gUnknown_8248320
-_08011CE4:
- ldr r0, _08011CF4 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 26
- lsrs r0, 30
- b _08011D04
- .align 2, 0
-_08011CF4: .4byte gUnknown_8248320
-_08011CF8:
- ldr r0, _08011D08 @ =gUnknown_8248320
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- lsls r0, 8
- lsrs r0, 22
-_08011D04:
- pop {r1}
- bx r1
- .align 2, 0
-_08011D08: .4byte gUnknown_8248320
- thumb_func_end sub_8011C44
-
- thumb_func_start sub_8011D0C
-sub_8011D0C: @ 8011D0C
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _08011D5C @ =0x0000012f
- cmp r0, r1
- bne _08011D54
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _08011D54
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, _08011D60 @ =gUnknown_824F008
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08011D54
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_08011D54:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011D5C: .4byte 0x0000012f
-_08011D60: .4byte gUnknown_824F008
- thumb_func_end sub_8011D0C
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 8011D64
- push {lr}
- sub sp, 0x4
- ldr r1, _08011D8C @ =sub_8011D94
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08011D90 @ =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08011D8C: .4byte sub_8011D94
-_08011D90: .4byte 0x00002108
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_8011D94
-sub_8011D94: @ 8011D94
- push {lr}
- adds r2, r0, 0
- ldr r0, _08011DC0 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08011DBC
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _08011DBC
- ldr r0, _08011DC4 @ =sub_8011DC8
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x32]
- movs r1, 0x19
- bl PlayCry1
-_08011DBC:
- pop {r0}
- bx r0
- .align 2, 0
-_08011DC0: .4byte gIntroSlideFlags
-_08011DC4: .4byte sub_8011DC8
- thumb_func_end sub_8011D94
-
- thumb_func_start sub_8011DC8
-sub_8011DC8: @ 8011DC8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08011E10
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_804BD94
- ldr r1, _08011E18 @ =gHealthboxSpriteIds
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldr r0, _08011E1C @ =nullsub_10
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08011E20 @ =0x00002108
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_08011E10:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E18: .4byte gHealthboxSpriteIds
-_08011E1C: .4byte nullsub_10
-_08011E20: .4byte 0x00002108
- thumb_func_end sub_8011DC8
-
- thumb_func_start nullsub_10
-nullsub_10: @ 8011E24
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start sub_8011E28
-sub_8011E28: @ 8011E28
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, _08011E38 @ =sub_8011E3C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08011E38: .4byte sub_8011E3C
- thumb_func_end sub_8011E28
-
- thumb_func_start sub_8011E3C
-sub_8011E3C: @ 8011E3C
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08011E90
- movs r0, 0x8
- strh r0, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08011E90
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _08011E98 @ =nullsub_10
- str r0, [r3, 0x1C]
- ldr r0, _08011E9C @ =gUnknown_2022AE8
- str r2, [r0]
-_08011E90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E98: .4byte nullsub_10
-_08011E9C: .4byte gUnknown_2022AE8
- thumb_func_end sub_8011E3C
-
- thumb_func_start SpriteCB_FaintOpponentMon
-SpriteCB_FaintOpponentMon: @ 8011EA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08011EC4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08011EC8
- adds r4, r0, 0
- b _08011ECC
- .align 2, 0
-_08011EC4: .4byte gBattleSpritesDataPtr
-_08011EC8:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_08011ECC:
- ldr r1, _08011F34 @ =gBattlerPartyIndexes
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _08011F38 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, 0xC9
- bne _08011F50
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08011F3C
- movs r0, 0xC9
- b _08011F46
- .align 2, 0
-_08011F34: .4byte gBattlerPartyIndexes
-_08011F38: .4byte gEnemyParty
-_08011F3C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08011F46:
- ldr r1, _08011F4C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08011F88
- .align 2, 0
-_08011F4C: .4byte gMonFrontPicCoords
-_08011F50:
- ldr r0, _08011F68 @ =0x00000181 @ SPECIES_CASTFORM
- cmp r4, r0
- bne _08011F74
- ldr r0, _08011F6C @ =gCastformFrontSpriteCoords
- ldr r1, _08011F70 @ =gBattleMonForms
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _08011F8C
- .align 2, 0
-_08011F68: .4byte 0x00000181
-_08011F6C: .4byte gCastformFrontSpriteCoords
-_08011F70: .4byte gBattleMonForms
-_08011F74:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08011F84
- ldr r0, _08011F80 @ =gMonFrontPicCoords
- b _08011F8A
- .align 2, 0
-_08011F80: .4byte gMonFrontPicCoords
-_08011F84:
- ldr r1, _08011FAC @ =gMonFrontPicCoords
- lsls r0, r4, 2
-_08011F88:
- adds r0, r1
-_08011F8A:
- ldrb r0, [r0, 0x1]
-_08011F8C:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, _08011FB0 @ =sub_8011FB4
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011FAC: .4byte gMonFrontPicCoords
-_08011FB0: .4byte sub_8011FB4
- thumb_func_end SpriteCB_FaintOpponentMon
-
- thumb_func_start sub_8011FB4
-sub_8011FB4: @ 8011FB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08012034
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _08011FE8
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08012034
-_08011FE8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerPosition
- ldr r1, _0801203C @ =gMonSpritesGfxPtr
- ldr r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r1, 0x4
- adds r1, r0
- ldr r2, _08012040 @ =gBattleMonForms
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- lsls r0, 8
- adds r1, r0
- movs r2, 0
- movs r0, 0xFF
-_0801201A:
- strb r2, [r1]
- adds r1, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _0801201A
- ldr r0, _08012040 @ =gBattleMonForms
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08012034:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801203C: .4byte gMonSpritesGfxPtr
-_08012040: .4byte gBattleMonForms
- thumb_func_end sub_8011FB4
-
- thumb_func_start sub_8012044
-sub_8012044: @ 8012044
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, _0801205C @ =sub_8012060
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801205C: .4byte sub_8012060
- thumb_func_end sub_8012044
-
- thumb_func_start sub_8012060
-sub_8012060: @ 8012060
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08012092
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x34]
-_08012092:
- pop {r0}
- bx r0
- thumb_func_end sub_8012060
-
- thumb_func_start sub_8012098
-sub_8012098: @ 8012098
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, _080120C0 @ =nullsub_10
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080120C0: .4byte nullsub_10
- thumb_func_end sub_8012098
-
- thumb_func_start sub_80120C4
-sub_80120C4: @ 80120C4
- ldr r1, _080120CC @ =oac_poke_ally_
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080120CC: .4byte oac_poke_ally_
- thumb_func_end sub_80120C4
-
- thumb_func_start oac_poke_ally_
-oac_poke_ally_: @ 80120D0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080120F8 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080120F4
- ldrh r0, [r2, 0x24]
- subs r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080120F4
- ldr r0, _080120FC @ =nullsub_11
- str r0, [r2, 0x1C]
- strh r1, [r2, 0x30]
-_080120F4:
- pop {r0}
- bx r0
- .align 2, 0
-_080120F8: .4byte gIntroSlideFlags
-_080120FC: .4byte nullsub_11
- thumb_func_end oac_poke_ally_
-
- thumb_func_start sub_8012100
-sub_8012100: @ 8012100
- ldr r1, _08012108 @ =nullsub_11
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08012108: .4byte nullsub_11
- thumb_func_end sub_8012100
-
- thumb_func_start nullsub_11
-nullsub_11: @ 801210C
- bx lr
- thumb_func_end nullsub_11
-
- thumb_func_start sub_8012110
-sub_8012110: @ 8012110
- push {lr}
- adds r2, r0, 0
- ldr r0, _08012134 @ =gIntroSlideFlags
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08012130
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_08012130:
- pop {r0}
- bx r0
- .align 2, 0
-_08012134: .4byte gIntroSlideFlags
- thumb_func_end sub_8012110
-
- thumb_func_start DoBounceEffect
-DoBounceEffect: @ 8012138
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- cmp r1, 0
- beq _08012174
- ldr r0, _08012170 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- b _08012186
- .align 2, 0
-_08012170: .4byte gBattleSpritesDataPtr
-_08012174:
- ldr r0, _080121D0 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
-_08012186:
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- bne _0801223C
- ldr r0, _080121D4 @ =SpriteCB_HealthBoxBounce
- bl CreateInvisibleSpriteWithCallback
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _080121E0
- ldr r0, _080121D8 @ =gHealthboxSpriteIds
- adds r0, r4, r0
- ldrb r7, [r0]
- ldr r2, _080121D0 @ =gBattleSpritesDataPtr
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r6, r4
- lsls r1, 2
- adds r0, r1, r0
- strb r5, [r0, 0x2]
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _080121DC @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x80
- b _0801220E
- .align 2, 0
-_080121D0: .4byte gBattleSpritesDataPtr
-_080121D4: .4byte SpriteCB_HealthBoxBounce
-_080121D8: .4byte gHealthboxSpriteIds
-_080121DC: .4byte gSprites
-_080121E0:
- ldr r0, _0801224C @ =gBattlerSpriteIds
- adds r0, r4, r0
- ldrb r7, [r0]
- ldr r2, _08012250 @ =gBattleSpritesDataPtr
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r6, r4
- lsls r1, 2
- adds r0, r1, r0
- strb r5, [r0, 0x3]
- ldr r0, [r2]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08012254 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0xC0
-_0801220E:
- strh r1, [r0, 0x2E]
- adds r4, r2, 0
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r4
- mov r2, r9
- lsls r0, r2, 24
- asrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x30]
- mov r3, r10
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0x32]
- strh r7, [r1, 0x34]
- mov r0, r8
- strh r0, [r1, 0x36]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
-_0801223C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801224C: .4byte gBattlerSpriteIds
-_08012250: .4byte gBattleSpritesDataPtr
-_08012254: .4byte gSprites
- thumb_func_end DoBounceEffect
-
- thumb_func_start EndBounceEffect
-EndBounceEffect: @ 8012258
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _080122AC
- ldr r6, _080122A4 @ =gBattleSpritesDataPtr
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r5, r0, 2
- adds r3, r5, r1
- ldrb r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080122FA
- ldr r2, _080122A8 @ =gSprites
- ldrb r1, [r3, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r5, r1
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- b _080122E6
- .align 2, 0
-_080122A4: .4byte gBattleSpritesDataPtr
-_080122A8: .4byte gSprites
-_080122AC:
- ldr r6, _08012300 @ =gBattleSpritesDataPtr
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r5, r0, 2
- adds r3, r5, r1
- ldrb r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080122FA
- ldr r2, _08012304 @ =gSprites
- ldrb r1, [r3, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- adds r1, r5, r1
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
-_080122E6:
- ands r0, r2
- strb r0, [r1]
- ldr r0, _08012304 @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x24]
- strh r0, [r1, 0x26]
-_080122FA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08012300: .4byte gBattleSpritesDataPtr
-_08012304: .4byte gSprites
- thumb_func_end EndBounceEffect
-
- thumb_func_start SpriteCB_HealthBoxBounce
-SpriteCB_HealthBoxBounce: @ 8012308
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08012320
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- b _08012324
-_08012320:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
-_08012324:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- ldr r2, _08012350 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012350: .4byte gSprites
- thumb_func_end SpriteCB_HealthBoxBounce
-
- thumb_func_start sub_8012354
-sub_8012354: @ 8012354
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08012368 @ =sub_8012398
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08012368: .4byte sub_8012398
- thumb_func_end sub_8012354
-
- thumb_func_start sub_801236C
-sub_801236C: @ 801236C
- push {lr}
- adds r2, r0, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _0801238E
- ldr r1, _08012394 @ =gUnknown_824F048
- adds r0, r2, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- adds r0, 0x28
- strb r1, [r0]
-_0801238E:
- pop {r0}
- bx r0
- .align 2, 0
-_08012394: .4byte gUnknown_824F048
- thumb_func_end sub_801236C
-
- thumb_func_start sub_8012398
-sub_8012398: @ 8012398
- push {r4,lr}
- adds r4, r0, 0
- bl sub_801236C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080123B2
- ldr r0, _080123B8 @ =nullsub_11
- str r0, [r4, 0x1C]
-_080123B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080123B8: .4byte nullsub_11
- thumb_func_end sub_8012398
-
- thumb_func_start nullsub_12
-nullsub_12: @ 80123BC
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start BeginBattleIntro
-BeginBattleIntro: @ 80123C0
- push {lr}
- bl sub_8012434
- ldr r1, _080123D8 @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, _080123DC @ =gBattleMainFunc
- ldr r0, _080123E0 @ =BattleIntroGetMonsData
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080123D8: .4byte gBattleCommunication
-_080123DC: .4byte gBattleMainFunc
-_080123E0: .4byte BattleIntroGetMonsData
- thumb_func_end BeginBattleIntro
-
- thumb_func_start sub_80123E4
-sub_80123E4: @ 80123E4
- push {r4,r5,lr}
- ldr r0, _08012424 @ =gBattleMainFunc
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08012428 @ =gActiveBattler
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801242C @ =gBattlersCount
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801241E
- ldr r5, _08012430 @ =gBattlerControllerFuncs
- adds r4, r1, 0
-_08012400:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801242C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08012400
-_0801241E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012424: .4byte gBattleMainFunc
-_08012428: .4byte gActiveBattler
-_0801242C: .4byte gBattlersCount
-_08012430: .4byte gBattlerControllerFuncs
- thumb_func_end sub_80123E4
-
- thumb_func_start sub_8012434
-sub_8012434: @ 8012434
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- bl TurnValuesCleanUp
- bl SpecialStatusesClear
- movs r2, 0
- movs r3, 0
- ldr r0, _080126CC @ =gLastResultingMoves
- mov r10, r0
- ldr r1, _080126D0 @ =gLastHitByType
- mov r12, r1
- ldr r0, _080126D4 @ =gLastLandedMoves
- mov r9, r0
- ldr r1, _080126D8 @ =gLastMoves
- mov r8, r1
- ldr r4, _080126DC @ =gDisableStructs
- movs r5, 0
- ldr r7, _080126E0 @ =gLastPrintedMoves
- ldr r6, _080126E4 @ =gLockedMoves
-_08012464:
- ldr r0, _080126E8 @ =gStatuses3
- adds r0, r5, r0
- str r3, [r0]
- movs r1, 0
-_0801246C:
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x1B
- bls _0801246C
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldr r1, _080126EC @ =gUnknown_2023DD4
- adds r0, r2, r1
- strb r3, [r0]
- mov r0, r8
- strh r3, [r0]
- mov r1, r9
- strh r3, [r1]
- mov r0, r12
- strh r3, [r0]
- mov r1, r10
- strh r3, [r1]
- ldr r0, _080126F0 @ =gLastHitBy
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- strh r3, [r6]
- strh r3, [r7]
- ldr r1, _080126F4 @ =gBattleResources
- ldr r0, [r1]
- ldr r0, [r0, 0x4]
- adds r0, r5
- str r3, [r0]
- movs r0, 0x2
- add r10, r0
- add r12, r0
- add r9, r0
- add r8, r0
- adds r4, 0x1C
- adds r5, 0x4
- adds r7, 0x2
- adds r6, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _08012464
- movs r5, 0
- ldr r3, _080126F8 @ =gSideTimers
- ldr r4, _080126FC @ =gSideStatuses
- movs r2, 0x1
-_080124C6:
- strh r5, [r4]
- movs r1, 0
-_080124CA:
- adds r0, r3, r1
- strb r5, [r0]
- adds r1, 0x1
- cmp r1, 0xB
- bls _080124CA
- adds r3, 0xC
- adds r4, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _080124C6
- movs r1, 0
- ldr r2, _08012700 @ =gBattlerAttacker
- strb r1, [r2]
- ldr r0, _08012704 @ =gBattlerTarget
- strb r1, [r0]
- ldr r2, _08012708 @ =gBattleWeather
- strh r1, [r2]
- ldr r1, _0801270C @ =gWishFutureKnock
- movs r2, 0
- movs r3, 0
-_080124F2:
- adds r0, r1, r2
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2B
- bls _080124F2
- movs r0, 0
- ldr r1, _08012710 @ =gHitMarker
- str r0, [r1]
- ldr r2, _08012714 @ =gBattleTypeFlags
- ldr r0, [r2]
- ldr r1, _08012718 @ =0x00010002
- ands r0, r1
- cmp r0, 0
- bne _08012522
- ldr r1, _0801271C @ =gSaveBlock2Ptr
- ldr r0, [r1]
- ldrb r1, [r0, 0x15]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08012522
- movs r0, 0x80
- ldr r2, _08012710 @ =gHitMarker
- str r0, [r2]
-_08012522:
- ldr r1, _0801271C @ =gSaveBlock2Ptr
- ldr r0, [r1]
- ldrb r0, [r0, 0x15]
- lsls r0, 30
- lsrs r0, 31
- movs r1, 0
- ldr r2, _08012720 @ =gBattleScripting
- strb r0, [r2, 0x1D]
- ldr r0, _08012724 @ =gMultiHitCounter
- strb r1, [r0]
- ldr r2, _08012728 @ =gBattleOutcome
- strb r1, [r2]
- ldr r0, _0801272C @ =gBattleControllerExecFlags
- str r1, [r0]
- movs r2, 0
- ldr r0, _08012730 @ =gPaydayMoney
- strh r1, [r0]
- ldr r1, _080126F4 @ =gBattleResources
- ldr r0, [r1]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r2, [r0]
- ldr r0, [r1]
- ldr r0, [r0, 0xC]
- adds r0, 0x20
- strb r2, [r0]
- ldr r1, _08012734 @ =gBattleCommunication
- movs r2, 0
- adds r0, r1, 0x7
-_0801255C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _0801255C
- movs r2, 0
- mov r9, r2
- ldr r0, _08012738 @ =gPauseCounterBattle
- strh r2, [r0]
- movs r0, 0
- ldr r1, _0801273C @ =gBattleMoveDamage
- str r0, [r1]
- ldr r2, _08012740 @ =gIntroSlideFlags
- strh r0, [r2]
- mov r1, r9
- ldr r0, _08012720 @ =gBattleScripting
- strb r1, [r0, 0x18]
- strb r1, [r0, 0x19]
- ldr r2, _08012744 @ =gLeveledUpInBattle
- strb r1, [r2]
- ldr r0, _08012748 @ =gAbsentBattlerFlags
- strb r1, [r0]
- ldr r7, _0801274C @ =gBattleStruct
- ldr r0, [r7]
- adds r0, 0x6C
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x79
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x7A
- strb r1, [r0]
- ldr r0, _08012750 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r7]
- adds r4, 0x7C
- ldr r1, _08012754 @ =gBaseStats
- mov r8, r1
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x8]
- movs r5, 0x64
- muls r0, r5
- ldr r6, _08012758 @ =0x000004fb
- adds r1, r6, 0
- bl __divsi3
- strb r0, [r4]
- ldr r0, _08012750 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r7]
- adds r4, 0x7B
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x18]
- muls r0, r5
- adds r1, r6, 0
- bl __divsi3
- strb r0, [r4]
- ldr r0, [r7]
- adds r1, r0, 0
- adds r1, 0x7B
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _080125F2
- movs r0, 0x2
- strb r0, [r1]
-_080125F2:
- ldr r0, [r7]
- mov r2, r9
- strb r2, [r0, 0x12]
- ldr r0, [r7]
- adds r0, 0x4A
- movs r1, 0x1
- strb r1, [r0]
- movs r2, 0
- adds r4, r7, 0
- ldr r5, _0801275C @ =gBattleResults
- adds r3, r4, 0
- movs r1, 0
-_0801260A:
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0x98
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xB8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xC8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xD0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xE0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xE8
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xF0
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, r2, r0
- adds r0, 0xF8
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0801260A
- ldr r0, [r4]
- adds r0, 0x92
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x93
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xDF
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0801275C @ =gBattleResults
- movs r1, 0
- movs r2, 0xA
- adds r0, 0x40
-_0801266E:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _0801266E
- movs r1, 0
- strb r1, [r5, 0x13]
- strb r1, [r5]
- strb r1, [r5, 0x1]
- strb r1, [r5, 0x2]
- strb r1, [r5, 0x3]
- strb r1, [r5, 0x4]
- ldrb r2, [r5, 0x5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- strb r0, [r5, 0x5]
- strh r1, [r5, 0x20]
- strh r1, [r5, 0x22]
- strh r1, [r5, 0x24]
- strh r1, [r5, 0x6]
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x28]
- movs r2, 0
- adds r4, r5, 0
- adds r4, 0x8
- movs r3, 0
- adds r1, r5, 0
- adds r1, 0x14
-_080126AE:
- adds r0, r2, r4
- strb r3, [r0]
- strb r3, [r1]
- strb r3, [r1, 0x16]
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _080126AE
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080126CC: .4byte gLastResultingMoves
-_080126D0: .4byte gLastHitByType
-_080126D4: .4byte gLastLandedMoves
-_080126D8: .4byte gLastMoves
-_080126DC: .4byte gDisableStructs
-_080126E0: .4byte gLastPrintedMoves
-_080126E4: .4byte gLockedMoves
-_080126E8: .4byte gStatuses3
-_080126EC: .4byte gUnknown_2023DD4
-_080126F0: .4byte gLastHitBy
-_080126F4: .4byte gBattleResources
-_080126F8: .4byte gSideTimers
-_080126FC: .4byte gSideStatuses
-_08012700: .4byte gBattlerAttacker
-_08012704: .4byte gBattlerTarget
-_08012708: .4byte gBattleWeather
-_0801270C: .4byte gWishFutureKnock
-_08012710: .4byte gHitMarker
-_08012714: .4byte gBattleTypeFlags
-_08012718: .4byte 0x00010002
-_0801271C: .4byte gSaveBlock2Ptr
-_08012720: .4byte gBattleScripting
-_08012724: .4byte gMultiHitCounter
-_08012728: .4byte gBattleOutcome
-_0801272C: .4byte gBattleControllerExecFlags
-_08012730: .4byte gPaydayMoney
-_08012734: .4byte gBattleCommunication
-_08012738: .4byte gPauseCounterBattle
-_0801273C: .4byte gBattleMoveDamage
-_08012740: .4byte gIntroSlideFlags
-_08012744: .4byte gLeveledUpInBattle
-_08012748: .4byte gAbsentBattlerFlags
-_0801274C: .4byte gBattleStruct
-_08012750: .4byte gEnemyParty
-_08012754: .4byte gBaseStats
-_08012758: .4byte 0x000004fb
-_0801275C: .4byte gBattleResults
- thumb_func_end sub_8012434
-
- thumb_func_start SwitchInClearSetData
-SwitchInClearSetData: @ 8012760
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r4, _080128C4 @ =gDisableStructs
- ldr r5, _080128C8 @ =gActiveBattler
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, sp
- adds r0, r4
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _080128CC @ =gBattleMoves
- ldr r3, _080128D0 @ =gCurrentMove
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- mov r9, r4
- mov r12, r5
- ldr r6, _080128D4 @ =gStatuses3
- mov r10, r6
- cmp r0, 0x7F
- beq _08012838
- movs r5, 0
- mov r4, r12
- movs r3, 0x58
- ldr r2, _080128D8 @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_080127B0:
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5, r0
- adds r0, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _080127B0
- movs r5, 0
- ldr r7, _080128DC @ =gBattlersCount
- ldrb r7, [r7]
- cmp r5, r7
- bge _08012824
- ldr r0, _080128E0 @ =gUnknown_2023C34
- mov r8, r0
- ldr r3, _080128C4 @ =gDisableStructs
- ldr r4, _080128D4 @ =gStatuses3
-_080127D2:
- movs r0, 0x58
- muls r0, r5
- mov r1, r8
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _080127F6
- ldrb r0, [r3, 0x14]
- ldr r6, _080128C8 @ =gActiveBattler
- ldrb r6, [r6]
- cmp r0, r6
- bne _080127F6
- ldr r0, _080128E4 @ =0xfbffffff
- ands r1, r0
- str r1, [r2]
-_080127F6:
- ldr r1, [r4]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08012816
- ldrb r0, [r3, 0x15]
- ldr r7, _080128C8 @ =gActiveBattler
- ldrb r7, [r7]
- cmp r0, r7
- bne _08012816
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- movs r0, 0
- strb r0, [r3, 0x15]
-_08012816:
- adds r3, 0x1C
- adds r4, 0x4
- adds r5, 0x1
- ldr r0, _080128DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _080127D2
-_08012824:
- ldr r1, _080128D0 @ =gCurrentMove
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _080128CC @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _080128F0
-_08012838:
- mov r3, r12
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- ldr r0, _080128D8 @ =gBattleMons
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080128E8 @ =0x15100007
- ands r0, r1
- str r0, [r2]
- ldrb r1, [r3]
- lsls r1, 2
- add r1, r10
- ldr r0, [r1]
- ldr r2, _080128EC @ =0x0003043f
- ands r0, r2
- str r0, [r1]
- movs r5, 0
- ldr r6, _080128DC @ =gBattlersCount
- ldrb r6, [r6]
- cmp r5, r6
- bge _0801290C
- mov r7, r12
- movs r6, 0
-_0801286C:
- ldrb r0, [r7]
- bl GetBattlerSide
- adds r4, r0, 0
- lsls r0, r5, 24
- lsrs r0, 24
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080128AC
- ldr r1, _080128D4 @ =gStatuses3
- lsls r0, r5, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _080128AC
- ldr r0, _080128C4 @ =gDisableStructs
- adds r0, r6, r0
- ldrb r0, [r0, 0x15]
- ldrb r3, [r7]
- cmp r0, r3
- bne _080128AC
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- str r1, [r2]
-_080128AC:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r0, _080128DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801286C
- ldr r6, _080128C4 @ =gDisableStructs
- mov r9, r6
- ldr r7, _080128C8 @ =gActiveBattler
- mov r12, r7
- b _0801290C
- .align 2, 0
-_080128C4: .4byte gDisableStructs
-_080128C8: .4byte gActiveBattler
-_080128CC: .4byte gBattleMoves
-_080128D0: .4byte gCurrentMove
-_080128D4: .4byte gStatuses3
-_080128D8: .4byte gBattleMons
-_080128DC: .4byte gBattlersCount
-_080128E0: .4byte gUnknown_2023C34
-_080128E4: .4byte 0xfbffffff
-_080128E8: .4byte 0x15100007
-_080128EC: .4byte 0x0003043f
-_080128F0:
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08012B7C @ =gBattleMons
- adds r1, 0x50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- add r0, r10
- str r1, [r0]
-_0801290C:
- movs r5, 0
- ldr r7, _08012B80 @ =gBattleStruct
- ldr r3, _08012B84 @ =gActionSelectionCursor
- mov r10, r3
- ldr r6, _08012B88 @ =gBattlersCount
- ldrb r6, [r6]
- cmp r5, r6
- bge _0801296C
- ldr r0, _08012B8C @ =gUnknown_2023C34
- mov r8, r0
- ldr r6, _08012B90 @ =gBitTable
- ldr r4, _08012B94 @ =gActiveBattler
-_08012924:
- movs r0, 0x58
- muls r0, r5
- mov r1, r8
- adds r3, r0, r1
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08012944
- bics r1, r2
- str r1, [r3]
-_08012944:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08012962
- ldr r0, [r7]
- adds r0, r5, r0
- ldrb r0, [r0, 0x14]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08012962
- ldr r0, _08012B98 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08012962:
- adds r5, 0x1
- ldr r3, _08012B88 @ =gBattlersCount
- ldrb r3, [r3]
- cmp r5, r3
- blt _08012924
-_0801296C:
- mov r6, r12
- ldrb r0, [r6]
- add r0, r10
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r6]
- ldr r2, _08012B9C @ =gMoveSelectionCursor
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r9
- adds r1, r0, r3
- movs r5, 0
- movs r2, 0
-_0801298E:
- adds r0, r1, r5
- strb r2, [r0]
- adds r5, 0x1
- cmp r5, 0x1B
- bls _0801298E
- ldr r6, _08012BA0 @ =gCurrentMove
- ldrh r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08012BA4 @ =gBattleMoves
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08012A1A
- mov r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0xA]
- strb r1, [r0, 0xA]
- ldrb r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0x15]
- strb r1, [r0, 0x15]
- ldrb r0, [r2]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- mov r0, sp
- ldrb r2, [r0, 0xF]
- lsls r2, 28
- movs r4, 0xF
- lsrs r2, 28
- ldrb r3, [r1, 0xF]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xF]
- mov r3, r12
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0xF]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r0, 0xF]
- ands r4, r2
- orrs r4, r1
- strb r4, [r0, 0xF]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- mov r1, sp
- ldrb r1, [r1, 0x14]
- strb r1, [r0, 0x14]
-_08012A1A:
- movs r0, 0
- ldr r6, _08012BA8 @ =gMoveResultFlags
- strb r0, [r6]
- mov r0, r12
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- mov r1, r12
- ldrb r0, [r1]
- lsls r0, 1
- ldr r3, _08012BAC @ =gLastMoves
- adds r0, r3
- movs r3, 0
- strh r2, [r0]
- ldrb r0, [r1]
- lsls r0, 1
- ldr r6, _08012BB0 @ =gLastLandedMoves
- adds r0, r6
- strh r2, [r0]
- ldrb r0, [r1]
- lsls r0, 1
- ldr r1, _08012BB4 @ =gLastHitByType
- adds r0, r1
- strh r2, [r0]
- mov r6, r12
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, _08012BB8 @ =gLastResultingMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r6, _08012BBC @ =gLastPrintedMoves
- adds r0, r6
- strh r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- ldr r2, _08012BC0 @ =gLastHitBy
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- mov r6, r12
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x98
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x99
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE2
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE3
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE4
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE5
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE6
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r7]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE7
- strb r3, [r0]
- movs r5, 0
- ldr r0, _08012B88 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bge _08012B3C
- adds r4, r7, 0
-_08012AFC:
- ldrb r1, [r6]
- cmp r5, r1
- beq _08012B14
- ldr r0, [r4]
- lsls r1, r5, 1
- adds r0, r1, r0
- adds r0, 0x98
- strb r3, [r0]
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0x99
- strb r3, [r1]
-_08012B14:
- ldrb r0, [r6]
- ldr r1, [r4]
- lsls r0, 1
- lsls r2, r5, 3
- adds r0, r2
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r6]
- ldr r1, [r4]
- lsls r0, 1
- adds r0, r2
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- adds r5, 0x1
- ldr r2, _08012B88 @ =gBattlersCount
- ldrb r2, [r2]
- cmp r5, r2
- blt _08012AFC
-_08012B3C:
- mov r3, r12
- ldrb r0, [r3]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r1, [r7]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r2, [r0]
- ldr r6, _08012BC4 @ =gBattleResources
- ldr r0, [r6]
- ldr r1, [r0, 0x4]
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
- ldr r7, _08012BA0 @ =gCurrentMove
- strh r0, [r7]
- 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
-_08012B7C: .4byte gBattleMons
-_08012B80: .4byte gBattleStruct
-_08012B84: .4byte gActionSelectionCursor
-_08012B88: .4byte gBattlersCount
-_08012B8C: .4byte gUnknown_2023C34
-_08012B90: .4byte gBitTable
-_08012B94: .4byte gActiveBattler
-_08012B98: .4byte 0xffff1fff
-_08012B9C: .4byte gMoveSelectionCursor
-_08012BA0: .4byte gCurrentMove
-_08012BA4: .4byte gBattleMoves
-_08012BA8: .4byte gMoveResultFlags
-_08012BAC: .4byte gLastMoves
-_08012BB0: .4byte gLastLandedMoves
-_08012BB4: .4byte gLastHitByType
-_08012BB8: .4byte gLastResultingMoves
-_08012BBC: .4byte gLastPrintedMoves
-_08012BC0: .4byte gLastHitBy
-_08012BC4: .4byte gBattleResources
- thumb_func_end SwitchInClearSetData
-
- thumb_func_start FaintClearSetData
-FaintClearSetData: @ 8012BC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r7, _08012F5C @ =gActiveBattler
- ldr r6, _08012F60 @ =gStatuses3
- ldr r0, _08012F64 @ =gActionSelectionCursor
- mov r8, r0
- ldr r1, _08012F68 @ =gMoveSelectionCursor
- mov r9, r1
- ldr r2, _08012F6C @ =gProtectStructs
- mov r12, r2
- adds r5, r7, 0
- movs r4, 0x58
- ldr r2, _08012F70 @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_08012BEE:
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x7
- ble _08012BEE
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- ldr r2, _08012F70 @ =gBattleMons
- adds r2, 0x50
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r6
- str r1, [r0]
- movs r3, 0
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08012C8A
- adds r4, r2, 0
- movs r5, 0
- ldr r6, _08012F78 @ =gBitTable
-_08012C26:
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08012C44
- ldr r2, _08012F7C @ =gDisableStructs
- adds r0, r5, r2
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08012C44
- ldr r0, _08012F80 @ =0xfbffffff
- ands r1, r0
- str r1, [r4]
-_08012C44:
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r4]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08012C5C
- bics r1, r2
- str r1, [r4]
-_08012C5C:
- ldr r1, [r4]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08012C7C
- ldr r2, _08012F84 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, r3, r0
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08012C7C
- ldr r0, _08012F88 @ =0xffff1fff
- ands r1, r0
- str r1, [r4]
-_08012C7C:
- adds r4, 0x58
- adds r5, 0x1C
- adds r3, 0x1
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- blt _08012C26
-_08012C8A:
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r9
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _08012F7C @ =gDisableStructs
- adds r1, r0, r2
- movs r3, 0
- movs r2, 0
-_08012CA8:
- adds r0, r1, r3
- strb r2, [r0]
- adds r3, 0x1
- cmp r3, 0x1B
- bls _08012CA8
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- mov r9, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- mov r8, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r6, 0x5
- negs r6, r6
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- mov r10, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r5, 0x21
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r4, 0x41
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- add r1, r12
- ldrb r2, [r1, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r5, r1
- strb r5, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r9
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- ands r6, r1
- strb r6, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- add r0, r12
- ldrb r1, [r0, 0x2]
- mov r2, r10
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08012F7C @ =gDisableStructs
- adds r0, r1
- movs r2, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F8C @ =gLastMoves
- adds r0, r1
- movs r3, 0
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F90 @ =gLastLandedMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F94 @ =gLastHitByType
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F98 @ =gLastResultingMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08012F9C @ =gLastPrintedMoves
- adds r0, r1
- strh r2, [r0]
- ldrb r0, [r7]
- ldr r2, _08012FA0 @ =gLastHitBy
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08012F84 @ =gBattleStruct
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC8
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0xC9
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x98
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 1
- adds r0, r1
- adds r0, 0x99
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE0
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE1
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE2
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE3
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE4
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE5
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE6
- strb r3, [r0]
- ldrb r0, [r7]
- ldr r1, [r2]
- lsls r0, 3
- adds r0, r1
- adds r0, 0xE7
- strb r3, [r0]
- movs r3, 0
- ldr r0, _08012F74 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r3, r0
- bge _08012F04
- adds r6, r7, 0
- adds r5, r2, 0
- movs r4, 0
-_08012EC4:
- ldrb r1, [r6]
- cmp r3, r1
- beq _08012EDC
- ldr r0, [r5]
- lsls r1, r3, 1
- adds r0, r1, r0
- adds r0, 0x98
- strb r4, [r0]
- ldr r0, [r5]
- adds r1, r0
- adds r1, 0x99
- strb r4, [r1]
-_08012EDC:
- ldrb r0, [r6]
- ldr r1, [r5]
- lsls r0, 1
- lsls r2, r3, 3
- adds r0, r2
- adds r0, r1
- adds r0, 0xE0
- strb r4, [r0]
- ldrb r0, [r6]
- ldr r1, [r5]
- lsls r0, 1
- adds r0, r2
- adds r0, r1
- adds r0, 0xE1
- strb r4, [r0]
- adds r3, 0x1
- ldr r2, _08012F74 @ =gBattlersCount
- ldrb r2, [r2]
- cmp r3, r2
- blt _08012EC4
-_08012F04:
- ldr r1, _08012FA4 @ =gBattleResources
- ldr r0, [r1]
- ldr r1, [r0, 0x4]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, r0
- movs r0, 0
- str r0, [r1]
- ldrb r0, [r7]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- ldr r2, _08012F70 @ =gBattleMons
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _08012FA8 @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r3
- ldr r0, _08012F70 @ =gBattleMons
- adds r1, r0
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _08012FA8 @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08012F5C: .4byte gActiveBattler
-_08012F60: .4byte gStatuses3
-_08012F64: .4byte gActionSelectionCursor
-_08012F68: .4byte gMoveSelectionCursor
-_08012F6C: .4byte gProtectStructs
-_08012F70: .4byte gBattleMons
-_08012F74: .4byte gBattlersCount
-_08012F78: .4byte gBitTable
-_08012F7C: .4byte gDisableStructs
-_08012F80: .4byte 0xfbffffff
-_08012F84: .4byte gBattleStruct
-_08012F88: .4byte 0xffff1fff
-_08012F8C: .4byte gLastMoves
-_08012F90: .4byte gLastLandedMoves
-_08012F94: .4byte gLastHitByType
-_08012F98: .4byte gLastResultingMoves
-_08012F9C: .4byte gLastPrintedMoves
-_08012FA0: .4byte gLastHitBy
-_08012FA4: .4byte gBattleResources
-_08012FA8: .4byte gBaseStats
- thumb_func_end FaintClearSetData
-
- thumb_func_start BattleIntroGetMonsData
-BattleIntroGetMonsData: @ 8012FAC
- push {r4,r5,lr}
- ldr r5, _08012FBC @ =gBattleCommunication
- ldrb r0, [r5]
- cmp r0, 0
- beq _08012FC0
- cmp r0, 0x1
- beq _08012FE4
- b _0801301A
- .align 2, 0
-_08012FBC: .4byte gBattleCommunication
-_08012FC0:
- ldr r4, _08012FE0 @ =gActiveBattler
- ldrb r0, [r5, 0x1]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl BtlController_EmitGetMonData
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801301A
- .align 2, 0
-_08012FE0: .4byte gActiveBattler
-_08012FE4:
- ldr r0, _08013008 @ =gBattleControllerExecFlags
- ldr r2, [r0]
- cmp r2, 0
- bne _0801301A
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- ldr r1, _0801300C @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08013018
- ldr r1, _08013010 @ =gBattleMainFunc
- ldr r0, _08013014 @ =BattleIntroPrepareBackgroundSlide
- str r0, [r1]
- b _0801301A
- .align 2, 0
-_08013008: .4byte gBattleControllerExecFlags
-_0801300C: .4byte gBattlersCount
-_08013010: .4byte gBattleMainFunc
-_08013014: .4byte BattleIntroPrepareBackgroundSlide
-_08013018:
- strb r2, [r5]
-_0801301A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end BattleIntroGetMonsData
-
- thumb_func_start BattleIntroPrepareBackgroundSlide
-BattleIntroPrepareBackgroundSlide: @ 8013020
- push {r4,r5,lr}
- ldr r0, _08013058 @ =gBattleControllerExecFlags
- ldr r5, [r0]
- cmp r5, 0
- bne _08013050
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r4, _0801305C @ =gActiveBattler
- strb r0, [r4]
- ldr r0, _08013060 @ =gBattleTerrain
- ldrb r1, [r0]
- movs r0, 0
- bl BtlController_EmitIntroSlide
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
- ldr r1, _08013064 @ =gBattleMainFunc
- ldr r0, _08013068 @ =sub_8013070
- str r0, [r1]
- ldr r0, _0801306C @ =gBattleCommunication
- strb r5, [r0]
- strb r5, [r0, 0x1]
-_08013050:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013058: .4byte gBattleControllerExecFlags
-_0801305C: .4byte gActiveBattler
-_08013060: .4byte gBattleTerrain
-_08013064: .4byte gBattleMainFunc
-_08013068: .4byte sub_8013070
-_0801306C: .4byte gBattleCommunication
- thumb_func_end BattleIntroPrepareBackgroundSlide
-
- thumb_func_start sub_8013070
-sub_8013070: @ 8013070
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _080130D4 @ =gBattleControllerExecFlags
- ldr r1, [r0]
- cmp r1, 0
- beq _08013084
- b _08013314
-_08013084:
- ldr r2, _080130D8 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _080130DC @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013092
- b _0801330E
-_08013092:
- movs r7, 0x58
- ldr r0, _080130E0 @ =gBattleMons
- mov r8, r0
- mov r9, r2
- movs r1, 0x48
- add r1, r8
- mov r10, r1
-_080130A0:
- ldr r0, _080130E4 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080130E8
- ldr r4, _080130D8 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080130E8
- ldrb r0, [r4]
- muls r0, r7
- mov r2, r8
- adds r3, r0, r2
- movs r2, 0
- movs r1, 0
-_080130C6:
- adds r0, r3, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080130C6
- b _080131B6
- .align 2, 0
-_080130D4: .4byte gBattleControllerExecFlags
-_080130D8: .4byte gActiveBattler
-_080130DC: .4byte gBattlersCount
-_080130E0: .4byte gBattleMons
-_080130E4: .4byte gBattleTypeFlags
-_080130E8:
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r7
- mov r2, r8
- adds r3, r0, r2
- movs r2, 0
- ldr r6, _08013230 @ =gBaseStats
- ldr r5, _08013234 @ =gBattleBufferB
- ldr r4, _08013238 @ =gActiveBattler
-_080130FA:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080130FA
- mov r1, r9
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r7
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- mov r2, r9
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x7]
- adds r2, 0x22
- strb r0, [r2]
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r0, 0
- muls r1, r7
- add r1, r8
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- mov r2, r9
- ldrb r1, [r2]
- muls r1, r7
- add r1, r8
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r2]
- bl GetBattlerSide
- ldr r1, _0801323C @ =gBattleStruct
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0xA8
- ldr r1, [r1]
- adds r1, r0
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0, 0x28]
- strh r0, [r1]
- movs r2, 0
- ldr r4, _08013238 @ =gActiveBattler
- movs r5, 0x58
- ldr r1, _08013240 @ =gUnknown_2023BFC
- adds r6, r4, 0
- movs r0, 0x18
- negs r0, r0
- adds r0, r1
- mov r12, r0
- movs r3, 0x6
-_08013196:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r1
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08013196
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r7
- mov r0, r12
- adds r0, 0x50
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080131B6:
- ldr r4, _08013238 @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- cmp r0, 0
- bne _080131D0
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080131D0:
- ldr r5, _08013244 @ =gBattleTypeFlags
- ldr r0, [r5]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801324C
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080131F6
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080131F6:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080132C2
- ldr r0, [r5]
- ldr r1, _08013248 @ =0x0001aa02
- ands r0, r1
- cmp r0, 0
- bne _080132C2
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
- b _080132C2
- .align 2, 0
-_08013230: .4byte gBaseStats
-_08013234: .4byte gBattleBufferB
-_08013238: .4byte gActiveBattler
-_0801323C: .4byte gBattleStruct
-_08013240: .4byte gUnknown_2023BFC
-_08013244: .4byte gBattleTypeFlags
-_08013248: .4byte 0x0001aa02
-_0801324C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080132C2
- ldr r1, [r5]
- movs r2, 0xA0
- lsls r2, 8
- ands r2, r1
- cmp r2, 0
- beq _0801328E
- movs r0, 0x80
- lsls r0, 8
- cmp r2, r0
- beq _080132B4
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
- b _080132B4
-_0801328E:
- ldr r0, _08013324 @ =0x0001aa02
- ands r1, r0
- cmp r1, 0
- bne _080132B4
- ldrb r0, [r4]
- muls r0, r7
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4]
- muls r1, r7
- add r1, r10
- ldr r2, [r1]
- movs r1, 0x2
- bl HandleSetPokedexFlag
-_080132B4:
- movs r0, 0
- bl BtlController_EmitLoadMonSprite
- mov r1, r9
- ldrb r0, [r1]
- bl MarkBattlerForControllerExec
-_080132C2:
- ldr r0, _08013328 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080132F8
- ldr r4, _0801332C @ =gActiveBattler
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080132EC
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080132F8
-_080132EC:
- movs r0, 0
- bl BtlController_EmitDrawTrainerPic
- ldrb r0, [r4]
- bl MarkBattlerForControllerExec
-_080132F8:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r1, _08013330 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0801330E
- b _080130A0
-_0801330E:
- ldr r1, _08013334 @ =gBattleMainFunc
- ldr r0, _08013338 @ =BattleIntroDrawPartySummaryScreens
- str r0, [r1]
-_08013314:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013324: .4byte 0x0001aa02
-_08013328: .4byte gBattleTypeFlags
-_0801332C: .4byte gActiveBattler
-_08013330: .4byte gBattlersCount
-_08013334: .4byte gBattleMainFunc
-_08013338: .4byte BattleIntroDrawPartySummaryScreens
- thumb_func_end sub_8013070
-
- 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 @ =sub_8013568
- str r0, [r1]
-_080134FE:
- pop {r0}
- bx r0
- .align 2, 0
-_08013504: .4byte gBattleControllerExecFlags
-_08013508: .4byte gActiveBattler
-_0801350C: .4byte gBattleMainFunc
-_08013510: .4byte sub_8013568
- 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 @ =sub_80136E4
- 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 sub_80136E4
-_0801355C: .4byte gBattleTypeFlags
-_08013560: .4byte gBattleScripting
-_08013564: .4byte gUnknown_81D91A1
- thumb_func_end sub_8013514
-
- thumb_func_start sub_8013568
-sub_8013568: @ 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 @ =sub_801359C
- str r0, [r1]
-_0801358A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013590: .4byte gBattleControllerExecFlags
-_08013594: .4byte gBattleMainFunc
-_08013598: .4byte sub_801359C
- thumb_func_end sub_8013568
-
- thumb_func_start sub_801359C
-sub_801359C: @ 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 @ =sub_801362C
- 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 sub_801362C
- thumb_func_end sub_801359C
-
- thumb_func_start sub_801362C
-sub_801362C: @ 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 @ =sub_80136E4
- 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 sub_80136E4
- thumb_func_end sub_801362C
-
- 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 @ =sub_80136E4
- str r0, [r1]
-_080136D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080136D8: .4byte gBattleControllerExecFlags
-_080136DC: .4byte gBattleMainFunc
-_080136E0: .4byte sub_80136E4
- thumb_func_end sub_80136C4
-
- thumb_func_start sub_80136E4
-sub_80136E4: @ 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 @ =sub_8013728
- str r0, [r1]
-_08013712:
- pop {r0}
- bx r0
- .align 2, 0
-_08013718: .4byte gBattleControllerExecFlags
-_0801371C: .4byte gBattleTypeFlags
-_08013720: .4byte gBattleMainFunc
-_08013724: .4byte sub_8013728
- thumb_func_end sub_80136E4
-
- thumb_func_start sub_8013728
-sub_8013728: @ 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 @ =sub_801385C
- 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 sub_801385C
- thumb_func_end sub_8013728
-
- 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 @ =sub_801385C
- 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 sub_801385C
- thumb_func_end sub_80137D0
-
- thumb_func_start sub_801385C
-sub_801385C: @ 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 @ =sub_8014040
- 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 @ =gUnknown_2023E80
- 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 sub_8014040
-_08013B08: .4byte gBattleCommunication
-_08013B0C: .4byte gBattleScripting
-_08013B10: .4byte gMoveResultFlags
-_08013B14: .4byte gBattleMons
-_08013B18: .4byte gUnknown_2023E80
- thumb_func_end sub_801385C
-
- thumb_func_start sub_8013B1C
-sub_8013B1C: @ 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 sub_8013B1C
-
- 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 @ =sub_8014040
- 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 @ =gUnknown_2023E80
- 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 sub_8014040
-_08013D48: .4byte gChosenActionByBattler
-_08013D4C: .4byte gChosenMoveByBattler
-_08013D50: .4byte gUnknown_2023E80
- 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 sub_8014040
-sub_8014040: @ 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 @ =gUnknown_81D96A4
- 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 gUnknown_81D96A4
-_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 @ =sub_80150A8
- 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 sub_80150A8
- thumb_func_end sub_8014040
-
- 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 @ =gUnknown_2023E80
- 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 gUnknown_2023E80
-_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 @ =gUnknown_2023E80
- 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 gUnknown_2023E80
-_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 sub_80150A8
-sub_80150A8: @ 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 sub_80150A8
-
- 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 @ =gUnknown_8250038
- 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 @ =gUnknown_8250070
- 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 gUnknown_8250038
-_08015630: .4byte gBattlersCount
-_08015634: .4byte gHitMarker
-_08015638: .4byte 0xffefffff
-_0801563C: .4byte gBattleMainFunc
-_08015640: .4byte gUnknown_8250070
-_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 sub_8015670
-sub_8015670: @ 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 @ =sub_8015910
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801577C: .4byte gBattlescriptCurrInstr
-_08015780: .4byte gUnknown_81D8803
-_08015784: .4byte gBattleMainFunc
-_08015788: .4byte sub_8015910
- thumb_func_end sub_8015670
-
- thumb_func_start sub_801578C
-sub_801578C: @ 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 ScrSpecial_GetTrainerBattleMode
- 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 @ =sub_8015910
- 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 sub_8015910
- thumb_func_end sub_801578C
-
- thumb_func_start sub_8015850
-sub_8015850: @ 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 @ =sub_8015910
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080158AC: .4byte gBattlescriptCurrInstr
-_080158B0: .4byte gUnknown_81D890F
-_080158B4: .4byte gBattleMainFunc
-_080158B8: .4byte sub_8015910
- thumb_func_end sub_8015850
-
- thumb_func_start sub_80158BC
-sub_80158BC: @ 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 @ =sub_8015910
- 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 sub_8015910
- thumb_func_end sub_80158BC
-
- thumb_func_start sub_8015910
-sub_8015910: @ 8015910
- push {r4-r7,lr}
- ldr r0, _08015974 @ =gCurrentActionFuncId
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08015A04
- ldr r0, _08015978 @ =gBattleTypeFlags
- ldr r1, [r0]
- ldr r0, _0801597C @ =0x00080b92
- ands r1, r0
- cmp r1, 0
- bne _080159BC
- ldr r2, _08015980 @ =gActiveBattler
- strb r1, [r2]
- ldr r0, _08015984 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r1, r0
- bcs _080159BC
- adds r4, r2, 0
- ldr r6, _08015988 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08015942:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080159AA
- ldr r2, _0801598C @ =gBattleResults
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08015990
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _080159AA
- .align 2, 0
-_08015974: .4byte gCurrentActionFuncId
-_08015978: .4byte gBattleTypeFlags
-_0801597C: .4byte 0x00080b92
-_08015980: .4byte gActiveBattler
-_08015984: .4byte gBattlersCount
-_08015988: .4byte gBattleMons
-_0801598C: .4byte gBattleResults
-_08015990:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_080159AA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080159EC @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08015942
-_080159BC:
- bl sub_812BFDC
- ldr r0, _080159F0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080159D0
- bl sub_810CB90
-_080159D0:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _080159F4 @ =gBattleMainFunc
- ldr r0, _080159F8 @ =sub_8015A30
- str r0, [r1]
- ldr r1, _080159FC @ =gUnknown_300537C
- ldr r0, _08015A00 @ =BattleMainCB2
- str r0, [r1]
- b _08015A1E
- .align 2, 0
-_080159EC: .4byte gBattlersCount
-_080159F0: .4byte gBattleTypeFlags
-_080159F4: .4byte gBattleMainFunc
-_080159F8: .4byte sub_8015A30
-_080159FC: .4byte gUnknown_300537C
-_08015A00: .4byte BattleMainCB2
-_08015A04:
- ldr r0, _08015A24 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015A1E
- ldr r1, _08015A28 @ =gBattleScriptingCommandsTable
- ldr r0, _08015A2C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015A1E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015A24: .4byte gBattleControllerExecFlags
-_08015A28: .4byte gBattleScriptingCommandsTable
-_08015A2C: .4byte gBattlescriptCurrInstr
- thumb_func_end sub_8015910
-
- thumb_func_start sub_8015A30
-sub_8015A30: @ 8015A30
- push {lr}
- ldr r0, _08015A58 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08015A8E
- bl ResetSpriteData
- ldr r0, _08015A5C @ =gLeveledUpInBattle
- ldrb r0, [r0]
- cmp r0, 0
- beq _08015A52
- ldr r0, _08015A60 @ =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08015A6C
-_08015A52:
- ldr r1, _08015A64 @ =gBattleMainFunc
- ldr r0, _08015A68 @ =ReturnFromBattleToOverworld
- b _08015A70
- .align 2, 0
-_08015A58: .4byte gPaletteFade
-_08015A5C: .4byte gLeveledUpInBattle
-_08015A60: .4byte gBattleOutcome
-_08015A64: .4byte gBattleMainFunc
-_08015A68: .4byte ReturnFromBattleToOverworld
-_08015A6C:
- ldr r1, _08015A94 @ =gBattleMainFunc
- ldr r0, _08015A98 @ =sub_8015AA0
-_08015A70:
- str r0, [r1]
- bl FreeAllWindowBuffers
- ldr r0, _08015A9C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08015A8E
- bl FreeMonSpritesGfx
- bl FreeBattleSpritesData
- bl FreeBattleResources
-_08015A8E:
- pop {r0}
- bx r0
- .align 2, 0
-_08015A94: .4byte gBattleMainFunc
-_08015A98: .4byte sub_8015AA0
-_08015A9C: .4byte gBattleTypeFlags
- thumb_func_end sub_8015A30
-
- thumb_func_start sub_8015AA0
-sub_8015AA0: @ 8015AA0
- push {r4,r5,lr}
- ldr r0, _08015AF4 @ =gLeveledUpInBattle
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08015B16
-_08015AAC:
- movs r5, 0
-_08015AAE:
- ldrb r2, [r3]
- ldr r0, _08015AF8 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08015B08
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08015AFC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08015B08
- ldr r0, _08015B00 @ =gBattleMainFunc
- ldr r1, _08015B04 @ =sub_8015B30
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08015B1C
- .align 2, 0
-_08015AF4: .4byte gLeveledUpInBattle
-_08015AF8: .4byte gBitTable
-_08015AFC: .4byte gPlayerParty
-_08015B00: .4byte gBattleMainFunc
-_08015B04: .4byte sub_8015B30
-_08015B08:
- adds r5, 0x1
- ldr r3, _08015B24 @ =gLeveledUpInBattle
- cmp r5, 0x5
- ble _08015AAE
- ldrb r0, [r3]
- cmp r0, 0
- bne _08015AAC
-_08015B16:
- ldr r1, _08015B28 @ =gBattleMainFunc
- ldr r0, _08015B2C @ =ReturnFromBattleToOverworld
- str r0, [r1]
-_08015B1C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015B24: .4byte gLeveledUpInBattle
-_08015B28: .4byte gBattleMainFunc
-_08015B2C: .4byte ReturnFromBattleToOverworld
- thumb_func_end sub_8015AA0
-
- thumb_func_start sub_8015B30
-sub_8015B30: @ 8015B30
- push {lr}
- ldr r0, _08015B48 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08015B4C @ =BattleMainCB2
- cmp r1, r0
- bne _08015B42
- ldr r1, _08015B50 @ =gBattleMainFunc
- ldr r0, _08015B54 @ =sub_8015AA0
- str r0, [r1]
-_08015B42:
- pop {r0}
- bx r0
- .align 2, 0
-_08015B48: .4byte gMain
-_08015B4C: .4byte BattleMainCB2
-_08015B50: .4byte gBattleMainFunc
-_08015B54: .4byte sub_8015AA0
- thumb_func_end sub_8015B30
-
- thumb_func_start ReturnFromBattleToOverworld
-ReturnFromBattleToOverworld: @ 8015B58
- push {r4-r6,lr}
- ldr r6, _08015BDC @ =gBattleTypeFlags
- ldr r0, [r6]
- movs r5, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08015B74
- ldr r4, _08015BE0 @ =gPlayerParty
- adds r0, r4, 0
- bl sub_8043A68
- adds r0, r4, 0
- bl sub_8043B40
-_08015B74:
- ldr r4, [r6]
- adds r0, r4, 0
- ands r0, r5
- cmp r0, 0
- beq _08015B86
- ldr r0, _08015BE4 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015BD4
-_08015B86:
- ldr r1, _08015BE8 @ =gSpecialVar_Result
- ldr r5, _08015BEC @ =gBattleOutcome
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08015BF0 @ =gMain
- ldr r0, _08015BF4 @ =0x00000439
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08015BF8 @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r4, r0
- cmp r4, 0
- beq _08015BC6
- ldr r0, _08015BFC @ =gEnemyParty
- bl UpdateRoamerHPStatus
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08015BC2
- cmp r1, 0x7
- bne _08015BC6
-_08015BC2:
- bl SetRoamerInactive
-_08015BC6:
- movs r0, 0x53
- bl m4aSongNumStop
- ldr r0, _08015BF0 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08015BD4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015BDC: .4byte gBattleTypeFlags
-_08015BE0: .4byte gPlayerParty
-_08015BE4: .4byte gReceivedRemoteLinkPlayers
-_08015BE8: .4byte gSpecialVar_Result
-_08015BEC: .4byte gBattleOutcome
-_08015BF0: .4byte gMain
-_08015BF4: .4byte 0x00000439
-_08015BF8: .4byte gPreBattleCallback1
-_08015BFC: .4byte gEnemyParty
- thumb_func_end ReturnFromBattleToOverworld
-
- thumb_func_start RunBattleScriptCommands_PopCallbacksStack
-RunBattleScriptCommands_PopCallbacksStack: @ 8015C00
- push {lr}
- ldr r0, _08015C3C @ =gCurrentActionFuncId
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08015C48
- ldr r3, _08015C40 @ =gBattleResources
- ldr r0, [r3]
- ldr r0, [r0, 0xC]
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015C24
- subs r0, 0x1
- strb r0, [r1]
-_08015C24:
- ldr r2, _08015C44 @ =gBattleMainFunc
- ldr r0, [r3]
- ldr r1, [r0, 0xC]
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 2
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- b _08015C62
- .align 2, 0
-_08015C3C: .4byte gCurrentActionFuncId
-_08015C40: .4byte gBattleResources
-_08015C44: .4byte gBattleMainFunc
-_08015C48:
- ldr r0, _08015C68 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015C62
- ldr r1, _08015C6C @ =gBattleScriptingCommandsTable
- ldr r0, _08015C70 @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015C62:
- pop {r0}
- bx r0
- .align 2, 0
-_08015C68: .4byte gBattleControllerExecFlags
-_08015C6C: .4byte gBattleScriptingCommandsTable
-_08015C70: .4byte gBattlescriptCurrInstr
- thumb_func_end RunBattleScriptCommands_PopCallbacksStack
-
- thumb_func_start RunBattleScriptCommands
-RunBattleScriptCommands: @ 8015C74
- push {lr}
- ldr r0, _08015C94 @ =gBattleControllerExecFlags
- ldr r0, [r0]
- cmp r0, 0
- bne _08015C90
- ldr r1, _08015C98 @ =gBattleScriptingCommandsTable
- ldr r0, _08015C9C @ =gBattlescriptCurrInstr
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08015C90:
- pop {r0}
- bx r0
- .align 2, 0
-_08015C94: .4byte gBattleControllerExecFlags
-_08015C98: .4byte gBattleScriptingCommandsTable
-_08015C9C: .4byte gBattlescriptCurrInstr
- thumb_func_end RunBattleScriptCommands
-
- thumb_func_start sub_8015CA0
-sub_8015CA0: @ 8015CA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x4
- str r0, [sp]
- ldr r6, _08015CE0 @ =gBattlerAttacker
- ldr r1, _08015CE4 @ =gBattlerByTurnOrder
- ldr r0, _08015CE8 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r1, _08015CEC @ =gBattleStruct
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0x91
- ldrb r2, [r0]
- ldr r1, _08015CF0 @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08015CF8
- ldr r1, _08015CF4 @ =gCurrentActionFuncId
- movs r0, 0xC
- b _0801634C
- .align 2, 0
-_08015CE0: .4byte gBattlerAttacker
-_08015CE4: .4byte gBattlerByTurnOrder
-_08015CE8: .4byte gCurrentTurnActionNumber
-_08015CEC: .4byte gBattleStruct
-_08015CF0: .4byte gBitTable
-_08015CF4: .4byte gCurrentActionFuncId
-_08015CF8:
- ldr r1, _08015D6C @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08015D70 @ =gBattleScripting
- movs r0, 0x1
- strb r0, [r1, 0xE]
- adds r0, r3, 0
- adds r0, 0xB7
- strb r2, [r0]
- ldr r0, _08015D74 @ =gMoveResultFlags
- strb r2, [r0]
- ldr r0, _08015D78 @ =gMultiHitCounter
- strb r2, [r0]
- ldr r0, _08015D7C @ =gBattleCommunication
- strb r2, [r0, 0x6]
- ldr r2, _08015D80 @ =gCurrMovePos
- ldr r3, _08015D84 @ =gChosenMovePos
- mov r9, r3
- ldrb r0, [r6]
- ldr r4, _08015D88 @ =gBattleStruct
- ldr r1, [r4]
- adds r0, r1
- adds r0, 0x80
- ldrb r0, [r0]
- strb r0, [r3]
- strb r0, [r2]
- ldr r1, _08015D8C @ =gProtectStructs
- ldrb r4, [r6]
- lsls r0, r4, 4
- adds r3, r0, r1
- ldrb r1, [r3]
- lsls r0, r1, 29
- mov r8, r2
- cmp r0, 0
- bge _08015D9C
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r2, _08015D90 @ =gCurrentMove
- ldr r1, _08015D94 @ =gChosenMove
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _08015D98 @ =gHitMarker
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015D88 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015D6C: .4byte gCritMultiplier
-_08015D70: .4byte gBattleScripting
-_08015D74: .4byte gMoveResultFlags
-_08015D78: .4byte gMultiHitCounter
-_08015D7C: .4byte gBattleCommunication
-_08015D80: .4byte gCurrMovePos
-_08015D84: .4byte gChosenMovePos
-_08015D88: .4byte gBattleStruct
-_08015D8C: .4byte gProtectStructs
-_08015D90: .4byte gCurrentMove
-_08015D94: .4byte gChosenMove
-_08015D98: .4byte gHitMarker
-_08015D9C:
- ldr r0, _08015DD4 @ =gBattleMons
- movs r1, 0x58
- adds r5, r4, 0
- muls r5, r1
- adds r1, r0, 0
- adds r1, 0x50
- adds r1, r5, r1
- ldr r2, [r1]
- movs r1, 0x80
- lsls r1, 5
- ands r1, r2
- mov r10, r0
- cmp r1, 0
- bne _08015DC2
- movs r7, 0x80
- lsls r7, 15
- ands r7, r2
- cmp r7, 0
- beq _08015DE4
-_08015DC2:
- ldr r3, _08015DD8 @ =gCurrentMove
- ldr r2, _08015DDC @ =gChosenMove
- ldr r1, _08015DE0 @ =gLockedMoves
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08015F18
- .align 2, 0
-_08015DD4: .4byte gBattleMons
-_08015DD8: .4byte gCurrentMove
-_08015DDC: .4byte gChosenMove
-_08015DE0: .4byte gLockedMoves
-_08015DE4:
- ldr r3, _08015E38 @ =gDisableStructs
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r12
- ldrh r4, [r0, 0x6]
- adds r2, r4, 0
- cmp r2, 0
- beq _08015EBC
- ldrb r3, [r0, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- mov r5, r10
- adds r5, 0xC
- adds r0, r5
- ldrh r1, [r0]
- cmp r2, r1
- bne _08015E48
- ldr r2, _08015E3C @ =gCurrentMove
- ldr r0, _08015E40 @ =gChosenMove
- strh r4, [r0]
- strh r4, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xC]
- mov r4, r9
- strb r0, [r4]
- mov r1, r8
- strb r0, [r1]
- ldrh r0, [r2]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015E44 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015E38: .4byte gDisableStructs
-_08015E3C: .4byte gCurrentMove
-_08015E40: .4byte gChosenMove
-_08015E44: .4byte gBattleStruct
-_08015E48:
- cmp r2, 0
- beq _08015EBC
- cmp r2, r1
- beq _08015EBC
- mov r4, r9
- strb r3, [r4]
- mov r0, r8
- strb r3, [r0]
- ldr r3, _08015EB0 @ =gCurrentMove
- ldr r2, _08015EB4 @ =gChosenMove
- ldrb r0, [r0]
- lsls r0, 1
- ldrb r1, [r6]
- movs r4, 0x58
- muls r1, r4
- adds r0, r1
- adds r0, r5
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r7, [r0, 0x6]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r6]
- ldr r3, _08015EB8 @ =gBattleStruct
- ldr r2, [r3]
- b _08015EF6
- .align 2, 0
-_08015EB0: .4byte gCurrentMove
-_08015EB4: .4byte gChosenMove
-_08015EB8: .4byte gBattleStruct
-_08015EBC:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _08015EFC @ =gBattlerAttacker
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- mov r1, r10
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08015F00 @ =gChosenMoveByBattler
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08015F10
- ldr r1, _08015F04 @ =gCurrentMove
- ldr r0, _08015F08 @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl GetMoveTarget
- ldrb r1, [r4]
- ldr r2, _08015F0C @ =gBattleStruct
- ldr r2, [r2]
-_08015EF6:
- adds r1, r2
- strb r0, [r1, 0xC]
- b _08015F18
- .align 2, 0
-_08015EFC: .4byte gBattlerAttacker
-_08015F00: .4byte gChosenMoveByBattler
-_08015F04: .4byte gCurrentMove
-_08015F08: .4byte gChosenMove
-_08015F0C: .4byte gBattleStruct
-_08015F10:
- ldr r1, _08015F30 @ =gCurrentMove
- ldr r0, _08015F34 @ =gChosenMove
- strh r3, [r0]
- strh r3, [r1]
-_08015F18:
- ldr r0, _08015F38 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08015F40
- ldr r0, _08015F3C @ =gBattleResults
- ldr r1, _08015F30 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _08015F48
- .align 2, 0
-_08015F30: .4byte gCurrentMove
-_08015F34: .4byte gChosenMove
-_08015F38: .4byte gBattlerAttacker
-_08015F3C: .4byte gBattleResults
-_08015F40:
- ldr r0, _08015FAC @ =gBattleResults
- ldr r1, _08015FB0 @ =gCurrentMove
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_08015F48:
- ldr r4, _08015FB4 @ =gBattlerAttacker
- ldrb r0, [r4]
- bl GetBattlerSide
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08015FB8 @ =gSideTimers
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08015FC8
- ldr r2, _08015FBC @ =gBattleMoves
- ldr r0, _08015FB0 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08015FC8
- ldrb r0, [r3]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08015FC8
- ldr r1, _08015FC0 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08015FC8
- ldr r0, _08015FC4 @ =gBattlerTarget
- strb r2, [r0]
- b _0801632C
- .align 2, 0
-_08015FAC: .4byte gBattleResults
-_08015FB0: .4byte gCurrentMove
-_08015FB4: .4byte gBattlerAttacker
-_08015FB8: .4byte gSideTimers
-_08015FBC: .4byte gBattleMoves
-_08015FC0: .4byte gBattleMons
-_08015FC4: .4byte gBattlerTarget
-_08015FC8:
- ldr r2, _080160E4 @ =gBattleTypeFlags
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- ldr r3, _080160E8 @ =gBattlerAttacker
- adds r7, r2, 0
- cmp r1, 0
- bne _08015FDA
- b _080162A0
-_08015FDA:
- ldr r1, _080160EC @ =gSideTimers
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x8]
- cmp r5, 0
- beq _08015FEC
- b _080161F8
-_08015FEC:
- ldr r2, _080160F0 @ =gBattleMoves
- ldr r0, _080160F4 @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08016008
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08016008
- b _080161F8
-_08016008:
- ldr r3, _080160F8 @ =gBattleMons
- ldr r2, _080160E8 @ =gBattlerAttacker
- ldrb r6, [r2]
- ldr r0, _080160FC @ =gBattleStruct
- ldr r0, [r0]
- adds r0, r6, r0
- ldrb r1, [r0, 0xC]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08016028
- b _080161F8
-_08016028:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _08016030
- b _080161F8
-_08016030:
- adds r0, r6, 0
- bl GetBattlerSide
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08016100 @ =gActiveBattler
- strb r5, [r1]
- ldr r0, _08016104 @ =gBattlersCount
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080160A8
- adds r4, r1, 0
-_08016048:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08016096
- ldr r0, _080160E8 @ =gBattlerAttacker
- ldrb r1, [r0]
- ldr r0, _080160FC @ =gBattleStruct
- ldr r0, [r0]
- adds r1, r0
- ldrb r0, [r1, 0xC]
- ldrb r1, [r4]
- cmp r0, r1
- beq _08016096
- ldr r1, _080160F8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08016096
- adds r0, r2, 0
- bl GetBattlerTurnOrderNum
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp]
- cmp r0, r3
- bcs _08016096
- ldrb r0, [r4]
- bl GetBattlerTurnOrderNum
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08016096:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08016104 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016048
-_080160A8:
- ldr r4, [sp]
- cmp r4, 0x4
- beq _080160B0
- b _080161AA
-_080160B0:
- ldr r2, _080160F0 @ =gBattleMoves
- ldr r0, _08016108 @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ands r4, r0
- cmp r4, 0
- beq _08016130
- ldr r0, _080160E8 @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016110
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801610C
- movs r0, 0x1
- b _08016122
- .align 2, 0
-_080160E4: .4byte gBattleTypeFlags
-_080160E8: .4byte gBattlerAttacker
-_080160EC: .4byte gSideTimers
-_080160F0: .4byte gBattleMoves
-_080160F4: .4byte gCurrentMove
-_080160F8: .4byte gBattleMons
-_080160FC: .4byte gBattleStruct
-_08016100: .4byte gActiveBattler
-_08016104: .4byte gBattlersCount
-_08016108: .4byte gChosenMove
-_0801610C:
- movs r0, 0x3
- b _08016122
-_08016110:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08016120
- movs r0, 0
- b _08016122
-_08016120:
- movs r0, 0x2
-_08016122:
- bl GetBattlerAtPosition
- ldr r1, _0801612C @ =gBattlerTarget
- strb r0, [r1]
- b _08016140
- .align 2, 0
-_0801612C: .4byte gBattlerTarget
-_08016130:
- ldr r2, _08016178 @ =gBattlerTarget
- ldr r0, _0801617C @ =gBattlerAttacker
- ldrb r0, [r0]
- ldr r1, _08016180 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08016140:
- ldr r7, _08016184 @ =gAbsentBattlerFlags
- ldrb r0, [r7]
- ldr r1, _08016188 @ =gBitTable
- mov r8, r1
- ldr r5, _08016178 @ =gBattlerTarget
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0801615A
- b _0801632C
-_0801615A:
- ldr r6, _0801617C @ =gBattlerAttacker
- ldrb r0, [r6]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801618C
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_08016178: .4byte gBattlerTarget
-_0801617C: .4byte gBattlerAttacker
-_08016180: .4byte gBattleStruct
-_08016184: .4byte gAbsentBattlerFlags
-_08016188: .4byte gBitTable
-_0801618C:
- ldrb r0, [r6]
- bl GetBattlerPosition
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08016310
-_080161AA:
- ldr r4, _080161E4 @ =gActiveBattler
- ldr r0, _080161E8 @ =gBattlerByTurnOrder
- ldr r3, [sp]
- adds r0, r3, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _080161EC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl RecordAbilityBattle
- ldr r2, _080161F0 @ =gSpecialStatuses
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080161F4 @ =gBattlerTarget
- ldrb r0, [r4]
- strb r0, [r1]
- b _0801632C
- .align 2, 0
-_080161E4: .4byte gActiveBattler
-_080161E8: .4byte gBattlerByTurnOrder
-_080161EC: .4byte gBattleMons
-_080161F0: .4byte gSpecialStatuses
-_080161F4: .4byte gBattlerTarget
-_080161F8:
- ldr r0, [r7]
- movs r4, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080162A0
- ldr r2, _08016238 @ =gBattleMoves
- ldr r0, _0801623C @ =gChosenMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080162A0
- ldrb r0, [r3]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016244
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08016240
- movs r0, 0x1
- b _08016256
- .align 2, 0
-_08016238: .4byte gBattleMoves
-_0801623C: .4byte gChosenMove
-_08016240:
- movs r0, 0x3
- b _08016256
-_08016244:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _08016254
- movs r0, 0
- b _08016256
-_08016254:
- movs r0, 0x2
-_08016256:
- bl GetBattlerAtPosition
- ldr r1, _08016290 @ =gBattlerTarget
- strb r0, [r1]
- ldr r0, _08016294 @ =gAbsentBattlerFlags
- ldrb r1, [r0]
- ldr r2, _08016298 @ =gBitTable
- ldr r5, _08016290 @ =gBattlerTarget
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- ldr r0, _0801629C @ =gBattlerAttacker
- ldrb r0, [r0]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801632C
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_08016290: .4byte gBattlerTarget
-_08016294: .4byte gAbsentBattlerFlags
-_08016298: .4byte gBitTable
-_0801629C: .4byte gBattlerAttacker
-_080162A0:
- ldr r5, _080162E4 @ =gBattlerTarget
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r1, _080162E8 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r5]
- ldr r6, _080162EC @ =gAbsentBattlerFlags
- ldrb r1, [r6]
- ldr r7, _080162F0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl GetBattlerSide
- adds r4, r0, 0
- ldrb r0, [r5]
- bl GetBattlerSide
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _080162F4
- ldrb r0, [r5]
- b _0801631A
- .align 2, 0
-_080162E4: .4byte gBattlerTarget
-_080162E8: .4byte gBattleStruct
-_080162EC: .4byte gAbsentBattlerFlags
-_080162F0: .4byte gBitTable
-_080162F4:
- ldrb r0, [r3]
- bl GetBattlerPosition
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08016310:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801632C
- adds r0, r2, 0
-_0801631A:
- bl GetBattlerPosition
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl GetBattlerAtPosition
- strb r0, [r5]
-_0801632C:
- ldr r4, _08016360 @ =gBattlescriptCurrInstr
- ldr r3, _08016364 @ =gBattleScriptsForMoveEffects
- ldr r2, _08016368 @ =gBattleMoves
- ldr r0, _0801636C @ =gCurrentMove
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _08016370 @ =gCurrentActionFuncId
- movs r0, 0xA
-_0801634C:
- strb r0, [r1]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016360: .4byte gBattlescriptCurrInstr
-_08016364: .4byte gBattleScriptsForMoveEffects
-_08016368: .4byte gBattleMoves
-_0801636C: .4byte gCurrentMove
-_08016370: .4byte gCurrentActionFuncId
- thumb_func_end sub_8015CA0
-
- thumb_func_start sub_8016374
-sub_8016374: @ 8016374
- push {r4,lr}
- ldr r3, _080163E0 @ =gBattlerAttacker
- ldr r1, _080163E4 @ =gBattlerByTurnOrder
- ldr r0, _080163E8 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _080163EC @ =gBattle_BG0_X
- movs r2, 0
- strh r2, [r0]
- ldr r0, _080163F0 @ =gBattle_BG0_Y
- strh r2, [r0]
- ldr r1, _080163F4 @ =gActionSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080163F8 @ =gMoveSelectionCursor
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _080163FC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldrb r0, [r3]
- ldr r1, _08016400 @ =gBattleStruct
- ldr r1, [r1]
- adds r0, r1
- adds r0, 0x58
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _08016404 @ =gBattleScripting
- strb r4, [r0, 0x17]
- ldr r1, _08016408 @ =gBattlescriptCurrInstr
- ldr r0, _0801640C @ =gUnknown_81D894D
- str r0, [r1]
- ldr r1, _08016410 @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08016414 @ =gBattleResults
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _080163DA
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_080163DA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080163E0: .4byte gBattlerAttacker
-_080163E4: .4byte gBattlerByTurnOrder
-_080163E8: .4byte gCurrentTurnActionNumber
-_080163EC: .4byte gBattle_BG0_X
-_080163F0: .4byte gBattle_BG0_Y
-_080163F4: .4byte gActionSelectionCursor
-_080163F8: .4byte gMoveSelectionCursor
-_080163FC: .4byte gBattleTextBuff1
-_08016400: .4byte gBattleStruct
-_08016404: .4byte gBattleScripting
-_08016408: .4byte gBattlescriptCurrInstr
-_0801640C: .4byte gUnknown_81D894D
-_08016410: .4byte gCurrentActionFuncId
-_08016414: .4byte gBattleResults
- thumb_func_end sub_8016374
-
- thumb_func_start sub_8016418
-sub_8016418: @ 8016418
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08016474 @ =gBattlerAttacker
- ldr r2, _08016478 @ =gBattlerTarget
- ldr r1, _0801647C @ =gBattlerByTurnOrder
- ldr r0, _08016480 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08016484 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016488 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldrb r0, [r4]
- bl ClearFuryCutterDestinyBondGrudge
- ldr r5, _0801648C @ =gLastUsedItem
- ldr r2, _08016490 @ =gBattleBufferB
- ldrb r1, [r4]
- lsls r1, 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
- strh r3, [r5]
- adds r1, r3, 0
- cmp r1, 0xC
- bhi _0801649C
- ldr r2, _08016494 @ =gBattlescriptCurrInstr
- ldr r1, _08016498 @ =gUnknown_81D99B0
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _080164FC
- .align 2, 0
-_08016474: .4byte gBattlerAttacker
-_08016478: .4byte gBattlerTarget
-_0801647C: .4byte gBattlerByTurnOrder
-_08016480: .4byte gCurrentTurnActionNumber
-_08016484: .4byte gBattle_BG0_X
-_08016488: .4byte gBattle_BG0_Y
-_0801648C: .4byte gLastUsedItem
-_08016490: .4byte gBattleBufferB
-_08016494: .4byte gBattlescriptCurrInstr
-_08016498: .4byte gUnknown_81D99B0
-_0801649C:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080164C4
- ldr r0, _080164B8 @ =gBattlescriptCurrInstr
- ldr r1, _080164BC @ =gUnknown_81D99FC
- ldr r1, [r1]
- str r1, [r0]
- ldr r1, _080164C0 @ =gCurrentActionFuncId
- mov r10, r1
- b _0801671E
- .align 2, 0
-_080164B8: .4byte gBattlescriptCurrInstr
-_080164BC: .4byte gUnknown_81D99FC
-_080164C0: .4byte gCurrentActionFuncId
-_080164C4:
- movs r0, 0xAF
- lsls r0, 1
- cmp r1, r0
- bne _080164E8
- ldr r0, _080164DC @ =gBattlescriptCurrInstr
- ldr r1, _080164E0 @ =gUnknown_81D99FC
- ldr r1, [r1, 0x4]
- str r1, [r0]
- ldr r2, _080164E4 @ =gCurrentActionFuncId
- mov r10, r2
- b _0801671E
- .align 2, 0
-_080164DC: .4byte gBattlescriptCurrInstr
-_080164E0: .4byte gUnknown_81D99FC
-_080164E4: .4byte gCurrentActionFuncId
-_080164E8:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016510
- ldr r0, _08016504 @ =gBattlescriptCurrInstr
- ldr r1, _08016508 @ =gUnknown_81D99E4
- ldr r1, [r1]
- str r1, [r0]
-_080164FC:
- ldr r0, _0801650C @ =gCurrentActionFuncId
- mov r10, r0
- b _0801671E
- .align 2, 0
-_08016504: .4byte gBattlescriptCurrInstr
-_08016508: .4byte gUnknown_81D99E4
-_0801650C: .4byte gCurrentActionFuncId
-_08016510:
- ldr r3, _08016548 @ =gBattleScripting
- ldrb r0, [r4]
- strb r0, [r3, 0x17]
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _0801654C @ =gBattleStruct
- ldr r1, [r2]
- adds r0, r1
- adds r0, 0xC4
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r1, _08016550 @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _08016554 @ =gUnknown_81D99E4
- mov r12, r3
- adds r7, r2, 0
- ldr r2, _08016558 @ =gCurrentActionFuncId
- mov r10, r2
- cmp r0, 0x4
- bls _0801653C
- b _08016706
-_0801653C:
- lsls r0, 2
- ldr r1, _0801655C @ =_08016560
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08016548: .4byte gBattleScripting
-_0801654C: .4byte gBattleStruct
-_08016550: .4byte gBattlescriptCurrInstr
-_08016554: .4byte gUnknown_81D99E4
-_08016558: .4byte gCurrentActionFuncId
-_0801655C: .4byte _08016560
- .align 2, 0
-_08016560:
- .4byte _08016706
- .4byte _08016706
- .4byte _08016574
- .4byte _08016608
- .4byte _080166D8
-_08016574:
- ldr r5, _080165AC @ =gBattleCommunication
- movs r0, 0
- strb r0, [r5, 0x5]
- ldr r2, _080165B0 @ =gBattlerAttacker
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _080165C0
- movs r0, 0x3E
- ands r0, r1
- ldr r1, _080165B4 @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _080165B8 @ =gUnknown_81D99E4
- ldr r2, _080165BC @ =gCurrentActionFuncId
- mov r10, r2
- cmp r0, 0
- bne _080165A6
- b _08016706
-_080165A6:
- movs r0, 0x5
- strb r0, [r5, 0x5]
- b _08016706
- .align 2, 0
-_080165AC: .4byte gBattleCommunication
-_080165B0: .4byte gBattlerAttacker
-_080165B4: .4byte gBattlescriptCurrInstr
-_080165B8: .4byte gUnknown_81D99E4
-_080165BC: .4byte gCurrentActionFuncId
-_080165C0:
- ldr r0, _080165FC @ =gBattlescriptCurrInstr
- mov r9, r0
- ldr r6, _08016600 @ =gUnknown_81D99E4
- ldr r1, _08016604 @ =gCurrentActionFuncId
- mov r10, r1
- mov r4, r8
- adds r3, r7, 0
- adds r2, r5, 0
-_080165D0:
- ldrb r1, [r4]
- lsrs r1, 1
- ldr r0, [r3]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r1, [r3]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080165D0
- b _08016706
- .align 2, 0
-_080165FC: .4byte gBattlescriptCurrInstr
-_08016600: .4byte gUnknown_81D99E4
-_08016604: .4byte gCurrentActionFuncId
-_08016608:
- ldr r3, _0801663C @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08016640 @ =gBattlerAttacker
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r6, r0, 0
- adds r6, 0xC6
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _08016650
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08016644 @ =gBattlescriptCurrInstr
- mov r9, r2
- ldr r6, _08016648 @ =gUnknown_81D99E4
- ldr r0, _0801664C @ =gCurrentActionFuncId
- mov r10, r0
- b _08016706
- .align 2, 0
-_0801663C: .4byte gBattleCommunication
-_08016640: .4byte gBattlerAttacker
-_08016644: .4byte gBattlescriptCurrInstr
-_08016648: .4byte gUnknown_81D99E4
-_0801664C: .4byte gCurrentActionFuncId
-_08016650:
- ldr r3, _080166C4 @ =gBattleTextBuff1
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _080166C8 @ =gBattleTextBuff2
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r1, _080166CC @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _080166D0 @ =gUnknown_81D99E4
- ldr r0, _080166D4 @ =gCurrentActionFuncId
- mov r10, r0
- cmp r2, 0
- bne _080166B4
- mov r5, r8
- adds r4, r7, 0
- adds r2, r3, 0
-_0801668A:
- ldrb r1, [r5]
- lsrs r1, 1
- ldr r0, [r4]
- adds r1, r0
- adds r1, 0xC6
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- ldr r1, [r4]
- adds r0, r1
- adds r0, 0xC6
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801668A
-_080166B4:
- ldrb r0, [r3, 0x2]
- adds r0, 0xE
- movs r1, 0
- mov r2, r12
- strb r0, [r2, 0x10]
- strb r1, [r2, 0x11]
- b _08016706
- .align 2, 0
-_080166C4: .4byte gBattleTextBuff1
-_080166C8: .4byte gBattleTextBuff2
-_080166CC: .4byte gBattlescriptCurrInstr
-_080166D0: .4byte gUnknown_81D99E4
-_080166D4: .4byte gCurrentActionFuncId
-_080166D8:
- ldr r0, _080166EC @ =gBattleTypeFlags
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080166F4
- ldr r1, _080166F0 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _080166F8
- .align 2, 0
-_080166EC: .4byte gBattleTypeFlags
-_080166F0: .4byte gBattleCommunication
-_080166F4:
- ldr r0, _08016734 @ =gBattleCommunication
- strb r1, [r0, 0x5]
-_080166F8:
- ldr r0, _08016738 @ =gBattlerAttacker
- mov r8, r0
- ldr r1, _0801673C @ =gBattlescriptCurrInstr
- mov r9, r1
- ldr r6, _08016740 @ =gUnknown_81D99E4
- ldr r2, _08016744 @ =gCurrentActionFuncId
- mov r10, r2
-_08016706:
- mov r1, r8
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r1, [r7]
- adds r0, r1
- adds r0, 0xC4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r9
- str r0, [r2]
-_0801671E:
- movs r0, 0xA
- mov r1, r10
- strb r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016734: .4byte gBattleCommunication
-_08016738: .4byte gBattlerAttacker
-_0801673C: .4byte gBattlescriptCurrInstr
-_08016740: .4byte gUnknown_81D99E4
-_08016744: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016418
-
- thumb_func_start TryRunFromBattle
-TryRunFromBattle: @ 8016748
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0
- ldr r1, _0801676C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08016774
- ldr r1, _08016770 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _0801677E
- .align 2, 0
-_0801676C: .4byte gBattleMons
-_08016770: .4byte gEnigmaBerries
-_08016774:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_0801677E:
- ldr r0, _080167AC @ =gPotentialItemEffectBattler
- strb r4, [r0]
- cmp r1, 0x25
- bne _080167BC
- ldr r2, _080167B0 @ =gLastUsedItem
- ldr r1, _080167B4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _080167B8 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2, 0x1]
- b _08016816
- .align 2, 0
-_080167AC: .4byte gPotentialItemEffectBattler
-_080167B0: .4byte gLastUsedItem
-_080167B4: .4byte gBattleMons
-_080167B8: .4byte gProtectStructs
-_080167BC:
- ldr r7, _080167EC @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r5, r0, r7
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _080167F8
- ldr r0, _080167F0 @ =gLastUsedAbility
- strb r1, [r0]
- ldr r0, _080167F4 @ =gProtectStructs
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1]
- b _08016816
- .align 2, 0
-_080167EC: .4byte gBattleMons
-_080167F0: .4byte gLastUsedAbility
-_080167F4: .4byte gProtectStructs
-_080167F8:
- ldr r0, _08016820 @ =gBattleTypeFlags
- ldr r3, [r0]
- movs r0, 0xA0
- lsls r0, 8
- ands r0, r3
- movs r1, 0x80
- lsls r1, 8
- cmp r0, r1
- bne _08016824
- adds r0, r4, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801687A
-_08016816:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801687A
- .align 2, 0
-_08016820: .4byte gBattleTypeFlags
-_08016824:
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- bne _0801686E
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r7
- ldrh r0, [r5, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08016868
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08016894 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _0801686E
-_08016868:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801686E:
- ldr r0, _08016894 @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x6C
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801687A:
- cmp r6, 0
- beq _0801688C
- ldr r1, _08016898 @ =gCurrentTurnActionNumber
- ldr r0, _0801689C @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _080168A0 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
-_0801688C:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016894: .4byte gBattleStruct
-_08016898: .4byte gCurrentTurnActionNumber
-_0801689C: .4byte gBattlersCount
-_080168A0: .4byte gBattleOutcome
- thumb_func_end TryRunFromBattle
-
- thumb_func_start sub_80168A4
-sub_80168A4: @ 80168A4
- push {r4-r6,lr}
- ldr r4, _080168F4 @ =gBattlerAttacker
- ldr r1, _080168F8 @ =gBattlerByTurnOrder
- ldr r5, _080168FC @ =gCurrentTurnActionNumber
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08016900 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801694C
- ldr r0, _08016904 @ =gBattlersCount
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08016908 @ =gActiveBattler
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08016938
- adds r4, r2, 0
- ldr r6, _0801690C @ =gChosenActionByBattler
- ldr r5, _08016910 @ =gBattleOutcome
-_080168D8:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _08016914
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08016926
- ldrb r0, [r5]
- movs r1, 0x2
- b _08016922
- .align 2, 0
-_080168F4: .4byte gBattlerAttacker
-_080168F8: .4byte gBattlerByTurnOrder
-_080168FC: .4byte gCurrentTurnActionNumber
-_08016900: .4byte gBattleTypeFlags
-_08016904: .4byte gBattlersCount
-_08016908: .4byte gActiveBattler
-_0801690C: .4byte gChosenActionByBattler
-_08016910: .4byte gBattleOutcome
-_08016914:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08016926
- ldrb r0, [r5]
- movs r1, 0x1
-_08016922:
- orrs r0, r1
- strb r0, [r5]
-_08016926:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08016944 @ =gBattlersCount
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080168D8
-_08016938:
- ldr r0, _08016948 @ =gBattleOutcome
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _080169D8
- .align 2, 0
-_08016944: .4byte gBattlersCount
-_08016948: .4byte gBattleOutcome
-_0801694C:
- ldrb r0, [r4]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _0801698C
- ldrb r0, [r4]
- bl TryRunFromBattle
- lsls r0, 24
- cmp r0, 0
- bne _080169D8
- ldrb r0, [r4]
- bl ClearFuryCutterDestinyBondGrudge
- ldr r1, _0801697C @ =gBattleCommunication
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08016980 @ =gBattlescriptCurrInstr
- ldr r0, _08016984 @ =gUnknown_81D893A
- str r0, [r1]
- ldr r1, _08016988 @ =gCurrentActionFuncId
- movs r0, 0xA
- b _080169D6
- .align 2, 0
-_0801697C: .4byte gBattleCommunication
-_08016980: .4byte gBattlescriptCurrInstr
-_08016984: .4byte gUnknown_81D893A
-_08016988: .4byte gCurrentActionFuncId
-_0801698C:
- ldr r1, _080169B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080169B8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _080169CC
- ldr r1, _080169BC @ =gBattleCommunication
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _080169C0 @ =gBattlescriptCurrInstr
- ldr r0, _080169C4 @ =gUnknown_81D893A
- str r0, [r1]
- ldr r1, _080169C8 @ =gCurrentActionFuncId
- movs r0, 0xA
- b _080169D6
- .align 2, 0
-_080169B4: .4byte gBattleMons
-_080169B8: .4byte 0x0400e000
-_080169BC: .4byte gBattleCommunication
-_080169C0: .4byte gBattlescriptCurrInstr
-_080169C4: .4byte gUnknown_81D893A
-_080169C8: .4byte gCurrentActionFuncId
-_080169CC:
- ldr r0, _080169E0 @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _080169E4 @ =gBattleOutcome
- movs r0, 0x6
-_080169D6:
- strb r0, [r1]
-_080169D8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080169E0: .4byte gBattlersCount
-_080169E4: .4byte gBattleOutcome
- thumb_func_end sub_80168A4
-
- thumb_func_start sub_80169E8
-sub_80169E8: @ 80169E8
- push {r4,r5,lr}
- ldr r2, _08016A44 @ =gBattlerAttacker
- ldr r1, _08016A48 @ =gBattlerByTurnOrder
- ldr r0, _08016A4C @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016A50 @ =gBattle_BG0_X
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08016A54 @ =gBattle_BG0_Y
- strh r5, [r0]
- ldr r4, _08016A58 @ =gBattleStruct
- ldr r1, [r4]
- adds r2, r1, 0
- adds r2, 0x79
- ldrb r0, [r2]
- cmp r0, 0
- beq _08016A74
- subs r0, 0x1
- strb r0, [r2]
- ldr r0, [r4]
- adds r0, 0x79
- ldrb r0, [r0]
- cmp r0, 0
- bne _08016A68
- ldr r0, _08016A5C @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r4, [r4]
- adds r4, 0x7C
- ldr r2, _08016A60 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08016A64 @ =0x000004fb
- bl __divsi3
- strb r0, [r4]
- b _08016A98
- .align 2, 0
-_08016A44: .4byte gBattlerAttacker
-_08016A48: .4byte gBattlerByTurnOrder
-_08016A4C: .4byte gCurrentTurnActionNumber
-_08016A50: .4byte gBattle_BG0_X
-_08016A54: .4byte gBattle_BG0_Y
-_08016A58: .4byte gBattleStruct
-_08016A5C: .4byte gEnemyParty
-_08016A60: .4byte gBaseStats
-_08016A64: .4byte 0x000004fb
-_08016A68:
- ldr r1, _08016A70 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016A9C
- .align 2, 0
-_08016A70: .4byte gBattleCommunication
-_08016A74:
- adds r1, 0x7A
- ldrb r0, [r1]
- cmp r0, 0
- beq _08016A98
- subs r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7A
- ldrb r0, [r0]
- cmp r0, 0
- beq _08016A98
- ldr r1, _08016A94 @ =gBattleCommunication
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08016A9C
- .align 2, 0
-_08016A94: .4byte gBattleCommunication
-_08016A98:
- ldr r0, _08016AB0 @ =gBattleCommunication
- strb r5, [r0, 0x5]
-_08016A9C:
- ldr r1, _08016AB4 @ =gBattlescriptCurrInstr
- ldr r0, _08016AB8 @ =gUnknown_81D9A04
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08016ABC @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08016AB0: .4byte gBattleCommunication
-_08016AB4: .4byte gBattlescriptCurrInstr
-_08016AB8: .4byte gUnknown_81D9A04
-_08016ABC: .4byte gCurrentActionFuncId
- thumb_func_end sub_80169E8
-
- thumb_func_start sub_8016AC0
-sub_8016AC0: @ 8016AC0
- ldr r2, _08016AF8 @ =gBattlerAttacker
- ldr r1, _08016AFC @ =gBattlerByTurnOrder
- ldr r0, _08016B00 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016B04 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016B08 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r1, _08016B0C @ =gNumSafariBalls
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08016B10 @ =gLastUsedItem
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08016B14 @ =gBattlescriptCurrInstr
- ldr r0, _08016B18 @ =gUnknown_81D99B0
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08016B1C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08016AF8: .4byte gBattlerAttacker
-_08016AFC: .4byte gBattlerByTurnOrder
-_08016B00: .4byte gCurrentTurnActionNumber
-_08016B04: .4byte gBattle_BG0_X
-_08016B08: .4byte gBattle_BG0_Y
-_08016B0C: .4byte gNumSafariBalls
-_08016B10: .4byte gLastUsedItem
-_08016B14: .4byte gBattlescriptCurrInstr
-_08016B18: .4byte gUnknown_81D99B0
-_08016B1C: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016AC0
-
- thumb_func_start sub_8016B20
-sub_8016B20: @ 8016B20
- push {r4-r7,lr}
- ldr r2, _08016B9C @ =gBattlerAttacker
- ldr r1, _08016BA0 @ =gBattlerByTurnOrder
- ldr r0, _08016BA4 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016BA8 @ =gBattle_BG0_X
- movs r7, 0
- strh r7, [r0]
- ldr r0, _08016BAC @ =gBattle_BG0_Y
- strh r7, [r0]
- bl Random
- ldr r6, _08016BB0 @ =gBattleStruct
- ldr r5, [r6]
- adds r5, 0x7A
- ldrb r4, [r5]
- adds r4, 0x2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- adds r0, r4
- strb r0, [r5]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7A
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _08016B66
- movs r0, 0x6
- strb r0, [r1]
-_08016B66:
- ldr r0, [r6]
- adds r0, 0x79
- strb r7, [r0]
- ldr r1, [r6]
- adds r1, 0x7C
- ldrb r0, [r1]
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7C
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08016B86
- movs r0, 0x3
- strb r0, [r1]
-_08016B86:
- ldr r1, _08016BB4 @ =gBattlescriptCurrInstr
- ldr r0, _08016BB8 @ =gUnknown_81D9A04
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08016BBC @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016B9C: .4byte gBattlerAttacker
-_08016BA0: .4byte gBattlerByTurnOrder
-_08016BA4: .4byte gCurrentTurnActionNumber
-_08016BA8: .4byte gBattle_BG0_X
-_08016BAC: .4byte gBattle_BG0_Y
-_08016BB0: .4byte gBattleStruct
-_08016BB4: .4byte gBattlescriptCurrInstr
-_08016BB8: .4byte gUnknown_81D9A04
-_08016BBC: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016B20
-
- thumb_func_start sub_8016BC0
-sub_8016BC0: @ 8016BC0
- push {r4-r7,lr}
- ldr r2, _08016C3C @ =gBattlerAttacker
- ldr r1, _08016C40 @ =gBattlerByTurnOrder
- ldr r0, _08016C44 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08016C48 @ =gBattle_BG0_X
- movs r7, 0
- strh r7, [r0]
- ldr r0, _08016C4C @ =gBattle_BG0_Y
- strh r7, [r0]
- bl Random
- ldr r6, _08016C50 @ =gBattleStruct
- ldr r5, [r6]
- adds r5, 0x79
- ldrb r4, [r5]
- adds r4, 0x2
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- adds r0, r4
- strb r0, [r5]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x79
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _08016C06
- movs r0, 0x6
- strb r0, [r1]
-_08016C06:
- ldr r0, [r6]
- adds r0, 0x7A
- strb r7, [r0]
- ldr r1, [r6]
- adds r1, 0x7C
- ldrb r0, [r1]
- lsls r0, 1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x7C
- ldrb r0, [r1]
- cmp r0, 0x14
- bls _08016C26
- movs r0, 0x14
- strb r0, [r1]
-_08016C26:
- ldr r1, _08016C54 @ =gBattlescriptCurrInstr
- ldr r0, _08016C58 @ =gUnknown_81D9A04
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08016C5C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C3C: .4byte gBattlerAttacker
-_08016C40: .4byte gBattlerByTurnOrder
-_08016C44: .4byte gCurrentTurnActionNumber
-_08016C48: .4byte gBattle_BG0_X
-_08016C4C: .4byte gBattle_BG0_Y
-_08016C50: .4byte gBattleStruct
-_08016C54: .4byte gBattlescriptCurrInstr
-_08016C58: .4byte gUnknown_81D9A04
-_08016C5C: .4byte gCurrentActionFuncId
- thumb_func_end sub_8016BC0
-
- thumb_func_start HandleAction_SafriZoneRun
-HandleAction_SafriZoneRun: @ 8016C60
- push {r4,lr}
- ldr r2, _08016C88 @ =gBattlerAttacker
- ldr r1, _08016C8C @ =gBattlerByTurnOrder
- ldr r4, _08016C90 @ =gCurrentTurnActionNumber
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08016C94 @ =gBattlersCount
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08016C98 @ =gBattleOutcome
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08016C88: .4byte gBattlerAttacker
-_08016C8C: .4byte gBattlerByTurnOrder
-_08016C90: .4byte gCurrentTurnActionNumber
-_08016C94: .4byte gBattlersCount
-_08016C98: .4byte gBattleOutcome
- thumb_func_end HandleAction_SafriZoneRun
-
- thumb_func_start HandleAction_Action9
-HandleAction_Action9: @ 8016C9C
- ldr r3, _08016CE8 @ =gBattlerAttacker
- ldr r1, _08016CEC @ =gBattlerByTurnOrder
- ldr r0, _08016CF0 @ =gCurrentTurnActionNumber
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08016CF4 @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016CF8 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r1, _08016CFC @ =gBattleTextBuff1
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08016D00 @ =gBattlerPartyIndexes
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016D04 @ =gBattlescriptCurrInstr
- ldr r0, _08016D08 @ =gUnknown_81D9A04
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _08016D0C @ =gCurrentActionFuncId
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08016D10 @ =gActionsByTurnOrder
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08016CE8: .4byte gBattlerAttacker
-_08016CEC: .4byte gBattlerByTurnOrder
-_08016CF0: .4byte gCurrentTurnActionNumber
-_08016CF4: .4byte gBattle_BG0_X
-_08016CF8: .4byte gBattle_BG0_Y
-_08016CFC: .4byte gBattleTextBuff1
-_08016D00: .4byte gBattlerPartyIndexes
-_08016D04: .4byte gBattlescriptCurrInstr
-_08016D08: .4byte gUnknown_81D9A04
-_08016D0C: .4byte gCurrentActionFuncId
-_08016D10: .4byte gActionsByTurnOrder
- thumb_func_end HandleAction_Action9
-
- thumb_func_start HandleAction_Action11
-HandleAction_Action11: @ 8016D14
- push {lr}
- bl HandleFaintedMonActions
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08016D30
- ldr r0, _08016D34 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x4D
- strb r1, [r0]
- ldr r1, _08016D38 @ =gCurrentActionFuncId
- movs r0, 0xC
- strb r0, [r1]
-_08016D30:
- pop {r0}
- bx r0
- .align 2, 0
-_08016D34: .4byte gBattleStruct
-_08016D38: .4byte gCurrentActionFuncId
- thumb_func_end HandleAction_Action11
-
- thumb_func_start HandleAction_NothingIsFainted
-HandleAction_NothingIsFainted: @ 8016D3C
- ldr r1, _08016D5C @ =gCurrentTurnActionNumber
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08016D60 @ =gCurrentActionFuncId
- ldr r2, _08016D64 @ =gActionsByTurnOrder
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _08016D68 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08016D6C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08016D5C: .4byte gCurrentTurnActionNumber
-_08016D60: .4byte gCurrentActionFuncId
-_08016D64: .4byte gActionsByTurnOrder
-_08016D68: .4byte gHitMarker
-_08016D6C: .4byte 0xf1e892af
- thumb_func_end HandleAction_NothingIsFainted
-
- thumb_func_start HandleAction_ActionFinished
-HandleAction_ActionFinished: @ 8016D70
- push {r4,r5,lr}
- ldr r1, _08016DE4 @ =gCurrentTurnActionNumber
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08016DE8 @ =gCurrentActionFuncId
- ldr r2, _08016DEC @ =gActionsByTurnOrder
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl SpecialStatusesClear
- ldr r2, _08016DF0 @ =gHitMarker
- ldr r0, [r2]
- ldr r1, _08016DF4 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08016DF8 @ =gCurrentMove
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08016DFC @ =gBattleMoveDamage
- movs r4, 0
- str r4, [r0]
- ldr r0, _08016E00 @ =gMoveResultFlags
- strb r1, [r0]
- ldr r5, _08016E04 @ =gBattleScripting
- strb r1, [r5, 0x18]
- strb r1, [r5, 0x19]
- ldr r2, _08016E08 @ =gLastLandedMoves
- ldr r3, _08016E0C @ =gBattlerAttacker
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- strh r4, [r0]
- ldr r2, _08016E10 @ =gLastHitByType
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- strh r4, [r0]
- ldr r0, _08016E14 @ =gBattleStruct
- ldr r0, [r0]
- strb r1, [r0, 0x13]
- ldr r0, _08016E18 @ =gDynamicBasePower
- strh r4, [r0]
- strb r1, [r5, 0x14]
- ldr r0, _08016E1C @ =gBattleCommunication
- strb r1, [r0, 0x3]
- strb r1, [r0, 0x4]
- strb r1, [r5, 0x16]
- ldr r0, _08016E20 @ =gBattleResources
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r0, 0x20
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08016DE4: .4byte gCurrentTurnActionNumber
-_08016DE8: .4byte gCurrentActionFuncId
-_08016DEC: .4byte gActionsByTurnOrder
-_08016DF0: .4byte gHitMarker
-_08016DF4: .4byte 0xf1e892af
-_08016DF8: .4byte gCurrentMove
-_08016DFC: .4byte gBattleMoveDamage
-_08016E00: .4byte gMoveResultFlags
-_08016E04: .4byte gBattleScripting
-_08016E08: .4byte gLastLandedMoves
-_08016E0C: .4byte gBattlerAttacker
-_08016E10: .4byte gLastHitByType
-_08016E14: .4byte gBattleStruct
-_08016E18: .4byte gDynamicBasePower
-_08016E1C: .4byte gBattleCommunication
-_08016E20: .4byte gBattleResources
- thumb_func_end HandleAction_ActionFinished
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim.s b/asm/battle_anim.s
index d5e389807..d9471c9dd 100644
--- a/asm/battle_anim.s
+++ b/asm/battle_anim.s
@@ -281,9 +281,9 @@ _08072706:
strh r1, [r0]
ldr r0, _08072734 @ =gBattle_WIN0V
strh r1, [r0]
- ldr r0, _08072738 @ =gUnknown_2022988
+ ldr r0, _08072738 @ =gBattle_WIN1H
strh r1, [r0]
- ldr r0, _0807273C @ =gUnknown_202298A
+ ldr r0, _0807273C @ =gBattle_WIN1V
strh r1, [r0]
add sp, 0x4
pop {r3-r5}
@@ -298,8 +298,8 @@ _08072728: .4byte 0x0000ffff
_0807272C: .4byte gMPlayInfo_BGM
_08072730: .4byte gBattle_WIN0H
_08072734: .4byte gBattle_WIN0V
-_08072738: .4byte gUnknown_2022988
-_0807273C: .4byte gUnknown_202298A
+_08072738: .4byte gBattle_WIN1H
+_0807273C: .4byte gBattle_WIN1V
thumb_func_end LaunchBattleAnimation
thumb_func_start DestroyAnimSprite
diff --git a/asm/battle_anim_effects_2.s b/asm/battle_anim_effects_2.s
index 67ac6a13e..24921239f 100644
--- a/asm/battle_anim_effects_2.s
+++ b/asm/battle_anim_effects_2.s
@@ -3902,7 +3902,7 @@ _080A8C60:
subs r0, r4
strh r0, [r1]
_080A8C6A:
- ldr r1, _080A8C80 @ =sub_8075D9C
+ ldr r1, _080A8C80 @ =AnimSpriteOnMonPos
str r1, [r6, 0x1C]
adds r0, r6, 0
bl _call_via_r1
@@ -3912,7 +3912,7 @@ _080A8C6A:
bx r0
.align 2, 0
_080A8C7C: .4byte gBattleAnimArgs
-_080A8C80: .4byte sub_8075D9C
+_080A8C80: .4byte AnimSpriteOnMonPos
thumb_func_end sub_80A8BC4
thumb_func_start sub_80A8C84
@@ -4233,7 +4233,7 @@ _080A8F0E:
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
- ldr r1, _080A8F34 @ =sub_8075D9C
+ ldr r1, _080A8F34 @ =AnimSpriteOnMonPos
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@@ -4244,7 +4244,7 @@ _080A8F0E:
_080A8F28: .4byte 0x000027db
_080A8F2C: .4byte 0x01010000
_080A8F30: .4byte gBattleAnimArgs
-_080A8F34: .4byte sub_8075D9C
+_080A8F34: .4byte AnimSpriteOnMonPos
thumb_func_end sub_80A8EE8
thumb_func_start sub_80A8F38
diff --git a/asm/battle_anim_effects_3.s b/asm/battle_anim_effects_3.s
index 004ad8786..9c98d7f36 100644
--- a/asm/battle_anim_effects_3.s
+++ b/asm/battle_anim_effects_3.s
@@ -1481,11 +1481,11 @@ sub_80DEDD8: @ 80DEDD8
ldr r1, _080DEE14 @ =0x00001f3f
movs r0, 0x48
bl SetGpuReg
- ldr r1, _080DEE18 @ =gUnknown_2022988
+ ldr r1, _080DEE18 @ =gBattle_WIN1H
ldr r2, _080DEE1C @ =0x000098f0
adds r0, r2, 0
strh r0, [r1]
- ldr r1, _080DEE20 @ =gUnknown_202298A
+ ldr r1, _080DEE20 @ =gBattle_WIN1V
movs r0, 0xA0
strh r0, [r1]
ldr r0, _080DEE24 @ =gBattle_WIN0H
@@ -1499,19 +1499,19 @@ sub_80DEDD8: @ 80DEDD8
b _080DEE5C
.align 2, 0
_080DEE14: .4byte 0x00001f3f
-_080DEE18: .4byte gUnknown_2022988
+_080DEE18: .4byte gBattle_WIN1H
_080DEE1C: .4byte 0x000098f0
-_080DEE20: .4byte gUnknown_202298A
+_080DEE20: .4byte gBattle_WIN1V
_080DEE24: .4byte gBattle_WIN0H
_080DEE28: .4byte gBattle_WIN0V
_080DEE2C:
ldr r1, _080DEE68 @ =0x00001f3f
movs r0, 0x48
bl SetGpuReg
- ldr r1, _080DEE6C @ =gUnknown_2022988
+ ldr r1, _080DEE6C @ =gBattle_WIN1H
movs r0, 0xF0
strh r0, [r1]
- ldr r4, _080DEE70 @ =gUnknown_202298A
+ ldr r4, _080DEE70 @ =gBattle_WIN1V
ldr r1, _080DEE74 @ =0x000078a0
adds r0, r1, 0
strh r0, [r4]
@@ -1533,8 +1533,8 @@ _080DEE5C:
bx r0
.align 2, 0
_080DEE68: .4byte 0x00001f3f
-_080DEE6C: .4byte gUnknown_2022988
-_080DEE70: .4byte gUnknown_202298A
+_080DEE6C: .4byte gBattle_WIN1H
+_080DEE70: .4byte gBattle_WIN1V
_080DEE74: .4byte 0x000078a0
thumb_func_end sub_80DEDD8
@@ -1546,10 +1546,10 @@ sub_80DEE78: @ 80DEE78
ldr r1, _080DEEB0 @ =0x00003f3f
movs r0, 0x48
bl SetGpuReg
- ldr r0, _080DEEB4 @ =gUnknown_2022988
+ ldr r0, _080DEEB4 @ =gBattle_WIN1H
movs r1, 0
strh r1, [r0]
- ldr r0, _080DEEB8 @ =gUnknown_202298A
+ ldr r0, _080DEEB8 @ =gBattle_WIN1V
strh r1, [r0]
bl IsContest
lsls r0, 24
@@ -1567,8 +1567,8 @@ _080DEEA4:
bx r0
.align 2, 0
_080DEEB0: .4byte 0x00003f3f
-_080DEEB4: .4byte gUnknown_2022988
-_080DEEB8: .4byte gUnknown_202298A
+_080DEEB4: .4byte gBattle_WIN1H
+_080DEEB8: .4byte gBattle_WIN1V
thumb_func_end sub_80DEE78
thumb_func_start sub_80DEEBC
diff --git a/asm/battle_1.s b/asm/battle_bg.s
index 0b8ad7365..6db40cb4d 100644
--- a/asm/battle_1.s
+++ b/asm/battle_bg.s
@@ -179,7 +179,7 @@ sub_800F324: @ 800F324
push {lr}
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _0800F344 @ =gUnknown_8248320
+ ldr r1, _0800F344 @ =gBattleBgTemplates
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
@@ -189,7 +189,7 @@ sub_800F324: @ 800F324
pop {r0}
bx r0
.align 2, 0
-_0800F344: .4byte gUnknown_8248320
+_0800F344: .4byte gBattleBgTemplates
_0800F348: .4byte gUnknown_8248330
thumb_func_end sub_800F324
@@ -217,8 +217,8 @@ sub_800F34C: @ 800F34C
_0800F37C: .4byte 0x0000b040
thumb_func_end sub_800F34C
- thumb_func_start sub_800F380
-sub_800F380: @ 800F380
+ thumb_func_start LoadBattleMenuWindowGfx
+LoadBattleMenuWindowGfx: @ 800F380
push {r4,r5,lr}
movs r0, 0x2
movs r1, 0x12
@@ -278,7 +278,7 @@ _0800F3FC: .4byte 0x0000675a
_0800F400: .4byte gPlttBufferFaded + 0xB8
_0800F404: .4byte gBattleTypeFlags
_0800F408: .4byte 0x00010010
- thumb_func_end sub_800F380
+ thumb_func_end LoadBattleMenuWindowGfx
thumb_func_start sub_800F40C
sub_800F40C: @ 800F40C
@@ -309,7 +309,7 @@ LoadBattleTextboxAndBackground: @ 800F420
movs r1, 0
movs r2, 0x40
bl LoadCompressedPalette
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
bl sub_800F40C
pop {r0}
bx r0
@@ -1143,8 +1143,8 @@ _0800FAD8: .4byte 0x000003ff
_0800FADC: .4byte 0xfffffc00
thumb_func_end sub_800F6FC
- thumb_func_start sub_800FAE0
-sub_800FAE0: @ 800FAE0
+ thumb_func_start DrawBattleEntryBackground
+DrawBattleEntryBackground: @ 800FAE0
push {r4,lr}
ldr r0, _0800FB64 @ =gBattleTypeFlags
ldr r1, [r0]
@@ -1287,7 +1287,7 @@ _0800FC26:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_800FAE0
+ thumb_func_end DrawBattleEntryBackground
thumb_func_start sub_800FC2C
sub_800FC2C: @ 800FC2C
@@ -1459,7 +1459,7 @@ _0800FD68:
.align 2, 0
_0800FD88: .4byte gUnknown_824EE34
_0800FD8C:
- bl sub_800F380
+ bl LoadBattleMenuWindowGfx
b _0800FD94
_0800FD92:
movs r4, 0x1
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
deleted file mode 100644
index 47230be60..000000000
--- a/asm/battle_controller_oak.s
+++ /dev/null
@@ -1,7887 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start nullsub_81
-nullsub_81: @ 80E75AC
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start SetControllerToOakOrOldman
-SetControllerToOakOrOldman: @ 80E75B0
- ldr r1, _080E75DC @ =gBattlerControllerFuncs
- ldr r0, _080E75E0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E75E4 @ =sub_80E75EC
- str r1, [r0]
- ldr r2, _080E75E8 @ =gBattleStruct
- ldr r0, [r2]
- adds r0, 0x94
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x95
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x96
- strb r1, [r0]
- ldr r0, [r2]
- adds r0, 0x97
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080E75DC: .4byte gBattlerControllerFuncs
-_080E75E0: .4byte gActiveBattler
-_080E75E4: .4byte sub_80E75EC
-_080E75E8: .4byte gBattleStruct
- thumb_func_end SetControllerToOakOrOldman
-
- thumb_func_start sub_80E75EC
-sub_80E75EC: @ 80E75EC
- push {lr}
- ldr r2, _080E7620 @ =gBattleControllerExecFlags
- ldr r1, _080E7624 @ =gBitTable
- ldr r0, _080E7628 @ =gActiveBattler
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080E7638
- ldr r0, _080E762C @ =gBattleBufferA
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _080E7634
- ldr r0, _080E7630 @ =gUnknown_84020F8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _080E7638
- .align 2, 0
-_080E7620: .4byte gBattleControllerExecFlags
-_080E7624: .4byte gBitTable
-_080E7628: .4byte gActiveBattler
-_080E762C: .4byte gBattleBufferA
-_080E7630: .4byte gUnknown_84020F8
-_080E7634:
- bl WallyBufferExecCompleted
-_080E7638:
- pop {r0}
- bx r0
- thumb_func_end sub_80E75EC
-
- thumb_func_start sub_80E763C
-sub_80E763C: @ 80E763C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _080E769C @ =gBattleBufferA
- ldr r4, _080E76A0 @ =gActiveBattler
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl DoBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl DoBounceEffect
- ldr r0, _080E76A4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080E76D4
- movs r0, 0x5
- bl PlaySE
- ldr r1, _080E76A8 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080E76BC
- cmp r0, 0x1
- bgt _080E76AC
- cmp r0, 0
- beq _080E76B6
- b _080E781A
- .align 2, 0
-_080E769C: .4byte gBattleBufferA
-_080E76A0: .4byte gActiveBattler
-_080E76A4: .4byte gMain
-_080E76A8: .4byte gActionSelectionCursor
-_080E76AC:
- cmp r0, 0x2
- beq _080E76C2
- cmp r0, 0x3
- beq _080E76C8
- b _080E781A
-_080E76B6:
- movs r0, 0x1
- movs r1, 0
- b _080E7814
-_080E76BC:
- movs r0, 0x1
- movs r1, 0x1
- b _080E7814
-_080E76C2:
- movs r0, 0x1
- movs r1, 0x2
- b _080E7814
-_080E76C8:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
- b _080E781A
-_080E76D4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080E770C
- ldr r5, _080E7708 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080E76EE
- b _080E7838
-_080E76EE:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _080E7794
- .align 2, 0
-_080E7708: .4byte gActionSelectionCursor
-_080E770C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7744
- ldr r5, _080E7740 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7726
- b _080E7838
-_080E7726:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _080E7794
- .align 2, 0
-_080E7740: .4byte gActionSelectionCursor
-_080E7744:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _080E7764
- ldr r5, _080E7760 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E7838
- b _080E777C
- .align 2, 0
-_080E7760: .4byte gActionSelectionCursor
-_080E7764:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E77AC
- ldr r5, _080E77A8 @ =gActionSelectionCursor
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080E7838
-_080E777C:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl ActionSelectionDestroyCursorAt
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_080E7794:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- b _080E7838
- .align 2, 0
-_080E77A8: .4byte gActionSelectionCursor
-_080E77AC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E782C
- ldr r6, _080E7820 @ =gBattleTypeFlags
- ldr r0, [r6]
- ands r0, r2
- cmp r0, 0
- beq _080E7838
- ldrb r0, [r4]
- bl GetBattlerPosition
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080E7838
- movs r0, 0
- bl GetBattlerAtPosition
- ldr r1, _080E7824 @ =gAbsentBattlerFlags
- ldrb r1, [r1]
- ldr r2, _080E7828 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080E7838
- ldr r0, [r6]
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- bne _080E7838
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E780A
- cmp r5, 0xC
- bhi _080E7838
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_080E780A:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
-_080E7814:
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
-_080E781A:
- bl WallyBufferExecCompleted
- b _080E7838
- .align 2, 0
-_080E7820: .4byte gBattleTypeFlags
-_080E7824: .4byte gAbsentBattlerFlags
-_080E7828: .4byte gBitTable
-_080E782C:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080E7838
- bl SwapHpBarsWithHpText
-_080E7838:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80E763C
-
- thumb_func_start sub_80E7844
-sub_80E7844: @ 80E7844
- push {r4,lr}
- ldr r1, _080E7860 @ =gBattleStruct
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x94
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _080E787C
- cmp r0, 0x1
- bgt _080E7864
- cmp r0, 0
- beq _080E786A
- b _080E78D8
- .align 2, 0
-_080E7860: .4byte gBattleStruct
-_080E7864:
- cmp r0, 0x2
- beq _080E78B4
- b _080E78D8
-_080E786A:
- adds r1, r2, 0
- adds r1, 0x96
- movs r0, 0x40
- strb r0, [r1]
- ldr r1, [r4]
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080E787C:
- ldr r1, [r4]
- adds r1, 0x96
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080E78D8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl ActionSelectionDestroyCursorAt
- movs r0, 0x1
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- ldr r0, [r4]
- adds r0, 0x96
- movs r1, 0x40
- strb r1, [r0]
- ldr r1, [r4]
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E78D8
-_080E78B4:
- adds r1, r2, 0
- adds r1, 0x96
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080E78D8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl BtlController_EmitTwoReturnValues
- bl WallyBufferExecCompleted
-_080E78D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E7844
-
- thumb_func_start sub_80E78E0
-sub_80E78E0: @ 80E78E0
- push {lr}
- ldr r2, _080E7908 @ =gSprites
- ldr r1, _080E790C @ =gBattlerSpriteIds
- ldr r0, _080E7910 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E7914 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E7904
- bl WallyBufferExecCompleted
-_080E7904:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7908: .4byte gSprites
-_080E790C: .4byte gBattlerSpriteIds
-_080E7910: .4byte gActiveBattler
-_080E7914: .4byte SpriteCallbackDummy
- thumb_func_end sub_80E78E0
-
- thumb_func_start sub_80E7918
-sub_80E7918: @ 80E7918
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E792A
- bl WallyBufferExecCompleted
-_080E792A:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7918
-
- thumb_func_start sub_80E7930
-sub_80E7930: @ 80E7930
- push {lr}
- ldr r0, _080E7960 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E795A
- ldr r2, _080E7964 @ =gMain
- ldr r0, _080E7968 @ =0x00000439
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _080E796C @ =gPreBattleCallback1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_080E795A:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7960: .4byte gPaletteFade
-_080E7964: .4byte gMain
-_080E7968: .4byte 0x00000439
-_080E796C: .4byte gPreBattleCallback1
- thumb_func_end sub_80E7930
-
- thumb_func_start sub_80E7970
-sub_80E7970: @ 80E7970
- push {lr}
- ldr r0, _080E7984 @ =gDoingBattleAnim
- ldrb r0, [r0]
- cmp r0, 0
- bne _080E797E
- bl WallyBufferExecCompleted
-_080E797E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7984: .4byte gDoingBattleAnim
- thumb_func_end sub_80E7970
-
- thumb_func_start sub_80E7988
-sub_80E7988: @ 80E7988
- push {lr}
- bl HandleInputChooseMove
- ldr r2, _080E79AC @ =gBattleControllerExecFlags
- ldr r1, _080E79B0 @ =gBitTable
- ldr r0, _080E79B4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080E79A8
- bl WallyBufferExecCompleted
-_080E79A8:
- pop {r0}
- bx r0
- .align 2, 0
-_080E79AC: .4byte gBattleControllerExecFlags
-_080E79B0: .4byte gBitTable
-_080E79B4: .4byte gActiveBattler
- thumb_func_end sub_80E7988
-
- thumb_func_start sub_80E79B8
-sub_80E79B8: @ 80E79B8
- push {r4,lr}
- ldr r0, _080E79FC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E79F6
- ldr r1, _080E7A00 @ =gBattlerControllerFuncs
- ldr r2, _080E7A04 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7A08 @ =sub_80E7A14
- str r1, [r0]
- ldr r3, _080E7A0C @ =gTasks
- ldr r1, _080E7A10 @ =gUnknown_3004FFC
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- bl FreeAllWindowBuffers
- adds r0, r4, 0
- bl OpenPartyMenuInBattle
-_080E79F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E79FC: .4byte gPaletteFade
-_080E7A00: .4byte gBattlerControllerFuncs
-_080E7A04: .4byte gActiveBattler
-_080E7A08: .4byte sub_80E7A14
-_080E7A0C: .4byte gTasks
-_080E7A10: .4byte gUnknown_3004FFC
- thumb_func_end sub_80E79B8
-
- thumb_func_start sub_80E7A14
-sub_80E7A14: @ 80E7A14
- push {lr}
- ldr r0, _080E7A44 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _080E7A48 @ =BattleMainCB2
- cmp r1, r0
- bne _080E7A6A
- ldr r0, _080E7A4C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7A6A
- ldr r0, _080E7A50 @ =gUnknown_203B0C0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080E7A5C
- ldr r0, _080E7A54 @ =gUnknown_203B0C1
- ldrb r1, [r0]
- ldr r2, _080E7A58 @ =gUnknown_203B0DC
- movs r0, 0x1
- bl BtlController_EmitChosenMonReturnValue
- b _080E7A66
- .align 2, 0
-_080E7A44: .4byte gMain
-_080E7A48: .4byte BattleMainCB2
-_080E7A4C: .4byte gPaletteFade
-_080E7A50: .4byte gUnknown_203B0C0
-_080E7A54: .4byte gUnknown_203B0C1
-_080E7A58: .4byte gUnknown_203B0DC
-_080E7A5C:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl BtlController_EmitChosenMonReturnValue
-_080E7A66:
- bl WallyBufferExecCompleted
-_080E7A6A:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7A14
-
- thumb_func_start sub_80E7A70
-sub_80E7A70: @ 80E7A70
- push {lr}
- ldr r0, _080E7AA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7AC0
- ldr r1, _080E7AAC @ =gBattlerControllerFuncs
- ldr r0, _080E7AB0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7AB4 @ =sub_80E7AC4
- str r1, [r0]
- bl nullsub_44
- bl FreeAllWindowBuffers
- ldr r0, _080E7AB8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7ABC
- bl sub_8107ECC
- b _080E7AC0
- .align 2, 0
-_080E7AA8: .4byte gPaletteFade
-_080E7AAC: .4byte gBattlerControllerFuncs
-_080E7AB0: .4byte gActiveBattler
-_080E7AB4: .4byte sub_80E7AC4
-_080E7AB8: .4byte gBattleTypeFlags
-_080E7ABC:
- bl sub_810AF74
-_080E7AC0:
- pop {r0}
- bx r0
- thumb_func_end sub_80E7A70
-
- thumb_func_start sub_80E7AC4
-sub_80E7AC4: @ 80E7AC4
- push {lr}
- ldr r0, _080E7B14 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _080E7B18 @ =BattleMainCB2
- cmp r1, r0
- bne _080E7B42
- ldr r0, _080E7B1C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E7B42
- movs r0, 0x4
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _080E7B34
- ldr r0, _080E7B20 @ =gSpecialVar_ItemId
- ldrh r0, [r0]
- cmp r0, 0xD
- bne _080E7B34
- ldr r0, _080E7B24 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E7B34
- movs r0, 0x4
- bl sub_80EB2F4
- ldr r1, _080E7B28 @ =gBattlerControllerFuncs
- ldr r0, _080E7B2C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7B30 @ =sub_80E8704
- str r1, [r0]
- b _080E7B42
- .align 2, 0
-_080E7B14: .4byte gMain
-_080E7B18: .4byte BattleMainCB2
-_080E7B1C: .4byte gPaletteFade
-_080E7B20: .4byte gSpecialVar_ItemId
-_080E7B24: .4byte gBattleTypeFlags
-_080E7B28: .4byte gBattlerControllerFuncs
-_080E7B2C: .4byte gActiveBattler
-_080E7B30: .4byte sub_80E8704
-_080E7B34:
- ldr r0, _080E7B48 @ =gSpecialVar_ItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl BtlController_EmitOneReturnValue
- bl WallyBufferExecCompleted
-_080E7B42:
- pop {r0}
- bx r0
- .align 2, 0
-_080E7B48: .4byte gSpecialVar_ItemId
- thumb_func_end sub_80E7AC4
-
- thumb_func_start sub_80E7B4C
-sub_80E7B4C: @ 80E7B4C
- push {r4-r7,lr}
- ldr r4, _080E7CB0 @ =gBattleSpritesDataPtr
- ldr r0, [r4]
- ldr r5, _080E7CB4 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r1, [r0, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7B80
- ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080E7CBC @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_080E7B80:
- ldr r1, [r4]
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- ldr r1, [r1, 0x4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7BB2
- ldr r0, _080E7CB8 @ =gBattlerPartyIndexes
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080E7CBC @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_80F1720
-_080E7BB2:
- ldr r0, [r4]
- ldrb r2, [r5]
- ldr r3, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- movs r4, 0x8
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7CA8
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080E7CA8
- bl IsDoubleBattle
- lsls r0, 24
- cmp r0, 0
- beq _080E7C46
- ldr r0, _080E7CC0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E7C46
- ldr r1, _080E7CC4 @ =gUnknown_3004FFC
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E7CC8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _080E7CCC @ =gHealthboxSpriteIds
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080E7CBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804BD94
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
-_080E7C46:
- ldr r1, _080E7CC4 @ =gUnknown_3004FFC
- ldr r4, _080E7CB4 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080E7CC8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _080E7CCC @ =gHealthboxSpriteIds
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _080E7CB8 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080E7CBC @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
- ldrb r0, [r4]
- bl sub_804BD94
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- ldr r0, _080E7CB0 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r2, [r0, 0x8]
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _080E7CD0 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7CD4 @ =sub_80E7CD8
- str r1, [r0]
-_080E7CA8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7CB0: .4byte gBattleSpritesDataPtr
-_080E7CB4: .4byte gActiveBattler
-_080E7CB8: .4byte gBattlerPartyIndexes
-_080E7CBC: .4byte gPlayerParty
-_080E7CC0: .4byte gBattleTypeFlags
-_080E7CC4: .4byte gUnknown_3004FFC
-_080E7CC8: .4byte gSprites
-_080E7CCC: .4byte gHealthboxSpriteIds
-_080E7CD0: .4byte gBattlerControllerFuncs
-_080E7CD4: .4byte sub_80E7CD8
- thumb_func_end sub_80E7B4C
-
- thumb_func_start sub_80E7CD8
-sub_80E7CD8: @ 80E7CD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r2, _080E7DD8 @ =gSprites
- ldr r0, _080E7DDC @ =gHealthboxSpriteIds
- ldr r1, _080E7DE0 @ =gActiveBattler
- mov r8, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E7DE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E7D02
- movs r4, 0x1
-_080E7D02:
- cmp r4, 0
- beq _080E7DCE
- ldr r7, _080E7DE8 @ =gBattleSpritesDataPtr
- ldr r0, [r7]
- ldr r4, [r0, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r4
- ldrb r1, [r2, 0x1]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7DCE
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _080E7DCE
- ldrb r1, [r2]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldr r0, [r7]
- mov r1, r8
- ldrb r2, [r1]
- ldr r0, [r0, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r2, [r7]
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldr r2, [r7]
- mov r1, r8
- ldrb r0, [r1]
- adds r1, r6, 0
- eors r1, r0
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _080E7DEC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _080E7DF0 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- ldr r2, _080E7DF4 @ =gBattlerPartyIndexes
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E7DF8 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- ldr r1, _080E7DFC @ =gBattlerControllerFuncs
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E7E00 @ =sub_80E835C
- str r1, [r0]
-_080E7DCE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7DD8: .4byte gSprites
-_080E7DDC: .4byte gHealthboxSpriteIds
-_080E7DE0: .4byte gActiveBattler
-_080E7DE4: .4byte SpriteCallbackDummy
-_080E7DE8: .4byte gBattleSpritesDataPtr
-_080E7DEC: .4byte 0x000027f9
-_080E7DF0: .4byte c3_0802FDF4
-_080E7DF4: .4byte gBattlerPartyIndexes
-_080E7DF8: .4byte gPlayerParty
-_080E7DFC: .4byte gBattlerControllerFuncs
-_080E7E00: .4byte sub_80E835C
- thumb_func_end sub_80E7CD8
-
- thumb_func_start sub_80E7E04
-sub_80E7E04: @ 80E7E04
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080E7F04 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E7E4A
- ldr r1, _080E7F08 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _080E7E4A
- b _080E7F60
-_080E7E4A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _080E7F0C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _080E7F10 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080E7F14 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _080E7F38
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _080E7F18 @ =gActiveBattler
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl BtlController_EmitTwoReturnValues
- strb r5, [r4]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E7F20
- ldr r2, _080E7F08 @ =gBattlerPartyIndexes
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _080E7EFE
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _080E7F20
-_080E7EFE:
- ldr r0, _080E7F1C @ =sub_80E8190
- b _080E7F62
- .align 2, 0
-_080E7F04: .4byte gTasks
-_080E7F08: .4byte gBattlerPartyIndexes
-_080E7F0C: .4byte gPlayerParty
-_080E7F10: .4byte gExperienceTables
-_080E7F14: .4byte gBaseStats
-_080E7F18: .4byte gActiveBattler
-_080E7F1C: .4byte sub_80E8190
-_080E7F20:
- ldr r0, _080E7F30 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E7F34 @ =sub_80E82A8
- b _080E7F64
- .align 2, 0
-_080E7F30: .4byte gTasks
-_080E7F34: .4byte sub_80E82A8
-_080E7F38:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _080E7F58 @ =gBattlerControllerFuncs
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _080E7F5C @ =sub_80E8930
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _080E7F66
- .align 2, 0
-_080E7F58: .4byte gBattlerControllerFuncs
-_080E7F5C: .4byte sub_80E8930
-_080E7F60:
- ldr r0, _080E7F78 @ =sub_80E7F7C
-_080E7F62:
- mov r1, r8
-_080E7F64:
- str r0, [r1]
-_080E7F66:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E7F78: .4byte sub_80E7F7C
- thumb_func_end sub_80E7E04
-
- thumb_func_start sub_80E7F7C
-sub_80E7F7C: @ 80E7F7C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080E8034 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _080E8038 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _080E803C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _080E8040 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _080E8044 @ =gHealthboxSpriteIds
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl SetBattleBarStruct
- movs r0, 0x1B
- bl PlaySE
- ldr r0, _080E8048 @ =sub_80E804C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8034: .4byte gTasks
-_080E8038: .4byte gPlayerParty
-_080E803C: .4byte gExperienceTables
-_080E8040: .4byte gBaseStats
-_080E8044: .4byte gHealthboxSpriteIds
-_080E8048: .4byte sub_80E804C
- thumb_func_end sub_80E7F7C
-
- thumb_func_start sub_80E804C
-sub_80E804C: @ 80E804C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _080E8078 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _080E807C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _080E8178
- .align 2, 0
-_080E8078: .4byte gTasks
-_080E807C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _080E8144 @ =gHealthboxSpriteIds
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl MoveBattleBar
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl SetHealthboxSpriteVisible
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _080E8178
- movs r0, 0x1B
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _080E8148 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _080E814C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _080E8150 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _080E815C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _080E8154 @ =gActiveBattler
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl BtlController_EmitTwoReturnValues
- strb r5, [r4]
- ldr r0, _080E8158 @ =sub_80E8190
- str r0, [r6]
- b _080E8178
- .align 2, 0
-_080E8144: .4byte gHealthboxSpriteIds
-_080E8148: .4byte gPlayerParty
-_080E814C: .4byte gExperienceTables
-_080E8150: .4byte gBaseStats
-_080E8154: .4byte gActiveBattler
-_080E8158: .4byte sub_80E8190
-_080E815C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _080E8188 @ =gBattlerControllerFuncs
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _080E818C @ =sub_80E8930
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_080E8178:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8188: .4byte gBattlerControllerFuncs
-_080E818C: .4byte sub_80E8930
- thumb_func_end sub_80E804C
-
- thumb_func_start sub_80E8190
-sub_80E8190: @ 80E8190
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080E81E4 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E81C4
- ldr r1, _080E81E8 @ =gBattlerPartyIndexes
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _080E81C4
- adds r4, r2, 0
-_080E81C4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl InitAndLaunchSpecialAnimation
- ldr r0, _080E81E4 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E81EC @ =sub_80E81F0
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E81E4: .4byte gTasks
-_080E81E8: .4byte gBattlerPartyIndexes
-_080E81EC: .4byte sub_80E81F0
- thumb_func_end sub_80E8190
-
- thumb_func_start sub_80E81F0
-sub_80E81F0: @ 80E81F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080E825C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- ldr r0, _080E8260 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E8292
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _080E8264 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl IsDoubleBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E8270
- ldr r1, _080E8268 @ =gBattlerPartyIndexes
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _080E8270
- ldr r0, _080E826C @ =gHealthboxSpriteIds
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl UpdateHealthboxAttribute
- b _080E8284
- .align 2, 0
-_080E825C: .4byte gTasks
-_080E8260: .4byte gBattleSpritesDataPtr
-_080E8264: .4byte gPlayerParty
-_080E8268: .4byte gBattlerPartyIndexes
-_080E826C: .4byte gHealthboxSpriteIds
-_080E8270:
- ldr r0, _080E8298 @ =gHealthboxSpriteIds
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _080E829C @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl UpdateHealthboxAttribute
-_080E8284:
- ldr r0, _080E82A0 @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _080E82A4 @ =sub_80E82A8
- str r0, [r1]
-_080E8292:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8298: .4byte gHealthboxSpriteIds
-_080E829C: .4byte gPlayerParty
-_080E82A0: .4byte gTasks
-_080E82A4: .4byte sub_80E82A8
- thumb_func_end sub_80E81F0
-
- thumb_func_start sub_80E82A8
-sub_80E82A8: @ 80E82A8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _080E82E4 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080E82E8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _080E82EC @ =gBattlerControllerFuncs
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E82F0 @ =sub_80E8930
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E82E4: .4byte gTasks
-_080E82E8: .4byte gPlayerParty
-_080E82EC: .4byte gBattlerControllerFuncs
-_080E82F0: .4byte sub_80E8930
- thumb_func_end sub_80E82A8
-
- thumb_func_start sub_80E82F4
-sub_80E82F4: @ 80E82F4
- push {r4-r6,lr}
- ldr r6, _080E834C @ =gSprites
- ldr r5, _080E8350 @ =gBattlerSpriteIds
- ldr r4, _080E8354 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r6
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- cmp r0, 0xA0
- ble _080E8344
- ldrb r0, [r2, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _080E8358 @ =gHealthboxSpriteIds
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E8344:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E834C: .4byte gSprites
-_080E8350: .4byte gBattlerSpriteIds
-_080E8354: .4byte gActiveBattler
-_080E8358: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80E82F4
-
- thumb_func_start sub_80E835C
-sub_80E835C: @ 80E835C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080E837C @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x8
- bls _080E8370
- b _080E855E
-_080E8370:
- lsls r0, 2
- ldr r1, _080E8380 @ =_080E8384
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E837C: .4byte gBattleStruct
-_080E8380: .4byte _080E8384
- .align 2, 0
-_080E8384:
- .4byte _080E83A8
- .4byte _080E83F0
- .4byte _080E8408
- .4byte _080E8420
- .4byte _080E8468
- .4byte _080E8490
- .4byte _080E84D8
- .4byte _080E8500
- .4byte _080E8530
-_080E83A8:
- ldr r0, _080E83EC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _080E83BA
- b _080E855E
-_080E83BA:
- ldr r4, [r7]
- adds r5, r4, 0
- adds r5, 0x95
- adds r4, 0x97
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80EEFC8
- movs r0, 0x82
- negs r0, r0
- str r6, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r7]
- b _080E8522
- .align 2, 0
-_080E83EC: .4byte gPaletteFade
-_080E83F0:
- ldr r0, _080E8404 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E83FE
- b _080E855E
-_080E83FE:
- bl sub_80EB30C
- b _080E851E
- .align 2, 0
-_080E8404: .4byte gPaletteFade
-_080E8408:
- ldr r0, _080E8418 @ =gUnknown_83FDAE2
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E841C @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E8418: .4byte gUnknown_83FDAE2
-_080E841C: .4byte gDisplayedStringBattle
-_080E8420:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _080E8430
- b _080E855E
-_080E8430:
- ldr r2, _080E8460 @ =gBitTable
- ldr r4, _080E8464 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E8522
- .align 2, 0
-_080E8460: .4byte gBitTable
-_080E8464: .4byte gBattleStruct
-_080E8468:
- ldr r0, _080E8484 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E855E
- ldr r0, _080E8488 @ =gUnknown_83FDB92
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E848C @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E8484: .4byte gPaletteFade
-_080E8488: .4byte gUnknown_83FDB92
-_080E848C: .4byte gDisplayedStringBattle
-_080E8490:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080E855E
- ldr r2, _080E84D0 @ =gBitTable
- ldr r4, _080E84D4 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E8522
- .align 2, 0
-_080E84D0: .4byte gBitTable
-_080E84D4: .4byte gBattleStruct
-_080E84D8:
- ldr r0, _080E84F4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E855E
- ldr r0, _080E84F8 @ =gUnknown_83FDBEF
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E84FC @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E851E
- .align 2, 0
-_080E84F4: .4byte gPaletteFade
-_080E84F8: .4byte gUnknown_83FDBEF
-_080E84FC: .4byte gDisplayedStringBattle
-_080E8500:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080E855E
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E851E:
- ldr r0, _080E852C @ =gBattleStruct
- ldr r1, [r0]
-_080E8522:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E855E
- .align 2, 0
-_080E852C: .4byte gBattleStruct
-_080E8530:
- ldr r0, _080E8568 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080E855E
- movs r0, 0x1
- bl GetBattlerAtPosition
- lsls r0, 24
- lsrs r0, 24
- bl sub_80EF0E0
- bl sub_80EB524
- ldr r0, _080E856C @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r4, [r0]
- bl WallyBufferExecCompleted
-_080E855E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8568: .4byte gPaletteFade
-_080E856C: .4byte gBattleStruct
- thumb_func_end sub_80E835C
-
- thumb_func_start sub_80E8570
-sub_80E8570: @ 80E8570
- push {lr}
- ldr r0, _080E8580 @ =gUnknown_83FDC58
- movs r1, 0x1
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E8580: .4byte gUnknown_83FDC58
- thumb_func_end sub_80E8570
-
- thumb_func_start sub_80E8584
-sub_80E8584: @ 80E8584
- push {lr}
- ldr r0, _080E8594 @ =gUnknown_83FDC95
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E8594: .4byte gUnknown_83FDC95
- thumb_func_end sub_80E8584
-
- thumb_func_start sub_80E8598
-sub_80E8598: @ 80E8598
- push {lr}
- ldr r0, _080E85A8 @ =gUnknown_83FDD23
- movs r1, 0x1
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85A8: .4byte gUnknown_83FDD23
- thumb_func_end sub_80E8598
-
- thumb_func_start sub_80E85AC
-sub_80E85AC: @ 80E85AC
- push {lr}
- ldr r0, _080E85BC @ =gUnknown_83FDD64
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85BC: .4byte gUnknown_83FDD64
- thumb_func_end sub_80E85AC
-
- thumb_func_start sub_80E85C0
-sub_80E85C0: @ 80E85C0
- push {lr}
- ldr r0, _080E85D0 @ =gUnknown_83FDDEB
- movs r1, 0x40
- bl sub_80E85D4
- pop {r0}
- bx r0
- .align 2, 0
-_080E85D0: .4byte gUnknown_83FDDEB
- thumb_func_end sub_80E85C0
-
- thumb_func_start sub_80E85D4
-sub_80E85D4: @ 80E85D4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _080E85F8 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _080E85EE
- b _080E86F2
-_080E85EE:
- lsls r0, 2
- ldr r1, _080E85FC @ =_080E8600
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E85F8: .4byte gBattleStruct
-_080E85FC: .4byte _080E8600
- .align 2, 0
-_080E8600:
- .4byte _080E8618
- .4byte _080E8634
- .4byte _080E865A
- .4byte _080E8670
- .4byte _080E8684
- .4byte _080E86B4
-_080E8618:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E86F2
- ldr r1, _080E8630 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x97
- strb r4, [r0]
- ldr r1, [r1]
- b _080E86A6
- .align 2, 0
-_080E8630: .4byte gBattleStruct
-_080E8634:
- ldr r1, [r5]
- adds r1, 0x97
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E86F2
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E86A6
-_080E865A:
- ldr r0, _080E866C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E86F2
- bl sub_80EB30C
- b _080E86A2
- .align 2, 0
-_080E866C: .4byte gPaletteFade
-_080E8670:
- adds r0, r2, 0
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E8680 @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E86A2
- .align 2, 0
-_080E8680: .4byte gDisplayedStringBattle
-_080E8684:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080E86F2
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E86A2:
- ldr r0, _080E86B0 @ =gBattleStruct
- ldr r1, [r0]
-_080E86A6:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E86F2
- .align 2, 0
-_080E86B0: .4byte gBattleStruct
-_080E86B4:
- ldr r0, _080E86D8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E86F2
- bl sub_80EB524
- ldr r0, _080E86DC @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080E86E0
- bl WallyBufferExecCompleted
- b _080E86E4
- .align 2, 0
-_080E86D8: .4byte gPaletteFade
-_080E86DC: .4byte gActiveBattler
-_080E86E0:
- bl OpponentBufferExecCompleted
-_080E86E4:
- ldr r0, _080E86FC @ =gBattleCommunication
- movs r1, 0
- strb r1, [r0, 0x7]
- ldr r0, _080E8700 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r1, [r0]
-_080E86F2:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E86FC: .4byte gBattleCommunication
-_080E8700: .4byte gBattleStruct
- thumb_func_end sub_80E85D4
-
- thumb_func_start sub_80E8704
-sub_80E8704: @ 80E8704
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _080E8724 @ =gBattleStruct
- ldr r0, [r1]
- adds r0, 0x94
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x6
- bls _080E8718
- b _080E88AA
-_080E8718:
- lsls r0, 2
- ldr r1, _080E8728 @ =_080E872C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E8724: .4byte gBattleStruct
-_080E8728: .4byte _080E872C
- .align 2, 0
-_080E872C:
- .4byte _080E8748
- .4byte _080E8788
- .4byte _080E87D0
- .4byte _080E87E8
- .4byte _080E8800
- .4byte _080E8848
- .4byte _080E8880
-_080E8748:
- ldr r0, _080E8780 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080E875A
- b _080E88AA
-_080E875A:
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x95
- adds r1, 0x97
- ldr r2, _080E8784 @ =gActiveBattler
- ldrb r2, [r2]
- bl sub_80EEFC8
- movs r0, 0x82
- negs r0, r0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E886C
- .align 2, 0
-_080E8780: .4byte gPaletteFade
-_080E8784: .4byte gActiveBattler
-_080E8788:
- ldr r0, _080E87C8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080E879A
- b _080E88AA
-_080E879A:
- ldr r2, _080E87CC @ =gBitTable
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- b _080E886C
- .align 2, 0
-_080E87C8: .4byte gPaletteFade
-_080E87CC: .4byte gBitTable
-_080E87D0:
- ldr r0, _080E87E4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E88AA
- bl sub_80EB30C
- b _080E8868
- .align 2, 0
-_080E87E4: .4byte gPaletteFade
-_080E87E8:
- ldr r0, _080E87F8 @ =gUnknown_83FDCD2
- bl BattleStringExpandPlaceholdersToDisplayedString
- ldr r0, _080E87FC @ =gDisplayedStringBattle
- movs r1, 0x18
- bl BattlePutTextOnWindow
- b _080E8868
- .align 2, 0
-_080E87F8: .4byte gUnknown_83FDCD2
-_080E87FC: .4byte gDisplayedStringBattle
-_080E8800:
- movs r0, 0x18
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- bne _080E88AA
- ldr r2, _080E8840 @ =gBitTable
- ldr r4, _080E8844 @ =gBattleStruct
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0x95
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- adds r0, 0x97
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- orrs r1, r0
- lsls r0, r1, 16
- str r3, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r1, [r4]
- b _080E886C
- .align 2, 0
-_080E8840: .4byte gBitTable
-_080E8844: .4byte gBattleStruct
-_080E8848:
- ldr r0, _080E8878 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080E88AA
- movs r0, 0x82
- negs r0, r0
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
-_080E8868:
- ldr r0, _080E887C @ =gBattleStruct
- ldr r1, [r0]
-_080E886C:
- adds r1, 0x94
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080E88AA
- .align 2, 0
-_080E8878: .4byte gPaletteFade
-_080E887C: .4byte gBattleStruct
-_080E8880:
- ldr r0, _080E88B4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080E88AA
- bl sub_80EB524
- ldr r0, _080E88B8 @ =gSpecialVar_ItemId
- ldrh r1, [r0]
- movs r0, 0x1
- bl BtlController_EmitOneReturnValue
- bl WallyBufferExecCompleted
- ldr r0, _080E88BC @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x94
- strb r4, [r0]
-_080E88AA:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080E88B4: .4byte gPaletteFade
-_080E88B8: .4byte gSpecialVar_ItemId
-_080E88BC: .4byte gBattleStruct
- thumb_func_end sub_80E8704
-
- thumb_func_start sub_80E88C0
-sub_80E88C0: @ 80E88C0
- push {r4-r6,lr}
- ldr r5, _080E8900 @ =gActiveBattler
- ldrb r0, [r5]
- ldr r6, _080E8904 @ =gHealthboxSpriteIds
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl MoveBattleBar
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl SetHealthboxSpriteVisible
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E8908
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl UpdateHpTextInHealthbox
- b _080E8922
- .align 2, 0
-_080E8900: .4byte gActiveBattler
-_080E8904: .4byte gHealthboxSpriteIds
-_080E8908:
- ldr r2, _080E8928 @ =gBattlerPartyIndexes
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E892C @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- bl WallyBufferExecCompleted
-_080E8922:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8928: .4byte gBattlerPartyIndexes
-_080E892C: .4byte gPlayerParty
- thumb_func_end sub_80E88C0
-
- thumb_func_start sub_80E8930
-sub_80E8930: @ 80E8930
- push {lr}
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- cmp r0, 0
- bne _080E8942
- bl WallyBufferExecCompleted
-_080E8942:
- pop {r0}
- bx r0
- thumb_func_end sub_80E8930
-
- thumb_func_start DoHitAnimBlinkSpriteEffect_3
-DoHitAnimBlinkSpriteEffect_3: @ 80E8948
- push {r4,lr}
- ldr r1, _080E8984 @ =gBattlerSpriteIds
- ldr r0, _080E8988 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _080E898C @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _080E8994
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _080E8990 @ =gDoingBattleAnim
- strb r3, [r0]
- bl WallyBufferExecCompleted
- b _080E89BE
- .align 2, 0
-_080E8984: .4byte gBattlerSpriteIds
-_080E8988: .4byte gActiveBattler
-_080E898C: .4byte gSprites
-_080E8990: .4byte gDoingBattleAnim
-_080E8994:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080E89B8
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_080E89B8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_080E89BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end DoHitAnimBlinkSpriteEffect_3
-
- thumb_func_start sub_80E89C4
-sub_80E89C4: @ 80E89C4
- push {r4-r6,lr}
- ldr r0, _080E8A20 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r6, _080E8A24 @ =gActiveBattler
- ldrb r2, [r6]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080E8A18
- ldr r5, _080E8A28 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080E8A2C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _080E8A30 @ =gHealthboxSpriteIds
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E8A18:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A20: .4byte gBattleSpritesDataPtr
-_080E8A24: .4byte gActiveBattler
-_080E8A28: .4byte gBattlerSpriteIds
-_080E8A2C: .4byte gSprites
-_080E8A30: .4byte gHealthboxSpriteIds
- thumb_func_end sub_80E89C4
-
- thumb_func_start sub_80E8A34
-sub_80E8A34: @ 80E8A34
- push {lr}
- ldr r2, _080E8A5C @ =gSprites
- ldr r1, _080E8A60 @ =gBattlerSpriteIds
- ldr r0, _080E8A64 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080E8A68 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080E8A58
- bl WallyBufferExecCompleted
-_080E8A58:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A5C: .4byte gSprites
-_080E8A60: .4byte gBattlerSpriteIds
-_080E8A64: .4byte gActiveBattler
-_080E8A68: .4byte SpriteCallbackDummy
- thumb_func_end sub_80E8A34
-
- thumb_func_start CompleteOnFinishedBattleAnimation_4
-CompleteOnFinishedBattleAnimation_4: @ 80E8A6C
- push {lr}
- ldr r0, _080E8A94 @ =gBattleSpritesDataPtr
- ldr r2, [r0]
- ldr r0, _080E8A98 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080E8A8E
- bl WallyBufferExecCompleted
-_080E8A8E:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8A94: .4byte gBattleSpritesDataPtr
-_080E8A98: .4byte gActiveBattler
- thumb_func_end CompleteOnFinishedBattleAnimation_4
-
- thumb_func_start WallyBufferExecCompleted
-WallyBufferExecCompleted: @ 80E8A9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _080E8ADC @ =gBattlerControllerFuncs
- ldr r4, _080E8AE0 @ =gActiveBattler
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E8AE4 @ =sub_80E75EC
- str r1, [r0]
- ldr r0, _080E8AE8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080E8AF0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl PrepareBufferDataTransferLink
- ldr r1, _080E8AEC @ =gBattleBufferA
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _080E8B02
- .align 2, 0
-_080E8ADC: .4byte gBattlerControllerFuncs
-_080E8AE0: .4byte gActiveBattler
-_080E8AE4: .4byte sub_80E75EC
-_080E8AE8: .4byte gBattleTypeFlags
-_080E8AEC: .4byte gBattleBufferA
-_080E8AF0:
- ldr r2, _080E8B0C @ =gBattleControllerExecFlags
- ldr r1, _080E8B10 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_080E8B02:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B0C: .4byte gBattleControllerExecFlags
-_080E8B10: .4byte gBitTable
- thumb_func_end WallyBufferExecCompleted
-
- thumb_func_start CompleteOnFinishedStatusAnimation_4
-CompleteOnFinishedStatusAnimation_4: @ 80E8B14
- push {lr}
- ldr r0, _080E8B3C @ =gBattleSpritesDataPtr
- ldr r2, [r0]
- ldr r0, _080E8B40 @ =gActiveBattler
- ldrb r1, [r0]
- ldr r2, [r2, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080E8B36
- bl WallyBufferExecCompleted
-_080E8B36:
- pop {r0}
- bx r0
- .align 2, 0
-_080E8B3C: .4byte gBattleSpritesDataPtr
-_080E8B40: .4byte gActiveBattler
- thumb_func_end CompleteOnFinishedStatusAnimation_4
-
- thumb_func_start WallyHandleGetMonData
-WallyHandleGetMonData: @ 80E8B44
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080E8B70 @ =gBattleBufferA
- ldr r0, _080E8B74 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E8B7C
- ldr r0, _080E8B78 @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl CopyWallyMonData
- adds r6, r0, 0
- b _080E8B9E
- .align 2, 0
-_080E8B70: .4byte gBattleBufferA
-_080E8B74: .4byte gActiveBattler
-_080E8B78: .4byte gBattlerPartyIndexes
-_080E8B7C:
- ldrb r4, [r1]
- movs r5, 0
-_080E8B80:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E8B96
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl CopyWallyMonData
- adds r6, r0
-_080E8B96:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080E8B80
-_080E8B9E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl BtlController_EmitDataTransfer
- bl WallyBufferExecCompleted
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end WallyHandleGetMonData
-
- thumb_func_start CopyWallyMonData
-CopyWallyMonData: @ 80E8BB8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080E8BEC @ =gBattleBufferA
- ldr r3, _080E8BF0 @ =gActiveBattler
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _080E8BE2
- bl _080E934E
-_080E8BE2:
- lsls r0, 2
- ldr r1, _080E8BF4 @ =_080E8BF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E8BEC: .4byte gBattleBufferA
-_080E8BF0: .4byte gActiveBattler
-_080E8BF4: .4byte _080E8BF8
- .align 2, 0
-_080E8BF8:
- .4byte _080E8CE8
- .4byte _080E8F0C
- .4byte _080E8F1C
- .4byte _080E8F2C
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8F94
- .4byte _080E8FB0
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E8FEC
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E934E
- .4byte _080E9008
- .4byte _080E9018
- .4byte _080E9048
- .4byte _080E9058
- .4byte _080E9068
- .4byte _080E9078
- .4byte _080E9088
- .4byte _080E9098
- .4byte _080E90A8
- .4byte _080E90B8
- .4byte _080E90C8
- .4byte _080E90D8
- .4byte _080E90E8
- .4byte _080E90F8
- .4byte _080E9108
- .4byte _080E9158
- .4byte _080E9168
- .4byte _080E9178
- .4byte _080E9188
- .4byte _080E9198
- .4byte _080E91A8
- .4byte _080E91B8
- .4byte _080E91C8
- .4byte _080E91D8
- .4byte _080E920C
- .4byte _080E921C
- .4byte _080E922C
- .4byte _080E923C
- .4byte _080E924C
- .4byte _080E925C
- .4byte _080E926C
- .4byte _080E927C
- .4byte _080E929C
- .4byte _080E92AC
- .4byte _080E92BC
- .4byte _080E92CC
- .4byte _080E92DC
- .4byte _080E92EC
- .4byte _080E92FC
- .4byte _080E930C
- .4byte _080E931C
- .4byte _080E932C
- .4byte _080E933C
-_080E8CE8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E8EFC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_080E8D34:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8D34
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E8EFC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _080E8F00 @ =0xfffffc1f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _080E8F04 @ =0xfff07fff
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _080E8F08 @ =0xfffffe0f
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_080E8EEC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _080E8EEC
- b _080E934E
- .align 2, 0
-_080E8EFC: .4byte gPlayerParty
-_080E8F00: .4byte 0xfffffc1f
-_080E8F04: .4byte 0xfff07fff
-_080E8F08: .4byte 0xfffffe0f
-_080E8F0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F18 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _080E9286
- .align 2, 0
-_080E8F18: .4byte gPlayerParty
-_080E8F1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F28 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _080E9286
- .align 2, 0
-_080E8F28: .4byte gPlayerParty
-_080E8F2C:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080E8F90 @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_080E8F42:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8F42
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8F90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080E8F80:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080E8F80
- b _080E934E
- .align 2, 0
-_080E8F90: .4byte gPlayerParty
-_080E8F94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8FAC @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080E9286
- .align 2, 0
-_080E8FAC: .4byte gPlayerParty
-_080E8FB0:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _080E8FE8 @ =gPlayerParty
- mov r8, r2
-_080E8FBC:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _080E8FBC
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E8FE8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _080E934E
- .align 2, 0
-_080E8FE8: .4byte gPlayerParty
-_080E8FEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9004 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _080E9346
- .align 2, 0
-_080E9004: .4byte gPlayerParty
-_080E9008:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9014 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _080E9022
- .align 2, 0
-_080E9014: .4byte gPlayerParty
-_080E9018:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9044 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_080E9022:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _080E934E
- .align 2, 0
-_080E9044: .4byte gPlayerParty
-_080E9048:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9054 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _080E9346
- .align 2, 0
-_080E9054: .4byte gPlayerParty
-_080E9058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9064 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _080E9346
- .align 2, 0
-_080E9064: .4byte gPlayerParty
-_080E9068:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9074 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _080E9346
- .align 2, 0
-_080E9074: .4byte gPlayerParty
-_080E9078:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9084 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _080E9346
- .align 2, 0
-_080E9084: .4byte gPlayerParty
-_080E9088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9094 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _080E9346
- .align 2, 0
-_080E9094: .4byte gPlayerParty
-_080E9098:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _080E9346
- .align 2, 0
-_080E90A4: .4byte gPlayerParty
-_080E90A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _080E9346
- .align 2, 0
-_080E90B4: .4byte gPlayerParty
-_080E90B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90C4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _080E9346
- .align 2, 0
-_080E90C4: .4byte gPlayerParty
-_080E90C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _080E9346
- .align 2, 0
-_080E90D4: .4byte gPlayerParty
-_080E90D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90E4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _080E9346
- .align 2, 0
-_080E90E4: .4byte gPlayerParty
-_080E90E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E90F4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _080E9346
- .align 2, 0
-_080E90F4: .4byte gPlayerParty
-_080E90F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9104 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _080E9346
- .align 2, 0
-_080E9104: .4byte gPlayerParty
-_080E9108:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9154 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _080E934E
- .align 2, 0
-_080E9154: .4byte gPlayerParty
-_080E9158:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9164 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _080E9346
- .align 2, 0
-_080E9164: .4byte gPlayerParty
-_080E9168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9174 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _080E9346
- .align 2, 0
-_080E9174: .4byte gPlayerParty
-_080E9178:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9184 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _080E9346
- .align 2, 0
-_080E9184: .4byte gPlayerParty
-_080E9188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9194 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _080E9346
- .align 2, 0
-_080E9194: .4byte gPlayerParty
-_080E9198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _080E9346
- .align 2, 0
-_080E91A4: .4byte gPlayerParty
-_080E91A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _080E9346
- .align 2, 0
-_080E91B4: .4byte gPlayerParty
-_080E91B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91C4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _080E91E2
- .align 2, 0
-_080E91C4: .4byte gPlayerParty
-_080E91C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E91D4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _080E9286
- .align 2, 0
-_080E91D4: .4byte gPlayerParty
-_080E91D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9208 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_080E91E2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _080E934E
- .align 2, 0
-_080E9208: .4byte gPlayerParty
-_080E920C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9218 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _080E9346
- .align 2, 0
-_080E9218: .4byte gPlayerParty
-_080E921C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9228 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _080E9286
- .align 2, 0
-_080E9228: .4byte gPlayerParty
-_080E922C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9238 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _080E9286
- .align 2, 0
-_080E9238: .4byte gPlayerParty
-_080E923C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9248 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _080E9286
- .align 2, 0
-_080E9248: .4byte gPlayerParty
-_080E924C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9258 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _080E9286
- .align 2, 0
-_080E9258: .4byte gPlayerParty
-_080E925C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9268 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _080E9286
- .align 2, 0
-_080E9268: .4byte gPlayerParty
-_080E926C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9278 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _080E9286
- .align 2, 0
-_080E9278: .4byte gPlayerParty
-_080E927C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9298 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_080E9286:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _080E934E
- .align 2, 0
-_080E9298: .4byte gPlayerParty
-_080E929C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _080E9346
- .align 2, 0
-_080E92A8: .4byte gPlayerParty
-_080E92AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _080E9346
- .align 2, 0
-_080E92B8: .4byte gPlayerParty
-_080E92BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92C8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _080E9346
- .align 2, 0
-_080E92C8: .4byte gPlayerParty
-_080E92CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _080E9346
- .align 2, 0
-_080E92D8: .4byte gPlayerParty
-_080E92DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92E8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _080E9346
- .align 2, 0
-_080E92E8: .4byte gPlayerParty
-_080E92EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E92F8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _080E9346
- .align 2, 0
-_080E92F8: .4byte gPlayerParty
-_080E92FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9308 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _080E9346
- .align 2, 0
-_080E9308: .4byte gPlayerParty
-_080E930C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9318 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _080E9346
- .align 2, 0
-_080E9318: .4byte gPlayerParty
-_080E931C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9328 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _080E9346
- .align 2, 0
-_080E9328: .4byte gPlayerParty
-_080E932C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9338 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _080E9346
- .align 2, 0
-_080E9338: .4byte gPlayerParty
-_080E933C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9360 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_080E9346:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_080E934E:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080E9360: .4byte gPlayerParty
- thumb_func_end CopyWallyMonData
-
- thumb_func_start WallyHandleGetRawMonData
-WallyHandleGetRawMonData: @ 80E9364
- push {lr}
- bl PlayerHandleGetRawMonData
- pop {r0}
- bx r0
- thumb_func_end WallyHandleGetRawMonData
-
- thumb_func_start WallyHandleSetMonData
-WallyHandleSetMonData: @ 80E9370
- push {r4,r5,lr}
- ldr r1, _080E9394 @ =gBattleBufferA
- ldr r0, _080E9398 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E93A0
- ldr r0, _080E939C @ =gBattlerPartyIndexes
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl SetWallyMonData
- b _080E93BE
- .align 2, 0
-_080E9394: .4byte gBattleBufferA
-_080E9398: .4byte gActiveBattler
-_080E939C: .4byte gBattlerPartyIndexes
-_080E93A0:
- ldrb r4, [r1]
- movs r5, 0
-_080E93A4:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080E93B2
- adds r0, r5, 0
- bl SetWallyMonData
-_080E93B2:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080E93A4
-_080E93BE:
- bl WallyBufferExecCompleted
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end WallyHandleSetMonData
-
- thumb_func_start SetWallyMonData
-SetWallyMonData: @ 80E93C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080E9400 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _080E9404 @ =gUnknown_2022BC7
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _080E93F4
- bl _080E9D8E
-_080E93F4:
- lsls r0, 2
- ldr r1, _080E9408 @ =_080E940C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080E9400: .4byte gActiveBattler
-_080E9404: .4byte gUnknown_2022BC7
-_080E9408: .4byte _080E940C
- .align 2, 0
-_080E940C:
- .4byte _080E94FC
- .4byte _080E9694
- .4byte _080E96B4
- .4byte _080E96D4
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E972C
- .4byte _080E9754
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E97B8
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E9D8E
- .4byte _080E97E8
- .4byte _080E9808
- .4byte _080E9828
- .4byte _080E9848
- .4byte _080E9868
- .4byte _080E9888
- .4byte _080E98A8
- .4byte _080E98C8
- .4byte _080E98E8
- .4byte _080E9908
- .4byte _080E9928
- .4byte _080E9948
- .4byte _080E9968
- .4byte _080E9988
- .4byte _080E99A8
- .4byte _080E9A18
- .4byte _080E9A38
- .4byte _080E9A58
- .4byte _080E9A78
- .4byte _080E9A98
- .4byte _080E9AB8
- .4byte _080E9AD8
- .4byte _080E9AF8
- .4byte _080E9B18
- .4byte _080E9B38
- .4byte _080E9B58
- .4byte _080E9B78
- .4byte _080E9B98
- .4byte _080E9BB8
- .4byte _080E9BD8
- .4byte _080E9BF8
- .4byte _080E9C18
- .4byte _080E9C38
- .4byte _080E9C58
- .4byte _080E9C78
- .4byte _080E9C98
- .4byte _080E9CB8
- .4byte _080E9CD8
- .4byte _080E9CF8
- .4byte _080E9D18
- .4byte _080E9D38
- .4byte _080E9D58
- .4byte _080E9D78
-_080E94FC:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9690 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_080E9562:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _080E9562
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9690 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9690: .4byte gPlayerParty
-_080E9694:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E96AC @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E96B0 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E96AC: .4byte gPlayerParty
-_080E96B0: .4byte gActiveBattler
-_080E96B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E96CC @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E96D0 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E96CC: .4byte gPlayerParty
-_080E96D0: .4byte gActiveBattler
-_080E96D4:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080E9728 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_080E96EE:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _080E96EE
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9728 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9728: .4byte gPlayerParty
-_080E972C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9748 @ =gPlayerParty
- adds r0, r1
- ldr r3, _080E974C @ =gBattleBufferA
- ldr r1, _080E9750 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _080E97D0
- .align 2, 0
-_080E9748: .4byte gPlayerParty
-_080E974C: .4byte gBattleBufferA
-_080E9750: .4byte gActiveBattler
-_080E9754:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E97B0 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080E97B4 @ =gActiveBattler
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E97B0: .4byte gPlayerParty
-_080E97B4: .4byte gActiveBattler
-_080E97B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E97DC @ =gPlayerParty
- adds r0, r1
- ldr r3, _080E97E0 @ =gBattleBufferA
- ldr r1, _080E97E4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_080E97D0:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E97DC: .4byte gPlayerParty
-_080E97E0: .4byte gBattleBufferA
-_080E97E4: .4byte gActiveBattler
-_080E97E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9800 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9804 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9800: .4byte gPlayerParty
-_080E9804: .4byte gActiveBattler
-_080E9808:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9820 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9824 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9820: .4byte gPlayerParty
-_080E9824: .4byte gActiveBattler
-_080E9828:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9840 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9844 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9840: .4byte gPlayerParty
-_080E9844: .4byte gActiveBattler
-_080E9848:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9860 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9864 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9860: .4byte gPlayerParty
-_080E9864: .4byte gActiveBattler
-_080E9868:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9880 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9884 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9880: .4byte gPlayerParty
-_080E9884: .4byte gActiveBattler
-_080E9888:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98A4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98A0: .4byte gPlayerParty
-_080E98A4: .4byte gActiveBattler
-_080E98A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98C4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98C0: .4byte gPlayerParty
-_080E98C4: .4byte gActiveBattler
-_080E98C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E98E0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E98E4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E98E0: .4byte gPlayerParty
-_080E98E4: .4byte gActiveBattler
-_080E98E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9900 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9904 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9900: .4byte gPlayerParty
-_080E9904: .4byte gActiveBattler
-_080E9908:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9920 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9924 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9920: .4byte gPlayerParty
-_080E9924: .4byte gActiveBattler
-_080E9928:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9940 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9944 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9940: .4byte gPlayerParty
-_080E9944: .4byte gActiveBattler
-_080E9948:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9960 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9964 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9960: .4byte gPlayerParty
-_080E9964: .4byte gActiveBattler
-_080E9968:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9980 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9984 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9980: .4byte gPlayerParty
-_080E9984: .4byte gActiveBattler
-_080E9988:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E99A0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E99A4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E99A0: .4byte gPlayerParty
-_080E99A4: .4byte gActiveBattler
-_080E99A8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080E9A10 @ =gPlayerParty
- adds r4, r0
- ldr r5, _080E9A14 @ =gActiveBattler
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _080E9AC8
- .align 2, 0
-_080E9A10: .4byte gPlayerParty
-_080E9A14: .4byte gActiveBattler
-_080E9A18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A30: .4byte gPlayerParty
-_080E9A34: .4byte gActiveBattler
-_080E9A38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A50: .4byte gPlayerParty
-_080E9A54: .4byte gActiveBattler
-_080E9A58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A70: .4byte gPlayerParty
-_080E9A74: .4byte gActiveBattler
-_080E9A78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9A90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9A94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9A90: .4byte gPlayerParty
-_080E9A94: .4byte gActiveBattler
-_080E9A98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AB0: .4byte gPlayerParty
-_080E9AB4: .4byte gActiveBattler
-_080E9AB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_080E9AC8:
- movs r1, 0x2C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AD0: .4byte gPlayerParty
-_080E9AD4: .4byte gActiveBattler
-_080E9AD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9AF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9AF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9AF0: .4byte gPlayerParty
-_080E9AF4: .4byte gActiveBattler
-_080E9AF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B10: .4byte gPlayerParty
-_080E9B14: .4byte gActiveBattler
-_080E9B18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B30: .4byte gPlayerParty
-_080E9B34: .4byte gActiveBattler
-_080E9B38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B50: .4byte gPlayerParty
-_080E9B54: .4byte gActiveBattler
-_080E9B58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B70: .4byte gPlayerParty
-_080E9B74: .4byte gActiveBattler
-_080E9B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9B90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9B94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9B90: .4byte gPlayerParty
-_080E9B94: .4byte gActiveBattler
-_080E9B98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BB0: .4byte gPlayerParty
-_080E9BB4: .4byte gActiveBattler
-_080E9BB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BD0: .4byte gPlayerParty
-_080E9BD4: .4byte gActiveBattler
-_080E9BD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9BF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9BF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9BF0: .4byte gPlayerParty
-_080E9BF4: .4byte gActiveBattler
-_080E9BF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C10: .4byte gPlayerParty
-_080E9C14: .4byte gActiveBattler
-_080E9C18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C30: .4byte gPlayerParty
-_080E9C34: .4byte gActiveBattler
-_080E9C38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C50: .4byte gPlayerParty
-_080E9C54: .4byte gActiveBattler
-_080E9C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C70: .4byte gPlayerParty
-_080E9C74: .4byte gActiveBattler
-_080E9C78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9C90 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9C94 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9C90: .4byte gPlayerParty
-_080E9C94: .4byte gActiveBattler
-_080E9C98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CB0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CB4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CB0: .4byte gPlayerParty
-_080E9CB4: .4byte gActiveBattler
-_080E9CB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CD0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CD4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CD0: .4byte gPlayerParty
-_080E9CD4: .4byte gActiveBattler
-_080E9CD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9CF0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9CF4 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9CF0: .4byte gPlayerParty
-_080E9CF4: .4byte gActiveBattler
-_080E9CF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D10 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D14 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D10: .4byte gPlayerParty
-_080E9D14: .4byte gActiveBattler
-_080E9D18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D30 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D34 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D30: .4byte gPlayerParty
-_080E9D34: .4byte gActiveBattler
-_080E9D38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D50 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D54 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D50: .4byte gPlayerParty
-_080E9D54: .4byte gActiveBattler
-_080E9D58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9D70 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9D74 @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _080E9D8E
- .align 2, 0
-_080E9D70: .4byte gPlayerParty
-_080E9D74: .4byte gActiveBattler
-_080E9D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080E9DB8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080E9DBC @ =gActiveBattler
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_080E9D8E:
- ldr r2, _080E9DC0 @ =gBattlerPartyIndexes
- ldr r0, _080E9DBC @ =gActiveBattler
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080E9DB8 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9DB8: .4byte gPlayerParty
-_080E9DBC: .4byte gActiveBattler
-_080E9DC0: .4byte gBattlerPartyIndexes
- thumb_func_end SetWallyMonData
-
- thumb_func_start sub_80E9DC4
-sub_80E9DC4: @ 80E9DC4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DC4
-
- thumb_func_start sub_80E9DD0
-sub_80E9DD0: @ 80E9DD0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DD0
-
- thumb_func_start sub_80E9DDC
-sub_80E9DDC: @ 80E9DDC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80E9DDC
-
- thumb_func_start WallyHandleReturnMonToBall
-WallyHandleReturnMonToBall: @ 80E9DE8
- push {r4-r6,lr}
- ldr r0, _080E9E14 @ =gBattleBufferA
- ldr r6, _080E9E18 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _080E9E24
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl InitAndLaunchSpecialAnimation
- ldr r0, _080E9E1C @ =gBattlerControllerFuncs
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080E9E20 @ =sub_80E89C4
- str r0, [r1]
- b _080E9E5A
- .align 2, 0
-_080E9E14: .4byte gBattleBufferA
-_080E9E18: .4byte gActiveBattler
-_080E9E1C: .4byte gBattlerControllerFuncs
-_080E9E20: .4byte sub_80E89C4
-_080E9E24:
- ldr r5, _080E9E60 @ =gBattlerSpriteIds
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080E9E64 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _080E9E68 @ =gHealthboxSpriteIds
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl SetHealthboxSpriteInvisible
- bl WallyBufferExecCompleted
-_080E9E5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9E60: .4byte gBattlerSpriteIds
-_080E9E64: .4byte gSprites
-_080E9E68: .4byte gHealthboxSpriteIds
- thumb_func_end WallyHandleReturnMonToBall
-
- thumb_func_start sub_80E9E6C
-sub_80E9E6C: @ 80E9E6C
- push {r4-r6,lr}
- ldr r0, _080E9EC8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080E9EE0
- ldr r4, _080E9ECC @ =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- ldr r6, _080E9ED0 @ =gActiveBattler
- ldrb r1, [r6]
- bl DecompressTrainerBackPalette
- ldr r0, [r4]
- ldrb r5, [r0, 0x8]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080E9ED4 @ =gMultiuseSpriteTemplate
- ldr r2, _080E9ED8 @ =gTrainerBackPicCoords
- ldr r1, [r4]
- ldrb r1, [r1, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080E9EDC @ =gBattlerSpriteIds
- ldrb r1, [r6]
- b _080E9F1C
- .align 2, 0
-_080E9EC8: .4byte gBattleTypeFlags
-_080E9ECC: .4byte gSaveBlock2Ptr
-_080E9ED0: .4byte gActiveBattler
-_080E9ED4: .4byte gMultiuseSpriteTemplate
-_080E9ED8: .4byte gTrainerBackPicCoords
-_080E9EDC: .4byte gBattlerSpriteIds
-_080E9EE0:
- ldr r4, _080E9F8C @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0x5
- bl DecompressTrainerBackPalette
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080E9F90 @ =gMultiuseSpriteTemplate
- ldr r1, _080E9F94 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x14]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080E9F98 @ =gBattlerSpriteIds
- ldrb r1, [r4]
-_080E9F1C:
- adds r1, r2
- strb r0, [r1]
- ldr r4, _080E9F9C @ =gSprites
- ldr r5, _080E9F98 @ =gBattlerSpriteIds
- ldr r6, _080E9F8C @ =gActiveBattler
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080E9FA0 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080E9FA4 @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _080E9FA8 @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080E9FAC @ =sub_80E78E0
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080E9F8C: .4byte gActiveBattler
-_080E9F90: .4byte gMultiuseSpriteTemplate
-_080E9F94: .4byte gTrainerBackPicCoords
-_080E9F98: .4byte gBattlerSpriteIds
-_080E9F9C: .4byte gSprites
-_080E9FA0: .4byte 0x0000fffe
-_080E9FA4: .4byte sub_8033EEC
-_080E9FA8: .4byte gBattlerControllerFuncs
-_080E9FAC: .4byte sub_80E78E0
- thumb_func_end sub_80E9E6C
-
- thumb_func_start sub_80E9FB0
-sub_80E9FB0: @ 80E9FB0
- push {r4-r6,lr}
- ldr r0, _080EA00C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA024
- ldr r4, _080EA010 @ =gSaveBlock2Ptr
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- ldr r6, _080EA014 @ =gActiveBattler
- ldrb r1, [r6]
- bl DecompressTrainerBackPalette
- ldr r0, [r4]
- ldrb r5, [r0, 0x8]
- ldrb r0, [r6]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080EA018 @ =gMultiuseSpriteTemplate
- ldr r2, _080EA01C @ =gTrainerBackPicCoords
- ldr r1, [r4]
- ldrb r1, [r1, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080EA020 @ =gBattlerSpriteIds
- ldrb r1, [r6]
- b _080EA060
- .align 2, 0
-_080EA00C: .4byte gBattleTypeFlags
-_080EA010: .4byte gSaveBlock2Ptr
-_080EA014: .4byte gActiveBattler
-_080EA018: .4byte gMultiuseSpriteTemplate
-_080EA01C: .4byte gTrainerBackPicCoords
-_080EA020: .4byte gBattlerSpriteIds
-_080EA024:
- ldr r4, _080EA0D0 @ =gActiveBattler
- ldrb r1, [r4]
- movs r0, 0x5
- bl DecompressTrainerBackPalette
- ldrb r0, [r4]
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x5
- bl SetMultiuseSpriteTemplateToTrainerBack
- ldr r0, _080EA0D4 @ =gMultiuseSpriteTemplate
- ldr r1, _080EA0D8 @ =gTrainerBackPicCoords
- ldrb r1, [r1, 0x14]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r2, _080EA0DC @ =gBattlerSpriteIds
- ldrb r1, [r4]
-_080EA060:
- adds r1, r2
- strb r0, [r1]
- ldr r4, _080EA0E0 @ =gSprites
- ldr r5, _080EA0DC @ =gBattlerSpriteIds
- ldr r6, _080EA0D0 @ =gActiveBattler
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _080EA0E4 @ =0x0000ffa0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _080EA0E8 @ =sub_8033EEC
- str r1, [r0]
- ldr r1, _080EA0EC @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA0F0 @ =sub_80E8A34
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA0D0: .4byte gActiveBattler
-_080EA0D4: .4byte gMultiuseSpriteTemplate
-_080EA0D8: .4byte gTrainerBackPicCoords
-_080EA0DC: .4byte gBattlerSpriteIds
-_080EA0E0: .4byte gSprites
-_080EA0E4: .4byte 0x0000ffa0
-_080EA0E8: .4byte sub_8033EEC
-_080EA0EC: .4byte gBattlerControllerFuncs
-_080EA0F0: .4byte sub_80E8A34
- thumb_func_end sub_80E9FB0
-
- thumb_func_start sub_80EA0F4
-sub_80EA0F4: @ 80EA0F4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA0F4
-
- thumb_func_start sub_80EA100
-sub_80EA100: @ 80EA100
- push {r4-r6,lr}
- ldr r6, _080EA14C @ =gBattleSpritesDataPtr
- ldr r4, [r6]
- ldr r5, _080EA150 @ =gActiveBattler
- ldrb r2, [r5]
- ldr r0, [r4, 0x4]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080EA154
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA134
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_080EA134:
- ldr r0, [r6]
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- adds r1, 0x1
- strb r1, [r0, 0x4]
- b _080EA1CA
- .align 2, 0
-_080EA14C: .4byte gBattleSpritesDataPtr
-_080EA150: .4byte gActiveBattler
-_080EA154:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EA1CA
- strb r4, [r3, 0x4]
- ldr r2, _080EA1D0 @ =gBattlerPartyIndexes
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _080EA1D4 @ =gPlayerParty
- adds r0, r2
- bl HandleLowHpMusicChange
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _080EA1D8 @ =gSprites
- ldr r3, _080EA1DC @ =gBattlerSpriteIds
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080EA1E0 @ =sub_8012110
- str r1, [r0]
- ldr r1, _080EA1E4 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA1E8 @ =sub_80E82F4
- str r1, [r0]
-_080EA1CA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA1D0: .4byte gBattlerPartyIndexes
-_080EA1D4: .4byte gPlayerParty
-_080EA1D8: .4byte gSprites
-_080EA1DC: .4byte gBattlerSpriteIds
-_080EA1E0: .4byte sub_8012110
-_080EA1E4: .4byte gBattlerControllerFuncs
-_080EA1E8: .4byte sub_80E82F4
- thumb_func_end sub_80EA100
-
- thumb_func_start sub_80EA1EC
-sub_80EA1EC: @ 80EA1EC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA1EC
-
- thumb_func_start sub_80EA1F8
-sub_80EA1F8: @ 80EA1F8
- push {r4,r5,lr}
- ldr r0, _080EA238 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0, 0x8]
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _080EA23C @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _080EA240 @ =gActiveBattler
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl InitAndLaunchSpecialAnimation
- ldr r1, _080EA244 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA248 @ =sub_80E7970
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA238: .4byte gBattleSpritesDataPtr
-_080EA23C: .4byte gDoingBattleAnim
-_080EA240: .4byte gActiveBattler
-_080EA244: .4byte gBattlerControllerFuncs
-_080EA248: .4byte sub_80E7970
- thumb_func_end sub_80EA1F8
-
- thumb_func_start sub_80EA24C
-sub_80EA24C: @ 80EA24C
- push {r4,r5,lr}
- ldr r1, _080EA294 @ =gBattleBufferA
- ldr r5, _080EA298 @ =gActiveBattler
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _080EA29C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- strb r1, [r0, 0x8]
- ldr r1, _080EA2A0 @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl GetBattlerAtPosition
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl InitAndLaunchSpecialAnimation
- ldr r1, _080EA2A4 @ =gBattlerControllerFuncs
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA2A8 @ =sub_80E7970
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA294: .4byte gBattleBufferA
-_080EA298: .4byte gActiveBattler
-_080EA29C: .4byte gBattleSpritesDataPtr
-_080EA2A0: .4byte gDoingBattleAnim
-_080EA2A4: .4byte gBattlerControllerFuncs
-_080EA2A8: .4byte sub_80E7970
- thumb_func_end sub_80EA24C
-
- thumb_func_start sub_80EA2AC
-sub_80EA2AC: @ 80EA2AC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA2AC
-
- thumb_func_start sub_80EA2B8
-sub_80EA2B8: @ 80EA2B8
- push {r4-r6,lr}
- ldr r0, _080EA38C @ =gBattleBufferA
- mov r12, r0
- ldr r6, _080EA390 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080EA394 @ =gAnimMoveTurn
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080EA398 @ =gAnimMovePower
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _080EA39C @ =gAnimMoveDmg
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _080EA3A0 @ =gAnimFriendship
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _080EA3A4 @ =gWeatherMoveAnim
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _080EA3A8 @ =gAnimDisableStructPtr
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _080EA3AC @ =gTransformedPersonalities
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl IsMoveWithoutAnimation
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _080EA3B0
- bl WallyBufferExecCompleted
- b _080EA3CE
- .align 2, 0
-_080EA38C: .4byte gBattleBufferA
-_080EA390: .4byte gActiveBattler
-_080EA394: .4byte gAnimMoveTurn
-_080EA398: .4byte gAnimMovePower
-_080EA39C: .4byte gAnimMoveDmg
-_080EA3A0: .4byte gAnimFriendship
-_080EA3A4: .4byte gWeatherMoveAnim
-_080EA3A8: .4byte gAnimDisableStructPtr
-_080EA3AC: .4byte gTransformedPersonalities
-_080EA3B0:
- ldr r0, _080EA3D4 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r3, [r0, 0x4]
- ldr r1, _080EA3D8 @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA3DC @ =sub_80EA3E0
- str r1, [r0]
-_080EA3CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA3D4: .4byte gBattleSpritesDataPtr
-_080EA3D8: .4byte gBattlerControllerFuncs
-_080EA3DC: .4byte sub_80EA3E0
- thumb_func_end sub_80EA2B8
-
- thumb_func_start sub_80EA3E0
-sub_80EA3E0: @ 80EA3E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _080EA424 @ =gBattleBufferA
- ldr r6, _080EA428 @ =gActiveBattler
- ldrb r3, [r6]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r2, 0x2
- mov r8, r2
- add r1, r8
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r7, _080EA42C @ =gBattleSpritesDataPtr
- ldr r5, [r7]
- ldr r1, [r5, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080EA46A
- cmp r2, 0x1
- bgt _080EA430
- cmp r2, 0
- beq _080EA43A
- b _080EA520
- .align 2, 0
-_080EA424: .4byte gBattleBufferA
-_080EA428: .4byte gActiveBattler
-_080EA42C: .4byte gBattleSpritesDataPtr
-_080EA430:
- cmp r2, 0x2
- beq _080EA494
- cmp r2, 0x3
- beq _080EA4E4
- b _080EA520
-_080EA43A:
- ldr r1, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA456
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x5
- bl InitAndLaunchSpecialAnimation
-_080EA456:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0, 0x4]
- b _080EA520
-_080EA46A:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080EA520
- movs r0, 0
- bl sub_8035450
- adds r0, r4, 0
- bl DoMoveAnim
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x4]
- b _080EA520
-_080EA494:
- ldr r0, _080EA4DC @ =gAnimScriptCallback
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080EA4E0 @ =gAnimScriptActive
- ldrb r0, [r0]
- cmp r0, 0
- bne _080EA520
- movs r0, 0x1
- bl sub_8035450
- ldr r0, [r7]
- ldrb r2, [r6]
- ldr r1, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080EA4C8
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl InitAndLaunchSpecialAnimation
-_080EA4C8:
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080EA520
- .align 2, 0
-_080EA4DC: .4byte gAnimScriptCallback
-_080EA4E0: .4byte gAnimScriptActive
-_080EA4E4:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080EA520
- bl CopyAllBattleSpritesInvisibilities
- ldrb r0, [r6]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl TrySetBehindSubstituteSpriteBit
- ldr r0, [r7]
- ldrb r1, [r6]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strb r4, [r0, 0x4]
- bl WallyBufferExecCompleted
-_080EA520:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80EA3E0
-
- thumb_func_start sub_80EA52C
-sub_80EA52C: @ 80EA52C
- push {r4,lr}
- ldr r0, _080EA55C @ =gBattle_BG0_X
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080EA560 @ =gBattle_BG0_Y
- strh r1, [r0]
- ldr r0, _080EA564 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- ldr r1, _080EA568 @ =gUnknown_2022BC6
- adds r4, r0, r1
- ldr r0, _080EA56C @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _080EA570
- ldrh r0, [r4]
- cmp r0, 0x1
- bne _080EA570
- bl WallyBufferExecCompleted
- b _080EA65A
- .align 2, 0
-_080EA55C: .4byte gBattle_BG0_X
-_080EA560: .4byte gBattle_BG0_Y
-_080EA564: .4byte gActiveBattler
-_080EA568: .4byte gUnknown_2022BC6
-_080EA56C: .4byte gBattleTypeFlags
-_080EA570:
- ldrh r0, [r4]
- bl BufferStringBattle
- ldrh r0, [r4]
- bl sub_80D89B0
- lsls r0, 24
- cmp r0, 0
- beq _080EA590
- ldr r0, _080EA58C @ =gDisplayedStringBattle
- movs r1, 0x40
- bl BattlePutTextOnWindow
- b _080EA598
- .align 2, 0
-_080EA58C: .4byte gDisplayedStringBattle
-_080EA590:
- ldr r0, _080EA5B4 @ =gDisplayedStringBattle
- movs r1, 0
- bl BattlePutTextOnWindow
-_080EA598:
- ldr r0, _080EA5B8 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA64C
- ldrh r1, [r4]
- cmp r1, 0xD8
- beq _080EA5CC
- cmp r1, 0xD8
- bgt _080EA5BC
- cmp r1, 0x1E
- beq _080EA5F8
- b _080EA64C
- .align 2, 0
-_080EA5B4: .4byte gDisplayedStringBattle
-_080EA5B8: .4byte gBattleTypeFlags
-_080EA5BC:
- cmp r1, 0xE3
- beq _080EA630
- ldr r0, _080EA5C8 @ =0x0000017f
- cmp r1, r0
- beq _080EA614
- b _080EA64C
- .align 2, 0
-_080EA5C8: .4byte 0x0000017f
-_080EA5CC:
- movs r0, 0x2
- bl sub_80EB2E0
- lsls r0, 24
- cmp r0, 0
- bne _080EA64C
- movs r0, 0x2
- bl sub_80EB2F4
- ldr r1, _080EA5EC @ =gBattlerControllerFuncs
- ldr r0, _080EA5F0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA5F4 @ =sub_80E8584
- b _080EA658
- .align 2, 0
-_080EA5EC: .4byte gBattlerControllerFuncs
-_080EA5F0: .4byte gActiveBattler
-_080EA5F4: .4byte sub_80E8584
-_080EA5F8:
- ldr r1, _080EA608 @ =gBattlerControllerFuncs
- ldr r0, _080EA60C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA610 @ =sub_80E85AC
- b _080EA658
- .align 2, 0
-_080EA608: .4byte gBattlerControllerFuncs
-_080EA60C: .4byte gActiveBattler
-_080EA610: .4byte sub_80E85AC
-_080EA614:
- ldr r1, _080EA624 @ =gBattlerControllerFuncs
- ldr r0, _080EA628 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA62C @ =sub_80E85C0
- b _080EA658
- .align 2, 0
-_080EA624: .4byte gBattlerControllerFuncs
-_080EA628: .4byte gActiveBattler
-_080EA62C: .4byte sub_80E85C0
-_080EA630:
- ldr r1, _080EA640 @ =gBattlerControllerFuncs
- ldr r0, _080EA644 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA648 @ =sub_80E8598
- b _080EA658
- .align 2, 0
-_080EA640: .4byte gBattlerControllerFuncs
-_080EA644: .4byte gActiveBattler
-_080EA648: .4byte sub_80E8598
-_080EA64C:
- ldr r1, _080EA660 @ =gBattlerControllerFuncs
- ldr r0, _080EA664 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA668 @ =sub_80E7918
-_080EA658:
- str r1, [r0]
-_080EA65A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA660: .4byte gBattlerControllerFuncs
-_080EA664: .4byte gActiveBattler
-_080EA668: .4byte sub_80E7918
- thumb_func_end sub_80EA52C
-
- thumb_func_start sub_80EA66C
-sub_80EA66C: @ 80EA66C
- push {lr}
- ldr r0, _080EA684 @ =gActiveBattler
- ldrb r0, [r0]
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080EA688
- bl sub_80EA52C
- b _080EA68C
- .align 2, 0
-_080EA684: .4byte gActiveBattler
-_080EA688:
- bl WallyBufferExecCompleted
-_080EA68C:
- pop {r0}
- bx r0
- thumb_func_end sub_80EA66C
-
- thumb_func_start sub_80EA690
-sub_80EA690: @ 80EA690
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080EA6EA
- ldr r0, _080EA6C4 @ =gBattle_BG0_X
- strh r1, [r0]
- ldr r1, _080EA6C8 @ =gBattle_BG0_Y
- movs r0, 0xA0
- strh r0, [r1]
- ldr r0, _080EA6CC @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA6DC
- ldr r1, _080EA6D0 @ =gBattlerControllerFuncs
- ldr r0, _080EA6D4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA6D8 @ =sub_80E763C
- b _080EA6E8
- .align 2, 0
-_080EA6C4: .4byte gBattle_BG0_X
-_080EA6C8: .4byte gBattle_BG0_Y
-_080EA6CC: .4byte gBattleTypeFlags
-_080EA6D0: .4byte gBattlerControllerFuncs
-_080EA6D4: .4byte gActiveBattler
-_080EA6D8: .4byte sub_80E763C
-_080EA6DC:
- ldr r1, _080EA6F0 @ =gBattlerControllerFuncs
- ldr r0, _080EA6F4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA6F8 @ =sub_80E7844
-_080EA6E8:
- str r1, [r0]
-_080EA6EA:
- pop {r0}
- bx r0
- .align 2, 0
-_080EA6F0: .4byte gBattlerControllerFuncs
-_080EA6F4: .4byte gActiveBattler
-_080EA6F8: .4byte sub_80E7844
- thumb_func_end sub_80EA690
-
- thumb_func_start sub_80EA6FC
-sub_80EA6FC: @ 80EA6FC
- push {r4,lr}
- ldr r1, _080EA750 @ =gBattlerControllerFuncs
- ldr r0, _080EA754 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA758 @ =sub_80EA690
- str r1, [r0]
- ldr r0, _080EA75C @ =gUnknown_83FDA4C
- movs r1, 0
- bl BattlePutTextOnWindow
- ldr r0, _080EA760 @ =gUnknown_83FE725
- movs r1, 0x2
- bl BattlePutTextOnWindow
- movs r4, 0
-_080EA71E:
- lsls r0, r4, 24
- lsrs r0, 24
- bl ActionSelectionDestroyCursorAt
- adds r4, 0x1
- cmp r4, 0x3
- ble _080EA71E
- ldr r1, _080EA764 @ =gActionSelectionCursor
- ldr r0, _080EA754 @ =gActiveBattler
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl ActionSelectionCreateCursorAt
- ldr r0, _080EA768 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA770
- ldr r0, _080EA76C @ =gText_WhatWillPkmnDo
- bl BattleStringExpandPlaceholdersToDisplayedString
- b _080EA776
- .align 2, 0
-_080EA750: .4byte gBattlerControllerFuncs
-_080EA754: .4byte gActiveBattler
-_080EA758: .4byte sub_80EA690
-_080EA75C: .4byte gUnknown_83FDA4C
-_080EA760: .4byte gUnknown_83FE725
-_080EA764: .4byte gActionSelectionCursor
-_080EA768: .4byte gBattleTypeFlags
-_080EA76C: .4byte gText_WhatWillPkmnDo
-_080EA770:
- ldr r0, _080EA784 @ =gUnknown_83FE6FA
- bl BattleStringExpandPlaceholdersToDisplayedString
-_080EA776:
- ldr r0, _080EA788 @ =gDisplayedStringBattle
- movs r1, 0x1
- bl BattlePutTextOnWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA784: .4byte gUnknown_83FE6FA
-_080EA788: .4byte gDisplayedStringBattle
- thumb_func_end sub_80EA6FC
-
- thumb_func_start sub_80EA78C
-sub_80EA78C: @ 80EA78C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA78C
-
- thumb_func_start sub_80EA798
-sub_80EA798: @ 80EA798
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080EA7C2
- ldr r0, _080EA7C8 @ =gBattle_BG0_X
- strh r1, [r0]
- ldr r1, _080EA7CC @ =gBattle_BG0_Y
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _080EA7D0 @ =gBattlerControllerFuncs
- ldr r0, _080EA7D4 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA7D8 @ =sub_80E7988
- str r1, [r0]
-_080EA7C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080EA7C8: .4byte gBattle_BG0_X
-_080EA7CC: .4byte gBattle_BG0_Y
-_080EA7D0: .4byte gBattlerControllerFuncs
-_080EA7D4: .4byte gActiveBattler
-_080EA7D8: .4byte sub_80E7988
- thumb_func_end sub_80EA798
-
- thumb_func_start sub_80EA7DC
-sub_80EA7DC: @ 80EA7DC
- push {r4,lr}
- ldr r0, _080EA800 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080EA810
- bl InitMoveSelectionsVarsAndStrings
- ldr r1, _080EA804 @ =gBattlerControllerFuncs
- ldr r0, _080EA808 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA80C @ =sub_80EA798
- str r1, [r0]
- b _080EA866
- .align 2, 0
-_080EA800: .4byte gBattleTypeFlags
-_080EA804: .4byte gBattlerControllerFuncs
-_080EA808: .4byte gActiveBattler
-_080EA80C: .4byte sub_80EA798
-_080EA810:
- ldr r4, _080EA824 @ =gBattleStruct
- ldr r0, [r4]
- adds r0, 0x95
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EA828
- cmp r0, 0x1
- beq _080EA83E
- b _080EA866
- .align 2, 0
-_080EA824: .4byte gBattleStruct
-_080EA828:
- bl InitMoveSelectionsVarsAndStrings
- ldr r1, [r4]
- adds r1, 0x95
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x97
- movs r1, 0x50
- strb r1, [r0]
-_080EA83E:
- ldr r0, _080EA86C @ =gBattleStruct
- ldr r1, [r0]
- adds r1, 0x97
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080EA866
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- movs r1, 0xA
- bl BtlController_EmitTwoReturnValues
- bl WallyBufferExecCompleted
-_080EA866:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA86C: .4byte gBattleStruct
- thumb_func_end sub_80EA7DC
-
- thumb_func_start sub_80EA870
-sub_80EA870: @ 80EA870
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080EA8BC @ =gBattlerControllerFuncs
- ldr r2, _080EA8C0 @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA8C4 @ =sub_80E7A70
- str r1, [r0]
- ldr r1, _080EA8C8 @ =gBattlerInMenuId
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, _080EA8CC @ =gUnknown_203B0DC
- ldr r4, _080EA8D0 @ =gBattleBufferA
-_080EA89E:
- adds r0, r3, r5
- ldrb r1, [r2]
- lsls r1, 9
- adds r1, 0x1
- adds r1, r3, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _080EA89E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA8BC: .4byte gBattlerControllerFuncs
-_080EA8C0: .4byte gActiveBattler
-_080EA8C4: .4byte sub_80E7A70
-_080EA8C8: .4byte gBattlerInMenuId
-_080EA8CC: .4byte gUnknown_203B0DC
-_080EA8D0: .4byte gBattleBufferA
- thumb_func_end sub_80EA870
-
- thumb_func_start sub_80EA8D4
-sub_80EA8D4: @ 80EA8D4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080EA984 @ =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, _080EA988 @ =gUnknown_3004FFC
- ldr r4, _080EA98C @ =gActiveBattler
- ldrb r1, [r4]
- adds r1, r3
- strb r0, [r1]
- ldr r5, _080EA990 @ =gTasks
- ldrb r2, [r4]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r5
- ldr r5, _080EA994 @ =gBattleBufferA
- lsls r2, 9
- adds r6, r5, 0x1
- adds r2, r6
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r3, _080EA998 @ =gBattleStruct
- ldr r1, [r3]
- adds r1, 0x49
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- lsrs r0, 4
- strb r0, [r1]
- ldr r2, [r3]
- adds r2, 0x8B
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r5, 0x2
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, [r3]
- adds r2, 0xAC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r5, 0x3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r2, 0
- ldr r3, _080EA99C @ =gUnknown_203B0DC
-_080EA940:
- adds r0, r2, r3
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _080EA940
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _080EA9A0 @ =gBattlerControllerFuncs
- ldr r2, _080EA98C @ =gActiveBattler
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EA9A4 @ =sub_80E79B8
- str r1, [r0]
- ldr r1, _080EA9A8 @ =gBattlerInMenuId
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EA984: .4byte TaskDummy
-_080EA988: .4byte gUnknown_3004FFC
-_080EA98C: .4byte gActiveBattler
-_080EA990: .4byte gTasks
-_080EA994: .4byte gBattleBufferA
-_080EA998: .4byte gBattleStruct
-_080EA99C: .4byte gUnknown_203B0DC
-_080EA9A0: .4byte gBattlerControllerFuncs
-_080EA9A4: .4byte sub_80E79B8
-_080EA9A8: .4byte gBattlerInMenuId
- thumb_func_end sub_80EA8D4
-
- thumb_func_start sub_80EA9AC
-sub_80EA9AC: @ 80EA9AC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EA9AC
-
- thumb_func_start sub_80EA9B8
-sub_80EA9B8: @ 80EA9B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl LoadBattleBarGfx
- ldr r3, _080EAA30 @ =gBattleBufferA
- ldr r0, _080EAA34 @ =gActiveBattler
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _080EAA38 @ =0x00007fff
- cmp r7, r0
- beq _080EAA48
- ldr r6, _080EAA3C @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _080EAA40 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080EAA44 @ =gHealthboxSpriteIds
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl SetBattleBarStruct
- b _080EAA82
- .align 2, 0
-_080EAA30: .4byte gBattleBufferA
-_080EAA34: .4byte gActiveBattler
-_080EAA38: .4byte 0x00007fff
-_080EAA3C: .4byte gBattlerPartyIndexes
-_080EAA40: .4byte gPlayerParty
-_080EAA44: .4byte gHealthboxSpriteIds
-_080EAA48:
- ldr r1, _080EAAA0 @ =gBattlerPartyIndexes
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EAAA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _080EAAA8 @ =gHealthboxSpriteIds
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl SetBattleBarStruct
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl UpdateHpTextInHealthbox
-_080EAA82:
- ldr r1, _080EAAAC @ =gBattlerControllerFuncs
- ldr r0, _080EAAB0 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAAB4 @ =sub_80E88C0
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAAA0: .4byte gBattlerPartyIndexes
-_080EAAA4: .4byte gPlayerParty
-_080EAAA8: .4byte gHealthboxSpriteIds
-_080EAAAC: .4byte gBattlerControllerFuncs
-_080EAAB0: .4byte gActiveBattler
-_080EAAB4: .4byte sub_80E88C0
- thumb_func_end sub_80EA9B8
-
- thumb_func_start sub_80EAAB8
-sub_80EAAB8: @ 80EAAB8
- push {r4-r7,lr}
- ldr r5, _080EAAE4 @ =gBattleBufferA
- ldr r6, _080EAAE8 @ =gActiveBattler
- ldrb r0, [r6]
- lsls r0, 9
- adds r1, r5, 0x1
- adds r0, r1
- ldrb r7, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080EAAEC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _080EAAF0
- bl WallyBufferExecCompleted
- b _080EAB3C
- .align 2, 0
-_080EAAE4: .4byte gBattleBufferA
-_080EAAE8: .4byte gActiveBattler
-_080EAAEC: .4byte gPlayerParty
-_080EAAF0:
- movs r0, 0x1
- bl LoadBattleBarGfx
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r0, r5, 0x3
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r0, _080EAB44 @ =sub_80E7E04
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080EAB48 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- strh r4, [r1, 0xA]
- ldrb r0, [r6]
- strh r0, [r1, 0xC]
- ldr r1, _080EAB4C @ =gBattlerControllerFuncs
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAB50 @ =nullsub_81
- str r1, [r0]
-_080EAB3C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAB44: .4byte sub_80E7E04
-_080EAB48: .4byte gTasks
-_080EAB4C: .4byte gBattlerControllerFuncs
-_080EAB50: .4byte nullsub_81
- thumb_func_end sub_80EAAB8
-
- thumb_func_start sub_80EAB54
-sub_80EAB54: @ 80EAB54
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB54
-
- thumb_func_start sub_80EAB60
-sub_80EAB60: @ 80EAB60
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB60
-
- thumb_func_start sub_80EAB6C
-sub_80EAB6C: @ 80EAB6C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB6C
-
- thumb_func_start sub_80EAB78
-sub_80EAB78: @ 80EAB78
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB78
-
- thumb_func_start sub_80EAB84
-sub_80EAB84: @ 80EAB84
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB84
-
- thumb_func_start sub_80EAB90
-sub_80EAB90: @ 80EAB90
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB90
-
- thumb_func_start sub_80EAB9C
-sub_80EAB9C: @ 80EAB9C
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAB9C
-
- thumb_func_start sub_80EABA8
-sub_80EABA8: @ 80EABA8
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABA8
-
- thumb_func_start sub_80EABB4
-sub_80EABB4: @ 80EABB4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABB4
-
- thumb_func_start sub_80EABC0
-sub_80EABC0: @ 80EABC0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABC0
-
- thumb_func_start sub_80EABCC
-sub_80EABCC: @ 80EABCC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABCC
-
- thumb_func_start sub_80EABD8
-sub_80EABD8: @ 80EABD8
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABD8
-
- thumb_func_start sub_80EABE4
-sub_80EABE4: @ 80EABE4
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABE4
-
- thumb_func_start sub_80EABF0
-sub_80EABF0: @ 80EABF0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABF0
-
- thumb_func_start sub_80EABFC
-sub_80EABFC: @ 80EABFC
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EABFC
-
- thumb_func_start sub_80EAC08
-sub_80EAC08: @ 80EAC08
- push {r4,lr}
- ldr r3, _080EAC30 @ =gSprites
- ldr r2, _080EAC34 @ =gBattlerSpriteIds
- ldr r4, _080EAC38 @ =gActiveBattler
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080EAC3C
- bl WallyBufferExecCompleted
- b _080EAC66
- .align 2, 0
-_080EAC30: .4byte gSprites
-_080EAC34: .4byte gBattlerSpriteIds
-_080EAC38: .4byte gActiveBattler
-_080EAC3C:
- ldr r1, _080EAC6C @ =gDoingBattleAnim
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl DoHitAnimHealthboxEffect
- ldr r1, _080EAC70 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAC74 @ =DoHitAnimBlinkSpriteEffect_3
- str r1, [r0]
-_080EAC66:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAC6C: .4byte gDoingBattleAnim
-_080EAC70: .4byte gBattlerControllerFuncs
-_080EAC74: .4byte DoHitAnimBlinkSpriteEffect_3
- thumb_func_end sub_80EAC08
-
- thumb_func_start sub_80EAC78
-sub_80EAC78: @ 80EAC78
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EAC78
-
- thumb_func_start sub_80EAC84
-sub_80EAC84: @ 80EAC84
- push {lr}
- ldr r2, _080EACAC @ =gBattleBufferA
- ldr r0, _080EACB0 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EACAC: .4byte gBattleBufferA
-_080EACB0: .4byte gActiveBattler
- thumb_func_end sub_80EAC84
-
- thumb_func_start sub_80EACB4
-sub_80EACB4: @ 80EACB4
- push {lr}
- ldr r2, _080EACDC @ =gBattleBufferA
- ldr r0, _080EACE0 @ =gActiveBattler
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EACDC: .4byte gBattleBufferA
-_080EACE0: .4byte gActiveBattler
- thumb_func_end sub_80EACB4
-
- thumb_func_start sub_80EACE4
-sub_80EACE4: @ 80EACE4
- push {lr}
- ldr r1, _080EAD14 @ =gBattlerPartyIndexes
- ldr r0, _080EAD18 @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EAD1C @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD14: .4byte gBattlerPartyIndexes
-_080EAD18: .4byte gActiveBattler
-_080EAD1C: .4byte gPlayerParty
- thumb_func_end sub_80EACE4
-
- thumb_func_start sub_80EAD20
-sub_80EAD20: @ 80EAD20
- push {lr}
- ldr r1, _080EAD48 @ =gBattleBufferA
- ldr r0, _080EAD4C @ =gActiveBattler
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl HandleIntroSlide
- ldr r2, _080EAD50 @ =gIntroSlideFlags
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- .align 2, 0
-_080EAD48: .4byte gBattleBufferA
-_080EAD4C: .4byte gActiveBattler
-_080EAD50: .4byte gIntroSlideFlags
- thumb_func_end sub_80EAD20
-
- thumb_func_start sub_80EAD54
-sub_80EAD54: @ 80EAD54
- push {r4-r7,lr}
- ldr r0, _080EAEA0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080EAD64
- b _080EAEE4
-_080EAD64:
- ldr r6, _080EAEA4 @ =gBattlerSpriteIds
- ldr r7, _080EAEA8 @ =gActiveBattler
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _080EAEAC @ =gSprites
- adds r0, r5
- bl SetSpritePrimaryCoordsFromSecondaryCoords
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EAEB0 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080EAEB4 @ =StartAnimLinearTranslation
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EAEB8 @ =sub_80335F8
- bl StoreSpriteCallbackInData6
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _080EAEBC @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, _080EAEC0 @ =gTrainerBackPicPaletteTable
- ldr r0, _080EAEC4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _080EAEC8 @ =sub_80EB0A8
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080EAECC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldr r3, _080EAED0 @ =gBattleSpritesDataPtr
- ldr r0, [r3]
- ldrb r2, [r7]
- ldr r1, [r0, 0x4]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EAE84
- ldr r0, _080EAED4 @ =gBattlerStatusSummaryTaskId
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _080EAED8 @ =Task_HidePartyStatusSummary
- str r1, [r0]
-_080EAE84:
- ldr r0, [r3]
- ldr r2, [r0, 0x8]
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _080EAEDC @ =gBattlerControllerFuncs
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EAEE0 @ =nullsub_13
- str r1, [r0]
- b _080EAF18
- .align 2, 0
-_080EAEA0: .4byte gBattleTypeFlags
-_080EAEA4: .4byte gBattlerSpriteIds
-_080EAEA8: .4byte gActiveBattler
-_080EAEAC: .4byte gSprites
-_080EAEB0: .4byte 0x0000ffd8
-_080EAEB4: .4byte StartAnimLinearTranslation
-_080EAEB8: .4byte sub_80335F8
-_080EAEBC: .4byte 0x0000d6f8
-_080EAEC0: .4byte gTrainerBackPicPaletteTable
-_080EAEC4: .4byte gSaveBlock2Ptr
-_080EAEC8: .4byte sub_80EB0A8
-_080EAECC: .4byte gTasks
-_080EAED0: .4byte gBattleSpritesDataPtr
-_080EAED4: .4byte gBattlerStatusSummaryTaskId
-_080EAED8: .4byte Task_HidePartyStatusSummary
-_080EAEDC: .4byte gBattlerControllerFuncs
-_080EAEE0: .4byte nullsub_13
-_080EAEE4:
- ldr r0, _080EAF20 @ =gBattleSpritesDataPtr
- ldr r1, [r0]
- ldr r0, _080EAF24 @ =gActiveBattler
- ldrb r3, [r0]
- ldr r1, [r1, 0x4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080EAF14
- ldr r2, _080EAF28 @ =gTasks
- ldr r0, _080EAF2C @ =gBattlerStatusSummaryTaskId
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080EAF30 @ =Task_HidePartyStatusSummary
- str r1, [r0]
-_080EAF14:
- bl WallyBufferExecCompleted
-_080EAF18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080EAF20: .4byte gBattleSpritesDataPtr
-_080EAF24: .4byte gActiveBattler
-_080EAF28: .4byte gTasks
-_080EAF2C: .4byte gBattlerStatusSummaryTaskId
-_080EAF30: .4byte Task_HidePartyStatusSummary
- thumb_func_end sub_80EAD54
-
- thumb_func_start sub_80EAF34
-sub_80EAF34: @ 80EAF34
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _080EB07C @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _080EB080 @ =gBattlerPartyIndexes
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _080EB084 @ =gBattleBufferA
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080EB088 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _080EB08C @ =sub_8033E3C
- bl CreateInvisibleSpriteWithCallback
- ldr r1, _080EB090 @ =gUnknown_3004FFC
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl GetBattlerPosition
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl SetMultiuseSpriteTemplateToPokemon
- ldr r0, _080EB094 @ =gMultiuseSpriteTemplate
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl GetBattlerSpriteCoord
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl GetBattlerSpriteDefault_Y
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl GetBattlerSpriteSubpriority
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080EB098 @ =gBattlerSpriteIds
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080EB09C @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080EB0A0 @ =gBattleMonForms
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080EB0A4 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl DoPokeballSendOutAnimation
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB07C: .4byte gBattleSpritesDataPtr
-_080EB080: .4byte gBattlerPartyIndexes
-_080EB084: .4byte gBattleBufferA
-_080EB088: .4byte gPlayerParty
-_080EB08C: .4byte sub_8033E3C
-_080EB090: .4byte gUnknown_3004FFC
-_080EB094: .4byte gMultiuseSpriteTemplate
-_080EB098: .4byte gBattlerSpriteIds
-_080EB09C: .4byte gSprites
-_080EB0A0: .4byte gBattleMonForms
-_080EB0A4: .4byte SpriteCallbackDummy
- thumb_func_end sub_80EAF34
-
- thumb_func_start sub_80EB0A8
-sub_80EB0A8: @ 80EB0A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080EB0C8 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _080EB0CC
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _080EB102
- .align 2, 0
-_080EB0C8: .4byte gTasks
-_080EB0CC:
- ldr r4, _080EB108 @ =gActiveBattler
- ldrb r5, [r4]
- ldrh r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _080EB10C @ =gBattleBufferA
- ldrb r1, [r4]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _080EB110 @ =gBattlerPartyIndexes
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_80EAF34
- ldr r1, _080EB114 @ =gBattlerControllerFuncs
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080EB118 @ =sub_80E7B4C
- str r1, [r0]
- strb r5, [r4]
- adds r0, r6, 0
- bl DestroyTask
-_080EB102:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB108: .4byte gActiveBattler
-_080EB10C: .4byte gBattleBufferA
-_080EB110: .4byte gBattlerPartyIndexes
-_080EB114: .4byte gBattlerControllerFuncs
-_080EB118: .4byte sub_80E7B4C
- thumb_func_end sub_80EB0A8
-
- thumb_func_start sub_80EB11C
-sub_80EB11C: @ 80EB11C
- push {r4,r5,lr}
- ldr r1, _080EB144 @ =gBattleBufferA
- ldr r0, _080EB148 @ =gActiveBattler
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080EB14C
- adds r0, r2, 0
- bl GetBattlerSide
- lsls r0, 24
- cmp r0, 0
- bne _080EB14C
- bl WallyBufferExecCompleted
- b _080EB18A
- .align 2, 0
-_080EB144: .4byte gBattleBufferA
-_080EB148: .4byte gActiveBattler
-_080EB14C:
- ldr r0, _080EB190 @ =gBattleSpritesDataPtr
- ldr r0, [r0]
- ldr r5, _080EB194 @ =gActiveBattler
- ldrb r1, [r5]
- ldr r2, [r0, 0x4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r4, r0, 9
- ldr r3, _080EB198 @ =gUnknown_2022BC8
- adds r1, r4, r3
- subs r2, r3, 0x3
- adds r2, r4, r2
- ldrb r2, [r2]
- subs r3, 0x2
- adds r4, r3
- ldrb r3, [r4]
- bl CreatePartyStatusSummarySprites
- ldr r2, _080EB19C @ =gBattlerStatusSummaryTaskId
- ldrb r1, [r5]
- adds r1, r2
- strb r0, [r1]
- bl WallyBufferExecCompleted
-_080EB18A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB190: .4byte gBattleSpritesDataPtr
-_080EB194: .4byte gActiveBattler
-_080EB198: .4byte gUnknown_2022BC8
-_080EB19C: .4byte gBattlerStatusSummaryTaskId
- thumb_func_end sub_80EB11C
-
- thumb_func_start sub_80EB1A0
-sub_80EB1A0: @ 80EB1A0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB1A0
-
- thumb_func_start sub_80EB1AC
-sub_80EB1AC: @ 80EB1AC
- push {r4,lr}
- ldr r4, _080EB1CC @ =gActiveBattler
- ldrb r0, [r4]
- movs r1, 0x1
- bl EndBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- bl EndBounceEffect
- bl WallyBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB1CC: .4byte gActiveBattler
- thumb_func_end sub_80EB1AC
-
- thumb_func_start sub_80EB1D0
-sub_80EB1D0: @ 80EB1D0
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB1D0
-
- thumb_func_start sub_80EB1DC
-sub_80EB1DC: @ 80EB1DC
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _080EB214 @ =gBattleBufferA
- ldr r6, _080EB218 @ =gActiveBattler
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl TryHandleLaunchBattleTableAnimation
- lsls r0, 24
- cmp r0, 0
- beq _080EB21C
- bl WallyBufferExecCompleted
- b _080EB228
- .align 2, 0
-_080EB214: .4byte gBattleBufferA
-_080EB218: .4byte gActiveBattler
-_080EB21C:
- ldr r0, _080EB230 @ =gBattlerControllerFuncs
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080EB234 @ =CompleteOnFinishedBattleAnimation_4
- str r0, [r1]
-_080EB228:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB230: .4byte gBattlerControllerFuncs
-_080EB234: .4byte CompleteOnFinishedBattleAnimation_4
- thumb_func_end sub_80EB1DC
-
- thumb_func_start sub_80EB238
-sub_80EB238: @ 80EB238
- push {r4,lr}
- ldr r1, _080EB26C @ =gBattleBufferA
- ldr r4, _080EB270 @ =gActiveBattler
- ldrb r2, [r4]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- blt _080EB260
- cmp r0, 0x1
- bgt _080EB260
- adds r0, r2, 0
- movs r1, 0x1
- bl EndBounceEffect
- ldrb r0, [r4]
- movs r1, 0
- bl EndBounceEffect
-_080EB260:
- bl WallyBufferExecCompleted
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB26C: .4byte gBattleBufferA
-_080EB270: .4byte gActiveBattler
- thumb_func_end sub_80EB238
-
- thumb_func_start sub_80EB274
-sub_80EB274: @ 80EB274
- push {lr}
- bl WallyBufferExecCompleted
- pop {r0}
- bx r0
- thumb_func_end sub_80EB274
-
- thumb_func_start sub_80EB280
-sub_80EB280: @ 80EB280
- push {r4,lr}
- ldr r2, _080EB2C4 @ =gBattleOutcome
- ldr r1, _080EB2C8 @ =gBattleBufferA
- ldr r4, _080EB2CC @ =gActiveBattler
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl WallyBufferExecCompleted
- ldr r0, _080EB2D0 @ =gBattleTypeFlags
- ldr r0, [r0]
- movs r1, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _080EB2BC
- ldr r0, _080EB2D4 @ =gBattlerControllerFuncs
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080EB2D8 @ =sub_80E7930
- str r0, [r1]
-_080EB2BC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB2C4: .4byte gBattleOutcome
-_080EB2C8: .4byte gBattleBufferA
-_080EB2CC: .4byte gActiveBattler
-_080EB2D0: .4byte gBattleTypeFlags
-_080EB2D4: .4byte gBattlerControllerFuncs
-_080EB2D8: .4byte sub_80E7930
- thumb_func_end sub_80EB280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 80EB2DC
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_80EB2E0
-sub_80EB2E0: @ 80EB2E0
- adds r1, r0, 0
- ldr r0, _080EB2F0 @ =gBattleStruct
- ldr r0, [r0]
- adds r0, 0x96
- ldrb r0, [r0]
- ands r0, r1
- bx lr
- .align 2, 0
-_080EB2F0: .4byte gBattleStruct
- thumb_func_end sub_80EB2E0
-
- thumb_func_start sub_80EB2F4
-sub_80EB2F4: @ 80EB2F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080EB308 @ =gBattleStruct
- ldr r1, [r1]
- adds r1, 0x96
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080EB308: .4byte gBattleStruct
- thumb_func_end sub_80EB2F4
-
- thumb_func_start sub_80EB30C
-sub_80EB30C: @ 80EB30C
- push {r4-r6,lr}
- sub sp, 0xC
- movs r6, 0x1A
- movs r5, 0x7
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x30
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x31
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x32
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x33
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x34
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x35
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x36
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x38
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x39
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3A
- movs r2, 0
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3B
- movs r2, 0x1
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3C
- movs r2, 0x1C
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3D
- movs r2, 0x1D
- movs r3, 0x10
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4F4 @ =0x0000083a
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4F8 @ =0x0000083b
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB4FC @ =0x0000083c
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB500 @ =0x0000083d
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x11
- bl FillBgTilemapBufferRect
- ldr r1, _080EB504 @ =0x00000835
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB508 @ =0x00000836
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB50C @ =0x00000838
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- ldr r1, _080EB510 @ =0x00000839
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x12
- bl FillBgTilemapBufferRect
- movs r1, 0x83
- lsls r1, 4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB514 @ =0x00000831
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB518 @ =0x00000832
- str r6, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB51C @ =0x00000833
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- ldr r1, _080EB520 @ =0x00000834
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080EB4F4: .4byte 0x0000083a
-_080EB4F8: .4byte 0x0000083b
-_080EB4FC: .4byte 0x0000083c
-_080EB500: .4byte 0x0000083d
-_080EB504: .4byte 0x00000835
-_080EB508: .4byte 0x00000836
-_080EB50C: .4byte 0x00000838
-_080EB510: .4byte 0x00000839
-_080EB514: .4byte 0x00000831
-_080EB518: .4byte 0x00000832
-_080EB51C: .4byte 0x00000833
-_080EB520: .4byte 0x00000834
- thumb_func_end sub_80EB30C
-
- thumb_func_start sub_80EB524
-sub_80EB524: @ 80EB524
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r5, 0
- movs r0, 0x1A
- mov r8, r0
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- movs r6, 0x4
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x5
- movs r2, 0x2
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x1C
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x7
- movs r2, 0x1D
- movs r3, 0xE
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x8
- movs r2, 0
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xB
- movs r2, 0x1C
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r6, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xC
- movs r2, 0x1D
- movs r3, 0xF
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- mov r0, r8
- str r0, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0xF
- movs r2, 0x2
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1C
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0
- movs r1, 0x11
- movs r2, 0x1D
- movs r3, 0x13
- bl FillBgTilemapBufferRect
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80EB524
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 1857d92c8..e685d786d 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -10,8 +10,8 @@ nullsub_99: @ 81560A0
bx lr
thumb_func_end nullsub_99
- thumb_func_start SetControllerToPokedude
-SetControllerToPokedude: @ 81560A4
+ thumb_func_start SetControllerToPokeDude
+SetControllerToPokeDude: @ 81560A4
ldr r1, _081560C8 @ =gBattlerControllerFuncs
ldr r0, _081560CC @ =gActiveBattler
ldrb r0, [r0]
@@ -36,7 +36,7 @@ _081560CC: .4byte gActiveBattler
_081560D0: .4byte sub_81560DC
_081560D4: .4byte gBattleStruct
_081560D8: .4byte gSpecialVar_0x8004
- thumb_func_end SetControllerToPokedude
+ thumb_func_end SetControllerToPokeDude
thumb_func_start sub_81560DC
sub_81560DC: @ 81560DC
@@ -2862,7 +2862,7 @@ sub_81577B4: @ 81577B4
ldr r0, _081577E4 @ =gActiveBattler
ldrb r0, [r0]
lsls r2, r0, 9
- ldr r1, _081577E8 @ =gUnknown_2022BC7
+ ldr r1, _081577E8 @ =gBattleBufferA + 3
adds r5, r2, r1
mov r8, r5
bl GetBattlerSide
@@ -2876,7 +2876,7 @@ sub_81577B4: @ 81577B4
b _081577F8
.align 2, 0
_081577E4: .4byte gActiveBattler
-_081577E8: .4byte gUnknown_2022BC7
+_081577E8: .4byte gBattleBufferA + 3
_081577EC: .4byte gPlayerParty
_081577F0:
movs r0, 0x64
@@ -3148,7 +3148,7 @@ _08157AA4:
ldr r0, _08157AB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157ABC @ =gUnknown_2022BC7
+ ldr r0, _08157ABC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0xB
@@ -3156,12 +3156,12 @@ _08157AA4:
b _0815809A
.align 2, 0
_08157AB8: .4byte gActiveBattler
-_08157ABC: .4byte gUnknown_2022BC7
+_08157ABC: .4byte gBattleBufferA + 3
_08157AC0:
ldr r0, _08157AD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157AD8 @ =gUnknown_2022BC7
+ ldr r0, _08157AD8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0xC
@@ -3169,7 +3169,7 @@ _08157AC0:
b _0815809A
.align 2, 0
_08157AD4: .4byte gActiveBattler
-_08157AD8: .4byte gUnknown_2022BC7
+_08157AD8: .4byte gBattleBufferA + 3
_08157ADC:
movs r4, 0
movs r0, 0xC
@@ -3213,7 +3213,7 @@ _08157B2C:
ldr r5, _08157B80 @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157B84 @ =gUnknown_2022BC7
+ ldr r4, _08157B84 @ =gBattleBufferA + 3
adds r2, r4
adds r0, r6, 0
movs r1, 0x11
@@ -3249,7 +3249,7 @@ _08157B2C:
b _0815809A
.align 2, 0
_08157B80: .4byte gActiveBattler
-_08157B84: .4byte gUnknown_2022BC7
+_08157B84: .4byte gBattleBufferA + 3
_08157B88:
ldr r0, _08157BA4 @ =gActiveBattler
ldrb r2, [r0]
@@ -3270,7 +3270,7 @@ _08157BA8:
ldr r0, _08157BBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BC0 @ =gUnknown_2022BC7
+ ldr r0, _08157BC0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1
@@ -3278,12 +3278,12 @@ _08157BA8:
b _0815809A
.align 2, 0
_08157BBC: .4byte gActiveBattler
-_08157BC0: .4byte gUnknown_2022BC7
+_08157BC0: .4byte gBattleBufferA + 3
_08157BC4:
ldr r0, _08157BD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BDC @ =gUnknown_2022BC7
+ ldr r0, _08157BDC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x19
@@ -3291,12 +3291,12 @@ _08157BC4:
b _0815809A
.align 2, 0
_08157BD8: .4byte gActiveBattler
-_08157BDC: .4byte gUnknown_2022BC7
+_08157BDC: .4byte gBattleBufferA + 3
_08157BE0:
ldr r0, _08157BF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157BF8 @ =gUnknown_2022BC7
+ ldr r0, _08157BF8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1A
@@ -3304,12 +3304,12 @@ _08157BE0:
b _0815809A
.align 2, 0
_08157BF4: .4byte gActiveBattler
-_08157BF8: .4byte gUnknown_2022BC7
+_08157BF8: .4byte gBattleBufferA + 3
_08157BFC:
ldr r0, _08157C10 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C14 @ =gUnknown_2022BC7
+ ldr r0, _08157C14 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1B
@@ -3317,12 +3317,12 @@ _08157BFC:
b _0815809A
.align 2, 0
_08157C10: .4byte gActiveBattler
-_08157C14: .4byte gUnknown_2022BC7
+_08157C14: .4byte gBattleBufferA + 3
_08157C18:
ldr r0, _08157C2C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C30 @ =gUnknown_2022BC7
+ ldr r0, _08157C30 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1C
@@ -3330,12 +3330,12 @@ _08157C18:
b _0815809A
.align 2, 0
_08157C2C: .4byte gActiveBattler
-_08157C30: .4byte gUnknown_2022BC7
+_08157C30: .4byte gBattleBufferA + 3
_08157C34:
ldr r0, _08157C48 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C4C @ =gUnknown_2022BC7
+ ldr r0, _08157C4C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1D
@@ -3343,12 +3343,12 @@ _08157C34:
b _0815809A
.align 2, 0
_08157C48: .4byte gActiveBattler
-_08157C4C: .4byte gUnknown_2022BC7
+_08157C4C: .4byte gBattleBufferA + 3
_08157C50:
ldr r0, _08157C64 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C68 @ =gUnknown_2022BC7
+ ldr r0, _08157C68 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1E
@@ -3356,12 +3356,12 @@ _08157C50:
b _0815809A
.align 2, 0
_08157C64: .4byte gActiveBattler
-_08157C68: .4byte gUnknown_2022BC7
+_08157C68: .4byte gBattleBufferA + 3
_08157C6C:
ldr r0, _08157C80 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157C84 @ =gUnknown_2022BC7
+ ldr r0, _08157C84 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x1F
@@ -3369,12 +3369,12 @@ _08157C6C:
b _0815809A
.align 2, 0
_08157C80: .4byte gActiveBattler
-_08157C84: .4byte gUnknown_2022BC7
+_08157C84: .4byte gBattleBufferA + 3
_08157C88:
ldr r0, _08157C9C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CA0 @ =gUnknown_2022BC7
+ ldr r0, _08157CA0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x20
@@ -3382,12 +3382,12 @@ _08157C88:
b _0815809A
.align 2, 0
_08157C9C: .4byte gActiveBattler
-_08157CA0: .4byte gUnknown_2022BC7
+_08157CA0: .4byte gBattleBufferA + 3
_08157CA4:
ldr r0, _08157CB8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CBC @ =gUnknown_2022BC7
+ ldr r0, _08157CBC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x22
@@ -3395,12 +3395,12 @@ _08157CA4:
b _0815809A
.align 2, 0
_08157CB8: .4byte gActiveBattler
-_08157CBC: .4byte gUnknown_2022BC7
+_08157CBC: .4byte gBattleBufferA + 3
_08157CC0:
ldr r0, _08157CD4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CD8 @ =gUnknown_2022BC7
+ ldr r0, _08157CD8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x23
@@ -3408,12 +3408,12 @@ _08157CC0:
b _0815809A
.align 2, 0
_08157CD4: .4byte gActiveBattler
-_08157CD8: .4byte gUnknown_2022BC7
+_08157CD8: .4byte gBattleBufferA + 3
_08157CDC:
ldr r0, _08157CF0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157CF4 @ =gUnknown_2022BC7
+ ldr r0, _08157CF4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x24
@@ -3421,12 +3421,12 @@ _08157CDC:
b _0815809A
.align 2, 0
_08157CF0: .4byte gActiveBattler
-_08157CF4: .4byte gUnknown_2022BC7
+_08157CF4: .4byte gBattleBufferA + 3
_08157CF8:
ldr r0, _08157D0C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D10 @ =gUnknown_2022BC7
+ ldr r0, _08157D10 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x25
@@ -3434,12 +3434,12 @@ _08157CF8:
b _0815809A
.align 2, 0
_08157D0C: .4byte gActiveBattler
-_08157D10: .4byte gUnknown_2022BC7
+_08157D10: .4byte gBattleBufferA + 3
_08157D14:
ldr r0, _08157D28 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157D2C @ =gUnknown_2022BC7
+ ldr r0, _08157D2C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x26
@@ -3447,12 +3447,12 @@ _08157D14:
b _0815809A
.align 2, 0
_08157D28: .4byte gActiveBattler
-_08157D2C: .4byte gUnknown_2022BC7
+_08157D2C: .4byte gBattleBufferA + 3
_08157D30:
ldr r5, _08157D8C @ =gActiveBattler
ldrb r2, [r5]
lsls r2, 9
- ldr r4, _08157D90 @ =gUnknown_2022BC7
+ ldr r4, _08157D90 @ =gBattleBufferA + 3
adds r2, r4
adds r0, r6, 0
movs r1, 0x27
@@ -3492,12 +3492,12 @@ _08157D30:
b _08157E2A
.align 2, 0
_08157D8C: .4byte gActiveBattler
-_08157D90: .4byte gUnknown_2022BC7
+_08157D90: .4byte gBattleBufferA + 3
_08157D94:
ldr r0, _08157DA8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DAC @ =gUnknown_2022BC7
+ ldr r0, _08157DAC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x27
@@ -3505,12 +3505,12 @@ _08157D94:
b _0815809A
.align 2, 0
_08157DA8: .4byte gActiveBattler
-_08157DAC: .4byte gUnknown_2022BC7
+_08157DAC: .4byte gBattleBufferA + 3
_08157DB0:
ldr r0, _08157DC4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DC8 @ =gUnknown_2022BC7
+ ldr r0, _08157DC8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x28
@@ -3518,12 +3518,12 @@ _08157DB0:
b _0815809A
.align 2, 0
_08157DC4: .4byte gActiveBattler
-_08157DC8: .4byte gUnknown_2022BC7
+_08157DC8: .4byte gBattleBufferA + 3
_08157DCC:
ldr r0, _08157DE0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157DE4 @ =gUnknown_2022BC7
+ ldr r0, _08157DE4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x29
@@ -3531,12 +3531,12 @@ _08157DCC:
b _0815809A
.align 2, 0
_08157DE0: .4byte gActiveBattler
-_08157DE4: .4byte gUnknown_2022BC7
+_08157DE4: .4byte gBattleBufferA + 3
_08157DE8:
ldr r0, _08157DFC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E00 @ =gUnknown_2022BC7
+ ldr r0, _08157E00 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2A
@@ -3544,12 +3544,12 @@ _08157DE8:
b _0815809A
.align 2, 0
_08157DFC: .4byte gActiveBattler
-_08157E00: .4byte gUnknown_2022BC7
+_08157E00: .4byte gBattleBufferA + 3
_08157E04:
ldr r0, _08157E18 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E1C @ =gUnknown_2022BC7
+ ldr r0, _08157E1C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2B
@@ -3557,12 +3557,12 @@ _08157E04:
b _0815809A
.align 2, 0
_08157E18: .4byte gActiveBattler
-_08157E1C: .4byte gUnknown_2022BC7
+_08157E1C: .4byte gBattleBufferA + 3
_08157E20:
ldr r0, _08157E34 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E38 @ =gUnknown_2022BC7
+ ldr r0, _08157E38 @ =gBattleBufferA + 3
adds r2, r0
_08157E2A:
adds r0, r6, 0
@@ -3571,12 +3571,12 @@ _08157E2A:
b _0815809A
.align 2, 0
_08157E34: .4byte gActiveBattler
-_08157E38: .4byte gUnknown_2022BC7
+_08157E38: .4byte gBattleBufferA + 3
_08157E3C:
ldr r0, _08157E50 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E54 @ =gUnknown_2022BC7
+ ldr r0, _08157E54 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0
@@ -3584,12 +3584,12 @@ _08157E3C:
b _0815809A
.align 2, 0
_08157E50: .4byte gActiveBattler
-_08157E54: .4byte gUnknown_2022BC7
+_08157E54: .4byte gBattleBufferA + 3
_08157E58:
ldr r0, _08157E6C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E70 @ =gUnknown_2022BC7
+ ldr r0, _08157E70 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x9
@@ -3597,12 +3597,12 @@ _08157E58:
b _0815809A
.align 2, 0
_08157E6C: .4byte gActiveBattler
-_08157E70: .4byte gUnknown_2022BC7
+_08157E70: .4byte gBattleBufferA + 3
_08157E74:
ldr r0, _08157E88 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157E8C @ =gUnknown_2022BC7
+ ldr r0, _08157E8C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x37
@@ -3610,12 +3610,12 @@ _08157E74:
b _0815809A
.align 2, 0
_08157E88: .4byte gActiveBattler
-_08157E8C: .4byte gUnknown_2022BC7
+_08157E8C: .4byte gBattleBufferA + 3
_08157E90:
ldr r0, _08157EA4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EA8 @ =gUnknown_2022BC7
+ ldr r0, _08157EA8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x38
@@ -3623,12 +3623,12 @@ _08157E90:
b _0815809A
.align 2, 0
_08157EA4: .4byte gActiveBattler
-_08157EA8: .4byte gUnknown_2022BC7
+_08157EA8: .4byte gBattleBufferA + 3
_08157EAC:
ldr r0, _08157EC0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EC4 @ =gUnknown_2022BC7
+ ldr r0, _08157EC4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x39
@@ -3636,12 +3636,12 @@ _08157EAC:
b _0815809A
.align 2, 0
_08157EC0: .4byte gActiveBattler
-_08157EC4: .4byte gUnknown_2022BC7
+_08157EC4: .4byte gBattleBufferA + 3
_08157EC8:
ldr r0, _08157EDC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EE0 @ =gUnknown_2022BC7
+ ldr r0, _08157EE0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3A
@@ -3649,12 +3649,12 @@ _08157EC8:
b _0815809A
.align 2, 0
_08157EDC: .4byte gActiveBattler
-_08157EE0: .4byte gUnknown_2022BC7
+_08157EE0: .4byte gBattleBufferA + 3
_08157EE4:
ldr r0, _08157EF8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157EFC @ =gUnknown_2022BC7
+ ldr r0, _08157EFC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3B
@@ -3662,12 +3662,12 @@ _08157EE4:
b _0815809A
.align 2, 0
_08157EF8: .4byte gActiveBattler
-_08157EFC: .4byte gUnknown_2022BC7
+_08157EFC: .4byte gBattleBufferA + 3
_08157F00:
ldr r0, _08157F14 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F18 @ =gUnknown_2022BC7
+ ldr r0, _08157F18 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3C
@@ -3675,12 +3675,12 @@ _08157F00:
b _0815809A
.align 2, 0
_08157F14: .4byte gActiveBattler
-_08157F18: .4byte gUnknown_2022BC7
+_08157F18: .4byte gBattleBufferA + 3
_08157F1C:
ldr r0, _08157F30 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F34 @ =gUnknown_2022BC7
+ ldr r0, _08157F34 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3D
@@ -3688,12 +3688,12 @@ _08157F1C:
b _0815809A
.align 2, 0
_08157F30: .4byte gActiveBattler
-_08157F34: .4byte gUnknown_2022BC7
+_08157F34: .4byte gBattleBufferA + 3
_08157F38:
ldr r0, _08157F4C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F50 @ =gUnknown_2022BC7
+ ldr r0, _08157F50 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3E
@@ -3701,12 +3701,12 @@ _08157F38:
b _0815809A
.align 2, 0
_08157F4C: .4byte gActiveBattler
-_08157F50: .4byte gUnknown_2022BC7
+_08157F50: .4byte gBattleBufferA + 3
_08157F54:
ldr r0, _08157F68 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F6C @ =gUnknown_2022BC7
+ ldr r0, _08157F6C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x3F
@@ -3714,12 +3714,12 @@ _08157F54:
b _0815809A
.align 2, 0
_08157F68: .4byte gActiveBattler
-_08157F6C: .4byte gUnknown_2022BC7
+_08157F6C: .4byte gBattleBufferA + 3
_08157F70:
ldr r0, _08157F84 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157F88 @ =gUnknown_2022BC7
+ ldr r0, _08157F88 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x16
@@ -3727,12 +3727,12 @@ _08157F70:
b _0815809A
.align 2, 0
_08157F84: .4byte gActiveBattler
-_08157F88: .4byte gUnknown_2022BC7
+_08157F88: .4byte gBattleBufferA + 3
_08157F8C:
ldr r0, _08157FA0 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FA4 @ =gUnknown_2022BC7
+ ldr r0, _08157FA4 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x17
@@ -3740,12 +3740,12 @@ _08157F8C:
b _0815809A
.align 2, 0
_08157FA0: .4byte gActiveBattler
-_08157FA4: .4byte gUnknown_2022BC7
+_08157FA4: .4byte gBattleBufferA + 3
_08157FA8:
ldr r0, _08157FBC @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FC0 @ =gUnknown_2022BC7
+ ldr r0, _08157FC0 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x18
@@ -3753,12 +3753,12 @@ _08157FA8:
b _0815809A
.align 2, 0
_08157FBC: .4byte gActiveBattler
-_08157FC0: .4byte gUnknown_2022BC7
+_08157FC0: .4byte gBattleBufferA + 3
_08157FC4:
ldr r0, _08157FD8 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FDC @ =gUnknown_2022BC7
+ ldr r0, _08157FDC @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x21
@@ -3766,12 +3766,12 @@ _08157FC4:
b _0815809A
.align 2, 0
_08157FD8: .4byte gActiveBattler
-_08157FDC: .4byte gUnknown_2022BC7
+_08157FDC: .4byte gBattleBufferA + 3
_08157FE0:
ldr r0, _08157FF4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08157FF8 @ =gUnknown_2022BC7
+ ldr r0, _08157FF8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x2F
@@ -3779,12 +3779,12 @@ _08157FE0:
b _0815809A
.align 2, 0
_08157FF4: .4byte gActiveBattler
-_08157FF8: .4byte gUnknown_2022BC7
+_08157FF8: .4byte gBattleBufferA + 3
_08157FFC:
ldr r0, _08158010 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158014 @ =gUnknown_2022BC7
+ ldr r0, _08158014 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x30
@@ -3792,12 +3792,12 @@ _08157FFC:
b _0815809A
.align 2, 0
_08158010: .4byte gActiveBattler
-_08158014: .4byte gUnknown_2022BC7
+_08158014: .4byte gBattleBufferA + 3
_08158018:
ldr r0, _0815802C @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158030 @ =gUnknown_2022BC7
+ ldr r0, _08158030 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x32
@@ -3805,12 +3805,12 @@ _08158018:
b _0815809A
.align 2, 0
_0815802C: .4byte gActiveBattler
-_08158030: .4byte gUnknown_2022BC7
+_08158030: .4byte gBattleBufferA + 3
_08158034:
ldr r0, _08158048 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _0815804C @ =gUnknown_2022BC7
+ ldr r0, _0815804C @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x33
@@ -3818,12 +3818,12 @@ _08158034:
b _0815809A
.align 2, 0
_08158048: .4byte gActiveBattler
-_0815804C: .4byte gUnknown_2022BC7
+_0815804C: .4byte gBattleBufferA + 3
_08158050:
ldr r0, _08158064 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158068 @ =gUnknown_2022BC7
+ ldr r0, _08158068 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x34
@@ -3831,12 +3831,12 @@ _08158050:
b _0815809A
.align 2, 0
_08158064: .4byte gActiveBattler
-_08158068: .4byte gUnknown_2022BC7
+_08158068: .4byte gBattleBufferA + 3
_0815806C:
ldr r0, _08158080 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _08158084 @ =gUnknown_2022BC7
+ ldr r0, _08158084 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x35
@@ -3844,12 +3844,12 @@ _0815806C:
b _0815809A
.align 2, 0
_08158080: .4byte gActiveBattler
-_08158084: .4byte gUnknown_2022BC7
+_08158084: .4byte gBattleBufferA + 3
_08158088:
ldr r0, _081580C4 @ =gActiveBattler
ldrb r2, [r0]
lsls r2, 9
- ldr r0, _081580C8 @ =gUnknown_2022BC7
+ ldr r0, _081580C8 @ =gBattleBufferA + 3
adds r2, r0
adds r0, r6, 0
movs r1, 0x36
@@ -3876,7 +3876,7 @@ _0815809A:
bx r0
.align 2, 0
_081580C4: .4byte gActiveBattler
-_081580C8: .4byte gUnknown_2022BC7
+_081580C8: .4byte gBattleBufferA + 3
_081580CC: .4byte gBattlerPartyIndexes
_081580D0: .4byte gPlayerParty
thumb_func_end sub_81577B4
@@ -5063,7 +5063,7 @@ sub_8158A88: @ 8158A88
ldr r0, _08158AC4 @ =gActiveBattler
ldrb r4, [r0]
lsls r4, 9
- ldr r0, _08158AC8 @ =gUnknown_2022BC6
+ ldr r0, _08158AC8 @ =gBattleBufferA + 2
adds r4, r0
ldrh r0, [r4]
bl BufferStringBattle
@@ -5080,7 +5080,7 @@ sub_8158A88: @ 8158A88
_08158ABC: .4byte gBattle_BG0_X
_08158AC0: .4byte gBattle_BG0_Y
_08158AC4: .4byte gActiveBattler
-_08158AC8: .4byte gUnknown_2022BC6
+_08158AC8: .4byte gBattleBufferA + 2
_08158ACC: .4byte gDisplayedStringBattle
_08158AD0:
ldr r0, _08158AEC @ =gDisplayedStringBattle
@@ -6552,7 +6552,7 @@ _08159690:
strb r1, [r0]
ldrb r0, [r5]
lsls r4, r0, 9
- ldr r3, _081596DC @ =gUnknown_2022BC8
+ ldr r3, _081596DC @ =gBattleBufferA + 4
adds r1, r4, r3
subs r2, r3, 0x3
adds r2, r4, r2
@@ -6573,7 +6573,7 @@ _081596CE:
.align 2, 0
_081596D4: .4byte gBattleSpritesDataPtr
_081596D8: .4byte gActiveBattler
-_081596DC: .4byte gUnknown_2022BC8
+_081596DC: .4byte gBattleBufferA + 4
_081596E0: .4byte gBattlerStatusSummaryTaskId
thumb_func_end sub_8159660
@@ -7081,7 +7081,7 @@ sub_8159AB8: @ 8159AB8
ldr r3, _08159B5C @ =gActiveBattler
ldrb r5, [r3]
lsls r1, r5, 9
- ldr r0, _08159B60 @ =gUnknown_2022BC6
+ ldr r0, _08159B60 @ =gBattleBufferA + 2
adds r7, r1, r0
mov r12, r7
subs r0, 0x2
@@ -7150,7 +7150,7 @@ _08159B04:
_08159B54: .4byte gUnknown_8479198
_08159B58: .4byte gBattleStruct
_08159B5C: .4byte gActiveBattler
-_08159B60: .4byte gUnknown_2022BC6
+_08159B60: .4byte gBattleBufferA + 2
_08159B64: .4byte gBattlerControllerFuncs
_08159B68: .4byte gUnknown_3005EE0
_08159B6C:
diff --git a/asm/battle_interface.s b/asm/battle_interface.s
index 3de518630..671487d57 100644
--- a/asm/battle_interface.s
+++ b/asm/battle_interface.s
@@ -4304,7 +4304,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, _08049D84 @ =gUnknown_83FE81C
+ ldr r1, _08049D84 @ =gText_HighlightRed_Left
mov r0, sp
bl StringCopy
ldr r1, _08049D88 @ =gNumSafariBalls
@@ -4350,7 +4350,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
pop {r0}
bx r0
.align 2, 0
-_08049D84: .4byte gUnknown_83FE81C
+_08049D84: .4byte gText_HighlightRed_Left
_08049D88: .4byte gNumSafariBalls
_08049D8C: .4byte gSprites
_08049D90: .4byte 0x060102c0
diff --git a/asm/battle_message.s b/asm/battle_message.s
index a7a52f5f7..28d7b196d 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -20,7 +20,7 @@ BufferStringBattle: @ 80D7274
mov r8, r0
ldrb r1, [r0]
lsls r1, 9
- ldr r0, _080D7338 @ =gUnknown_2022BC8
+ ldr r0, _080D7338 @ =gBattleBufferA + 4
adds r1, r0
str r1, [r4]
ldr r2, _080D733C @ =gLastUsedItem
@@ -107,7 +107,7 @@ _080D7326:
.align 2, 0
_080D7330: .4byte gUnknown_2039A34
_080D7334: .4byte gActiveBattler
-_080D7338: .4byte gUnknown_2022BC8
+_080D7338: .4byte gBattleBufferA + 4
_080D733C: .4byte gLastUsedItem
_080D7340: .4byte gLastUsedAbility
_080D7344: .4byte gBattleScripting
@@ -744,7 +744,7 @@ _080D7834:
ldr r5, [sp]
ldr r4, [sp, 0x4]
movs r3, 0
- ldr r2, _080D7850 @ =gUnknown_82500CC
+ ldr r2, _080D7850 @ =gStatusConditionStringsTable
_080D783C:
ldr r1, [r2]
ldr r0, [r1]
@@ -756,7 +756,7 @@ _080D783C:
ldr r0, [r2, 0x4]
b _080D785E
.align 2, 0
-_080D7850: .4byte gUnknown_82500CC
+_080D7850: .4byte gStatusConditionStringsTable
_080D7854:
adds r2, 0x8
adds r3, 0x1
@@ -1647,13 +1647,13 @@ _080D7FF0:
ldrb r1, [r0]
movs r0, 0xD
muls r1, r0
- ldr r0, _080D8004 @ =gUnknown_824FC40
+ ldr r0, _080D8004 @ =gAbilityNames
adds r4, r1, r0
b _080D8382
.align 2, 0
_080D7FFC: .4byte gUnknown_2039A30
_080D8000: .4byte gEffectBattler
-_080D8004: .4byte gUnknown_824FC40
+_080D8004: .4byte gAbilityNames
_080D8008:
ldr r3, _080D8020 @ =gTrainerBattleOpponent_A
ldrh r1, [r3]
@@ -1917,7 +1917,7 @@ _080D81E8:
_080D8204: .4byte gBattleTypeFlags
_080D8208: .4byte gStringVar4
_080D820C:
- bl sub_80806EC
+ bl GetTrainerALoseText
adds r4, r0, 0
b _080D8382
_080D8214:
@@ -1937,7 +1937,7 @@ _080D8214:
_080D8230: .4byte gBattleTypeFlags
_080D8234: .4byte gStringVar4
_080D8238:
- bl sub_8080710
+ bl GetTrainerWonSpeech
adds r4, r0, 0
b _080D8382
_080D8240:
@@ -2430,7 +2430,7 @@ _080D860C:
ldrb r1, [r0, 0x1]
movs r0, 0xD
muls r1, r0
- ldr r0, _080D8624 @ =gUnknown_824FC40
+ ldr r0, _080D8624 @ =gAbilityNames
_080D8616:
adds r1, r0
_080D8618:
@@ -2439,7 +2439,7 @@ _080D8618:
adds r5, 0x2
b _080D86B0
.align 2, 0
-_080D8624: .4byte gUnknown_824FC40
+_080D8624: .4byte gAbilityNames
_080D8628:
adds r0, r5, r7
ldrb r2, [r0, 0x1]
@@ -2943,7 +2943,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
ldr r0, _080D8A38 @ =gActiveBattler
ldrb r2, [r0]
lsls r1, r2, 9
- ldr r0, _080D8A3C @ =gUnknown_2022BC8
+ ldr r0, _080D8A3C @ =gBattleBufferA + 4
adds r1, r0
ldr r4, _080D8A40 @ =gUnknown_8D2FBB4
ldr r0, _080D8A44 @ =gMoveSelectionCursor
@@ -2983,7 +2983,7 @@ SetPpNumbersPaletteInMoveSelection: @ 80D89DC
bx r0
.align 2, 0
_080D8A38: .4byte gActiveBattler
-_080D8A3C: .4byte gUnknown_2022BC8
+_080D8A3C: .4byte gBattleBufferA + 4
_080D8A40: .4byte gUnknown_8D2FBB4
_080D8A44: .4byte gMoveSelectionCursor
_080D8A48: .4byte gPlttBufferUnfaded
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
deleted file mode 100644
index 5b2dd8144..000000000
--- a/asm/battle_setup.s
+++ /dev/null
@@ -1,2183 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_807F620
-sub_807F620: @ 807F620
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0807F640 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807F644
- cmp r0, 0x1
- beq _0807F65E
- b _0807F686
- .align 2, 0
-_0807F640: .4byte gTasks+0x8
-_0807F644:
- bl FldEffPoison_IsActive
- cmp r0, 0
- bne _0807F686
- bl HelpSystem_Disable
- ldrb r0, [r4, 0x2]
- bl BT_StartOnField
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0807F686
-_0807F65E:
- bl BT_IsDone
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807F686
- bl HelpSystem_Enable
- bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _0807F68C @ =sub_800FD9C
- bl SetMainCallback2
- bl sub_806D7E8
- bl ClearPoisonStepCounter
- adds r0, r5, 0
- bl DestroyTask
-_0807F686:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F68C: .4byte sub_800FD9C
- thumb_func_end sub_807F620
-
- thumb_func_start sub_807F690
-sub_807F690: @ 807F690
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0807F6C4 @ =sub_807F620
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807F6C8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- adds r0, r5, 0
- bl PlayMapChosenOrBattleBGM
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807F6C4: .4byte sub_807F620
-_0807F6C8: .4byte gTasks
- thumb_func_end sub_807F690
-
- thumb_func_start sub_807F6CC
-sub_807F6CC: @ 807F6CC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, 0x1
- bne _0807F6FC
- adds r0, r1, 0
- subs r0, 0x58
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x6
- bhi _0807F6FC
- ldr r0, _0807F6F8 @ =0x00000167
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- bne _0807F6FC
- movs r0, 0x1
- b _0807F6FE
- .align 2, 0
-_0807F6F8: .4byte 0x00000167
-_0807F6FC:
- movs r0, 0
-_0807F6FE:
- pop {r1}
- bx r1
- thumb_func_end sub_807F6CC
-
- thumb_func_start sub_807F704
-sub_807F704: @ 807F704
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _0807F714
- bl sub_807F7D8
- b _0807F744
-_0807F714:
- ldr r0, _0807F73C @ =gSaveBlock1Ptr
- ldr r1, [r0]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x5]
- lsls r1, 24
- asrs r1, 24
- lsls r1, 16
- lsrs r1, 16
- bl sub_807F6CC
- lsls r0, 24
- cmp r0, 0
- beq _0807F740
- bl sub_807F810
- b _0807F744
- .align 2, 0
-_0807F73C: .4byte gSaveBlock1Ptr
-_0807F740:
- bl sub_807F748
-_0807F744:
- pop {r0}
- bx r0
- thumb_func_end sub_807F704
-
- thumb_func_start sub_807F748
-sub_807F748: @ 807F748
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F780 @ =gMain
- ldr r0, _0807F784 @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F788 @ =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F780: .4byte gMain
-_0807F784: .4byte sub_807FB40
-_0807F788: .4byte gBattleTypeFlags
- thumb_func_end sub_807F748
-
- thumb_func_start sub_807F78C
-sub_807F78C: @ 807F78C
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F7C8 @ =gMain
- ldr r0, _0807F7CC @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F7D0 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 3
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0807F7D4 @ =0x00000155
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F7C8: .4byte gMain
-_0807F7CC: .4byte sub_807FB40
-_0807F7D0: .4byte gBattleTypeFlags
-_0807F7D4: .4byte 0x00000155
- thumb_func_end sub_807F78C
-
- thumb_func_start sub_807F7D8
-sub_807F7D8: @ 807F7D8
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F804 @ =gMain
- ldr r0, _0807F808 @ =CB2_EndSafariBattle
- str r0, [r1, 0x8]
- ldr r1, _0807F80C @ =gBattleTypeFlags
- movs r0, 0x80
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807F804: .4byte gMain
-_0807F808: .4byte CB2_EndSafariBattle
-_0807F80C: .4byte gBattleTypeFlags
- thumb_func_end sub_807F7D8
-
- thumb_func_start sub_807F810
-sub_807F810: @ 807F810
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807F854 @ =gMain
- ldr r0, _0807F858 @ =sub_807FB40
- str r0, [r1, 0x8]
- ldr r1, _0807F85C @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 8
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- ldr r0, _0807F860 @ =gEnemyParty
- ldr r2, _0807F864 @ =gUnknown_841D148
- movs r1, 0x2
- bl SetMonData
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F854: .4byte gMain
-_0807F858: .4byte sub_807FB40
-_0807F85C: .4byte gBattleTypeFlags
-_0807F860: .4byte gEnemyParty
-_0807F864: .4byte gUnknown_841D148
- thumb_func_end sub_807F810
-
- thumb_func_start sub_807F868
-sub_807F868: @ 807F868
- push {lr}
- bl sub_807FF80
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x9
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end sub_807F868
-
- thumb_func_start ScrSpecial_StartOldManTutorialBattle
-ScrSpecial_StartOldManTutorialBattle: @ 807F888
- push {lr}
- ldr r0, _0807F8B4 @ =gEnemyParty
- movs r1, 0xD
- movs r2, 0x5
- bl CreateMaleMon
- bl ScriptContext2_Enable
- ldr r1, _0807F8B8 @ =gMain
- ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- str r0, [r1, 0x8]
- ldr r1, _0807F8C0 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 2
- str r0, [r1]
- movs r0, 0x8
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807F8B4: .4byte gEnemyParty
-_0807F8B8: .4byte gMain
-_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_0807F8C0: .4byte gBattleTypeFlags
- thumb_func_end ScrSpecial_StartOldManTutorialBattle
-
- thumb_func_start BattleSetup_StartScriptedWildBattle
-BattleSetup_StartScriptedWildBattle: @ 807F8C4
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807F8F8 @ =gMain
- ldr r0, _0807F8FC @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807F900 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 10
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F8F8: .4byte gMain
-_0807F8FC: .4byte sub_807FBA0
-_0807F900: .4byte gBattleTypeFlags
- thumb_func_end BattleSetup_StartScriptedWildBattle
-
- thumb_func_start ScrSpecial_StartMarowakBattle
-ScrSpecial_StartMarowakBattle: @ 807F904
- push {lr}
- sub sp, 0xC
- bl ScriptContext2_Enable
- ldr r1, _0807F944 @ =gMain
- ldr r0, _0807F948 @ =sub_807FBF0
- str r0, [r1, 0x8]
- ldr r0, _0807F94C @ =0x00000167
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- cmp r0, 0
- beq _0807F958
- ldr r1, _0807F950 @ =gBattleTypeFlags
- movs r0, 0xA0
- lsls r0, 8
- str r0, [r1]
- ldr r0, _0807F954 @ =gEnemyParty
- movs r1, 0xFE
- str r1, [sp]
- movs r1, 0xC
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x69
- movs r2, 0x1E
- movs r3, 0x1F
- bl CreateMonWithGenderNatureLetter
- b _0807F960
- .align 2, 0
-_0807F944: .4byte gMain
-_0807F948: .4byte sub_807FBF0
-_0807F94C: .4byte 0x00000167
-_0807F950: .4byte gBattleTypeFlags
-_0807F954: .4byte gEnemyParty
-_0807F958:
- ldr r1, _0807F98C @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 8
- str r0, [r1]
-_0807F960:
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- ldr r0, _0807F990 @ =gEnemyParty
- ldr r2, _0807F994 @ =gUnknown_841D148
- movs r1, 0x2
- bl SetMonData
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0807F98C: .4byte gBattleTypeFlags
-_0807F990: .4byte gEnemyParty
-_0807F994: .4byte gUnknown_841D148
- thumb_func_end ScrSpecial_StartMarowakBattle
-
- thumb_func_start ScrSpecial_StartSouthernIslandBattle
-ScrSpecial_StartSouthernIslandBattle: @ 807F998
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807F9CC @ =gMain
- ldr r0, _0807F9D0 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807F9D4 @ =gBattleTypeFlags
- movs r0, 0x80
- lsls r0, 6
- str r0, [r1]
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807F9CC: .4byte gMain
-_0807F9D0: .4byte sub_807FBA0
-_0807F9D4: .4byte gBattleTypeFlags
- thumb_func_end ScrSpecial_StartSouthernIslandBattle
-
- thumb_func_start Special_StartLegendaryBattle
-Special_StartLegendaryBattle: @ 807F9D8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FA0C @ =gMain
- ldr r0, _0807FA10 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FA14 @ =gBattleTypeFlags
- movs r0, 0x84
- lsls r0, 11
- str r0, [r1]
- ldr r0, _0807FA18 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x96
- beq _0807FA2E
- cmp r0, 0x96
- bgt _0807FA1C
- cmp r0, 0x92
- bgt _0807FA4C
- cmp r0, 0x90
- blt _0807FA4C
- b _0807FA3C
- .align 2, 0
-_0807FA0C: .4byte gMain
-_0807FA10: .4byte sub_807FBA0
-_0807FA14: .4byte gBattleTypeFlags
-_0807FA18: .4byte gEnemyParty
-_0807FA1C:
- cmp r1, 0xF9
- blt _0807FA4C
- cmp r1, 0xFA
- ble _0807FA3C
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- beq _0807FA34
- b _0807FA4C
-_0807FA2E:
- movs r1, 0xAA
- lsls r1, 1
- b _0807FA3E
-_0807FA34:
- ldr r1, _0807FA38 @ =0x00000153
- b _0807FA3E
- .align 2, 0
-_0807FA38: .4byte 0x00000153
-_0807FA3C:
- ldr r1, _0807FA48 @ =0x00000155
-_0807FA3E:
- movs r0, 0
- bl sub_807F690
- b _0807FA56
- .align 2, 0
-_0807FA48: .4byte 0x00000155
-_0807FA4C:
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0
- bl sub_807F690
-_0807FA56:
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end Special_StartLegendaryBattle
-
- thumb_func_start Special_StartGroudonKyogreBattle
-Special_StartGroudonKyogreBattle: @ 807FA68
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FA90 @ =gMain
- ldr r0, _0807FA94 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FA98 @ =gBattleTypeFlags
- movs r0, 0xC0
- lsls r0, 6
- str r0, [r1]
- ldr r0, _0807FA9C @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0807FAA0
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0xB
- bl sub_807F690
- b _0807FAAA
- .align 2, 0
-_0807FA90: .4byte gMain
-_0807FA94: .4byte sub_807FBA0
-_0807FA98: .4byte gBattleTypeFlags
-_0807FA9C: .4byte gGameVersion
-_0807FAA0:
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0xB
- bl sub_807F690
-_0807FAAA:
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- thumb_func_end Special_StartGroudonKyogreBattle
-
- thumb_func_start Special_StartRegiBattle
-Special_StartRegiBattle: @ 807FABC
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _0807FAEC @ =gMain
- ldr r0, _0807FAF0 @ =sub_807FBA0
- str r0, [r1, 0x8]
- ldr r1, _0807FAF4 @ =gBattleTypeFlags
- movs r0, 0xC0
- lsls r0, 7
- str r0, [r1]
- movs r1, 0x85
- lsls r1, 1
- movs r0, 0
- bl sub_807F690
- movs r0, 0x7
- bl IncrementGameStat
- movs r0, 0x8
- bl IncrementGameStat
- pop {r0}
- bx r0
- .align 2, 0
-_0807FAEC: .4byte gMain
-_0807FAF0: .4byte sub_807FBA0
-_0807FAF4: .4byte gBattleTypeFlags
- thumb_func_end Special_StartRegiBattle
-
- thumb_func_start sub_807FAF8
-sub_807FAF8: @ 807FAF8
- push {lr}
- bl LoadPlayerParty
- bl sub_807FB40
- pop {r0}
- bx r0
- thumb_func_end sub_807FAF8
-
- thumb_func_start sub_807FB08
-sub_807FB08: @ 807FB08
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_805C780
- ldr r1, _0807FB38 @ =gMain
- ldr r0, _0807FB3C @ =sub_807FAF8
- str r0, [r1, 0x8]
- bl SavePlayerParty
- bl InitPokedudePartyAndOpponent
- bl GetWildBattleTransition
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_807F690
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB38: .4byte gMain
-_0807FB3C: .4byte sub_807FAF8
- thumb_func_end sub_807FB08
-
- thumb_func_start sub_807FB40
-sub_807FB40: @ 807FB40
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FB74 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _0807FB78 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _0807FB80
- ldr r0, _0807FB7C @ =c2_whiteout
- bl SetMainCallback2
- b _0807FB8C
- .align 2, 0
-_0807FB74: .4byte 0x01000100
-_0807FB78: .4byte gBattleOutcome
-_0807FB7C: .4byte c2_whiteout
-_0807FB80:
- ldr r0, _0807FB94 @ =CB2_ReturnToField
- bl SetMainCallback2
- ldr r1, _0807FB98 @ =gFieldCallback
- ldr r0, _0807FB9C @ =sub_807E3EC
- str r0, [r1]
-_0807FB8C:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0807FB94: .4byte CB2_ReturnToField
-_0807FB98: .4byte gFieldCallback
-_0807FB9C: .4byte sub_807E3EC
- thumb_func_end sub_807FB40
-
- thumb_func_start sub_807FBA0
-sub_807FBA0: @ 807FBA0
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FBD4 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _0807FBD8 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _0807FBE0
- ldr r0, _0807FBDC @ =c2_whiteout
- bl SetMainCallback2
- b _0807FBE6
- .align 2, 0
-_0807FBD4: .4byte 0x01000100
-_0807FBD8: .4byte gBattleOutcome
-_0807FBDC: .4byte c2_whiteout
-_0807FBE0:
- ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
-_0807FBE6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_807FBA0
-
- thumb_func_start sub_807FBF0
-sub_807FBF0: @ 807FBF0
- push {r4,lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0807FC24 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r4, _0807FC28 @ =gBattleOutcome
- ldrb r0, [r4]
- bl IsPlayerDefeated
- adds r1, r0, 0
- cmp r1, 0
- beq _0807FC30
- ldr r0, _0807FC2C @ =c2_whiteout
- bl SetMainCallback2
- b _0807FC4C
- .align 2, 0
-_0807FC24: .4byte 0x01000100
-_0807FC28: .4byte gBattleOutcome
-_0807FC2C: .4byte c2_whiteout
-_0807FC30:
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0807FC40
- ldr r0, _0807FC3C @ =gSpecialVar_Result
- strh r1, [r0]
- b _0807FC46
- .align 2, 0
-_0807FC3C: .4byte gSpecialVar_Result
-_0807FC40:
- ldr r1, _0807FC54 @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_0807FC46:
- ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
-_0807FC4C:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807FC54: .4byte gSpecialVar_Result
-_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_807FBF0
-
- thumb_func_start sub_807FC5C
-sub_807FC5C: @ 807FC5C
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsTallGrass_2
- lsls r0, 24
- cmp r0, 0
- beq _0807FC92
- movs r0, 0
- b _0807FD88
-_0807FC92:
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_3
- lsls r0, 24
- cmp r0, 0
- beq _0807FCA2
- movs r0, 0x1
- b _0807FD88
-_0807FCA2:
- adds r0, r4, 0
- bl MetatileBehavior_IsMB21OrWaterfallBottom
- lsls r0, 24
- cmp r0, 0
- beq _0807FCB2
- movs r0, 0x2
- b _0807FD88
-_0807FCB2:
- ldr r0, _0807FCC8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _0807FD2C
- lsls r0, 2
- ldr r1, _0807FCCC @ =_0807FCD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807FCC8: .4byte gMapHeader
-_0807FCCC: .4byte _0807FCD0
- .align 2, 0
-_0807FCD0:
- .4byte _0807FD2C
- .4byte _0807FD2C
- .4byte _0807FD2C
- .4byte _0807FCF4
- .4byte _0807FD18
- .4byte _0807FD1C
- .4byte _0807FD2C
- .4byte _0807FD04
- .4byte _0807FD04
-_0807FCF4:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsMB0B
- lsls r0, 24
- cmp r0, 0
- beq _0807FD08
-_0807FD04:
- movs r0, 0x8
- b _0807FD88
-_0807FD08:
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD70
- movs r0, 0x7
- b _0807FD88
-_0807FD18:
- movs r0, 0x3
- b _0807FD88
-_0807FD1C:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD82
- b _0807FD86
-_0807FD2C:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsDeepSemiDeepOrSplashingWater
- lsls r0, 24
- cmp r0, 0
- bne _0807FD82
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FD70
- adds r0, r4, 0
- bl MetatileBehavior_IsMB0C
- lsls r0, 24
- cmp r0, 0
- beq _0807FD58
- movs r0, 0x6
- b _0807FD88
-_0807FD58:
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0807FD86
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_7
- lsls r0, 24
- cmp r0, 0
- beq _0807FD74
-_0807FD70:
- movs r0, 0x5
- b _0807FD88
-_0807FD74:
- adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807FD86
-_0807FD82:
- movs r0, 0x4
- b _0807FD88
-_0807FD86:
- movs r0, 0x9
-_0807FD88:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807FC5C
-
- thumb_func_start GetBattleTransitionTypeByMap
-GetBattleTransitionTypeByMap: @ 807FD90
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- cmp r0, 0
- beq _0807FDC0
- movs r0, 0x2
- b _0807FDEA
-_0807FDC0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfable
- lsls r0, 24
- cmp r0, 0
- bne _0807FDE8
- ldr r0, _0807FDE0 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _0807FDE4
- cmp r0, 0x5
- beq _0807FDE8
- movs r0, 0
- b _0807FDEA
- .align 2, 0
-_0807FDE0: .4byte gMapHeader
-_0807FDE4:
- movs r0, 0x1
- b _0807FDEA
-_0807FDE8:
- movs r0, 0x3
-_0807FDEA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetBattleTransitionTypeByMap
-
- thumb_func_start GetSumOfPlayerPartyLevel
-GetSumOfPlayerPartyLevel: @ 807FDF4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- movs r6, 0
-_0807FDFE:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _0807FE50 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0807FE42
- cmp r1, 0
- beq _0807FE42
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0807FE42
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0807FE48
-_0807FE42:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0807FDFE
-_0807FE48:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0807FE50: .4byte gPlayerParty
- thumb_func_end GetSumOfPlayerPartyLevel
-
- thumb_func_start reads_trainer_data_byte0
-reads_trainer_data_byte0: @ 807FE54
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _0807FE88 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r5
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r4
- bcs _0807FE74
- adds r4, r0, 0
-_0807FE74:
- movs r3, 0
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _0807FEBC
- cmp r0, 0x1
- bgt _0807FE8C
- cmp r0, 0
- beq _0807FE96
- b _0807FF2C
- .align 2, 0
-_0807FE88: .4byte gTrainers
-_0807FE8C:
- cmp r0, 0x2
- beq _0807FEE2
- cmp r0, 0x3
- beq _0807FF08
- b _0807FF2C
-_0807FE96:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FEA4:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FEA4
- b _0807FF2C
-_0807FEBC:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FECA:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FECA
- b _0807FF2C
-_0807FEE2:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FEF0:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FEF0
- b _0807FF2C
-_0807FF08:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0807FF2C
-_0807FF16:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _0807FF16
-_0807FF2C:
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end reads_trainer_data_byte0
-
- thumb_func_start GetWildBattleTransition
-GetWildBattleTransition: @ 807FF34
- push {r4,r5,lr}
- bl GetBattleTransitionTypeByMap
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807FF64 @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0807FF6C
- ldr r0, _0807FF68 @ =gUnknown_83C68F0
- lsls r1, r5, 1
- adds r0, 0x1
- b _0807FF70
- .align 2, 0
-_0807FF64: .4byte gEnemyParty
-_0807FF68: .4byte gUnknown_83C68F0
-_0807FF6C:
- ldr r0, _0807FF7C @ =gUnknown_83C68F0
- lsls r1, r5, 1
-_0807FF70:
- adds r1, r0
- ldrb r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0807FF7C: .4byte gUnknown_83C68F0
- thumb_func_end GetWildBattleTransition
-
- thumb_func_start sub_807FF80
-sub_807FF80: @ 807FF80
- push {r4-r6,lr}
- ldr r4, _0807FFB4 @ =gTrainerBattleOpponent_A
- ldrh r1, [r4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0808000C
- ldr r1, _0807FFB8 @ =gTrainers
- ldrh r2, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x1]
- cmp r1, 0x57
- bne _08080008
- adds r1, r2, 0
- movs r0, 0xCD
- lsls r0, 1
- cmp r1, r0
- beq _0807FFB0
- ldr r0, _0807FFBC @ =0x000002df
- cmp r1, r0
- bne _0807FFC0
-_0807FFB0:
- movs r0, 0xC
- b _08080054
- .align 2, 0
-_0807FFB4: .4byte gTrainerBattleOpponent_A
-_0807FFB8: .4byte gTrainers
-_0807FFBC: .4byte 0x000002df
-_0807FFC0:
- ldr r0, _0807FFD4 @ =0x0000019b
- cmp r1, r0
- beq _0807FFCE
- movs r0, 0xB8
- lsls r0, 2
- cmp r1, r0
- bne _0807FFD8
-_0807FFCE:
- movs r0, 0xD
- b _08080054
- .align 2, 0
-_0807FFD4: .4byte 0x0000019b
-_0807FFD8:
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _0807FFE6
- ldr r0, _0807FFEC @ =0x000002e1
- cmp r1, r0
- bne _0807FFF0
-_0807FFE6:
- movs r0, 0xE
- b _08080054
- .align 2, 0
-_0807FFEC: .4byte 0x000002e1
-_0807FFF0:
- ldr r0, _08080000 @ =0x0000019d
- cmp r1, r0
- beq _0807FFFC
- ldr r0, _08080004 @ =0x000002e2
- cmp r1, r0
- bne _0808000C
-_0807FFFC:
- movs r0, 0xF
- b _08080054
- .align 2, 0
-_08080000: .4byte 0x0000019d
-_08080004: .4byte 0x000002e2
-_08080008:
- cmp r1, 0x5A
- bne _08080010
-_0808000C:
- movs r0, 0x10
- b _08080054
-_08080010:
- ldrb r0, [r0, 0x18]
- movs r5, 0x1
- cmp r0, 0x1
- bne _0808001A
- movs r5, 0x2
-_0808001A:
- bl GetBattleTransitionTypeByMap
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4]
- adds r1, r5, 0
- bl reads_trainer_data_byte0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0808004C
- ldr r0, _08080048 @ =gUnknown_83C68F8
- lsls r1, r6, 1
- adds r0, 0x1
- b _08080050
- .align 2, 0
-_08080048: .4byte gUnknown_83C68F8
-_0808004C:
- ldr r0, _0808005C @ =gUnknown_83C68F8
- lsls r1, r6, 1
-_08080050:
- adds r1, r0
- ldrb r0, [r1]
-_08080054:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808005C: .4byte gUnknown_83C68F8
- thumb_func_end sub_807FF80
-
- thumb_func_start sub_8080060
-sub_8080060: @ 8080060
- push {r4,lr}
- ldr r0, _08080084 @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl GetSumOfPlayerPartyLevel
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08080088
- movs r0, 0x3
- b _0808008A
- .align 2, 0
-_08080084: .4byte gEnemyParty
-_08080088:
- movs r0, 0x4
-_0808008A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8080060
-
- thumb_func_start TrainerBattleLoadArg32
-TrainerBattleLoadArg32: @ 8080090
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg32
-
- thumb_func_start TrainerBattleLoadArg16
-TrainerBattleLoadArg16: @ 80800A8
- adds r1, r0, 0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg16
-
- thumb_func_start TrainerBattleLoadArg8
-TrainerBattleLoadArg8: @ 80800B4
- ldrb r0, [r0]
- bx lr
- thumb_func_end TrainerBattleLoadArg8
-
- thumb_func_start trainerflag_opponent
-trainerflag_opponent: @ 80800B8
- ldr r1, _080800CC @ =gTrainerBattleOpponent_A
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_080800CC: .4byte gTrainerBattleOpponent_A
- thumb_func_end trainerflag_opponent
-
- thumb_func_start IsPlayerDefeated
-IsPlayerDefeated: @ 80800D0
- push {lr}
- subs r0, 0x1
- cmp r0, 0x6
- bhi _08080108
- lsls r0, 2
- ldr r1, _080800E4 @ =_080800E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080800E4: .4byte _080800E8
- .align 2, 0
-_080800E8:
- .4byte _08080108
- .4byte _08080104
- .4byte _08080104
- .4byte _08080108
- .4byte _08080108
- .4byte _08080108
- .4byte _08080108
-_08080104:
- movs r0, 0x1
- b _0808010A
-_08080108:
- movs r0, 0
-_0808010A:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerDefeated
-
- thumb_func_start sub_8080110
-sub_8080110: @ 8080110
- ldr r0, _08080140 @ =gUnknown_20386AC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08080144 @ =gTrainerBattleOpponent_A
- strh r1, [r0]
- ldr r0, _08080148 @ =gUnknown_20386B0
- strh r1, [r0]
- ldr r0, _0808014C @ =gUnknown_20386B4
- movs r1, 0
- str r1, [r0]
- ldr r0, _08080150 @ =gUnknown_20386B8
- str r1, [r0]
- ldr r0, _08080154 @ =gUnknown_20386BC
- str r1, [r0]
- ldr r0, _08080158 @ =gUnknown_20386C0
- str r1, [r0]
- ldr r0, _0808015C @ =gUnknown_20386C4
- str r1, [r0]
- ldr r0, _08080160 @ =gUnknown_20386C8
- str r1, [r0]
- ldr r0, _08080164 @ =gUnknown_20386CC
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08080140: .4byte gUnknown_20386AC
-_08080144: .4byte gTrainerBattleOpponent_A
-_08080148: .4byte gUnknown_20386B0
-_0808014C: .4byte gUnknown_20386B4
-_08080150: .4byte gUnknown_20386B8
-_08080154: .4byte gUnknown_20386BC
-_08080158: .4byte gUnknown_20386C0
-_0808015C: .4byte gUnknown_20386C4
-_08080160: .4byte gUnknown_20386C8
-_08080164: .4byte gUnknown_20386CC
- thumb_func_end sub_8080110
-
- thumb_func_start TrainerBattleLoadArgs
-TrainerBattleLoadArgs: @ 8080168
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
-_0808016E:
- ldrb r0, [r4, 0x4]
- cmp r0, 0x6
- bhi _080801E0
- lsls r0, 2
- ldr r1, _08080180 @ =_08080184
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080180: .4byte _08080184
- .align 2, 0
-_08080184:
- .4byte _080801A0
- .4byte _080801AE
- .4byte _080801BC
- .4byte _080801CA
- .4byte _080801D2
- .4byte _080801DA
- .4byte _080801E4
-_080801A0:
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- ldr r1, [r4]
- strb r0, [r1]
- adds r5, 0x1
- b _080801E0
-_080801AE:
- adds r0, r5, 0
- bl TrainerBattleLoadArg16
- ldr r1, [r4]
- strh r0, [r1]
- adds r5, 0x2
- b _080801E0
-_080801BC:
- adds r0, r5, 0
- bl TrainerBattleLoadArg32
- ldr r1, [r4]
- str r0, [r1]
- adds r5, 0x4
- b _080801E0
-_080801CA:
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1]
- b _080801E0
-_080801D2:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1]
- b _080801E0
-_080801DA:
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_080801E0:
- adds r4, 0x8
- b _0808016E
-_080801E4:
- ldr r0, [r4]
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TrainerBattleLoadArgs
-
- thumb_func_start battle_80801F0
-battle_80801F0: @ 80801F0
- push {lr}
- ldr r0, _08080218 @ =gUnknown_20386B0
- ldrh r1, [r0]
- cmp r1, 0
- beq _08080212
- ldr r0, _0808021C @ =gSpecialVar_LastTalked
- strh r1, [r0]
- lsls r0, r1, 24
- lsrs r0, 24
- ldr r1, _08080220 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _08080224 @ =gSelectedEventObject
- strb r0, [r1]
-_08080212:
- pop {r0}
- bx r0
- .align 2, 0
-_08080218: .4byte gUnknown_20386B0
-_0808021C: .4byte gSpecialVar_LastTalked
-_08080220: .4byte gSaveBlock1Ptr
-_08080224: .4byte gSelectedEventObject
- thumb_func_end battle_80801F0
-
- thumb_func_start BattleSetup_ConfigureTrainerBattle
-BattleSetup_ConfigureTrainerBattle: @ 8080228
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8080110
- ldr r4, _08080250 @ =gUnknown_20386AC
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r0, [r4]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _08080318
- lsls r0, 2
- ldr r1, _08080254 @ =_08080258
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080250: .4byte gUnknown_20386AC
-_08080254: .4byte _08080258
- .align 2, 0
-_08080258:
- .4byte _0808028C
- .4byte _0808028C
- .4byte _0808027C
- .4byte _08080284
- .4byte _080802D8
- .4byte _08080294
- .4byte _080802AC
- .4byte _08080294
- .4byte _08080304
-_0808027C:
- ldr r0, _08080280 @ =gUnknown_83C69D8
- b _08080306
- .align 2, 0
-_08080280: .4byte gUnknown_83C69D8
-_08080284:
- ldr r0, _08080288 @ =gUnknown_83C6990
- b _08080296
- .align 2, 0
-_08080288: .4byte gUnknown_83C6990
-_0808028C:
- ldr r0, _08080290 @ =gUnknown_83C6948
- b _0808031A
- .align 2, 0
-_08080290: .4byte gUnknown_83C6948
-_08080294:
- ldr r0, _080802A4 @ =gUnknown_83C6A68
-_08080296:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _080802A8 @ =gUnknown_81A4EE9
- b _08080326
- .align 2, 0
-_080802A4: .4byte gUnknown_83C6A68
-_080802A8: .4byte gUnknown_81A4EE9
-_080802AC:
- bl sub_811231C
- ldr r0, _080802CC @ =gUnknown_83C6990
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _080802D0 @ =gTrainerBattleOpponent_A
- ldrh r0, [r4]
- bl sub_810CE64
- strh r0, [r4]
- ldr r0, _080802D4 @ =gUnknown_81A4F73
- b _08080326
- .align 2, 0
-_080802CC: .4byte gUnknown_83C6990
-_080802D0: .4byte gTrainerBattleOpponent_A
-_080802D4: .4byte gUnknown_81A4F73
-_080802D8:
- bl sub_811231C
- ldr r0, _080802F8 @ =gUnknown_83C6900
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _080802FC @ =gTrainerBattleOpponent_A
- ldrh r0, [r4]
- bl sub_810CE64
- strh r0, [r4]
- ldr r0, _08080300 @ =gUnknown_81A4F3E
- b _08080326
- .align 2, 0
-_080802F8: .4byte gUnknown_83C6900
-_080802FC: .4byte gTrainerBattleOpponent_A
-_08080300: .4byte gUnknown_81A4F3E
-_08080304:
- ldr r0, _08080310 @ =gUnknown_83C6A20
-_08080306:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- ldr r0, _08080314 @ =gUnknown_81A4F21
- b _08080326
- .align 2, 0
-_08080310: .4byte gUnknown_83C6A20
-_08080314: .4byte gUnknown_81A4F21
-_08080318:
- ldr r0, _0808032C @ =gUnknown_83C6900
-_0808031A:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _08080330 @ =gUnknown_81A4EC1
-_08080326:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808032C: .4byte gUnknown_83C6900
-_08080330: .4byte gUnknown_81A4EC1
- thumb_func_end BattleSetup_ConfigureTrainerBattle
-
- thumb_func_start TrainerWantsBattle
-TrainerWantsBattle: @ 8080334
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08080368 @ =gSelectedEventObject
- strb r0, [r2]
- ldr r4, _0808036C @ =gSpecialVar_LastTalked
- ldr r3, _08080370 @ =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r0, [r2, 0x8]
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- bl BattleSetup_ConfigureTrainerBattle
- ldr r0, _08080374 @ =gUnknown_81A4EB4
- bl ScriptContext1_SetupScript
- bl ScriptContext2_Enable
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08080368: .4byte gSelectedEventObject
-_0808036C: .4byte gSpecialVar_LastTalked
-_08080370: .4byte gMapObjects
-_08080374: .4byte gUnknown_81A4EB4
- thumb_func_end TrainerWantsBattle
-
- thumb_func_start GetTrainerFlagFromScriptPointer
-GetTrainerFlagFromScriptPointer: @ 8080378
- push {lr}
- adds r0, 0x2
- bl TrainerBattleLoadArg16
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetTrainerFlagFromScriptPointer
-
- thumb_func_start sub_8080398
-sub_8080398: @ 8080398
- push {r4,lr}
- ldr r0, _080803C4 @ =gSelectedEventObject
- ldrb r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080803C8 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080803C4: .4byte gSelectedEventObject
-_080803C8: .4byte gMapObjects
- thumb_func_end sub_8080398
-
- thumb_func_start ScrSpecial_GetTrainerBattleMode
-ScrSpecial_GetTrainerBattleMode: @ 80803CC
- ldr r0, _080803D4 @ =gUnknown_20386AC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080803D4: .4byte gUnknown_20386AC
- thumb_func_end ScrSpecial_GetTrainerBattleMode
-
- thumb_func_start sub_80803D8
-sub_80803D8: @ 80803D8
- ldr r0, _080803E0 @ =gUnknown_20386CC
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_080803E0: .4byte gUnknown_20386CC
- thumb_func_end sub_80803D8
-
- thumb_func_start ScrSpecial_HasTrainerBeenFought
-ScrSpecial_HasTrainerBeenFought: @ 80803E4
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_HasTrainerBeenFought
-
- thumb_func_start sub_80803FC
-sub_80803FC: @ 80803FC
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_80803FC
-
- thumb_func_start sub_8080410
-sub_8080410: @ 8080410
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_8080410
-
- thumb_func_start HasTrainerAlreadyBeenFought
-HasTrainerAlreadyBeenFought: @ 8080424
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end HasTrainerAlreadyBeenFought
-
- thumb_func_start SetTrainerFlag
-SetTrainerFlag: @ 808043C
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end SetTrainerFlag
-
- thumb_func_start ClearTrainerFlag
-ClearTrainerFlag: @ 8080450
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagClear
- pop {r0}
- bx r0
- thumb_func_end ClearTrainerFlag
-
- thumb_func_start BattleSetup_StartTrainerBattle
-BattleSetup_StartTrainerBattle: @ 8080464
- push {r4,lr}
- ldr r4, _080804A0 @ =gBattleTypeFlags
- movs r0, 0x8
- str r0, [r4]
- bl ScrSpecial_GetTrainerBattleMode
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _0808048C
- bl sub_80803D8
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0808048C
- ldr r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- str r0, [r4]
-_0808048C:
- ldr r1, _080804A4 @ =gMain
- ldr r0, _080804A8 @ =sub_80804AC
- str r0, [r1, 0x8]
- bl sub_807F868
- bl ScriptContext1_Stop
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080804A0: .4byte gBattleTypeFlags
-_080804A4: .4byte gMain
-_080804A8: .4byte sub_80804AC
- thumb_func_end BattleSetup_StartTrainerBattle
-
- thumb_func_start sub_80804AC
-sub_80804AC: @ 80804AC
- push {lr}
- ldr r0, _080804D8 @ =gUnknown_20386AC
- ldrh r0, [r0]
- cmp r0, 0x9
- bne _08080508
- ldr r0, _080804DC @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- adds r1, r0, 0
- cmp r1, 0x1
- bne _080804E8
- ldr r0, _080804E0 @ =gSpecialVar_Result
- strh r1, [r0]
- ldr r0, _080804E4 @ =gUnknown_20386CC
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08080530
- bl sp000_heal_pokemon
- b _080804EE
- .align 2, 0
-_080804D8: .4byte gUnknown_20386AC
-_080804DC: .4byte gBattleOutcome
-_080804E0: .4byte gSpecialVar_Result
-_080804E4: .4byte gUnknown_20386CC
-_080804E8:
- ldr r0, _08080500 @ =gSpecialVar_Result
- movs r1, 0
- strh r1, [r0]
-_080804EE:
- ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_81139BC
- b _0808054E
- .align 2, 0
-_08080500: .4byte gSpecialVar_Result
-_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080508:
- ldr r0, _0808051C @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08080524
- ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- b _0808054E
- .align 2, 0
-_0808051C: .4byte gTrainerBattleOpponent_A
-_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080524:
- ldr r0, _08080538 @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _08080540
-_08080530:
- ldr r0, _0808053C @ =c2_whiteout
- bl SetMainCallback2
- b _0808054E
- .align 2, 0
-_08080538: .4byte gBattleOutcome
-_0808053C: .4byte c2_whiteout
-_08080540:
- ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_81139BC
-_0808054E:
- pop {r0}
- bx r0
- .align 2, 0
-_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_80804AC
-
- thumb_func_start sub_8080558
-sub_8080558: @ 8080558
- push {lr}
- ldr r0, _08080570 @ =gTrainerBattleOpponent_A
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08080578
- ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- b _080805A6
- .align 2, 0
-_08080570: .4byte gTrainerBattleOpponent_A
-_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
-_08080578:
- ldr r0, _0808058C @ =gBattleOutcome
- ldrb r0, [r0]
- bl IsPlayerDefeated
- cmp r0, 0x1
- bne _08080594
- ldr r0, _08080590 @ =c2_whiteout
- bl SetMainCallback2
- b _080805A6
- .align 2, 0
-_0808058C: .4byte gBattleOutcome
-_08080590: .4byte c2_whiteout
-_08080594:
- ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- bl sub_80803FC
- bl sub_810CDE8
- bl sub_81138F8
-_080805A6:
- pop {r0}
- bx r0
- .align 2, 0
-_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_8080558
-
- thumb_func_start ScrSpecial_StartTrainerEyeRematch
-ScrSpecial_StartTrainerEyeRematch: @ 80805B0
- push {lr}
- ldr r1, _080805CC @ =gBattleTypeFlags
- movs r0, 0x8
- str r0, [r1]
- ldr r1, _080805D0 @ =gMain
- ldr r0, _080805D4 @ =sub_8080558
- str r0, [r1, 0x8]
- bl sub_807F868
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080805CC: .4byte gBattleTypeFlags
-_080805D0: .4byte gMain
-_080805D4: .4byte sub_8080558
- thumb_func_end ScrSpecial_StartTrainerEyeRematch
-
- thumb_func_start ScrSpecial_ShowTrainerIntroSpeech
-ScrSpecial_ShowTrainerIntroSpeech: @ 80805D8
- push {lr}
- bl sub_80806D8
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end ScrSpecial_ShowTrainerIntroSpeech
-
- thumb_func_start BattleSetup_GetScriptAddrAfterBattle
-BattleSetup_GetScriptAddrAfterBattle: @ 80805E8
- push {lr}
- ldr r0, _080805F8 @ =gUnknown_20386C4
- ldr r0, [r0]
- cmp r0, 0
- bne _080805F4
- ldr r0, _080805FC @ =EventScript_1C555B
-_080805F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080805F8: .4byte gUnknown_20386C4
-_080805FC: .4byte EventScript_1C555B
- thumb_func_end BattleSetup_GetScriptAddrAfterBattle
-
- thumb_func_start BattleSetup_GetTrainerPostBattleScript
-BattleSetup_GetTrainerPostBattleScript: @ 8080600
- push {lr}
- ldr r0, _08080610 @ =gUnknown_20386C8
- ldr r0, [r0]
- cmp r0, 0
- bne _0808060C
- ldr r0, _08080614 @ =EventScript_1C555B
-_0808060C:
- pop {r1}
- bx r1
- .align 2, 0
-_08080610: .4byte gUnknown_20386C8
-_08080614: .4byte EventScript_1C555B
- thumb_func_end BattleSetup_GetTrainerPostBattleScript
-
- thumb_func_start ScrSpecial_ShowTrainerNonBattlingSpeech
-ScrSpecial_ShowTrainerNonBattlingSpeech: @ 8080618
- push {lr}
- bl sub_8080734
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end ScrSpecial_ShowTrainerNonBattlingSpeech
-
- thumb_func_start PlayTrainerEncounterMusic
-PlayTrainerEncounterMusic: @ 8080628
- push {lr}
- ldr r0, _08080660 @ =gUnknown_203ADFA
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080806BE
- ldr r0, _08080664 @ =gUnknown_20386AC
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _080806BE
- cmp r0, 0x8
- beq _080806BE
- ldr r0, _08080668 @ =gTrainerBattleOpponent_A
- ldrh r0, [r0]
- bl GetTrainerEncounterMusicId
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080806B8
- lsls r0, 2
- ldr r1, _0808066C @ =_08080670
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08080660: .4byte gUnknown_203ADFA
-_08080664: .4byte gUnknown_20386AC
-_08080668: .4byte gTrainerBattleOpponent_A
-_0808066C: .4byte _08080670
- .align 2, 0
-_08080670:
- .4byte _080806AE
- .4byte _080806A8
- .4byte _080806A8
- .4byte _080806B8
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806B8
- .4byte _080806B8
- .4byte _080806AE
- .4byte _080806A8
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806AE
- .4byte _080806AE
-_080806A8:
- @ MUS_SHOUJO
- movs r0, 0x8E
- lsls r0, 1
- b _080806BA
-_080806AE:
- @ MUS_SHOUNEN
- ldr r0, _080806B4 @ =0x0000011d
- b _080806BA
- .align 2, 0
-_080806B4: .4byte 0x0000011d
-_080806B8:
- @ MUS_ROCKET
- ldr r0, _080806C4 @ =0x0000011b
-_080806BA:
- bl PlayNewMapMusic
-_080806BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080806C4: .4byte 0x0000011b
- thumb_func_end PlayTrainerEncounterMusic
-
- thumb_func_start sub_80806C8
-sub_80806C8: @ 80806C8
- push {lr}
- cmp r0, 0
- bne _080806D0
- ldr r0, _080806D4 @ =gString_Dummy
-_080806D0:
- pop {r1}
- bx r1
- .align 2, 0
-_080806D4: .4byte gString_Dummy
- thumb_func_end sub_80806C8
-
- thumb_func_start sub_80806D8
-sub_80806D8: @ 80806D8
- push {lr}
- ldr r0, _080806E8 @ =gUnknown_20386B4
- ldr r0, [r0]
- bl sub_80806C8
- pop {r1}
- bx r1
- .align 2, 0
-_080806E8: .4byte gUnknown_20386B4
- thumb_func_end sub_80806D8
-
- thumb_func_start sub_80806EC
-sub_80806EC: @ 80806EC
- push {r4,lr}
- ldr r0, _08080708 @ =gUnknown_20386B8
- ldr r0, [r0]
- ldr r4, _0808070C @ =gStringVar4
- bl sub_80806C8
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08080708: .4byte gUnknown_20386B8
-_0808070C: .4byte gStringVar4
- thumb_func_end sub_80806EC
-
- thumb_func_start sub_8080710
-sub_8080710: @ 8080710
- push {r4,lr}
- ldr r4, _0808072C @ =gStringVar4
- ldr r0, _08080730 @ =gUnknown_20386BC
- ldr r0, [r0]
- bl sub_80806C8
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808072C: .4byte gStringVar4
-_08080730: .4byte gUnknown_20386BC
- thumb_func_end sub_8080710
-
- thumb_func_start sub_8080734
-sub_8080734: @ 8080734
- push {lr}
- ldr r0, _08080744 @ =gUnknown_20386C0
- ldr r0, [r0]
- bl sub_80806C8
- pop {r1}
- bx r1
- .align 2, 0
-_08080744: .4byte gUnknown_20386C0
- thumb_func_end sub_8080734
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 72cba63a3..eddc03f83 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2034,7 +2034,7 @@ sub_80E68C4: @ 80E68C4
ldr r1, _080E68F8 @ =sub_80E6854
str r1, [r0, 0x8]
bl CleanupOverworldWindowsAndTilemaps
- ldr r0, _080E68FC @ =sub_800FD9C
+ ldr r0, _080E68FC @ =CB2_InitBattle
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@@ -2045,7 +2045,7 @@ _080E68EC:
.align 2, 0
_080E68F4: .4byte gMain
_080E68F8: .4byte sub_80E6854
-_080E68FC: .4byte sub_800FD9C
+_080E68FC: .4byte CB2_InitBattle
thumb_func_end sub_80E68C4
thumb_func_start StartSpecialBattle
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 4c265b65f..01aa8d217 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1637,7 +1637,7 @@ _0808141A:
lsls r2, 4
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08081448 @ =sub_800FD9C
+ ldr r0, _08081448 @ =CB2_InitBattle
bl SetMainCallback2
ldr r1, _0808144C @ =gMain
ldr r0, _08081450 @ =sub_8081668
@@ -1651,7 +1651,7 @@ _0808143A:
.align 2, 0
_08081440: .4byte gBattleTypeFlags
_08081444: .4byte gTrainerBattleOpponent_A
-_08081448: .4byte sub_800FD9C
+_08081448: .4byte CB2_InitBattle
_0808144C: .4byte gMain
_08081450: .4byte sub_8081668
thumb_func_end sub_8081318
@@ -1860,7 +1860,7 @@ _080815EA:
lsls r3, 4
adds r0, r3, 0
strh r0, [r1]
- ldr r0, _08081618 @ =sub_800FD9C
+ ldr r0, _08081618 @ =CB2_InitBattle
bl SetMainCallback2
ldr r1, _0808161C @ =gMain
ldr r0, _08081620 @ =sub_8081668
@@ -1874,7 +1874,7 @@ _0808160A:
.align 2, 0
_08081610: .4byte gBattleTypeFlags
_08081614: .4byte gTrainerBattleOpponent_A
-_08081618: .4byte sub_800FD9C
+_08081618: .4byte CB2_InitBattle
_0808161C: .4byte gMain
_08081620: .4byte sub_8081668
thumb_func_end sub_8081454
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index d8651a24c..b718deee6 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -278,7 +278,7 @@ EvolutionScene: @ 80CDDF4
adds r6, r7, 0
adds r6, 0x1C
adds r0, r1, r6
- ldr r2, _080CE0CC @ =nullsub_10
+ ldr r2, _080CE0CC @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r7
ldrb r2, [r1, 0x5]
@@ -331,7 +331,7 @@ EvolutionScene: @ 80CDDF4
adds r1, r3
lsls r1, 2
adds r6, r1, r6
- ldr r2, _080CE0CC @ =nullsub_10
+ ldr r2, _080CE0CC @ =SpriteCallbackDummy2
str r2, [r6]
adds r1, r7
ldrb r0, [r1, 0x5]
@@ -420,7 +420,7 @@ _080CE0BC: .4byte gMonSpritesGfxPtr
_080CE0C0: .4byte gMultiuseSpriteTemplate
_080CE0C4: .4byte gDummySpriteAffineAnimTable
_080CE0C8: .4byte gSprites
-_080CE0CC: .4byte nullsub_10
+_080CE0CC: .4byte SpriteCallbackDummy2
_080CE0D0: .4byte sub_80CE8DC
_080CE0D4: .4byte gTasks
_080CE0D8: .4byte gPlttBufferUnfaded + 0x40
@@ -562,7 +562,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE2CC @ =nullsub_10
+ ldr r2, _080CE2CC @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -623,7 +623,7 @@ _080CE2BC: .4byte gMonSpritesGfxPtr
_080CE2C0: .4byte gMultiuseSpriteTemplate
_080CE2C4: .4byte gDummySpriteAffineAnimTable
_080CE2C8: .4byte gSprites
-_080CE2CC: .4byte nullsub_10
+_080CE2CC: .4byte SpriteCallbackDummy2
_080CE2D0: .4byte nullsub_76
_080CE2D4: .4byte sub_80D0050
_080CE2D8: .4byte sub_80CE710
@@ -813,7 +813,7 @@ _080CE45C:
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE4C4 @ =nullsub_10
+ ldr r2, _080CE4C4 @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -836,7 +836,7 @@ _080CE4B4: .4byte gMultiuseSpriteTemplate
_080CE4B8: .4byte gDummySpriteAffineAnimTable
_080CE4BC: .4byte gUnknown_2039A20
_080CE4C0: .4byte gSprites
-_080CE4C4: .4byte nullsub_10
+_080CE4C4: .4byte SpriteCallbackDummy2
_080CE4C8: .4byte gMain
_080CE4CC:
ldr r0, _080CE4FC @ =gWirelessCommType
@@ -989,7 +989,7 @@ TradeEvolutionScene: @ 80CE540
adds r0, r3, 0
adds r0, 0x1C
adds r0, r1, r0
- ldr r2, _080CE6D8 @ =nullsub_10
+ ldr r2, _080CE6D8 @ =SpriteCallbackDummy2
str r2, [r0]
adds r1, r3
ldrb r2, [r1, 0x5]
@@ -1074,7 +1074,7 @@ _080CE6C8: .4byte gMonSpritesGfxPtr
_080CE6CC: .4byte gMultiuseSpriteTemplate
_080CE6D0: .4byte gDummySpriteAffineAnimTable
_080CE6D4: .4byte gSprites
-_080CE6D8: .4byte nullsub_10
+_080CE6D8: .4byte SpriteCallbackDummy2
_080CE6DC: .4byte sub_80CF53C
_080CE6E0: .4byte gTasks
_080CE6E4: .4byte gBattle_BG0_X
@@ -1962,14 +1962,14 @@ _080CEEA0:
bl Free
str r6, [r4]
bl FreeAllWindowBuffers
- ldr r0, _080CEECC @ =gUnknown_300537C
+ ldr r0, _080CEECC @ =gCB2_AfterEvolution
ldr r0, [r0]
bl SetMainCallback2
b _080CF528
.align 2, 0
_080CEEC4: .4byte gPaletteFade
_080CEEC8: .4byte gUnknown_2039A20
-_080CEECC: .4byte gUnknown_300537C
+_080CEECC: .4byte gCB2_AfterEvolution
_080CEED0:
ldr r0, _080CEF04 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
@@ -3252,14 +3252,14 @@ _080CF9E0:
negs r0, r0
ands r0, r1
strb r0, [r2]
- ldr r0, _080CFA10 @ =gUnknown_300537C
+ ldr r0, _080CFA10 @ =gCB2_AfterEvolution
ldr r0, [r0]
bl SetMainCallback2
b _080D003A
.align 2, 0
_080CFA08: .4byte gUnknown_2039A20
_080CFA0C: .4byte gTextFlags
-_080CFA10: .4byte gUnknown_300537C
+_080CFA10: .4byte gCB2_AfterEvolution
_080CFA14:
ldr r0, _080CFA60 @ =gBattleCommunication
ldrb r1, [r0, 0x2]
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
index c265d7d01..46587dc52 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -1953,13 +1953,13 @@ _0806D7E2:
bx r1
thumb_func_end DoPoisonFieldEffect_step
- thumb_func_start sub_806D7E8
-sub_806D7E8: @ 806D7E8
+ thumb_func_start RestartWildEncounterImmunitySteps
+RestartWildEncounterImmunitySteps: @ 806D7E8
push {lr}
bl sub_80832D4
pop {r0}
bx r0
- thumb_func_end sub_806D7E8
+ thumb_func_end RestartWildEncounterImmunitySteps
thumb_func_start is_it_battle_time_3
is_it_battle_time_3: @ 806D7F4
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 9919ccc24..a8542fcc3 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -1989,7 +1989,7 @@ mapldr_080842E8: @ 80842E8
movs r1, 0
bl CreateTask
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _0808430C @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -2092,7 +2092,7 @@ mapldr_08084390: @ 8084390
bl FieldObjectTurn
_080843D2:
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _080843F4 @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -2158,7 +2158,7 @@ sub_8084454: @ 8084454
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _0808447C @ =sub_8084484
movs r1, 0
bl CreateTask
@@ -2626,7 +2626,7 @@ _080847F4: .4byte gUnknown_83CC050
sub_80847F8: @ 80847F8
push {r4,lr}
adds r4, r0, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
ldrb r0, [r4, 0xA]
bl sub_809C448
@@ -2889,7 +2889,7 @@ sub_80849F4: @ 80849F4
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _08084A1C @ =sub_8084A24
movs r1, 0
bl CreateTask
@@ -3630,7 +3630,7 @@ sub_8084FA0: @ 8084FA0
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
movs r0, 0
bl SetCameraPanningCallback
@@ -3977,7 +3977,7 @@ sub_8085244: @ 8085244
adds r5, r0, 0
adds r4, r1, 0
bl CameraObjectReset2
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085270 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
@@ -4239,7 +4239,7 @@ sub_8085440: @ 8085440
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
ldr r1, _0808546C @ =gPlayerAvatar
movs r0, 0x1
@@ -4482,7 +4482,7 @@ _0808561C:
sub_8085620: @ 8085620
push {lr}
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r0, _08085638 @ =sub_808563C
movs r1, 0x50
bl CreateTask
@@ -4969,7 +4969,7 @@ sub_80859D4: @ 80859D4
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085A14 @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -5198,7 +5198,7 @@ sub_8085BA8: @ 8085BA8
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl CameraObjectReset2
bl GetPlayerFacingDirection
lsls r0, 24
@@ -5435,7 +5435,7 @@ mapldr_08085D88: @ 8085D88
bl pal_fill_for_maplights
bl sub_8111CF0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08085DCC @ =gFieldCallback
movs r0, 0
str r0, [r1]
@@ -7000,7 +7000,7 @@ sub_80869C0: @ 80869C0
push {r6}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r5, _08086A18 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r5, 0x6]
@@ -7276,7 +7276,7 @@ sub_8086C00: @ 8086C00
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r1, _08086C20 @ =gPlayerAvatar
movs r0, 0x1
strb r0, [r1, 0x6]
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index be79c3b21..7003a10f2 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -134,13 +134,13 @@ npc_pal_op: @ 80DAE54
cmp r0, 0
bne _080DAEB0
ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_ReturnFalse_7
+ bl MetatileBehavior_GetBridgeType
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080DAE96
ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_ReturnFalse_7
+ bl MetatileBehavior_GetBridgeType
lsls r0, 24
lsrs r0, 24
cmp r0, 0
@@ -1251,7 +1251,7 @@ _080DB6E8:
cmp r0, 0
bne _080DB73C
adds r0, r4, 0
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080DB73C
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index 56af66346..b5ec3a622 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -224,7 +224,7 @@ GetGroundEffectFlags_LongGrassOnSpawn: @ 8067CE8
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D00
@@ -243,7 +243,7 @@ GetGroundEffectFlags_LongGrassOnBeginStep: @ 8067D08
push {r4,lr}
adds r4, r1, 0
ldrb r0, [r0, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _08067D20
@@ -838,12 +838,12 @@ FieldObjectSetSpriteOamTableForLongGrass: @ 8068154
cmp r0, 0
blt _080681A8
ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_ReturnFalse_3
+ bl MetatileBehavior_IsLongGrass
lsls r0, 24
cmp r0, 0
beq _080681A8
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 57f7fbe1c..8787ff647 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -12214,8 +12214,8 @@ _0806360C:
bx r1
thumb_func_end sub_80635DC
- thumb_func_start npc_set_running_behaviour_etc
-npc_set_running_behaviour_etc: @ 8063610
+ thumb_func_start SetTrainerMovementType
+SetTrainerMovementType: @ 8063610
push {r4,lr}
mov r12, r0
lsls r1, 24
@@ -12253,10 +12253,10 @@ npc_set_running_behaviour_etc: @ 8063610
.align 2, 0
_08063654: .4byte gSprites
_08063658: .4byte gUnknown_839FBC8
- thumb_func_end npc_set_running_behaviour_etc
+ thumb_func_end SetTrainerMovementType
- thumb_func_start npc_running_behaviour_by_direction
-npc_running_behaviour_by_direction: @ 806365C
+ thumb_func_start GetTrainerFacingDirectionMovementType
+GetTrainerFacingDirectionMovementType: @ 806365C
lsls r0, 24
lsrs r0, 24
ldr r1, _08063668 @ =gUnknown_83A649C
@@ -12265,7 +12265,7 @@ npc_running_behaviour_by_direction: @ 806365C
bx lr
.align 2, 0
_08063668: .4byte gUnknown_83A649C
- thumb_func_end npc_running_behaviour_by_direction
+ thumb_func_end GetTrainerFacingDirectionMovementType
thumb_func_start npc_block_way__next_tile
npc_block_way__next_tile: @ 806366C
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index c753fb948..5e7f64670 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -3964,7 +3964,7 @@ sub_805D0F8: @ 805D0F8
lsls r4, 24
lsrs r4, 24
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl sav1_reset_battle_music_maybe
bl Overworld_ChangeMusicToDefault
ldr r2, _0805D148 @ =gPlayerAvatar
@@ -4005,7 +4005,7 @@ sub_805D154: @ 805D154
lsls r4, 24
lsrs r4, 24
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
ldr r2, _0805D19C @ =gPlayerAvatar
ldrb r1, [r2]
movs r0, 0xF7
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index f8c0970c9..8d07f3779 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -306,7 +306,7 @@ sub_807F028: @ 807F028
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
- bl sav1_get_flash_used_on_map
+ bl Overworld_GetFlashLevel
lsls r0, 24
lsrs r0, 24
movs r5, 0
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 9b1ab2492..a143d2776 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -5845,7 +5845,7 @@ _0810AD1E:
cmp r6, 0x1
bne _0810AD90
bl ScriptContext2_Enable
- bl player_bitmagic
+ bl FreezeEventObjects
bl sub_805C270
bl sub_805C780
ldr r2, _0810AD88 @ =gSpecialVar_ItemId
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index fd1cf3dc6..8f896ea7c 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -4012,8 +4012,8 @@ GetRfuPlayerCount: @ 80FA4EC
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end GetRfuPlayerCount
- thumb_func_start IsRfuTaskFinished
-IsRfuTaskFinished: @ 80FA4F8
+ thumb_func_start IsLinkRfuTaskFinished
+IsLinkRfuTaskFinished: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end IsRfuTaskFinished
+ thumb_func_end IsLinkRfuTaskFinished
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 94a07fdaf..9fc1f72cc 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -12709,7 +12709,7 @@ _0811C096:
lsls r2, 4
adds r1, r2, 0
strh r1, [r0]
- ldr r0, _0811C0DC @ =sub_800FD9C
+ ldr r0, _0811C0DC @ =CB2_InitBattle
bl SetMainCallback2
pop {r4-r7}
pop {r0}
@@ -12719,7 +12719,7 @@ _0811C0CC: .4byte gPlayerParty
_0811C0D0: .4byte gEnemyParty
_0811C0D4: .4byte gUnknown_203B0D4
_0811C0D8: .4byte gTrainerBattleOpponent_A
-_0811C0DC: .4byte sub_800FD9C
+_0811C0DC: .4byte CB2_InitBattle
thumb_func_end sub_811C04C
thumb_func_start sub_811C0E0
diff --git a/asm/map_obj_80688E4.s b/asm/map_obj_80688E4.s
index bc06896bc..04df8c938 100644
--- a/asm/map_obj_80688E4.s
+++ b/asm/map_obj_80688E4.s
@@ -82,8 +82,8 @@ _0806896E:
bx r1
thumb_func_end FreezeMapObject
- thumb_func_start player_bitmagic
-player_bitmagic: @ 8068974
+ thumb_func_start FreezeEventObjects
+FreezeEventObjects: @ 8068974
push {r4,r5,lr}
movs r4, 0
ldr r5, _080689A8 @ =gMapObjects
@@ -114,7 +114,7 @@ _08068998:
.align 2, 0
_080689A8: .4byte gMapObjects
_080689AC: .4byte gPlayerAvatar
- thumb_func_end player_bitmagic
+ thumb_func_end FreezeEventObjects
thumb_func_start FreezeMapObjectsExceptOne
FreezeMapObjectsExceptOne: @ 80689B0
diff --git a/asm/overworld.s b/asm/overworld.s
index 553ad6aef..9b9fe037f 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -1708,7 +1708,7 @@ sub_8055864: @ 8055864
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
- bl sub_806D7E8
+ bl RestartWildEncounterImmunitySteps
adds r0, r5, 0
adds r1, r4, 0
bl sub_810C578
@@ -1771,7 +1771,7 @@ sub_8055920: @ 8055920
bl TrySetMapSaveWarpStatus
bl sub_806E110
bl nullsub_74
- bl sub_806D7E8
+ bl RestartWildEncounterImmunitySteps
ldr r0, _080559A0 @ =gSaveBlock1Ptr
ldr r1, [r0]
movs r0, 0x4
@@ -2284,8 +2284,8 @@ _08055D28: .4byte gUnknown_83C68E0
_08055D2C: .4byte gSaveBlock1Ptr
thumb_func_end Overworld_SetFlashLevel
- thumb_func_start sav1_get_flash_used_on_map
-sav1_get_flash_used_on_map: @ 8055D30
+ thumb_func_start Overworld_GetFlashLevel
+Overworld_GetFlashLevel: @ 8055D30
ldr r0, _08055D3C @ =gSaveBlock1Ptr
ldr r0, [r0]
adds r0, 0x30
@@ -2293,7 +2293,7 @@ sav1_get_flash_used_on_map: @ 8055D30
bx lr
.align 2, 0
_08055D3C: .4byte gSaveBlock1Ptr
- thumb_func_end sav1_get_flash_used_on_map
+ thumb_func_end Overworld_GetFlashLevel
thumb_func_start SetCurrentMapLayout
SetCurrentMapLayout: @ 8055D40
@@ -3522,8 +3522,8 @@ _0805669C: .4byte sub_8056534
_080566A0: .4byte sub_80565B4
thumb_func_end CB2_NewGame
- thumb_func_start c2_whiteout
-c2_whiteout: @ 80566A4
+ thumb_func_start CB2_WhiteOut
+CB2_WhiteOut: @ 80566A4
push {lr}
sub sp, 0x4
ldr r1, _08056708 @ =gMain
@@ -3569,7 +3569,7 @@ _0805670C: .4byte gFieldCallback
_08056710: .4byte sub_807F5F0
_08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
- thumb_func_end c2_whiteout
+ thumb_func_end CB2_WhiteOut
thumb_func_start CB2_LoadMap
CB2_LoadMap: @ 805671C
@@ -3944,7 +3944,7 @@ VBlankCB_Field: @ 8056A14
thumb_func_start sub_8056A34
sub_8056A34: @ 8056A34
push {lr}
- bl sav1_get_flash_used_on_map
+ bl Overworld_GetFlashLevel
lsls r0, 24
lsrs r0, 24
cmp r0, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 946d184e6..25befd61d 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -15699,7 +15699,7 @@ sub_8126704: @ 8126704
cmp r4, 0
beq _08126754
bl sub_811F070
- ldr r0, _08126750 @ =gUnknown_300537C
+ ldr r0, _08126750 @ =gCB2_AfterEvolution
ldr r1, [r6]
str r1, [r0]
ldrb r3, [r6, 0x9]
@@ -15713,7 +15713,7 @@ sub_8126704: @ 8126704
.align 2, 0
_08126748: .4byte gUnknown_203B0A0
_0812674C: .4byte gPlayerParty
-_08126750: .4byte gUnknown_300537C
+_08126750: .4byte gCB2_AfterEvolution
_08126754:
ldr r0, _08126768 @ =gTasks
lsls r1, r5, 2
@@ -16248,7 +16248,7 @@ _08126BCE:
thumb_func_start sub_8126BD4
sub_8126BD4: @ 8126BD4
push {r4,r5,lr}
- ldr r1, _08126C10 @ =gUnknown_300537C
+ ldr r1, _08126C10 @ =gCB2_AfterEvolution
ldr r4, _08126C14 @ =gUnknown_203B0A0
ldr r0, [r4]
str r0, [r1]
@@ -16274,7 +16274,7 @@ sub_8126BD4: @ 8126BD4
pop {r0}
bx r0
.align 2, 0
-_08126C10: .4byte gUnknown_300537C
+_08126C10: .4byte gCB2_AfterEvolution
_08126C14: .4byte gUnknown_203B0A0
_08126C18: .4byte gSpecialVar_ItemId
_08126C1C: .4byte gPlayerParty
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index d9ef35bd4..4c090a2d9 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -4033,13 +4033,13 @@ _081366B8:
adds r0, r1
movs r1, 0xD
muls r1, r4
- ldr r2, _081367A0 @ =gUnknown_824FC40
+ ldr r2, _081367A0 @ =gAbilityNames
adds r1, r2
bl StringCopy
ldr r0, [r6]
ldr r2, _081367A4 @ =0x000031cc
adds r0, r2
- ldr r1, _081367A8 @ =gUnknown_824FB08
+ ldr r1, _081367A8 @ =gAbilityDescriptionPointers
lsls r4, 2
adds r4, r1
ldr r1, [r4]
@@ -4088,9 +4088,9 @@ _08136790: .4byte gExperienceTables
_08136794: .4byte gBaseStats
_08136798: .4byte 0x000031b0
_0813679C: .4byte 0x000031bc
-_081367A0: .4byte gUnknown_824FC40
+_081367A0: .4byte gAbilityNames
_081367A4: .4byte 0x000031cc
-_081367A8: .4byte gUnknown_824FB08
+_081367A8: .4byte gAbilityDescriptionPointers
_081367AC: .4byte 0x0000326c
thumb_func_end sub_8136350
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index a96501d7b..be7554fd0 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -109,13 +109,13 @@ _080CA3C0: .4byte CB2_DoHallOfFameScreen
thumb_func_start sp0C8_whiteout_maybe
sp0C8_whiteout_maybe: @ 80CA3C4
push {lr}
- ldr r0, _080CA3D4 @ =c2_whiteout
+ ldr r0, _080CA3D4 @ =CB2_WhiteOut
bl SetMainCallback2
movs r0, 0
pop {r1}
bx r1
.align 2, 0
-_080CA3D4: .4byte c2_whiteout
+_080CA3D4: .4byte CB2_WhiteOut
thumb_func_end sp0C8_whiteout_maybe
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 8dd3809f1..5467aec2f 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -11052,7 +11052,7 @@ _0805223C:
ldrb r0, [r0]
movs r1, 0
bl sub_805080C
- ldr r1, _08052284 @ =gUnknown_300537C
+ ldr r1, _08052284 @ =gCB2_AfterEvolution
ldr r0, _08052288 @ =sub_8050948
str r0, [r1]
ldr r7, _0805228C @ =gUnknown_2031DA4
@@ -11081,7 +11081,7 @@ _0805223C:
b _080522A8
.align 2, 0
_08052280: .4byte gSpecialVar_0x8005
-_08052284: .4byte gUnknown_300537C
+_08052284: .4byte gCB2_AfterEvolution
_08052288: .4byte sub_8050948
_0805228C: .4byte gUnknown_2031DA4
_08052290: .4byte gPlayerParty
@@ -13277,7 +13277,7 @@ _08053698:
ldrb r0, [r0]
movs r1, 0
bl sub_805080C
- ldr r1, _080536E0 @ =gUnknown_300537C
+ ldr r1, _080536E0 @ =gCB2_AfterEvolution
ldr r0, _080536E4 @ =sub_8050948
str r0, [r1]
ldr r7, _080536E8 @ =gUnknown_2031DA4
@@ -13306,7 +13306,7 @@ _08053698:
b _08053704
.align 2, 0
_080536DC: .4byte gSpecialVar_0x8005
-_080536E0: .4byte gUnknown_300537C
+_080536E0: .4byte gCB2_AfterEvolution
_080536E4: .4byte sub_8050948
_080536E8: .4byte gUnknown_2031DA4
_080536EC: .4byte gPlayerParty
@@ -13404,7 +13404,7 @@ _080537A8:
.align 2, 0
_080537B4: .4byte gSoftResetDisabled
_080537B8:
- ldr r0, _080537F4 @ =gUnknown_300537C
+ ldr r0, _080537F4 @ =gCB2_AfterEvolution
ldr r1, _080537F8 @ =sub_8053E8C
mov r8, r1
str r1, [r0]
@@ -13433,7 +13433,7 @@ _080537B8:
bl TradeEvolutionScene
b _0805380E
.align 2, 0
-_080537F4: .4byte gUnknown_300537C
+_080537F4: .4byte gCB2_AfterEvolution
_080537F8: .4byte sub_8053E8C
_080537FC: .4byte gUnknown_2031DA4
_08053800: .4byte gPlayerParty
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08054396
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index c52229215..659e96c32 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -87,7 +87,7 @@ sub_8081B84: @ 8081B84
_08081BC0:
adds r0, r5, 0
adds r1, r6, 0
- bl TrainerWantsBattle
+ bl ConfigureAndSetUpOneTrainerBattle
adds r0, r4, r5
lsls r0, 2
ldr r1, _08081BE0 @ =gMapObjects
@@ -718,16 +718,16 @@ _0808204A:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl npc_set_running_behaviour_etc
+ bl SetTrainerMovementType
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@@ -1277,17 +1277,17 @@ _0808246E:
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
- bl npc_set_running_behaviour_etc
+ bl SetTrainerMovementType
ldr r4, [sp]
ldrb r0, [r4, 0x18]
lsls r0, 28
lsrs r0, 28
- bl npc_running_behaviour_by_direction
+ bl GetTrainerFacingDirectionMovementType
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index dedcfa761..86e3d964f 100644
--- a/asm/wild_encounter.s
+++ b/asm/wild_encounter.s
@@ -878,7 +878,7 @@ _08082D78:
bl sub_8058F1C
lsls r0, 24
lsrs r0, 24
- bl MetatileBehavior_ReturnFalse_6
+ bl MetatileBehavior_IsBridge
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -932,7 +932,7 @@ _08082DFA:
lsls r0, 24
cmp r0, 0
beq _08082E46
- bl sub_807F78C
+ bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082E48
.align 2, 0
@@ -950,7 +950,7 @@ _08082E24:
cmp r0, 0x1
bne _08082E40
_08082E38:
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082E48
_08082E40:
@@ -999,7 +999,7 @@ Special_RockSmashEncounter: @ 8082E54
lsrs r4, r0, 24
cmp r4, 0x1
bne _08082EB0
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
_08082E9C:
ldr r0, _08082EAC @ =gSpecialVar_Result
strh r4, [r0]
@@ -1079,7 +1079,7 @@ _08082F1C:
cmp r0, 0x1
bne _08082F44
_08082F3C:
- bl sub_807F78C
+ bl BattleSetup_StartRoamerBattle
movs r0, 0x1
b _08082F6E
_08082F44:
@@ -1096,7 +1096,7 @@ _08082F44:
_08082F58:
movs r2, 0
bl sub_8082AEC
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
movs r0, 0x1
b _08082F6E
.align 2, 0
@@ -1160,7 +1160,7 @@ sub_8082FB0: @ 8082FB0
bl sub_8082B64
movs r0, 0xC
bl IncrementGameStat
- bl sub_807F704
+ bl BattleSetup_StartWildBattle
pop {r4,r5}
pop {r0}
bx r0