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.s26
-rw-r--r--asm/battle_setup.s2180
-rw-r--r--asm/battle_tower.s102
-rw-r--r--asm/cable_club.s12
-rw-r--r--asm/dodrio_berry_picking.s16
-rw-r--r--asm/easy_chat.s6
-rw-r--r--asm/event_data.s867
-rw-r--r--asm/evolution_scene.s26
-rw-r--r--asm/field_control_avatar.s48
-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.s16
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s10
-rw-r--r--asm/field_specials.s5729
-rw-r--r--asm/fldeff_cut.s4
-rw-r--r--asm/fldeff_flash.s4
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/learn_move.s10
-rw-r--r--asm/link_rfu_2.s6
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/macros/event.inc23
-rw-r--r--asm/macros/map.inc4
-rw-r--r--asm/macros/movement.inc2
-rw-r--r--asm/mail.s1041
-rw-r--r--asm/map_obj_80688E4.s6
-rw-r--r--asm/overworld.s68
-rw-r--r--asm/party_menu.s62
-rw-r--r--asm/pokemon_icon.s848
-rw-r--r--asm/pokemon_size_record.s24
-rw-r--r--asm/pokemon_storage_system.s18
-rw-r--r--asm/pokemon_summary_screen.s18
-rw-r--r--asm/post_battle_event_funcs.s10
-rw-r--r--asm/script_menu.s2058
-rw-r--r--asm/script_pokemon_util_80A0058.s14
-rw-r--r--asm/script_pokemon_util_80BF8FC.s30
-rw-r--r--asm/trade.s60
-rw-r--r--asm/trainer_card.s20
-rw-r--r--asm/trainer_see.s14
-rw-r--r--asm/union_room_chat.s8
-rw-r--r--asm/wild_encounter.s24
50 files changed, 516 insertions, 34994 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
deleted file mode 100644
index bb696b4ab..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 sub_80803CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bne _08015824
- bl sub_80803D8
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0801580C
- ldr r1, _08015808 @ =gBattleCommunication
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08015810
- .align 2, 0
-_08015808: .4byte gBattleCommunication
-_0801580C:
- ldr r0, _0801581C @ =gBattleCommunication
- strb r4, [r0, 0x5]
-_08015810:
- movs r0, 0x1
- bl GetBattlerAtPosition
- ldr r1, _08015820 @ =gBattlerAttacker
- strb r0, [r1]
- b _0801582A
- .align 2, 0
-_0801581C: .4byte gBattleCommunication
-_08015820: .4byte gBattlerAttacker
-_08015824:
- ldr r1, _0801583C @ =gBattleCommunication
- movs r0, 0
- strb r0, [r1, 0x5]
-_0801582A:
- ldr r1, _08015840 @ =gBattlescriptCurrInstr
- ldr r0, _08015844 @ =gUnknown_81D8806
- str r0, [r1]
-_08015830:
- ldr r1, _08015848 @ =gBattleMainFunc
- ldr r0, _0801584C @ =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 bd1011f9a..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]
@@ -1802,7 +1802,7 @@ _080D8120:
cmp r1, 0
beq _080D8134
mov r0, sp
- bl sub_80E7460
+ bl CopyEReaderTrainerName5
mov r4, sp
b _080D8382
_080D8134:
@@ -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 5a9797056..000000000
--- a/asm/battle_setup.s
+++ /dev/null
@@ -1,2180 +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 sub_807F888
-sub_807F888: @ 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 sub_807F888
-
- 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 sub_807F904
-sub_807F904: @ 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 sub_807F904
-
- thumb_func_start sub_807F998
-sub_807F998: @ 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 sub_807F998
-
- thumb_func_start sub_807F9D8
-sub_807F9D8: @ 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 sub_807F9D8
-
- thumb_func_start sub_807FA68
-sub_807FA68: @ 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 sub_807FA68
-
- thumb_func_start sub_807FABC
-sub_807FABC: @ 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 sub_807FABC
-
- 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 sub_8159F40
- 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 sub_80803CC
-sub_80803CC: @ 80803CC
- ldr r0, _080803D4 @ =gUnknown_20386AC
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080803D4: .4byte gUnknown_20386AC
- thumb_func_end sub_80803CC
-
- 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 sub_80803CC
- 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 sub_80805B0
-sub_80805B0: @ 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 sub_80805B0
-
- thumb_func_start sub_80805D8
-sub_80805D8: @ 80805D8
- push {lr}
- bl sub_80806D8
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_80805D8
-
- 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 @ =gUnknown_81C555B
-_080805F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080805F8: .4byte gUnknown_20386C4
-_080805FC: .4byte gUnknown_81C555B
- 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 @ =gUnknown_81C555B
-_0808060C:
- pop {r1}
- bx r1
- .align 2, 0
-_08080610: .4byte gUnknown_20386C8
-_08080614: .4byte gUnknown_81C555B
- thumb_func_end BattleSetup_GetTrainerPostBattleScript
-
- thumb_func_start sub_8080618
-sub_8080618: @ 8080618
- push {lr}
- bl sub_8080734
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_8080618
-
- thumb_func_start sub_8080628
-sub_8080628: @ 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:
- movs r0, 0x8E
- lsls r0, 1
- b _080806BA
-_080806AE:
- ldr r0, _080806B4 @ =0x0000011d
- b _080806BA
- .align 2, 0
-_080806B4: .4byte 0x0000011d
-_080806B8:
- ldr r0, _080806C4 @ =0x0000011b
-_080806BA:
- bl PlayNewMapMusic
-_080806BE:
- pop {r0}
- bx r0
- .align 2, 0
-_080806C4: .4byte 0x0000011b
- thumb_func_end sub_8080628
-
- 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 08fefffbc..eddc03f83 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -358,8 +358,8 @@ _080E5C20: .4byte gSaveBlock2Ptr
_080E5C24: .4byte 0x0000056c
thumb_func_end sub_80E5B14
- thumb_func_start sub_80E5C28
-sub_80E5C28: @ 80E5C28
+ thumb_func_start ChooseNextBattleTowerTrainer
+ChooseNextBattleTowerTrainer: @ 80E5C28
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -637,7 +637,7 @@ _080E5E4C: .4byte 0x00000572
_080E5E50: .4byte gSaveBlock2Ptr
_080E5E54: .4byte 0x0000056c
_080E5E58: .4byte 0x00000571
- thumb_func_end sub_80E5C28
+ thumb_func_end ChooseNextBattleTowerTrainer
thumb_func_start sub_80E5E5C
sub_80E5E5C: @ 80E5E5C
@@ -651,14 +651,14 @@ sub_80E5E5C: @ 80E5E5C
_080E5E6C: .4byte 0x00004010
thumb_func_end sub_80E5E5C
- thumb_func_start sub_80E5E70
-sub_80E5E70: @ 80E5E70
+ thumb_func_start SetEReaderTrainerGfxId
+SetEReaderTrainerGfxId: @ 80E5E70
push {lr}
movs r0, 0xC8
bl sub_80E5E5C
pop {r0}
bx r0
- thumb_func_end sub_80E5E70
+ thumb_func_end SetEReaderTrainerGfxId
thumb_func_start sub_80E5E7C
sub_80E5E7C: @ 80E5E7C
@@ -1700,8 +1700,8 @@ _080E6640: .4byte gUnknown_84020C4
_080E6644: .4byte 0x0000ffff
thumb_func_end sub_80E6564
- thumb_func_start sub_80E6648
-sub_80E6648: @ 80E6648
+ thumb_func_start CheckPartyBattleTowerBanlist
+CheckPartyBattleTowerBanlist: @ 80E6648
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -1854,7 +1854,7 @@ _080E6770:
_080E6780: .4byte gSpecialVar_0x8004
_080E6784: .4byte gSaveBlock2Ptr
_080E6788: .4byte 0x0000055c
- thumb_func_end sub_80E6648
+ thumb_func_end CheckPartyBattleTowerBanlist
thumb_func_start sub_80E678C
sub_80E678C: @ 80E678C
@@ -1918,8 +1918,8 @@ _080E67F0:
_080E67F8: .4byte gStringVar4
thumb_func_end sub_80E678C
- thumb_func_start sub_80E67FC
-sub_80E67FC: @ 80E67FC
+ thumb_func_start PrintBattleTowerTrainerGreeting
+PrintBattleTowerTrainerGreeting: @ 80E67FC
push {lr}
ldr r0, _080E6818 @ =gSaveBlock2Ptr
ldr r2, [r0]
@@ -1962,7 +1962,7 @@ _080E684C:
bx r0
.align 2, 0
_080E6850: .4byte 0xffffc154
- thumb_func_end sub_80E67FC
+ thumb_func_end PrintBattleTowerTrainerGreeting
thumb_func_start sub_80E6854
sub_80E6854: @ 80E6854
@@ -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,11 +2045,11 @@ _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 sub_80E6900
-sub_80E6900: @ 80E6900
+ thumb_func_start StartSpecialBattle
+StartSpecialBattle: @ 80E6900
push {r4-r6,lr}
sub sp, 0x4
ldr r0, _080E691C @ =gUnknown_203AAB8
@@ -2168,10 +2168,10 @@ _080E69FC: .4byte gBattleTypeFlags
_080E6A00: .4byte 0x00000808
_080E6A04: .4byte gTrainerBattleOpponent_A
_080E6A08: .4byte sub_80E68C4
- thumb_func_end sub_80E6900
+ thumb_func_end StartSpecialBattle
- thumb_func_start sub_80E6A0C
-sub_80E6A0C: @ 80E6A0C
+ thumb_func_start SetBattleTowerProperty
+SetBattleTowerProperty: @ 80E6A0C
push {r4-r6,lr}
ldr r1, _080E6A34 @ =gSaveBlock2Ptr
ldr r0, [r1]
@@ -2469,10 +2469,10 @@ _080E6C80:
bx r0
.align 2, 0
_080E6C88: .4byte 0x0000055c
- thumb_func_end sub_80E6A0C
+ thumb_func_end SetBattleTowerProperty
- thumb_func_start sub_80E6C8C
-sub_80E6C8C: @ 80E6C8C
+ thumb_func_start BattleTowerUtil
+BattleTowerUtil: @ 80E6C8C
push {r4,lr}
ldr r1, _080E6CB4 @ =gSaveBlock2Ptr
ldr r0, [r1]
@@ -2652,10 +2652,10 @@ _080E6E08:
bx r0
.align 2, 0
_080E6E10: .4byte 0x0000055c
- thumb_func_end sub_80E6C8C
+ thumb_func_end BattleTowerUtil
- thumb_func_start sub_80E6E14
-sub_80E6E14: @ 80E6E14
+ thumb_func_start SetBattleTowerParty
+SetBattleTowerParty: @ 80E6E14
push {r4,r5,lr}
movs r2, 0
ldr r5, _080E6E3C @ =gUnknown_203B0D4
@@ -2671,7 +2671,7 @@ _080E6E1E:
adds r2, 0x1
cmp r2, 0x2
ble _080E6E1E
- bl sub_80A03D8
+ bl ReducePlayerPartyToThree
pop {r4,r5}
pop {r0}
bx r0
@@ -2679,7 +2679,7 @@ _080E6E1E:
_080E6E3C: .4byte gUnknown_203B0D4
_080E6E40: .4byte gSaveBlock2Ptr
_080E6E44: .4byte 0x0000056d
- thumb_func_end sub_80E6E14
+ thumb_func_end SetBattleTowerParty
thumb_func_start sub_80E6E48
sub_80E6E48: @ 80E6E48
@@ -2858,8 +2858,8 @@ _080E6FB0: .4byte 0x0000056d
_080E6FB4: .4byte gUnknown_2024220
thumb_func_end sub_80E6EE0
- thumb_func_start sub_80E6FB8
-sub_80E6FB8: @ 80E6FB8
+ thumb_func_start SaveBattleTowerProgress
+SaveBattleTowerProgress: @ 80E6FB8
push {r4,r5,lr}
ldr r0, _080E703C @ =gSaveBlock2Ptr
ldr r1, [r0]
@@ -2933,15 +2933,15 @@ _080E7048: .4byte 0x00000564
_080E704C: .4byte gBattleOutcome
_080E7050: .4byte 0x0000055d
_080E7054: .4byte 0x0000055e
- thumb_func_end sub_80E6FB8
+ thumb_func_end SaveBattleTowerProgress
- thumb_func_start sub_80E7058
-sub_80E7058: @ 80E7058
+ thumb_func_start BattleTower_SoftReset
+BattleTower_SoftReset: @ 80E7058
push {lr}
bl DoSoftReset
pop {r0}
bx r0
- thumb_func_end sub_80E7058
+ thumb_func_end BattleTower_SoftReset
thumb_func_start sub_80E7064
sub_80E7064: @ 80E7064
@@ -3142,8 +3142,8 @@ _080E71C8: .4byte 0x0000ffff
_080E71CC: .4byte 0x0000270f
thumb_func_end sub_80E7188
- thumb_func_start sub_80E71D0
-sub_80E71D0: @ 80E71D0
+ thumb_func_start DetermineBattleTowerPrize
+DetermineBattleTowerPrize: @ 80E71D0
push {r4,r5,lr}
ldr r4, _080E7214 @ =gSaveBlock2Ptr
ldr r1, [r4]
@@ -3201,10 +3201,10 @@ _080E7240:
bx r0
.align 2, 0
_080E7248: .4byte gUnknown_84020DA
- thumb_func_end sub_80E71D0
+ thumb_func_end DetermineBattleTowerPrize
- thumb_func_start sub_80E724C
-sub_80E724C: @ 80E724C
+ thumb_func_start GiveBattleTowerPrize
+GiveBattleTowerPrize: @ 80E724C
push {r4-r6,lr}
ldr r5, _080E7288 @ =gSaveBlock2Ptr
ldr r1, [r5]
@@ -3255,10 +3255,10 @@ _080E72AA:
.align 2, 0
_080E72B0: .4byte gSpecialVar_Result
_080E72B4: .4byte 0x0000055e
- thumb_func_end sub_80E724C
+ thumb_func_end GiveBattleTowerPrize
- thumb_func_start sub_80E72B8
-sub_80E72B8: @ 80E72B8
+ thumb_func_start AwardBattleTowerRibbons
+AwardBattleTowerRibbons: @ 80E72B8
push {r4-r7,lr}
ldr r0, _080E7334 @ =gSaveBlock2Ptr
ldr r0, [r0]
@@ -3328,7 +3328,7 @@ _080E7338: .4byte 0x0000055c
_080E733C: .4byte gSpecialVar_Result
_080E7340: .4byte 0x0000056d
_080E7344: .4byte gPlayerParty
- thumb_func_end sub_80E72B8
+ thumb_func_end AwardBattleTowerRibbons
thumb_func_start sub_80E7348
sub_80E7348: @ 80E7348
@@ -3469,8 +3469,8 @@ _080E7458: .4byte gSaveBlock2Ptr
_080E745C: .4byte 0x000004a1
thumb_func_end GetEreaderTrainerClassId
- thumb_func_start sub_80E7460
-sub_80E7460: @ 80E7460
+ thumb_func_start CopyEReaderTrainerName5
+CopyEReaderTrainerName5: @ 80E7460
push {r4,lr}
adds r3, r0, 0
movs r2, 0
@@ -3495,7 +3495,7 @@ _080E746E:
.align 2, 0
_080E7488: .4byte gSaveBlock2Ptr
_080E748C: .4byte 0x000004a4
- thumb_func_end sub_80E7460
+ thumb_func_end CopyEReaderTrainerName5
thumb_func_start ValidateEReaderTrainer
ValidateEReaderTrainer: @ 80E7490
@@ -3594,8 +3594,8 @@ _080E752A:
bx r0
thumb_func_end sub_80E7524
- thumb_func_start sub_80E7538
-sub_80E7538: @ 80E7538
+ thumb_func_start PrintEReaderTrainerGreeting
+PrintEReaderTrainerGreeting: @ 80E7538
push {lr}
ldr r0, _080E754C @ =gSaveBlock2Ptr
ldr r0, [r0]
@@ -3607,7 +3607,7 @@ sub_80E7538: @ 80E7538
bx r0
.align 2, 0
_080E754C: .4byte gSaveBlock2Ptr
- thumb_func_end sub_80E7538
+ thumb_func_end PrintEReaderTrainerGreeting
thumb_func_start sub_80E7550
sub_80E7550: @ 80E7550
@@ -3649,8 +3649,8 @@ _080E7594: .4byte gSaveBlock2Ptr
_080E7598: .4byte 0x000004bc
thumb_func_end sub_80E7550
- thumb_func_start sub_80E759C
-sub_80E759C: @ 80E759C
+ thumb_func_start Dummy_TryEnableBravoTrainerBattleTower
+Dummy_TryEnableBravoTrainerBattleTower: @ 80E759C
push {lr}
movs r0, 0x1
_080E75A0:
@@ -3659,6 +3659,6 @@ _080E75A0:
bge _080E75A0
pop {r0}
bx r0
- thumb_func_end sub_80E759C
+ thumb_func_end Dummy_TryEnableBravoTrainerBattleTower
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 76346a28c..01aa8d217 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1625,7 +1625,7 @@ _08081404:
.align 2, 0
_0808140C: .4byte gBattleTypeFlags
_08081410:
- bl sub_80A03D8
+ bl ReducePlayerPartyToThree
ldr r1, _08081440 @ =gBattleTypeFlags
movs r0, 0x4B
_08081418:
@@ -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
@@ -1848,7 +1848,7 @@ _080815D4:
.align 2, 0
_080815DC: .4byte gBattleTypeFlags
_080815E0:
- bl sub_80A03D8
+ bl ReducePlayerPartyToThree
ldr r1, _08081610 @ =gBattleTypeFlags
movs r0, 0x4B
_080815E8:
@@ -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/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index 8b2797dc8..ceccf74ff 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -10324,7 +10324,7 @@ _0815579C:
ldr r0, [r3]
adds r0, r7
ldrb r0, [r0]
- ldr r2, _08155858 @ =gUnknown_8417938
+ ldr r2, _08155858 @ =gText_Yes
movs r1, 0x2
mov r9, r1
str r1, [sp]
@@ -10336,7 +10336,7 @@ _0815579C:
ldr r0, [r2]
adds r0, r7
ldrb r0, [r0]
- ldr r2, _0815585C @ =gUnknown_841793C
+ ldr r2, _0815585C @ =gText_No
movs r1, 0x10
str r1, [sp]
str r5, [sp, 0x4]
@@ -10377,8 +10377,8 @@ _0815579C:
_0815584C: .4byte 0x00003008
_08155850: .4byte 0x00003009
_08155854: .4byte gUnknown_841CDD7
-_08155858: .4byte gUnknown_8417938
-_0815585C: .4byte gUnknown_841793C
+_08155858: .4byte gText_Yes
+_0815585C: .4byte gText_No
_08155860: .4byte gFameCheckerText_ListMenuCursor
_08155864: .4byte 0x00003014
_08155868:
@@ -10425,7 +10425,7 @@ _081558B0:
ldr r0, [r2]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155914 @ =gUnknown_8417938
+ ldr r2, _08155914 @ =gText_Yes
movs r3, 0x2
mov r8, r3
str r3, [sp]
@@ -10440,7 +10440,7 @@ _081558B0:
ldr r0, [r2]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155918 @ =gUnknown_841793C
+ ldr r2, _08155918 @ =gText_No
movs r6, 0x10
str r6, [sp]
movs r3, 0xFF
@@ -10462,8 +10462,8 @@ _081558B0:
.align 2, 0
_0815590C: .4byte 0x00003020
_08155910: .4byte 0x00003009
-_08155914: .4byte gUnknown_8417938
-_08155918: .4byte gUnknown_841793C
+_08155914: .4byte gText_Yes
+_08155918: .4byte gText_No
_0815591C: .4byte gFameCheckerText_ListMenuCursor
_08155920:
str r6, [sp]
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 26d7ac8bc..0daa8b2bc 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -576,8 +576,8 @@ _080BDB14: .4byte 0x00002cc4
_080BDB18: .4byte gStringVar4
thumb_func_end sub_80BDA7C
- thumb_func_start sub_80BDB1C
-sub_80BDB1C: @ 80BDB1C
+ thumb_func_start BufferRandomHobbyOrLifestyleString
+BufferRandomHobbyOrLifestyleString: @ 80BDB1C
push {lr}
bl Random
movs r1, 0x1
@@ -597,7 +597,7 @@ _080BDB2E:
bx r0
.align 2, 0
_080BDB44: .4byte gStringVar2
- thumb_func_end sub_80BDB1C
+ thumb_func_end BufferRandomHobbyOrLifestyleString
thumb_func_start sub_80BDB48
sub_80BDB48: @ 80BDB48
diff --git a/asm/event_data.s b/asm/event_data.s
deleted file mode 100644
index f4aa51496..000000000
--- a/asm/event_data.s
+++ /dev/null
@@ -1,867 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start InitEventData
-InitEventData: @ 806E0D0
- push {r4,lr}
- ldr r4, _0806E108 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- movs r1, 0xEE
- lsls r1, 4
- adds r0, r1
- movs r2, 0x90
- lsls r2, 1
- movs r1, 0
- bl memset
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl memset
- ldr r0, _0806E10C @ =gUnknown_20370E0
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E108: .4byte gSaveBlock1Ptr
-_0806E10C: .4byte gUnknown_20370E0
- thumb_func_end InitEventData
-
- thumb_func_start sub_806E110
-sub_806E110: @ 806E110
- push {lr}
- ldr r0, _0806E150 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0xEE
- lsls r1, 4
- adds r2, r0, r1
- movs r1, 0
- str r1, [r2]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _0806E154 @ =0x00000803
- bl FlagClear
- ldr r0, _0806E158 @ =0x00000804
- bl FlagClear
- ldr r0, _0806E15C @ =0x00000805
- bl FlagClear
- ldr r0, _0806E160 @ =0x00000807
- bl FlagClear
- ldr r0, _0806E164 @ =0x00000842
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E150: .4byte gSaveBlock1Ptr
-_0806E154: .4byte 0x00000803
-_0806E158: .4byte 0x00000804
-_0806E15C: .4byte 0x00000805
-_0806E160: .4byte 0x00000807
-_0806E164: .4byte 0x00000842
- thumb_func_end sub_806E110
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {lr}
- ldr r0, _0806E184 @ =0x0000403c
- bl GetVarPointer
- ldr r1, _0806E188 @ =gSaveBlock2Ptr
- ldr r2, [r1]
- movs r1, 0
- strb r1, [r2, 0x1A]
- strh r1, [r0]
- ldr r0, _0806E18C @ =0x00000838
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E184: .4byte 0x0000403c
-_0806E188: .4byte gSaveBlock2Ptr
-_0806E18C: .4byte 0x00000838
- thumb_func_end sub_806E168
-
- thumb_func_start sub_806E190
-sub_806E190: @ 806E190
- push {lr}
- ldr r0, _0806E1B0 @ =0x0000403c
- bl GetVarPointer
- ldr r1, _0806E1B4 @ =gSaveBlock2Ptr
- ldr r2, [r1]
- movs r1, 0xDA
- strb r1, [r2, 0x1A]
- ldr r2, _0806E1B8 @ =0x00000302
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0806E1BC @ =0x00000838
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1B0: .4byte 0x0000403c
-_0806E1B4: .4byte gSaveBlock2Ptr
-_0806E1B8: .4byte 0x00000302
-_0806E1BC: .4byte 0x00000838
- thumb_func_end sub_806E190
-
- thumb_func_start sub_806E1C0
-sub_806E1C0: @ 806E1C0
- push {lr}
- ldr r0, _0806E1EC @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xDA
- bne _0806E1FC
- ldr r0, _0806E1F0 @ =0x0000403c
- bl VarGet
- lsls r0, 16
- ldr r1, _0806E1F4 @ =0x03020000
- cmp r0, r1
- bne _0806E1FC
- ldr r0, _0806E1F8 @ =0x00000838
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806E1FC
- movs r0, 0x1
- b _0806E1FE
- .align 2, 0
-_0806E1EC: .4byte gSaveBlock2Ptr
-_0806E1F0: .4byte 0x0000403c
-_0806E1F4: .4byte 0x03020000
-_0806E1F8: .4byte 0x00000838
-_0806E1FC:
- movs r0, 0
-_0806E1FE:
- pop {r1}
- bx r1
- thumb_func_end sub_806E1C0
-
- thumb_func_start sub_806E204
-sub_806E204: @ 806E204
- push {lr}
- ldr r0, _0806E224 @ =0x0000404e
- bl GetVarPointer
- ldr r1, _0806E228 @ =gSaveBlock2Ptr
- ldr r2, [r1]
- movs r1, 0
- strb r1, [r2, 0x1B]
- strh r1, [r0]
- movs r0, 0x84
- lsls r0, 4
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E224: .4byte 0x0000404e
-_0806E228: .4byte gSaveBlock2Ptr
- thumb_func_end sub_806E204
-
- thumb_func_start EnableNationalPokedex
-EnableNationalPokedex: @ 806E22C
- push {lr}
- ldr r0, _0806E250 @ =0x0000404e
- bl GetVarPointer
- ldr r1, _0806E254 @ =gSaveBlock2Ptr
- ldr r2, [r1]
- movs r1, 0xB9
- strb r1, [r2, 0x1B]
- ldr r2, _0806E258 @ =0x00006258
- adds r1, r2, 0
- strh r1, [r0]
- movs r0, 0x84
- lsls r0, 4
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806E250: .4byte 0x0000404e
-_0806E254: .4byte gSaveBlock2Ptr
-_0806E258: .4byte 0x00006258
- thumb_func_end EnableNationalPokedex
-
- thumb_func_start IsNationalPokedexEnabled
-IsNationalPokedexEnabled: @ 806E25C
- push {lr}
- ldr r0, _0806E288 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x1B]
- cmp r0, 0xB9
- bne _0806E294
- ldr r0, _0806E28C @ =0x0000404e
- bl VarGet
- lsls r0, 16
- ldr r1, _0806E290 @ =0x62580000
- cmp r0, r1
- bne _0806E294
- movs r0, 0x84
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806E294
- movs r0, 0x1
- b _0806E296
- .align 2, 0
-_0806E288: .4byte gSaveBlock2Ptr
-_0806E28C: .4byte 0x0000404e
-_0806E290: .4byte 0x62580000
-_0806E294:
- movs r0, 0
-_0806E296:
- pop {r1}
- bx r1
- thumb_func_end IsNationalPokedexEnabled
-
- thumb_func_start sub_806E29C
-sub_806E29C: @ 806E29C
- push {lr}
- ldr r0, _0806E2A8 @ =0x00000839
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E2A8: .4byte 0x00000839
- thumb_func_end sub_806E29C
-
- thumb_func_start sub_806E2AC
-sub_806E2AC: @ 806E2AC
- push {lr}
- ldr r0, _0806E2B8 @ =0x00000839
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806E2B8: .4byte 0x00000839
- thumb_func_end sub_806E2AC
-
- thumb_func_start Flag_0x839_IsSet
-Flag_0x839_IsSet: @ 806E2BC
- push {lr}
- ldr r0, _0806E2CC @ =0x00000839
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806E2CC: .4byte 0x00000839
- thumb_func_end Flag_0x839_IsSet
-
- thumb_func_start sub_806E2D0
-sub_806E2D0: @ 806E2D0
- push {lr}
- movs r0, 0xF6
- lsls r0, 2
- bl FlagClear
- ldr r0, _0806E340 @ =0x000003d9
- bl FlagClear
- ldr r0, _0806E344 @ =0x000003da
- bl FlagClear
- ldr r0, _0806E348 @ =0x000003db
- bl FlagClear
- movs r0, 0xF7
- lsls r0, 2
- bl FlagClear
- ldr r0, _0806E34C @ =0x000003dd
- bl FlagClear
- ldr r0, _0806E350 @ =0x000003de
- bl FlagClear
- ldr r0, _0806E354 @ =0x000003df
- bl FlagClear
- movs r0, 0xF8
- lsls r0, 2
- bl FlagClear
- ldr r0, _0806E358 @ =0x000003e1
- bl FlagClear
- ldr r0, _0806E35C @ =0x000003e2
- bl FlagClear
- ldr r0, _0806E360 @ =0x000003e3
- bl FlagClear
- movs r0, 0xF9
- lsls r0, 2
- bl FlagClear
- ldr r0, _0806E364 @ =0x000003e5
- bl FlagClear
- ldr r0, _0806E368 @ =0x000003e6
- bl FlagClear
- ldr r0, _0806E36C @ =0x000003e7
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E340: .4byte 0x000003d9
-_0806E344: .4byte 0x000003da
-_0806E348: .4byte 0x000003db
-_0806E34C: .4byte 0x000003dd
-_0806E350: .4byte 0x000003de
-_0806E354: .4byte 0x000003df
-_0806E358: .4byte 0x000003e1
-_0806E35C: .4byte 0x000003e2
-_0806E360: .4byte 0x000003e3
-_0806E364: .4byte 0x000003e5
-_0806E368: .4byte 0x000003e6
-_0806E36C: .4byte 0x000003e7
- thumb_func_end sub_806E2D0
-
- thumb_func_start sub_806E370
-sub_806E370: @ 806E370
- push {lr}
- ldr r0, _0806E3C0 @ =0x000040b5
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3C4 @ =0x000040b6
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3C8 @ =0x000040b7
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3CC @ =0x000040b8
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3D0 @ =0x000040b9
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3D4 @ =0x000040ba
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3D8 @ =0x000040bb
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3DC @ =0x000040bc
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3E0 @ =0x00004024
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806E3C0: .4byte 0x000040b5
-_0806E3C4: .4byte 0x000040b6
-_0806E3C8: .4byte 0x000040b7
-_0806E3CC: .4byte 0x000040b8
-_0806E3D0: .4byte 0x000040b9
-_0806E3D4: .4byte 0x000040ba
-_0806E3D8: .4byte 0x000040bb
-_0806E3DC: .4byte 0x000040bc
-_0806E3E0: .4byte 0x00004024
- thumb_func_end sub_806E370
-
- thumb_func_start DisableResetRTC
-DisableResetRTC: @ 806E3E4
- push {lr}
- ldr r0, _0806E3F8 @ =0x00004032
- movs r1, 0
- bl VarSet
- ldr r0, _0806E3FC @ =0x00000837
- bl FlagClear
- pop {r0}
- bx r0
- .align 2, 0
-_0806E3F8: .4byte 0x00004032
-_0806E3FC: .4byte 0x00000837
- thumb_func_end DisableResetRTC
-
- thumb_func_start EnableResetRTC
-EnableResetRTC: @ 806E400
- push {lr}
- ldr r0, _0806E418 @ =0x00004032
- movs r1, 0x92
- lsls r1, 4
- bl VarSet
- ldr r0, _0806E41C @ =0x00000837
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806E418: .4byte 0x00004032
-_0806E41C: .4byte 0x00000837
- thumb_func_end EnableResetRTC
-
- thumb_func_start CanResetRTC
-CanResetRTC: @ 806E420
- push {lr}
- ldr r0, _0806E444 @ =0x00000837
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806E44C
- ldr r0, _0806E448 @ =0x00004032
- bl VarGet
- lsls r0, 16
- movs r1, 0x92
- lsls r1, 20
- cmp r0, r1
- bne _0806E44C
- movs r0, 0x1
- b _0806E44E
- .align 2, 0
-_0806E444: .4byte 0x00000837
-_0806E448: .4byte 0x00004032
-_0806E44C:
- movs r0, 0
-_0806E44E:
- pop {r1}
- bx r1
- thumb_func_end CanResetRTC
-
- thumb_func_start GetVarPointer
-GetVarPointer: @ 806E454
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- ldr r0, _0806E468 @ =0x00003fff
- cmp r4, r0
- bhi _0806E46C
- movs r0, 0
- b _0806E518
- .align 2, 0
-_0806E468: .4byte 0x00003fff
-_0806E46C:
- lsls r0, r4, 16
- cmp r0, 0
- blt _0806E50C
- ldr r0, _0806E484 @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806E488
- cmp r0, 0x1
- ble _0806E4EE
- cmp r0, 0x2
- beq _0806E4B8
- b _0806E4EE
- .align 2, 0
-_0806E484: .4byte gUnknown_3005E88
-_0806E488:
- movs r0, 0
- adds r1, r4, 0
- bl sub_8112D40
- adds r2, r0, 0
- cmp r2, 0
- beq _0806E4EE
- ldr r0, _0806E4B0 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r3, _0806E4B4 @ =0xffffc000
- adds r0, r4, r3
- lsls r0, 1
- movs r3, 0x80
- lsls r3, 5
- adds r1, r3
- adds r1, r0
- ldrh r0, [r2]
- strh r0, [r1]
- b _0806E4EE
- .align 2, 0
-_0806E4B0: .4byte gSaveBlock1Ptr
-_0806E4B4: .4byte 0xffffc000
-_0806E4B8:
- ldr r0, _0806E4FC @ =0xffffc000
- adds r5, r4, r0
- lsls r0, r5, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_806E528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E4EE
- ldr r0, _0806E500 @ =gUnknown_300507C
- strh r5, [r0]
- ldr r0, _0806E504 @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r2, _0806E4FC @ =0xffffc000
- adds r0, r4, r2
- lsls r0, 1
- movs r3, 0x80
- lsls r3, 5
- adds r1, r3
- adds r1, r0
- ldrh r2, [r1]
- movs r0, 0
- adds r1, r4, 0
- bl sub_8112DB0
-_0806E4EE:
- ldr r0, _0806E504 @ =gSaveBlock1Ptr
- lsls r1, r6, 1
- ldr r2, _0806E508 @ =0xffff9000
- adds r1, r2
- ldr r0, [r0]
- adds r0, r1
- b _0806E518
- .align 2, 0
-_0806E4FC: .4byte 0xffffc000
-_0806E500: .4byte gUnknown_300507C
-_0806E504: .4byte gSaveBlock1Ptr
-_0806E508: .4byte 0xffff9000
-_0806E50C:
- ldr r0, _0806E520 @ =gSpecialVars
- ldr r3, _0806E524 @ =0xffff8000
- adds r1, r6, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
-_0806E518:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E520: .4byte gSpecialVars
-_0806E524: .4byte 0xffff8000
- thumb_func_end GetVarPointer
-
- thumb_func_start sub_806E528
-sub_806E528: @ 806E528
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r2, 0
- lsls r1, 24
- cmp r1, 0
- bne _0806E554
- ldr r0, _0806E54C @ =0x0000022f
- cmp r2, r0
- bls _0806E548
- ldr r1, _0806E550 @ =0xfffff800
- adds r0, r2, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bhi _0806E562
-_0806E548:
- movs r0, 0
- b _0806E564
- .align 2, 0
-_0806E54C: .4byte 0x0000022f
-_0806E550: .4byte 0xfffff800
-_0806E554:
- cmp r2, 0x2F
- bls _0806E548
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x63
- bls _0806E548
-_0806E562:
- movs r0, 0x1
-_0806E564:
- pop {r1}
- bx r1
- thumb_func_end sub_806E528
-
- thumb_func_start VarGet
-VarGet: @ 806E568
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetVarPointer
- cmp r0, 0
- beq _0806E57C
- ldrh r0, [r0]
- b _0806E57E
-_0806E57C:
- adds r0, r4, 0
-_0806E57E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end VarGet
-
- thumb_func_start VarSet
-VarSet: @ 806E584
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- bl GetVarPointer
- cmp r0, 0
- beq _0806E59C
- strh r4, [r0]
- movs r0, 0x1
- b _0806E59E
-_0806E59C:
- movs r0, 0
-_0806E59E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end VarSet
-
- thumb_func_start VarGetFieldObjectGraphicsId
-VarGetFieldObjectGraphicsId: @ 806E5A4
- push {lr}
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _0806E5BC @ =0x40100000
- adds r0, r1
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806E5BC: .4byte 0x40100000
- thumb_func_end VarGetFieldObjectGraphicsId
-
- thumb_func_start sub_806E5C0
-sub_806E5C0: @ 806E5C0
- push {r4-r6,lr}
- lsls r5, r0, 16
- lsrs r4, r5, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806E5D0
- movs r0, 0
- b _0806E66E
-_0806E5D0:
- ldr r0, _0806E5E8 @ =0x00003fff
- cmp r4, r0
- bhi _0806E65C
- ldr r0, _0806E5EC @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806E5F0
- cmp r0, 0x1
- ble _0806E644
- cmp r0, 0x2
- beq _0806E618
- b _0806E644
- .align 2, 0
-_0806E5E8: .4byte 0x00003fff
-_0806E5EC: .4byte gUnknown_3005E88
-_0806E5F0:
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8112D40
- adds r2, r0, 0
- cmp r2, 0
- beq _0806E644
- ldr r0, _0806E614 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsrs r1, r5, 19
- movs r3, 0xEE
- lsls r3, 4
- adds r0, r3
- adds r0, r1
- ldrb r1, [r2]
- strb r1, [r0]
- b _0806E644
- .align 2, 0
-_0806E614: .4byte gSaveBlock1Ptr
-_0806E618:
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E644
- ldr r0, _0806E654 @ =gUnknown_300507C
- strh r4, [r0]
- ldr r0, _0806E658 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- lsrs r1, r5, 19
- movs r2, 0xEE
- lsls r2, 4
- adds r0, r2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_8112DB0
-_0806E644:
- ldr r0, _0806E658 @ =gSaveBlock1Ptr
- lsrs r1, r6, 3
- movs r3, 0xEE
- lsls r3, 4
- adds r1, r3
- ldr r0, [r0]
- b _0806E66C
- .align 2, 0
-_0806E654: .4byte gUnknown_300507C
-_0806E658: .4byte gSaveBlock1Ptr
-_0806E65C:
- ldr r1, _0806E674 @ =0xffffc000
- adds r0, r6, r1
- cmp r0, 0
- bge _0806E668
- ldr r2, _0806E678 @ =0xffffc007
- adds r0, r6, r2
-_0806E668:
- asrs r0, 3
- ldr r1, _0806E67C @ =gUnknown_20370E0
-_0806E66C:
- adds r0, r1
-_0806E66E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E674: .4byte 0xffffc000
-_0806E678: .4byte 0xffffc007
-_0806E67C: .4byte gUnknown_20370E0
- thumb_func_end sub_806E5C0
-
- thumb_func_start FlagSet
-FlagSet: @ 806E680
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_806E5C0
- adds r2, r0, 0
- cmp r2, 0
- beq _0806E6A0
- movs r0, 0x7
- ands r0, r4
- movs r1, 0x1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r1, r0
- strb r1, [r2]
-_0806E6A0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagSet
-
- thumb_func_start FlagClear
-FlagClear: @ 806E6A8
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_806E5C0
- adds r2, r0, 0
- cmp r2, 0
- beq _0806E6C8
- movs r0, 0x7
- ands r0, r4
- movs r1, 0x1
- lsls r1, r0
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
-_0806E6C8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagClear
-
- thumb_func_start FlagGet
-FlagGet: @ 806E6D0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_806E5C0
- cmp r0, 0
- beq _0806E6F4
- ldrb r0, [r0]
- movs r1, 0x7
- ands r1, r4
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806E6F4
- movs r0, 0x1
- b _0806E6F6
-_0806E6F4:
- movs r0, 0
-_0806E6F6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagGet
-
- thumb_func_start sub_806E6FC
-sub_806E6FC: @ 806E6FC
- ldr r1, _0806E754 @ =gSpecialVar_0x8000
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0806E758 @ =gSpecialVar_0x8001
- strh r0, [r1]
- ldr r1, _0806E75C @ =gSpecialVar_0x8002
- strh r0, [r1]
- ldr r1, _0806E760 @ =gSpecialVar_0x8003
- strh r0, [r1]
- ldr r1, _0806E764 @ =gSpecialVar_0x8004
- strh r0, [r1]
- ldr r1, _0806E768 @ =gSpecialVar_0x8005
- strh r0, [r1]
- ldr r1, _0806E76C @ =gSpecialVar_0x8006
- strh r0, [r1]
- ldr r1, _0806E770 @ =gSpecialVar_0x8007
- strh r0, [r1]
- ldr r1, _0806E774 @ =gSpecialVar_0x8008
- strh r0, [r1]
- ldr r1, _0806E778 @ =gSpecialVar_0x8009
- strh r0, [r1]
- ldr r1, _0806E77C @ =gSpecialVar_0x800A
- strh r0, [r1]
- ldr r1, _0806E780 @ =gSpecialVar_0x800B
- strh r0, [r1]
- ldr r1, _0806E784 @ =gSpecialVar_Facing
- strh r0, [r1]
- ldr r1, _0806E788 @ =gSpecialVar_Result
- strh r0, [r1]
- ldr r1, _0806E78C @ =gSpecialVar_ItemId
- strh r0, [r1]
- ldr r1, _0806E790 @ =gSpecialVar_LastTalked
- strh r0, [r1]
- ldr r1, _0806E794 @ =gSpecialVar_MonBoxId
- strh r0, [r1]
- ldr r1, _0806E798 @ =gSpecialVar_MonBoxPos
- strh r0, [r1]
- ldr r1, _0806E79C @ =gUnknown_20370DA
- strh r0, [r1]
- ldr r1, _0806E7A0 @ =gUnknown_20370DC
- strh r0, [r1]
- ldr r1, _0806E7A4 @ =gUnknown_20370DE
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E754: .4byte gSpecialVar_0x8000
-_0806E758: .4byte gSpecialVar_0x8001
-_0806E75C: .4byte gSpecialVar_0x8002
-_0806E760: .4byte gSpecialVar_0x8003
-_0806E764: .4byte gSpecialVar_0x8004
-_0806E768: .4byte gSpecialVar_0x8005
-_0806E76C: .4byte gSpecialVar_0x8006
-_0806E770: .4byte gSpecialVar_0x8007
-_0806E774: .4byte gSpecialVar_0x8008
-_0806E778: .4byte gSpecialVar_0x8009
-_0806E77C: .4byte gSpecialVar_0x800A
-_0806E780: .4byte gSpecialVar_0x800B
-_0806E784: .4byte gSpecialVar_Facing
-_0806E788: .4byte gSpecialVar_Result
-_0806E78C: .4byte gSpecialVar_ItemId
-_0806E790: .4byte gSpecialVar_LastTalked
-_0806E794: .4byte gSpecialVar_MonBoxId
-_0806E798: .4byte gSpecialVar_MonBoxPos
-_0806E79C: .4byte gUnknown_20370DA
-_0806E7A0: .4byte gUnknown_20370DC
-_0806E7A4: .4byte gUnknown_20370DE
- thumb_func_end sub_806E6FC
-
- .align 2, 0 @ Don't pad with nop.
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 c1825ba58..46587dc52 100644
--- a/asm/field_control_avatar.s
+++ b/asm/field_control_avatar.s
@@ -364,11 +364,11 @@ sub_806CAC8: @ 806CAC8
beq _0806CB74
movs r0, 0x5
bl IncrementGameStat
- bl sub_8146CA4
- bl sub_815D8C8
- bl sub_80CC918
- bl sub_80CB054
- bl sub_80CCFBC
+ bl MENewsJisanStepCounter
+ bl IncrementRenewableHiddenItemStepCounter
+ bl RunMassageCooldownStepCounter
+ bl IncrementResortGorgeousStepCounter
+ bl BirthIslandDeoxysStepCounter
mov r0, sp
adds r1, r4, 0
adds r2, r6, 0
@@ -1100,11 +1100,11 @@ sub_806D0E4: @ 806D0E4
ldr r0, [r5, 0x8]
cmp r0, 0
bne _0806D120
- ldr r0, _0806D11C @ =gUnknown_81C555B
+ ldr r0, _0806D11C @ =EventScript_1C555B
b _0806D1E6
.align 2, 0
_0806D118: .4byte gMapHeader
-_0806D11C: .4byte gUnknown_81C555B
+_0806D11C: .4byte EventScript_1C555B
_0806D120:
adds r0, r7, 0
adds r1, r6, 0
@@ -1330,10 +1330,10 @@ _0806D2F0:
lsrs r0, 24
cmp r0, 0x1
bne _0806D308
- ldr r0, _0806D304 @ =gUnknown_81C549C
+ ldr r0, _0806D304 @ =EventScript_1C549C
b _0806D53E
.align 2, 0
-_0806D304: .4byte gUnknown_81C549C
+_0806D304: .4byte EventScript_1C549C
_0806D308:
adds r0, r4, 0
adds r1, r5, 0
@@ -1641,11 +1641,11 @@ _0806D570:
lsrs r0, 24
cmp r0, 0x1
bne _0806D5A4
- ldr r0, _0806D5A0 @ =gUnknown_81A6AC8
+ ldr r0, _0806D5A0 @ =EventScript_1A6AC8
b _0806D5E2
.align 2, 0
_0806D59C: .4byte 0x00000824
-_0806D5A0: .4byte gUnknown_81A6AC8
+_0806D5A0: .4byte EventScript_1A6AC8
_0806D5A4:
adds r0, r4, 0
bl MetatileBehavior_IsWaterfall
@@ -1670,10 +1670,10 @@ _0806D5A4:
_0806D5D0: .4byte 0x00000826
_0806D5D4: .4byte gUnknown_81BE2B7
_0806D5D8:
- ldr r0, _0806D5DC @ =gUnknown_81BE2FF
+ ldr r0, _0806D5DC @ =EventScript_81BE2FF
b _0806D5E2
.align 2, 0
-_0806D5DC: .4byte gUnknown_81BE2FF
+_0806D5DC: .4byte EventScript_81BE2FF
_0806D5E0:
movs r0, 0
_0806D5E2:
@@ -1822,11 +1822,11 @@ _0806D6EC:
lsrs r0, 24
cmp r0, 0x1
bne _0806D704
- ldr r0, _0806D700 @ =gUnknown_81A8DFD
+ ldr r0, _0806D700 @ =EventScript_PoisonWhiteOut
bl ScriptContext1_SetupScript
b _0806D730
.align 2, 0
-_0806D700: .4byte gUnknown_81A8DFD
+_0806D700: .4byte EventScript_PoisonWhiteOut
_0806D704:
bl ShouldEggHatch
lsls r0, 24
@@ -1834,11 +1834,11 @@ _0806D704:
beq _0806D720
movs r0, 0xD
bl IncrementGameStat
- ldr r0, _0806D71C @ =gUnknown_81BF546
+ ldr r0, _0806D71C @ =EventScript_81BF546
bl ScriptContext1_SetupScript
b _0806D730
.align 2, 0
-_0806D71C: .4byte gUnknown_81BF546
+_0806D71C: .4byte EventScript_81BF546
_0806D720:
bl SafariZoneTakeStep
lsls r0, 24
@@ -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
@@ -2150,13 +2150,13 @@ _0806D950:
ldr r0, [r0, 0x8]
cmp r0, 0
bne _0806D958
- ldr r0, _0806D960 @ =gUnknown_81C555B
+ ldr r0, _0806D960 @ =EventScript_1C555B
_0806D958:
pop {r4}
pop {r1}
bx r1
.align 2, 0
-_0806D960: .4byte gUnknown_81C555B
+_0806D960: .4byte EventScript_1C555B
thumb_func_end sub_806D928
thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
@@ -2332,12 +2332,12 @@ _0806DAC4:
cmp r0, 0x1
bne _0806DAE4
bl ResetInitialPlayerAvatarState
- ldr r0, _0806DAE0 @ =gUnknown_81C1361
+ ldr r0, _0806DAE0 @ =EventScript_1C1361
bl ScriptContext1_SetupScript
movs r0, 0x1
b _0806DAEE
.align 2, 0
-_0806DAE0: .4byte gUnknown_81C1361
+_0806DAE0: .4byte EventScript_1C1361
_0806DAE4:
bl DoWarp
movs r0, 0x1
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 2b16f5e1f..8787ff647 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -2774,14 +2774,14 @@ _0805F2E0:
bls _0805F2E6
movs r1, 0x10
_0805F2E6:
- ldr r0, _0805F2F4 @ =gUnknown_839FDB0
+ ldr r0, _0805F2F4 @ =gMapObjectGraphicsInfoPointers
lsls r1, 2
adds r1, r0
ldr r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_0805F2F4: .4byte gUnknown_839FDB0
+_0805F2F4: .4byte gMapObjectGraphicsInfoPointers
thumb_func_end GetFieldObjectGraphicsInfo
thumb_func_start FieldObjectHandleDynamicGraphicsId
@@ -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 079abee2c..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
@@ -985,25 +985,25 @@ _0807F5B6:
bne _0807F5E4
adds r0, r6, 0
bl DestroyTask
- ldr r0, _0807F5CC @ =gUnknown_81A8D97
+ ldr r0, _0807F5CC @ =EventScript_AfterWhiteOutHeal
bl ScriptContext1_SetupScript
b _0807F5E4
.align 2, 0
-_0807F5CC: .4byte gUnknown_81A8D97
+_0807F5CC: .4byte EventScript_AfterWhiteOutHeal
_0807F5D0:
bl sub_807E418
cmp r0, 0x1
bne _0807F5E4
adds r0, r6, 0
bl DestroyTask
- ldr r0, _0807F5EC @ =gUnknown_81A8DD8
+ ldr r0, _0807F5EC @ =EventScript_MomHeal
bl ScriptContext1_SetupScript
_0807F5E4:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
-_0807F5EC: .4byte gUnknown_81A8DD8
+_0807F5EC: .4byte EventScript_MomHeal
thumb_func_end sub_807F45C
thumb_func_start sub_807F5F0
diff --git a/asm/field_specials.s b/asm/field_specials.s
deleted file mode 100644
index c0294fcac..000000000
--- a/asm/field_specials.s
+++ /dev/null
@@ -1,5729 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80CA618
-sub_80CA618: @ 80CA618
- push {lr}
- bl sub_8112364
- ldr r0, _080CA62C @ =CB2_ShowDiploma
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_080CA62C: .4byte CB2_ShowDiploma
- thumb_func_end sub_80CA618
-
- thumb_func_start sub_80CA630
-sub_80CA630: @ 80CA630
- push {r4,lr}
- ldr r0, _080CA65C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CA644
- movs r0, 0x2
- bl SetPlayerAvatarTransitionFlags
-_080CA644:
- movs r4, 0x8D
- lsls r4, 1
- adds r0, r4, 0
- bl Overworld_SetSavedMusic
- adds r0, r4, 0
- bl Overworld_ChangeMusicTo
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA65C: .4byte gPlayerAvatar
- thumb_func_end sub_80CA630
-
- thumb_func_start nullsub_74
-nullsub_74: @ 80CA660
- bx lr
- thumb_func_end nullsub_74
-
- thumb_func_start sub_80CA664
-sub_80CA664: @ 80CA664
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _080CA676
- movs r0, 0x1
- b _080CA688
-_080CA676:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _080CA686
- movs r0, 0
- b _080CA688
-_080CA686:
- movs r0, 0x2
-_080CA688:
- pop {r1}
- bx r1
- thumb_func_end sub_80CA664
-
- thumb_func_start sub_80CA68C
-sub_80CA68C: @ 80CA68C
- push {lr}
- ldr r0, _080CA698 @ =gStringVar4
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA698: .4byte gStringVar4
- thumb_func_end sub_80CA68C
-
- thumb_func_start sub_80CA69C
-sub_80CA69C: @ 80CA69C
- ldr r1, _080CA6B0 @ =gSpecialVar_0x8004
- ldr r0, _080CA6B4 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _080CA6B8 @ =gSpecialVar_0x8005
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080CA6B0: .4byte gSpecialVar_0x8004
-_080CA6B4: .4byte gSaveBlock1Ptr
-_080CA6B8: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80CA69C
-
- thumb_func_start sub_80CA6BC
-sub_80CA6BC: @ 80CA6BC
- push {lr}
- ldr r0, _080CA6D8 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080CA6D8: .4byte gSaveBlock2Ptr
- thumb_func_end sub_80CA6BC
-
- thumb_func_start sub_80CA6DC
-sub_80CA6DC: @ 80CA6DC
- push {lr}
- ldr r0, _080CA6F4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080CA700
- ldr r0, _080CA6F8 @ =gStringVar1
- ldr r1, _080CA6FC @ =gUnknown_8417FBB
- bl StringCopy
- b _080CA708
- .align 2, 0
-_080CA6F4: .4byte gSaveBlock2Ptr
-_080CA6F8: .4byte gStringVar1
-_080CA6FC: .4byte gUnknown_8417FBB
-_080CA700:
- ldr r0, _080CA70C @ =gStringVar1
- ldr r1, _080CA710 @ =gUnknown_8417FC3
- bl StringCopy
-_080CA708:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA70C: .4byte gStringVar1
-_080CA710: .4byte gUnknown_8417FC3
- thumb_func_end sub_80CA6DC
-
- thumb_func_start sub_80CA714
-sub_80CA714: @ 80CA714
- push {lr}
- ldr r0, _080CA72C @ =gSaveBlock2Ptr
- ldr r0, [r0]
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _080CA738
- ldr r0, _080CA730 @ =gStringVar1
- ldr r1, _080CA734 @ =gUnknown_8417FD0
- bl StringCopy
- b _080CA740
- .align 2, 0
-_080CA72C: .4byte gSaveBlock2Ptr
-_080CA730: .4byte gStringVar1
-_080CA734: .4byte gUnknown_8417FD0
-_080CA738:
- ldr r0, _080CA744 @ =gStringVar1
- ldr r1, _080CA748 @ =gUnknown_8417FCC
- bl StringCopy
-_080CA740:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA744: .4byte gStringVar1
-_080CA748: .4byte gUnknown_8417FCC
- thumb_func_end sub_80CA714
-
- thumb_func_start sub_80CA74C
-sub_80CA74C: @ 80CA74C
- ldr r0, _080CA754 @ =gBattleOutcome
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080CA754: .4byte gBattleOutcome
- thumb_func_end sub_80CA74C
-
- thumb_func_start Special_SetHiddenItemFlag
-Special_SetHiddenItemFlag: @ 80CA758
- push {lr}
- ldr r0, _080CA768 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080CA768: .4byte gSpecialVar_0x8004
- thumb_func_end Special_SetHiddenItemFlag
-
- thumb_func_start sub_80CA76C
-sub_80CA76C: @ 80CA76C
- push {r4,lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080CA790 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _080CA794
- movs r0, 0x6
- b _080CA7E6
- .align 2, 0
-_080CA790: .4byte gPlayerParty
-_080CA794:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _080CA7A4
- movs r0, 0x5
- b _080CA7E6
-_080CA7A4:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _080CA7B4
- movs r0, 0x4
- b _080CA7E6
-_080CA7B4:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _080CA7C4
- movs r0, 0x3
- b _080CA7E6
-_080CA7C4:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _080CA7D4
- movs r0, 0x2
- b _080CA7E6
-_080CA7D4:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _080CA7E4
- movs r0, 0
- b _080CA7E6
-_080CA7E4:
- movs r0, 0x1
-_080CA7E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CA76C
-
- thumb_func_start sub_80CA7EC
-sub_80CA7EC: @ 80CA7EC
- push {lr}
- bl sub_8112364
- ldr r1, _080CA800 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
- movs r0, 0x1
- bl sub_80BFF50
- pop {r0}
- bx r0
- .align 2, 0
-_080CA800: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
- thumb_func_end sub_80CA7EC
-
- thumb_func_start sub_80CA804
-sub_80CA804: @ 80CA804
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _080CA850 @ =gBaseStats
-_080CA80A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080CA854 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _080CA858
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080CA858
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _080CA84C
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _080CA858
-_080CA84C:
- movs r0, 0x1
- b _080CA864
- .align 2, 0
-_080CA850: .4byte gBaseStats
-_080CA854: .4byte gPlayerParty
-_080CA858:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080CA80A
- movs r0, 0
-_080CA864:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80CA804
-
- thumb_func_start sub_80CA86C
-sub_80CA86C: @ 80CA86C
- push {r4,lr}
- ldr r4, _080CA8A0 @ =sub_80CA8A8
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CA89A
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA8A4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
-_080CA89A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA8A0: .4byte sub_80CA8A8
-_080CA8A4: .4byte gTasks
- thumb_func_end sub_80CA86C
-
- thumb_func_start sub_80CA8A8
-sub_80CA8A8: @ 80CA8A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CA8F4 @ =gTasks+0x8
- adds r4, r0, r1
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _080CA8E6
- ldrh r1, [r4]
- movs r0, 0x1
- ands r0, r1
- bl sub_80CA8F8
- bl DrawWholeMapView
- movs r0, 0
- strh r0, [r4, 0x2]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _080CA8E6
- adds r0, r5, 0
- bl DestroyTask
-_080CA8E6:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA8F4: .4byte gTasks+0x8
- thumb_func_end sub_80CA8A8
-
- thumb_func_start sub_80CA8F8
-sub_80CA8F8: @ 80CA8F8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r4, 0
- movs r7, 0
- movs r5, 0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _080CA926
- cmp r0, 0x3
- bgt _080CA91C
- cmp r0, 0x2
- beq _080CA922
- b _080CA92E
-_080CA91C:
- cmp r1, 0x4
- beq _080CA92A
- b _080CA92E
-_080CA922:
- movs r7, 0
- b _080CA92C
-_080CA926:
- movs r7, 0xFF
- b _080CA92C
-_080CA92A:
- movs r7, 0x1
-_080CA92C:
- movs r5, 0xFF
-_080CA92E:
- cmp r6, 0
- beq _080CA954
- ldr r0, _080CA940 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080CA944
- movs r4, 0x62
- b _080CA96E
- .align 2, 0
-_080CA940: .4byte gSpecialVar_0x8004
-_080CA944:
- cmp r0, 0x1
- beq _080CA94C
- cmp r0, 0x2
- bne _080CA96E
-_080CA94C:
- ldr r4, _080CA950 @ =0x0000028f
- b _080CA96E
- .align 2, 0
-_080CA950: .4byte 0x0000028f
-_080CA954:
- ldr r0, _080CA960 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080CA964
- movs r4, 0x63
- b _080CA96E
- .align 2, 0
-_080CA960: .4byte gSpecialVar_0x8004
-_080CA964:
- cmp r0, 0x1
- beq _080CA96C
- cmp r0, 0x2
- bne _080CA96E
-_080CA96C:
- ldr r4, _080CA9A0 @ =0x0000028a
-_080CA96E:
- ldr r0, _080CA9A4 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r7, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA9A0: .4byte 0x0000028a
-_080CA9A4: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80CA8F8
-
- thumb_func_start sub_80CA9A8
-sub_80CA9A8: @ 80CA9A8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0
- movs r5, 0
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _080CA9D2
- cmp r0, 0x3
- bgt _080CA9C8
- cmp r0, 0x2
- beq _080CA9CE
- b _080CA9DA
-_080CA9C8:
- cmp r1, 0x4
- beq _080CA9D6
- b _080CA9DA
-_080CA9CE:
- movs r6, 0
- b _080CA9D8
-_080CA9D2:
- movs r6, 0xFF
- b _080CA9D8
-_080CA9D6:
- movs r6, 0x1
-_080CA9D8:
- movs r5, 0xFF
-_080CA9DA:
- ldr r0, _080CA9E8 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080CA9EC
- movs r4, 0x62
- b _080CA9F6
- .align 2, 0
-_080CA9E8: .4byte gSpecialVar_0x8004
-_080CA9EC:
- cmp r0, 0x1
- beq _080CA9F4
- cmp r0, 0x2
- bne _080CA9F6
-_080CA9F4:
- ldr r4, _080CAA2C @ =0x0000028f
-_080CA9F6:
- ldr r0, _080CAA30 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CAA2C: .4byte 0x0000028f
-_080CAA30: .4byte gSaveBlock1Ptr
- thumb_func_end sub_80CA9A8
-
- thumb_func_start SpawnScriptFieldObject
-SpawnScriptFieldObject: @ 80CAA34
- push {lr}
- sub sp, 0x8
- ldr r0, _080CAA80 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x12
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParameterized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CAA84 @ =gMapObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080CAA80: .4byte gSaveBlock1Ptr
-_080CAA84: .4byte gMapObjects
- thumb_func_end SpawnScriptFieldObject
-
- thumb_func_start RemoveScriptFieldObject
-RemoveScriptFieldObject: @ 80CAA88
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _080CAAA8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_080CAAA8: .4byte gSaveBlock1Ptr
- thumb_func_end RemoveScriptFieldObject
-
- thumb_func_start sub_80CAAAC
-sub_80CAAAC: @ 80CAAAC
- push {lr}
- ldr r0, _080CAAB8 @ =gStringVar1
- bl sub_80E7460
- pop {r0}
- bx r0
- .align 2, 0
-_080CAAB8: .4byte gStringVar1
- thumb_func_end sub_80CAAAC
-
- thumb_func_start sub_80CAABC
-sub_80CAABC: @ 80CAABC
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x16
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080CAADC @ =gUnknown_83F5B1A
- adds r0, r1
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_080CAADC: .4byte gUnknown_83F5B1A
- thumb_func_end sub_80CAABC
-
- thumb_func_start LeadMonHasEffortRibbon
-LeadMonHasEffortRibbon: @ 80CAAE0
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080CAB04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080CAB04: .4byte gPlayerParty
- thumb_func_end LeadMonHasEffortRibbon
-
- thumb_func_start GivLeadMonEffortRibbon
-GivLeadMonEffortRibbon: @ 80CAB08
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl IncrementGameStat
- ldr r0, _080CAB3C @ =0x0000083b
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080CAB40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CAB3C: .4byte 0x0000083b
-_080CAB40: .4byte gPlayerParty
- thumb_func_end GivLeadMonEffortRibbon
-
- thumb_func_start ScrSpecial_AreLeadMonEVsMaxedOut
-ScrSpecial_AreLeadMonEVsMaxedOut: @ 80CAB44
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _080CAB68 @ =gPlayerParty
- adds r0, r1
- bl GetMonEVCount
- lsls r0, 16
- ldr r1, _080CAB6C @ =0x01fd0000
- cmp r0, r1
- bhi _080CAB70
- movs r0, 0
- b _080CAB72
- .align 2, 0
-_080CAB68: .4byte gPlayerParty
-_080CAB6C: .4byte 0x01fd0000
-_080CAB70:
- movs r0, 0x1
-_080CAB72:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_AreLeadMonEVsMaxedOut
-
- thumb_func_start sub_80CAB78
-sub_80CAB78: @ 80CAB78
- push {r4-r6,lr}
- ldr r0, _080CABB4 @ =0x00004031
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _080CABC6
-_080CAB9A:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CABB8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _080CABBC
- movs r0, 0x1
- b _080CABC8
- .align 2, 0
-_080CABB4: .4byte 0x00004031
-_080CABB8: .4byte gPlayerParty
-_080CABBC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _080CAB9A
-_080CABC6:
- movs r0, 0
-_080CABC8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80CAB78
-
- thumb_func_start sub_80CABD0
-sub_80CABD0: @ 80CABD0
- push {r4-r6,lr}
- movs r6, 0
-_080CABD4:
- movs r4, 0
- lsls r5, r6, 24
-_080CABD8:
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r5, 24
- movs r2, 0xB
- bl GetBoxMonDataFromAnyBox
- cmp r0, 0
- bne _080CABEC
- movs r0, 0x1
- b _080CAC02
-_080CABEC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _080CABD8
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0xD
- bls _080CABD4
- movs r0, 0
-_080CAC02:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80CABD0
-
- thumb_func_start sub_80CAC08
-sub_80CAC08: @ 80CAC08
- push {lr}
- ldr r0, _080CAC1C @ =gPlayerParty
- movs r1, 0x3F
- bl CheckPartyPokerus
- lsls r0, 24
- cmp r0, 0
- beq _080CAC20
- movs r0, 0x1
- b _080CAC22
- .align 2, 0
-_080CAC1C: .4byte gPlayerParty
-_080CAC20:
- movs r0, 0
-_080CAC22:
- pop {r1}
- bx r1
- thumb_func_end sub_80CAC08
-
- thumb_func_start sub_80CAC28
-sub_80CAC28: @ 80CAC28
- push {lr}
- ldr r0, _080CAC6C @ =sub_80CAC84
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CAC70 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080CAC74 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- movs r2, 0
- strh r0, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, _080CAC78 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- strh r0, [r1, 0xC]
- ldr r0, _080CAC7C @ =gSpecialVar_0x8007
- ldrh r0, [r0]
- strh r0, [r1, 0xE]
- ldr r0, _080CAC80 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xCF
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_080CAC6C: .4byte sub_80CAC84
-_080CAC70: .4byte gTasks
-_080CAC74: .4byte gSpecialVar_0x8005
-_080CAC78: .4byte gSpecialVar_0x8006
-_080CAC7C: .4byte gSpecialVar_0x8007
-_080CAC80: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80CAC28
-
- thumb_func_start sub_80CAC84
-sub_80CAC84: @ 80CAC84
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CACE4 @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _080CACDC
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4]
- negs r0, r0
- strh r0, [r4]
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080CACDC
- adds r0, r5, 0
- bl sub_80CACE8
- bl InstallCameraPanAheadCallback
-_080CACDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CACE4: .4byte gTasks+0x8
- thumb_func_end sub_80CAC84
-
- thumb_func_start sub_80CACE8
-sub_80CACE8: @ 80CACE8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80CACE8
-
- thumb_func_start GetLeadMonIndex
-GetLeadMonIndex: @ 80CACFC
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _080CAD4A
-_080CAD0C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080CAD3C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080CAD40
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _080CAD40
- adds r0, r5, 0
- b _080CAD4C
- .align 2, 0
-_080CAD3C: .4byte gPlayerParty
-_080CAD40:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080CAD0C
-_080CAD4A:
- movs r0, 0
-_080CAD4C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLeadMonIndex
-
- thumb_func_start sub_80CAD54
-sub_80CAD54: @ 80CAD54
- push {lr}
- ldr r0, _080CAD74 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CAD78 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080CAD74: .4byte gSpecialVar_0x8004
-_080CAD78: .4byte gPlayerParty
- thumb_func_end sub_80CAD54
-
- thumb_func_start sub_80CAD7C
-sub_80CAD7C: @ 80CAD7C
- push {r4,lr}
- ldr r0, _080CADA8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CADAC @ =gPlayerParty
- adds r0, r1
- ldr r4, _080CADB0 @ =gStringVar1
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080CADB4 @ =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _080CADB8
- movs r0, 0x1
- b _080CADBA
- .align 2, 0
-_080CADA8: .4byte gSpecialVar_0x8004
-_080CADAC: .4byte gPlayerParty
-_080CADB0: .4byte gStringVar1
-_080CADB4: .4byte gSaveBlock2Ptr
-_080CADB8:
- movs r0, 0
-_080CADBA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CAD7C
-
- thumb_func_start nullsub_75
-nullsub_75: @ 80CADC0
- bx lr
- thumb_func_end nullsub_75
-
- thumb_func_start sub_80CADC4
-sub_80CADC4: @ 80CADC4
- push {lr}
- sub sp, 0x10
- movs r1, 0xFF
- add r0, sp, 0xC
- strb r1, [r0]
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x2
- add r2, sp, 0xC
- movs r3, 0
- bl AddTextPrinterParameterized
- bl sub_809D424
- add sp, 0x10
- pop {r0}
- bx r0
- thumb_func_end sub_80CADC4
-
- thumb_func_start sub_80CADEC
-sub_80CADEC: @ 80CADEC
- push {r4,r5,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _080CAE20 @ =gSpecialVar_0x8004
- strh r2, [r1]
- ldr r0, _080CAE24 @ =gSpecialVar_0x8005
- strh r2, [r0]
- ldrh r0, [r1]
- subs r0, 0x1
- cmp r0, 0xE
- bls _080CAE14
- b _080CB01C
-_080CAE14:
- lsls r0, 2
- ldr r1, _080CAE28 @ =_080CAE2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CAE20: .4byte gSpecialVar_0x8004
-_080CAE24: .4byte gSpecialVar_0x8005
-_080CAE28: .4byte _080CAE2C
- .align 2, 0
-_080CAE2C:
- .4byte _080CAE68
- .4byte _080CAE90
- .4byte _080CAE90
- .4byte _080CAE90
- .4byte _080CAEC8
- .4byte _080CAEE8
- .4byte _080CAF28
- .4byte _080CAF28
- .4byte _080CAF28
- .4byte _080CAF68
- .4byte _080CAF9C
- .4byte _080CAFC4
- .4byte _080CAFC4
- .4byte _080CAFC4
- .4byte _080CAFF8
-_080CAE68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CAE84
- ldr r1, _080CAE80 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAE80: .4byte gSpecialVar_0x8005
-_080CAE84:
- ldr r1, _080CAE8C @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAE8C: .4byte gSpecialVar_0x8005
-_080CAE90:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _080CAEB4
- ldr r1, _080CAEB0 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAEB0: .4byte gSpecialVar_0x8005
-_080CAEB4:
- cmp r2, 0x1
- beq _080CAEBA
- b _080CB014
-_080CAEBA:
- ldr r1, _080CAEC4 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAEC4: .4byte gSpecialVar_0x8005
-_080CAEC8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080CAEDA
- b _080CB014
-_080CAEDA:
- ldr r1, _080CAEE4 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAEE4: .4byte gSpecialVar_0x8005
-_080CAEE8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _080CAF0C
- ldr r1, _080CAF08 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF08: .4byte gSpecialVar_0x8005
-_080CAF0C:
- cmp r2, 0x1
- bne _080CAF1C
- ldr r1, _080CAF18 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAF18: .4byte gSpecialVar_0x8005
-_080CAF1C:
- ldr r1, _080CAF24 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF24: .4byte gSpecialVar_0x8005
-_080CAF28:
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r2, r1, 16
- cmp r2, 0
- bne _080CAF48
- ldr r1, _080CAF44 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF44: .4byte gSpecialVar_0x8005
-_080CAF48:
- cmp r2, 0x1
- bne _080CAF58
- ldr r1, _080CAF54 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAF54: .4byte gSpecialVar_0x8005
-_080CAF58:
- cmp r2, 0x2
- bne _080CB014
- ldr r1, _080CAF64 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF64: .4byte gSpecialVar_0x8005
-_080CAF68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _080CAF8C
- ldr r1, _080CAF88 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF88: .4byte gSpecialVar_0x8005
-_080CAF8C:
- cmp r2, 0x1
- bne _080CB014
- ldr r1, _080CAF98 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAF98: .4byte gSpecialVar_0x8005
-_080CAF9C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CAFB8
- ldr r1, _080CAFB4 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAFB4: .4byte gSpecialVar_0x8005
-_080CAFB8:
- ldr r1, _080CAFC0 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAFC0: .4byte gSpecialVar_0x8005
-_080CAFC4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- bne _080CAFE8
- ldr r1, _080CAFE4 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CAFE4: .4byte gSpecialVar_0x8005
-_080CAFE8:
- cmp r2, 0x1
- bne _080CB014
- ldr r1, _080CAFF4 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- adds r0, 0x1
- b _080CB01A
- .align 2, 0
-_080CAFF4: .4byte gSpecialVar_0x8005
-_080CAFF8:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CB014
- ldr r1, _080CB010 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x5
- b _080CB01A
- .align 2, 0
-_080CB010: .4byte gSpecialVar_0x8005
-_080CB014:
- ldr r1, _080CB040 @ =gSpecialVar_0x8005
- ldrh r0, [r1]
- subs r0, 0x1
-_080CB01A:
- strh r0, [r1]
-_080CB01C:
- ldr r5, _080CB040 @ =gSpecialVar_0x8005
- ldrh r0, [r5]
- cmp r0, 0xF
- bls _080CB04C
- ldr r0, _080CB044 @ =gSpecialVar_0x8004
- ldrh r4, [r0]
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _080CB048
- cmp r0, 0
- bne _080CB048
- subs r0, r4, 0x1
- b _080CB04A
- .align 2, 0
-_080CB040: .4byte gSpecialVar_0x8005
-_080CB044: .4byte gSpecialVar_0x8004
-_080CB048:
- adds r0, r4, 0x1
-_080CB04A:
- strh r0, [r5]
-_080CB04C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80CADEC
-
- thumb_func_start sub_80CB054
-sub_80CB054: @ 80CB054
- push {r4-r6,lr}
- ldr r5, _080CB08C @ =0x00004035
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r6, _080CB090 @ =0x00004036
- adds r0, r6, 0
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- beq _080CB0A0
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF9
- bls _080CB098
- ldr r1, _080CB094 @ =0x0000ffff
- adds r0, r6, 0
- bl VarSet
- adds r0, r5, 0
- movs r1, 0
- bl VarSet
- b _080CB0A0
- .align 2, 0
-_080CB08C: .4byte 0x00004035
-_080CB090: .4byte 0x00004036
-_080CB094: .4byte 0x0000ffff
-_080CB098:
- adds r0, r5, 0
- adds r1, r4, 0
- bl VarSet
-_080CB0A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CB054
-
- thumb_func_start sub_80CB0A8
-sub_80CB0A8: @ 80CB0A8
- push {r4,lr}
- ldr r4, _080CB10C @ =0x00004036
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080CB0C0
- ldr r0, _080CB110 @ =0x0000ffff
- cmp r1, r0
- bne _080CB0EA
-_080CB0C0:
- bl sub_80CB124
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- ldr r4, _080CB114 @ =0x0000403b
- bl sub_80CB198
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- ldr r0, _080CB118 @ =0x00004035
- movs r1, 0
- bl VarSet
-_080CB0EA:
- ldr r4, _080CB11C @ =gStringVar1
- ldr r0, _080CB10C @ =0x00004036
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080CB120 @ =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB10C: .4byte 0x00004036
-_080CB110: .4byte 0x0000ffff
-_080CB114: .4byte 0x0000403b
-_080CB118: .4byte 0x00004035
-_080CB11C: .4byte gStringVar1
-_080CB120: .4byte gSpeciesNames
- thumb_func_end sub_80CB0A8
-
- thumb_func_start sub_80CB124
-sub_80CB124: @ 80CB124
- push {r4,r5,lr}
- movs r5, 0
-_080CB128:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080CB160 @ =0x0000019b
- bl __umodsi3
- adds r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- beq _080CB18E
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x63
- bls _080CB128
- b _080CB176
- .align 2, 0
-_080CB160: .4byte 0x0000019b
-_080CB164:
- cmp r4, 0x1
- bne _080CB170
- ldr r4, _080CB16C @ =0x0000019b
- b _080CB176
- .align 2, 0
-_080CB16C: .4byte 0x0000019b
-_080CB170:
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_080CB176:
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl GetSetPokedexFlag
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _080CB164
-_080CB18E:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB124
-
- thumb_func_start sub_80CB198
-sub_80CB198: @ 80CB198
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1D
- bhi _080CB1D0
- ldr r4, _080CB1CC @ =gUnknown_83F5B30
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r4
- ldrh r0, [r0]
- b _080CB1D2
- .align 2, 0
-_080CB1CC: .4byte gUnknown_83F5B30
-_080CB1D0:
- movs r0, 0xB
-_080CB1D2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB198
-
- thumb_func_start Special_CheckAddCoins
-Special_CheckAddCoins: @ 80CB1D8
-@ addcoins but it's a dry run
- push {lr}
- ldr r0, _080CB1F0 @ =gSpecialVar_Result
- ldrh r1, [r0]
- ldr r0, _080CB1F4 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- adds r1, r0
- ldr r0, _080CB1F8 @ =0x0000270f
- cmp r1, r0
- bgt _080CB1FC
- movs r0, 0x1
- b _080CB1FE
- .align 2, 0
-_080CB1F0: .4byte gSpecialVar_Result
-_080CB1F4: .4byte gSpecialVar_0x8006
-_080CB1F8: .4byte 0x0000270f
-_080CB1FC:
- movs r0, 0
-_080CB1FE:
- pop {r1}
- bx r1
- thumb_func_end Special_CheckAddCoins
-
- thumb_func_start sub_80CB204
-sub_80CB204: @ 80CB204
- push {r4,lr}
- movs r3, 0x4
- ldr r0, _080CB22C @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0x14
- ldrsb r1, [r2, r1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _080CB2AA
- ldrb r0, [r2, 0x15]
- subs r0, 0x2A
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xF
- bhi _080CB2AA
- lsls r0, 2
- ldr r1, _080CB230 @ =_080CB234
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CB22C: .4byte gSaveBlock1Ptr
-_080CB230: .4byte _080CB234
- .align 2, 0
-_080CB234:
- .4byte _080CB2A0
- .4byte _080CB2A4
- .4byte _080CB2AA
- .4byte _080CB2A8
- .4byte _080CB2AA
- .4byte _080CB274
- .4byte _080CB278
- .4byte _080CB27C
- .4byte _080CB280
- .4byte _080CB284
- .4byte _080CB288
- .4byte _080CB28C
- .4byte _080CB290
- .4byte _080CB294
- .4byte _080CB298
- .4byte _080CB29C
-_080CB274:
- movs r3, 0x4
- b _080CB2AA
-_080CB278:
- movs r3, 0x5
- b _080CB2AA
-_080CB27C:
- movs r3, 0x6
- b _080CB2AA
-_080CB280:
- movs r3, 0x7
- b _080CB2AA
-_080CB284:
- movs r3, 0x8
- b _080CB2AA
-_080CB288:
- movs r3, 0x9
- b _080CB2AA
-_080CB28C:
- movs r3, 0xA
- b _080CB2AA
-_080CB290:
- movs r3, 0xB
- b _080CB2AA
-_080CB294:
- movs r3, 0xC
- b _080CB2AA
-_080CB298:
- movs r3, 0xD
- b _080CB2AA
-_080CB29C:
- movs r3, 0xE
- b _080CB2AA
-_080CB2A0:
- movs r3, 0x3
- b _080CB2AA
-_080CB2A4:
- movs r3, 0x2
- b _080CB2AA
-_080CB2A8:
- movs r3, 0
-_080CB2AA:
- ldr r1, [r4]
- movs r0, 0x14
- ldrsb r0, [r1, r0]
- cmp r0, 0xA
- bne _080CB2F2
- movs r0, 0x15
- ldrsb r0, [r1, r0]
- cmp r0, 0x4
- bhi _080CB2F2
- lsls r0, 2
- ldr r1, _080CB2C8 @ =_080CB2CC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CB2C8: .4byte _080CB2CC
- .align 2, 0
-_080CB2CC:
- .4byte _080CB2E0
- .4byte _080CB2E4
- .4byte _080CB2E8
- .4byte _080CB2EC
- .4byte _080CB2F0
-_080CB2E0:
- movs r3, 0x4
- b _080CB2F2
-_080CB2E4:
- movs r3, 0x5
- b _080CB2F2
-_080CB2E8:
- movs r3, 0x6
- b _080CB2F2
-_080CB2EC:
- movs r3, 0x7
- b _080CB2F2
-_080CB2F0:
- movs r3, 0x8
-_080CB2F2:
- ldr r1, [r4]
- movs r0, 0x14
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080CB314
- movs r0, 0x15
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- blt _080CB314
- cmp r0, 0x9
- ble _080CB30E
- cmp r0, 0xA
- beq _080CB312
- b _080CB314
-_080CB30E:
- movs r3, 0xF
- b _080CB314
-_080CB312:
- movs r3, 0x3
-_080CB314:
- ldr r0, _080CB324 @ =0x0000403a
- adds r1, r3, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB324: .4byte 0x0000403a
- thumb_func_end sub_80CB204
-
- thumb_func_start sub_80CB328
-sub_80CB328: @ 80CB328
- push {r4-r6,lr}
- ldr r3, _080CB35C @ =gUnknown_2039A0E
- movs r0, 0
- strh r0, [r3]
- ldr r1, _080CB360 @ =gUnknown_2039A10
- strh r0, [r1]
- ldr r0, _080CB364 @ =gSaveBlock1Ptr
- ldr r5, [r0]
- movs r2, 0x14
- ldrsb r2, [r5, r2]
- adds r4, r3, 0
- adds r3, r1, 0
- adds r6, r0, 0
- cmp r2, 0x1
- bne _080CB40C
- ldrb r0, [r5, 0x15]
- subs r0, 0x2A
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xF
- bhi _080CB40C
- lsls r0, 2
- ldr r1, _080CB368 @ =_080CB36C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CB35C: .4byte gUnknown_2039A0E
-_080CB360: .4byte gUnknown_2039A10
-_080CB364: .4byte gSaveBlock1Ptr
-_080CB368: .4byte _080CB36C
- .align 2, 0
-_080CB36C:
- .4byte _080CB3F6
- .4byte _080CB3FC
- .4byte _080CB40C
- .4byte _080CB404
- .4byte _080CB40C
- .4byte _080CB3F0
- .4byte _080CB3E8
- .4byte _080CB3E2
- .4byte _080CB3DA
- .4byte _080CB3D2
- .4byte _080CB3CA
- .4byte _080CB3C2
- .4byte _080CB3BA
- .4byte _080CB404
- .4byte _080CB3B2
- .4byte _080CB3AC
-_080CB3AC:
- movs r0, 0
- strh r0, [r4]
- b _080CB40A
-_080CB3B2:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
- b _080CB40A
-_080CB3BA:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x3
- b _080CB40A
-_080CB3C2:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x4
- b _080CB40A
-_080CB3CA:
- movs r0, 0x1
- strh r0, [r4]
- movs r0, 0x4
- b _080CB40A
-_080CB3D2:
- movs r0, 0x2
- strh r0, [r4]
- movs r0, 0x4
- b _080CB40A
-_080CB3DA:
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x4
- b _080CB40A
-_080CB3E2:
- movs r0, 0x4
- strh r0, [r4]
- b _080CB40A
-_080CB3E8:
- movs r0, 0x5
- strh r0, [r4]
- movs r0, 0x4
- b _080CB40A
-_080CB3F0:
- movs r0, 0x5
- strh r0, [r4]
- b _080CB40A
-_080CB3F6:
- movs r0, 0
- strh r0, [r4]
- b _080CB40A
-_080CB3FC:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
- b _080CB40A
-_080CB404:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x2
-_080CB40A:
- strh r0, [r3]
-_080CB40C:
- ldr r1, [r6]
- movs r0, 0x14
- ldrsb r0, [r1, r0]
- cmp r0, 0xA
- bne _080CB466
- movs r0, 0x15
- ldrsb r0, [r1, r0]
- cmp r0, 0x4
- bhi _080CB466
- lsls r0, 2
- ldr r1, _080CB428 @ =_080CB42C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CB428: .4byte _080CB42C
- .align 2, 0
-_080CB42C:
- .4byte _080CB45E
- .4byte _080CB456
- .4byte _080CB44E
- .4byte _080CB446
- .4byte _080CB440
-_080CB440:
- movs r0, 0
- strh r0, [r4]
- b _080CB464
-_080CB446:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
- b _080CB464
-_080CB44E:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x2
- b _080CB464
-_080CB456:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x3
- b _080CB464
-_080CB45E:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x4
-_080CB464:
- strh r0, [r3]
-_080CB466:
- ldr r1, [r6]
- movs r0, 0x14
- ldrsb r0, [r1, r0]
- cmp r0, 0x2
- bne _080CB490
- movs r0, 0x15
- ldrsb r0, [r1, r0]
- cmp r0, 0x1
- blt _080CB490
- cmp r0, 0x9
- ble _080CB482
- cmp r0, 0xA
- beq _080CB488
- b _080CB490
-_080CB482:
- movs r0, 0
- strh r0, [r4]
- b _080CB48E
-_080CB488:
- movs r0, 0
- strh r0, [r4]
- movs r0, 0x1
-_080CB48E:
- strh r0, [r3]
-_080CB490:
- ldrh r0, [r3]
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80CB328
-
- thumb_func_start sub_80CB498
-sub_80CB498: @ 80CB498
- push {r4-r6,lr}
- ldr r0, _080CB4D0 @ =sub_80CB514
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080CB4D4 @ =gTasks+0x8
- adds r4, r1, r0
- movs r3, 0
- strh r3, [r4, 0x2]
- strh r3, [r4, 0x4]
- movs r6, 0x1
- strh r6, [r4, 0x8]
- ldr r0, _080CB4D8 @ =gSpecialVar_0x8005
- ldr r1, _080CB4DC @ =gSpecialVar_0x8006
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bls _080CB4E0
- subs r0, r2, r0
- lsls r0, 16
- lsrs r5, r0, 16
- strh r6, [r4, 0xC]
- b _080CB4E8
- .align 2, 0
-_080CB4D0: .4byte sub_80CB514
-_080CB4D4: .4byte gTasks+0x8
-_080CB4D8: .4byte gSpecialVar_0x8005
-_080CB4DC: .4byte gSpecialVar_0x8006
-_080CB4E0:
- subs r0, r2
- lsls r0, 16
- lsrs r5, r0, 16
- strh r3, [r4, 0xC]
-_080CB4E8:
- cmp r5, 0x8
- bls _080CB4EE
- movs r5, 0x8
-_080CB4EE:
- ldr r0, _080CB510 @ =gUnknown_83F5BB8
- adds r0, r5, r0
- ldrb r0, [r0]
- strh r0, [r4, 0xA]
- movs r0, 0
- bl SetCameraPanningCallback
- ldrb r1, [r4, 0xC]
- adds r0, r5, 0
- bl sub_80CB658
- movs r0, 0x52
- bl PlaySE
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB510: .4byte gUnknown_83F5BB8
- thumb_func_end sub_80CB498
-
- thumb_func_start sub_80CB514
-sub_80CB514: @ 80CB514
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CB57C @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bne _080CB574
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- adds r0, 0x1
- strh r0, [r4, 0x4]
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r0, 0x4
- ldrsh r1, [r4, r0]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080CB574
- movs r0, 0x42
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_080CB574:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB57C: .4byte gTasks+0x8
- thumb_func_end sub_80CB514
-
- thumb_func_start sub_80CB580
-sub_80CB580: @ 80CB580
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- ldr r0, _080CB620 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CB614
- ldr r4, _080CB624 @ =gUnknown_2039A0C
- ldr r0, _080CB628 @ =gUnknown_83F5B3C
- bl AddWindow
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r5, _080CB62C @ =0x0000021d
- adds r1, r5, 0
- movs r2, 0xD0
- bl TextWindow_SetStdFrame0_WithPal
- ldrb r0, [r4]
- movs r1, 0
- adds r2, r5, 0
- movs r3, 0xD
- bl DrawStdFrameWithCustomTileAndPalette
- ldrb r0, [r4]
- ldr r2, _080CB630 @ =gUnknown_8418075
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xFF
- mov r8, r1
- str r1, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized
- ldr r1, _080CB634 @ =gUnknown_83F5B44
- ldr r0, _080CB638 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r5, [r0]
- movs r0, 0x2
- adds r1, r5, 0
- movs r2, 0
- bl GetStringWidth
- ldrb r1, [r4]
- movs r3, 0x38
- subs r3, r0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x10
- str r0, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r1, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- bl PutWindowTilemap
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
-_080CB614:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB620: .4byte sub_809D6D4
-_080CB624: .4byte gUnknown_2039A0C
-_080CB628: .4byte gUnknown_83F5B3C
-_080CB62C: .4byte 0x0000021d
-_080CB630: .4byte gUnknown_8418075
-_080CB634: .4byte gUnknown_83F5B44
-_080CB638: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80CB580
-
- thumb_func_start sub_80CB63C
-sub_80CB63C: @ 80CB63C
- push {r4,lr}
- ldr r4, _080CB654 @ =gUnknown_2039A0C
- ldrb r0, [r4]
- movs r1, 0x1
- bl ClearStdWindowAndFrameToTransparent
- ldrb r0, [r4]
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB654: .4byte gUnknown_2039A0C
- thumb_func_end sub_80CB63C
-
- thumb_func_start sub_80CB658
-sub_80CB658: @ 80CB658
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, _080CB6A0 @ =sub_80CB6AC
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CB698
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CB6A4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r5, [r1, 0xC]
- ldr r0, _080CB6A8 @ =gUnknown_83F5BC1
- adds r0, r6, r0
- ldrb r0, [r0]
- strh r0, [r1, 0xE]
-_080CB698:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB6A0: .4byte sub_80CB6AC
-_080CB6A4: .4byte gTasks
-_080CB6A8: .4byte gUnknown_83F5BC1
- thumb_func_end sub_80CB658
-
- thumb_func_start sub_80CB6AC
-sub_80CB6AC: @ 80CB6AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CB734 @ =gTasks+0x8
- adds r6, r0, r1
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0x6
- bne _080CB7A8
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _080CB73C
- movs r1, 0
- ldr r2, _080CB738 @ =gUnknown_83F5B94
- mov r10, r2
-_080CB6E6:
- movs r5, 0
- adds r7, r1, 0x7
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r8, r2
- adds r0, r1
- lsls r0, 1
- mov r9, r0
-_080CB6F6:
- adds r4, r5, 0
- adds r4, 0x8
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 15
- add r0, r9
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- adds r2, r1, 0
- orrs r2, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080CB6F6
- mov r2, r8
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080CB6E6
- b _080CB78E
- .align 2, 0
-_080CB734: .4byte gTasks+0x8
-_080CB738: .4byte gUnknown_83F5B94
-_080CB73C:
- movs r1, 0
- ldr r0, _080CB7C0 @ =gUnknown_83F5BA6
- mov r10, r0
-_080CB742:
- movs r5, 0
- adds r7, r1, 0x7
- lsls r0, r1, 1
- adds r2, r1, 0x1
- mov r8, r2
- adds r0, r1
- lsls r0, 1
- mov r9, r0
-_080CB752:
- adds r4, r5, 0
- adds r4, 0x8
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- asrs r0, 15
- add r0, r9
- add r0, r10
- ldrh r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- adds r2, r1, 0
- orrs r2, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _080CB752
- mov r2, r8
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _080CB742
-_080CB78E:
- bl DrawWholeMapView
- movs r0, 0
- strh r0, [r6, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- cmp r1, r0
- bne _080CB7A8
- ldr r0, [sp]
- bl DestroyTask
-_080CB7A8:
- ldrh r0, [r6, 0x2]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB7C0: .4byte gUnknown_83F5BA6
- thumb_func_end sub_80CB6AC
-
- thumb_func_start sub_80CB7C4
-sub_80CB7C4: @ 80CB7C4
- push {r4,r5,lr}
- ldr r0, _080CB808 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CB7D6
- b _080CB8F8
-_080CB7D6:
- ldr r0, _080CB80C @ =sub_80CB904
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CB810 @ =gTasks
- adds r3, r0, r1
- ldr r0, _080CB814 @ =gSpecialVar_0x8004
- ldrh r4, [r0]
- cmp r4, 0x3
- beq _080CB886
- cmp r4, 0x3
- bgt _080CB818
- cmp r4, 0x1
- beq _080CB842
- cmp r4, 0x1
- bgt _080CB870
- cmp r4, 0
- beq _080CB82A
- b _080CB8EC
- .align 2, 0
-_080CB808: .4byte sub_809D6D4
-_080CB80C: .4byte sub_80CB904
-_080CB810: .4byte gTasks
-_080CB814: .4byte gSpecialVar_0x8004
-_080CB818:
- cmp r4, 0x5
- beq _080CB8B4
- cmp r4, 0x5
- blt _080CB89E
- cmp r4, 0x6
- beq _080CB8D2
- cmp r4, 0x63
- beq _080CB8F8
- b _080CB8EC
-_080CB82A:
- movs r0, 0x4
- strh r0, [r3, 0x8]
- movs r0, 0x9
- strh r0, [r3, 0xA]
- movs r1, 0x1
- strh r1, [r3, 0xC]
- strh r1, [r3, 0xE]
- movs r0, 0xC
- strh r0, [r3, 0x10]
- movs r0, 0x7
- strh r0, [r3, 0x12]
- b _080CB8E6
-_080CB842:
- movs r2, 0
- movs r0, 0x7
- strh r0, [r3, 0x8]
- movs r1, 0xC
- strh r1, [r3, 0xA]
- strh r4, [r3, 0xC]
- strh r4, [r3, 0xE]
- movs r0, 0x8
- strh r0, [r3, 0x10]
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- strh r5, [r3, 0x26]
- ldr r0, _080CB868 @ =gUnknown_2039A0E
- ldrh r0, [r0]
- strh r0, [r3, 0x16]
- ldr r0, _080CB86C @ =gUnknown_2039A10
- ldrh r0, [r0]
- strh r0, [r3, 0x18]
- b _080CB8F8
- .align 2, 0
-_080CB868: .4byte gUnknown_2039A0E
-_080CB86C: .4byte gUnknown_2039A10
-_080CB870:
- movs r1, 0
- movs r0, 0x4
- strh r0, [r3, 0x8]
- strh r0, [r3, 0xA]
- movs r0, 0x1
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- movs r0, 0x8
- strh r0, [r3, 0x10]
- strh r0, [r3, 0x12]
- b _080CB8E6
-_080CB886:
- movs r1, 0
- movs r0, 0x4
- strh r0, [r3, 0x8]
- movs r0, 0x6
- strh r0, [r3, 0xA]
- movs r0, 0x1
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- movs r0, 0x8
- strh r0, [r3, 0x10]
- strh r0, [r3, 0x12]
- b _080CB8E6
-_080CB89E:
- movs r0, 0x4
- strh r0, [r3, 0x8]
- strh r0, [r3, 0xA]
- movs r1, 0x1
- strh r1, [r3, 0xC]
- strh r1, [r3, 0xE]
- movs r0, 0x11
- strh r0, [r3, 0x10]
- movs r0, 0x8
- strh r0, [r3, 0x12]
- b _080CB8E6
-_080CB8B4:
- movs r2, 0
- movs r0, 0x7
- strh r0, [r3, 0x8]
- movs r1, 0xC
- strh r1, [r3, 0xA]
- movs r0, 0x10
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0xE]
- movs r0, 0x11
- strh r0, [r3, 0x10]
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- strh r5, [r3, 0x26]
- b _080CB8F8
-_080CB8D2:
- movs r1, 0
- movs r0, 0x3
- strh r0, [r3, 0x8]
- strh r0, [r3, 0xA]
- movs r0, 0x1
- strh r0, [r3, 0xC]
- strh r0, [r3, 0xE]
- movs r0, 0x8
- strh r0, [r3, 0x10]
- strh r4, [r3, 0x12]
-_080CB8E6:
- strh r1, [r3, 0x14]
- strh r5, [r3, 0x26]
- b _080CB8F8
-_080CB8EC:
- ldr r1, _080CB900 @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- adds r0, r5, 0
- bl DestroyTask
-_080CB8F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CB900: .4byte gSpecialVar_Result
- thumb_func_end sub_80CB7C4
-
- thumb_func_start sub_80CB904
-sub_80CB904: @ 80CB904
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _080CB934 @ =gTasks
- adds r5, r0, r1
- bl ScriptContext2_Enable
- ldr r0, _080CB938 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080CB944
- ldr r0, _080CB93C @ =gUnknown_2039A18
- ldr r1, _080CB940 @ =gUnknown_2039A0E
- ldrh r1, [r1]
- strh r1, [r0]
- b _080CB94A
- .align 2, 0
-_080CB934: .4byte gTasks
-_080CB938: .4byte gSpecialVar_0x8004
-_080CB93C: .4byte gUnknown_2039A18
-_080CB940: .4byte gUnknown_2039A0E
-_080CB944:
- ldr r1, _080CBA60 @ =gUnknown_2039A18
- movs r0, 0
- strh r0, [r1]
-_080CB94A:
- ldr r4, _080CBA64 @ =gUnknown_2039A14
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r0, 3
- bl AllocZeroed
- str r0, [r4]
- bl sub_80CBA7C
- movs r6, 0
- movs r4, 0
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- lsls r3, r7, 2
- mov r10, r3
- add r1, sp, 0x18
- mov r9, r1
- cmp r6, r0
- bge _080CB9AE
- ldr r2, _080CBA68 @ =gUnknown_83F5BCC
- mov r8, r2
-_080CB974:
- ldr r0, _080CBA64 @ =gUnknown_2039A14
- ldr r0, [r0]
- lsls r3, r4, 3
- adds r3, r0
- lsls r2, r4, 2
- ldr r0, _080CBA6C @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- adds r2, r0
- add r2, r8
- ldr r1, [r2]
- str r1, [r3]
- str r4, [r3, 0x4]
- movs r0, 0x2
- movs r2, 0
- bl GetStringWidth
- cmp r0, r6
- ble _080CB9A0
- adds r6, r0, 0
-_080CB9A0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r3, 0xA
- ldrsh r0, [r5, r3]
- cmp r4, r0
- blt _080CB974
-_080CB9AE:
- adds r0, r6, 0
- adds r0, 0x9
- cmp r0, 0
- bge _080CB9B8
- adds r0, 0x7
-_080CB9B8:
- asrs r0, 3
- adds r2, r0, 0x1
- strh r2, [r5, 0x10]
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- movs r3, 0x10
- ldrsh r1, [r5, r3]
- adds r0, r1
- cmp r0, 0x1D
- ble _080CB9D2
- movs r0, 0x1D
- subs r0, r2
- strh r0, [r5, 0xC]
-_080CB9D2:
- ldrb r2, [r5, 0xC]
- ldrb r3, [r5, 0xE]
- ldrb r0, [r5, 0x10]
- str r0, [sp]
- ldrb r0, [r5, 0x12]
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x38
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- mov r0, r9
- bl AddWindow
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- movs r1, 0
- bl SetStdWindowBorderStyle
- ldr r4, _080CBA70 @ =gUnknown_3005360
- ldrh r0, [r5, 0xA]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x8]
- strh r0, [r4, 0xE]
- ldrh r0, [r5, 0x22]
- strb r0, [r4, 0x10]
- adds r0, r7, 0
- bl sub_80CBCC0
- ldrh r1, [r5, 0x16]
- ldrh r2, [r5, 0x18]
- adds r0, r4, 0
- bl ListMenuInit
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl PutWindowTilemap
- ldrh r0, [r5, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, _080CBA74 @ =gTasks
- mov r2, r10
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CBA78 @ =sub_80CBB28
- str r1, [r0]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBA60: .4byte gUnknown_2039A18
-_080CBA64: .4byte gUnknown_2039A14
-_080CBA68: .4byte gUnknown_83F5BCC
-_080CBA6C: .4byte gSpecialVar_0x8004
-_080CBA70: .4byte gUnknown_3005360
-_080CBA74: .4byte gTasks
-_080CBA78: .4byte sub_80CBB28
- thumb_func_end sub_80CB904
-
- thumb_func_start sub_80CBA7C
-sub_80CBA7C: @ 80CBA7C
- ldr r2, _080CBAD0 @ =gUnknown_3005360
- ldr r0, _080CBAD4 @ =gUnknown_2039A14
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _080CBAD8 @ =sub_80CBADC
- str r0, [r2, 0x4]
- movs r0, 0
- str r0, [r2, 0x8]
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0xC]
- strh r0, [r2, 0xE]
- strb r1, [r2, 0x10]
- strb r1, [r2, 0x11]
- movs r0, 0x8
- strb r0, [r2, 0x12]
- strb r1, [r2, 0x13]
- movs r0, 0x20
- strb r0, [r2, 0x14]
- movs r3, 0x1
- movs r0, 0x31
- strb r0, [r2, 0x15]
- ldrb r1, [r2, 0x16]
- subs r0, 0x39
- ands r0, r1
- orrs r0, r3
- movs r1, 0x39
- negs r1, r1
- ands r0, r1
- movs r3, 0x3F
- ands r0, r3
- strb r0, [r2, 0x16]
- ldrb r1, [r2, 0x17]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- ands r0, r3
- strb r0, [r2, 0x17]
- bx lr
- .align 2, 0
-_080CBAD0: .4byte gUnknown_3005360
-_080CBAD4: .4byte gUnknown_2039A14
-_080CBAD8: .4byte sub_80CBADC
- thumb_func_end sub_80CBA7C
-
- thumb_func_start sub_80CBADC
-sub_80CBADC: @ 80CBADC
- push {r4,lr}
- movs r0, 0x5
- bl PlaySE
- ldr r0, _080CBB18 @ =sub_80CBB28
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080CBB12
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080CBB1C @ =gTasks
- adds r0, r1
- ldrh r0, [r0, 0x24]
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _080CBB20 @ =gUnknown_3005378
- adds r1, r4, 0
- movs r2, 0
- bl ListMenuGetScrollAndRow
- ldr r1, _080CBB24 @ =gUnknown_2039A18
- ldrh r0, [r4]
- strh r0, [r1]
-_080CBB12:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBB18: .4byte sub_80CBB28
-_080CBB1C: .4byte gTasks
-_080CBB20: .4byte gUnknown_3005378
-_080CBB24: .4byte gUnknown_2039A18
- thumb_func_end sub_80CBADC
-
- thumb_func_start sub_80CBB28
-sub_80CBB28: @ 80CBB28
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CBB54 @ =gTasks
- adds r6, r0, r1
- ldrh r0, [r6, 0x24]
- lsls r0, 24
- lsrs r0, 24
- bl ListMenu_ProcessInput
- adds r4, r0, 0
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _080CBB58
- adds r0, 0x1
- cmp r4, r0
- bne _080CBB6C
- b _080CBBA2
- .align 2, 0
-_080CBB54: .4byte gTasks
-_080CBB58:
- ldr r1, _080CBB68 @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- b _080CBB88
- .align 2, 0
-_080CBB68: .4byte gSpecialVar_Result
-_080CBB6C:
- ldr r0, _080CBB90 @ =gSpecialVar_Result
- strh r4, [r0]
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _080CBB88
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- subs r0, 0x1
- cmp r4, r0
- bne _080CBB94
-_080CBB88:
- adds r0, r5, 0
- bl sub_80CBBAC
- b _080CBBA2
- .align 2, 0
-_080CBB90: .4byte gSpecialVar_Result
-_080CBB94:
- adds r0, r5, 0
- bl sub_80CBD50
- ldr r0, _080CBBA8 @ =sub_80CBC2C
- str r0, [r6]
- bl EnableBothScriptContexts
-_080CBBA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBBA8: .4byte sub_80CBC2C
- thumb_func_end sub_80CBB28
-
- thumb_func_start sub_80CBBAC
-sub_80CBBAC: @ 80CBBAC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- ldr r0, _080CBC24 @ =gTasks
- adds r4, r0
- adds r0, r5, 0
- bl sub_80CBD50
- ldrh r0, [r4, 0x24]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldr r0, _080CBC28 @ =gUnknown_2039A14
- ldr r0, [r0]
- bl Free
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl ClearStdWindowAndFrameToTransparent
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl FillWindowPixelBuffer
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl ClearWindowTilemap
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl CopyWindowToVram
- ldrh r0, [r4, 0x22]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBC24: .4byte gTasks
-_080CBC28: .4byte gUnknown_2039A14
- thumb_func_end sub_80CBBAC
-
- thumb_func_start sub_80CBC2C
-sub_80CBC2C: @ 80CBC2C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CBC54 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x14
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080CBC50
- cmp r0, 0x2
- bne _080CBC50
- movs r0, 0x1
- strh r0, [r1, 0x14]
- ldr r0, _080CBC58 @ =sub_80CBC90
- str r0, [r1]
-_080CBC50:
- pop {r0}
- bx r0
- .align 2, 0
-_080CBC54: .4byte gTasks
-_080CBC58: .4byte sub_80CBC90
- thumb_func_end sub_80CBC2C
-
- thumb_func_start sub_80CBC5C
-sub_80CBC5C: @ 80CBC5C
- push {lr}
- ldr r0, _080CBC74 @ =sub_80CBC2C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080CBC78
- bl EnableBothScriptContexts
- b _080CBC88
- .align 2, 0
-_080CBC74: .4byte sub_80CBC2C
-_080CBC78:
- ldr r0, _080CBC8C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- adds r0, 0x1
- strh r0, [r1, 0x14]
-_080CBC88:
- pop {r0}
- bx r0
- .align 2, 0
-_080CBC8C: .4byte gTasks
- thumb_func_end sub_80CBC5C
-
- thumb_func_start sub_80CBC90
-sub_80CBC90: @ 80CBC90
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- adds r0, r4, 0
- bl sub_80CBCC0
- ldr r1, _080CBCB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CBCBC @ =sub_80CBB28
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBCB8: .4byte gTasks
-_080CBCBC: .4byte sub_80CBB28
- thumb_func_end sub_80CBC90
-
- thumb_func_start sub_80CBCC0
-sub_80CBCC0: @ 80CBCC0
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080CBD44 @ =gTasks
- adds r4, r1, r0
- mov r1, sp
- ldr r0, _080CBD48 @ =gUnknown_83F5D1C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _080CBD3C
- mov r2, sp
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r1, 2
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- lsls r0, 3
- adds r1, r0
- movs r3, 0
- strb r1, [r2, 0x1]
- mov r1, sp
- movs r0, 0x8
- strb r0, [r1, 0x2]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsls r1, 2
- movs r5, 0xC
- ldrsh r0, [r4, r5]
- lsls r0, 3
- adds r1, r0
- strb r1, [r2, 0x4]
- mov r1, sp
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- lsls r0, 3
- adds r0, 0xA
- strb r0, [r1, 0x5]
- mov r0, sp
- strh r3, [r0, 0x6]
- mov r2, sp
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- subs r0, r1
- strh r0, [r2, 0x8]
- ldr r1, _080CBD4C @ =gUnknown_2039A18
- mov r0, sp
- bl AddScrollIndicatorArrowPair
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
-_080CBD3C:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBD44: .4byte gTasks
-_080CBD48: .4byte gUnknown_83F5D1C
-_080CBD4C: .4byte gUnknown_2039A18
- thumb_func_end sub_80CBCC0
-
- thumb_func_start sub_80CBD50
-sub_80CBD50: @ 80CBD50
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080CBD7C @ =gTasks
- adds r2, r1, r0
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r1, r0
- beq _080CBD76
- ldrh r0, [r2, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveScrollIndicatorArrowPair
-_080CBD76:
- pop {r0}
- bx r0
- .align 2, 0
-_080CBD7C: .4byte gTasks
- thumb_func_end sub_80CBD50
-
- thumb_func_start sub_80CBD80
-sub_80CBD80: @ 80CBD80
- push {lr}
- movs r0, 0x16
- bl HelpSystem_SetSomeVariable2
- movs r0, 0x8
- bl SetPlayerAvatarTransitionFlags
- pop {r0}
- bx r0
- thumb_func_end sub_80CBD80
-
- thumb_func_start GetStarterPokemon
-GetStarterPokemon: @ 80CBD94
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x2
- bls _080CBDA0
- movs r1, 0
-_080CBDA0:
- ldr r0, _080CBDAC @ =sStarterMon
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- pop {r1}
- bx r1
- .align 2, 0
-_080CBDAC: .4byte sStarterMon
- thumb_func_end GetStarterPokemon
-
- thumb_func_start ScrSpecial_GetStarter
-ScrSpecial_GetStarter: @ 80CBDB0
- push {lr}
- ldr r0, _080CBDC8 @ =0x00004031
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_080CBDC8: .4byte 0x00004031
- thumb_func_end ScrSpecial_GetStarter
-
- thumb_func_start sub_80CBDCC
-sub_80CBDCC: @ 80CBDCC
- push {lr}
- ldr r0, _080CBDE4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl GetSetPokedexFlag
- pop {r0}
- bx r0
- .align 2, 0
-_080CBDE4: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80CBDCC
-
- thumb_func_start sub_80CBDE8
-sub_80CBDE8: @ 80CBDE8
- ldr r1, _080CBDF8 @ =gSelectedEventObject
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080CBDFC @ =gUnknown_20370DA
- movs r0, 0xFF
- strh r0, [r1]
- bx lr
- .align 2, 0
-_080CBDF8: .4byte gSelectedEventObject
-_080CBDFC: .4byte gUnknown_20370DA
- thumb_func_end sub_80CBDE8
-
- thumb_func_start ContextNpcGetTextColor
-ContextNpcGetTextColor: @ 80CBE00
- push {lr}
- ldr r0, _080CBE18 @ =gUnknown_20370DA
- ldrh r0, [r0]
- cmp r0, 0xFF
- bne _080CBE44
- ldr r1, _080CBE1C @ =gSelectedEventObject
- ldrb r0, [r1]
- cmp r0, 0
- bne _080CBE20
- movs r0, 0x3
- b _080CBE48
- .align 2, 0
-_080CBE18: .4byte gUnknown_20370DA
-_080CBE1C: .4byte gSelectedEventObject
-_080CBE20:
- ldr r2, _080CBE4C @ =gMapObjects
- ldrb r1, [r1]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- cmp r0, 0xEF
- bls _080CBE40
- adds r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- bl VarGetFieldObjectGraphicsId
- lsls r0, 24
- lsrs r0, 24
-_080CBE40:
- bl GetColorFromTextColorTable
-_080CBE44:
- lsls r0, 24
- lsrs r0, 24
-_080CBE48:
- pop {r1}
- bx r1
- .align 2, 0
-_080CBE4C: .4byte gMapObjects
- thumb_func_end ContextNpcGetTextColor
-
- thumb_func_start sub_80CBE50
-sub_80CBE50: @ 80CBE50
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080CBEA4 @ =gPlayerParty
- adds r5, r1, r0
- ldr r6, _080CBEA8 @ =gStringVar1
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
- mov r4, sp
- adds r0, r5, 0
- movs r1, 0x3
- mov r2, sp
- bl GetMonData
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080CBEB0
- adds r0, r5, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- movs r1, 0xB
- muls r0, r1
- ldr r1, _080CBEAC @ =gSpeciesNames
- adds r0, r1
- adds r1, r6, 0
- bl StringCompare
- cmp r0, 0
- bne _080CBEB0
- movs r0, 0
- b _080CBEB2
- .align 2, 0
-_080CBEA4: .4byte gPlayerParty
-_080CBEA8: .4byte gStringVar1
-_080CBEAC: .4byte gSpeciesNames
-_080CBEB0:
- movs r0, 0x1
-_080CBEB2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80CBE50
-
- thumb_func_start sub_80CBEBC
-sub_80CBEBC: @ 80CBEBC
- push {lr}
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- bl sub_80CBE50
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80CBEBC
-
- thumb_func_start TV_PrintIntToStringVar
-TV_PrintIntToStringVar: @ 80CBED4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl CountDigits
- adds r3, r0, 0
- ldr r0, _080CBF00 @ =gUnknown_83F5AF8
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsls r3, 24
- lsrs r3, 24
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CBF00: .4byte gUnknown_83F5AF8
- thumb_func_end TV_PrintIntToStringVar
-
- thumb_func_start CountDigits
-CountDigits: @ 80CBF04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xA
- bl __divsi3
- cmp r0, 0
- beq _080CBF90
- adds r0, r4, 0
- movs r1, 0x64
- bl __divsi3
- cmp r0, 0
- bne _080CBF22
- movs r0, 0x2
- b _080CBF9A
-_080CBF22:
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080CBF34
- movs r0, 0x3
- b _080CBF9A
-_080CBF34:
- ldr r1, _080CBF44 @ =0x00002710
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080CBF48
- movs r0, 0x4
- b _080CBF9A
- .align 2, 0
-_080CBF44: .4byte 0x00002710
-_080CBF48:
- ldr r1, _080CBF58 @ =0x000186a0
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080CBF5C
- movs r0, 0x5
- b _080CBF9A
- .align 2, 0
-_080CBF58: .4byte 0x000186a0
-_080CBF5C:
- ldr r1, _080CBF6C @ =0x000f4240
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080CBF70
- movs r0, 0x6
- b _080CBF9A
- .align 2, 0
-_080CBF6C: .4byte 0x000f4240
-_080CBF70:
- ldr r1, _080CBF80 @ =0x00989680
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- bne _080CBF84
- movs r0, 0x7
- b _080CBF9A
- .align 2, 0
-_080CBF80: .4byte 0x00989680
-_080CBF84:
- ldr r1, _080CBF94 @ =0x05f5e100
- adds r0, r4, 0
- bl __divsi3
- cmp r0, 0
- beq _080CBF98
-_080CBF90:
- movs r0, 0x1
- b _080CBF9A
- .align 2, 0
-_080CBF94: .4byte 0x05f5e100
-_080CBF98:
- movs r0, 0x8
-_080CBF9A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CountDigits
-
- thumb_func_start sub_80CBFA0
-sub_80CBFA0: @ 80CBFA0
- push {r4,lr}
- ldr r0, _080CBFC8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CBFCC @ =gPlayerParty
- adds r0, r1
- ldr r4, _080CBFD0 @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _080CBFD4 @ =gStringVar3
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _080CBFD8
- movs r0, 0x1
- b _080CBFDA
- .align 2, 0
-_080CBFC8: .4byte gSpecialVar_0x8004
-_080CBFCC: .4byte gPlayerParty
-_080CBFD0: .4byte gStringVar1
-_080CBFD4: .4byte gStringVar3
-_080CBFD8:
- movs r0, 0
-_080CBFDA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CBFA0
-
- thumb_func_start ChangeBoxPokemonNickname
-ChangeBoxPokemonNickname: @ 80CBFE0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- ldr r0, _080CC050 @ =gSpecialVar_MonBoxId
- ldrb r0, [r0]
- ldr r1, _080CC054 @ =gSpecialVar_MonBoxPos
- ldrb r1, [r1]
- bl GetBoxedMonPtr
- adds r6, r0, 0
- ldr r2, _080CC058 @ =gStringVar3
- movs r1, 0x2
- bl GetBoxMonData
- ldr r0, _080CC05C @ =gStringVar2
- mov r8, r0
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, r8
- bl GetBoxMonData
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl GetBoxMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- bl GetBoxMonData
- str r0, [sp]
- ldr r0, _080CC060 @ =ChangeBoxPokemonNickname_CB
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r8
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC050: .4byte gSpecialVar_MonBoxId
-_080CC054: .4byte gSpecialVar_MonBoxPos
-_080CC058: .4byte gStringVar3
-_080CC05C: .4byte gStringVar2
-_080CC060: .4byte ChangeBoxPokemonNickname_CB
- thumb_func_end ChangeBoxPokemonNickname
-
- thumb_func_start ChangeBoxPokemonNickname_CB
-ChangeBoxPokemonNickname_CB: @ 80CC064
- push {lr}
- ldr r0, _080CC07C @ =gSpecialVar_MonBoxId
- ldrb r0, [r0]
- ldr r1, _080CC080 @ =gSpecialVar_MonBoxPos
- ldrb r1, [r1]
- ldr r2, _080CC084 @ =gStringVar2
- bl SetBoxMonNickFromAnyBox
- bl CB2_ReturnToFieldContinueScriptPlayMapMusic
- pop {r0}
- bx r0
- .align 2, 0
-_080CC07C: .4byte gSpecialVar_MonBoxId
-_080CC080: .4byte gSpecialVar_MonBoxPos
-_080CC084: .4byte gStringVar2
- thumb_func_end ChangeBoxPokemonNickname_CB
-
- thumb_func_start ChangePokemonNickname
-ChangePokemonNickname: @ 80CC088
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- ldr r0, _080CC130 @ =gSpecialVar_0x8004
- mov r9, r0
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _080CC134 @ =gPlayerParty
- adds r0, r6
- ldr r2, _080CC138 @ =gStringVar3
- movs r1, 0x2
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- ldr r1, _080CC13C @ =gStringVar2
- mov r10, r1
- movs r1, 0x2
- mov r2, r10
- bl GetMonData
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- bl GetMonGender
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- ldrh r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _080CC140 @ =ChangePokemonNickname_CB
- str r0, [sp, 0x4]
- movs r0, 0x3
- mov r1, r10
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoNamingScreen
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC130: .4byte gSpecialVar_0x8004
-_080CC134: .4byte gPlayerParty
-_080CC138: .4byte gStringVar3
-_080CC13C: .4byte gStringVar2
-_080CC140: .4byte ChangePokemonNickname_CB
- thumb_func_end ChangePokemonNickname
-
- thumb_func_start ChangePokemonNickname_CB
-ChangePokemonNickname_CB: @ 80CC144
- push {lr}
- ldr r0, _080CC164 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CC168 @ =gPlayerParty
- adds r0, r1
- ldr r2, _080CC16C @ =gStringVar2
- movs r1, 0x2
- bl SetMonData
- bl CB2_ReturnToFieldContinueScriptPlayMapMusic
- pop {r0}
- bx r0
- .align 2, 0
-_080CC164: .4byte gSpecialVar_0x8004
-_080CC168: .4byte gPlayerParty
-_080CC16C: .4byte gStringVar2
- thumb_func_end ChangePokemonNickname_CB
-
- thumb_func_start TV_CopyNicknameToStringVar1AndEnsureTerminated
-TV_CopyNicknameToStringVar1AndEnsureTerminated: @ 80CC170
- push {r4,lr}
- ldr r0, _080CC194 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CC198 @ =gPlayerParty
- adds r0, r1
- ldr r4, _080CC19C @ =gStringVar1
- movs r1, 0x2
- adds r2, r4, 0
- bl GetMonData
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC194: .4byte gSpecialVar_0x8004
-_080CC198: .4byte gPlayerParty
-_080CC19C: .4byte gStringVar1
- thumb_func_end TV_CopyNicknameToStringVar1AndEnsureTerminated
-
- thumb_func_start TV_CheckMonOTIDEqualsPlayerID
-TV_CheckMonOTIDEqualsPlayerID: @ 80CC1A0
- push {r4,lr}
- bl sub_80CC1E4
- adds r4, r0, 0
- ldr r0, _080CC1C8 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CC1CC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _080CC1D4
- ldr r1, _080CC1D0 @ =gSpecialVar_Result
- movs r0, 0
- b _080CC1D8
- .align 2, 0
-_080CC1C8: .4byte gSpecialVar_0x8004
-_080CC1CC: .4byte gPlayerParty
-_080CC1D0: .4byte gSpecialVar_Result
-_080CC1D4:
- ldr r1, _080CC1E0 @ =gSpecialVar_Result
- movs r0, 0x1
-_080CC1D8:
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC1E0: .4byte gSpecialVar_Result
- thumb_func_end TV_CheckMonOTIDEqualsPlayerID
-
- thumb_func_start sub_80CC1E4
-sub_80CC1E4: @ 80CC1E4
- ldr r0, _080CC200 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r0, [r2, 0xD]
- lsls r0, 24
- ldrb r1, [r2, 0xC]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0xB]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0xA]
- orrs r0, r1
- bx lr
- .align 2, 0
-_080CC200: .4byte gSaveBlock2Ptr
- thumb_func_end sub_80CC1E4
-
- thumb_func_start GetUnlockedSeviiAreas
-GetUnlockedSeviiAreas: @ 80CC204
- push {r4,lr}
- movs r4, 0
- ldr r0, _080CC2A4 @ =0x0000089b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC218
- movs r4, 0x1
-_080CC218:
- ldr r0, _080CC2A8 @ =0x0000089c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC22A
- movs r0, 0x2
- orrs r4, r0
-_080CC22A:
- ldr r0, _080CC2AC @ =0x0000089d
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC240
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080CC240:
- ldr r0, _080CC2B0 @ =0x0000089e
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC256
- movs r0, 0x8
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080CC256:
- ldr r0, _080CC2B4 @ =0x0000089f
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC26C
- movs r0, 0x10
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080CC26C:
- ldr r0, _080CC2B8 @ =0x000008a1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC282
- movs r0, 0x20
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080CC282:
- movs r0, 0x8A
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC29A
- movs r0, 0x40
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080CC29A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080CC2A4: .4byte 0x0000089b
-_080CC2A8: .4byte 0x0000089c
-_080CC2AC: .4byte 0x0000089d
-_080CC2B0: .4byte 0x0000089e
-_080CC2B4: .4byte 0x0000089f
-_080CC2B8: .4byte 0x000008a1
- thumb_func_end GetUnlockedSeviiAreas
-
- thumb_func_start sub_80CC2BC
-sub_80CC2BC: @ 80CC2BC
- push {r4-r7,lr}
- sub sp, 0x24
- movs r5, 0
- add r7, sp, 0xC
- movs r1, 0
-_080CC2C6:
- lsls r0, r5, 1
- add r0, sp
- strh r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080CC2C6
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _080CC318
-_080CC2E4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080CC3BC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r1, r5, 1
- add r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- lsls r1, r5, 2
- adds r1, r7, r1
- str r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _080CC2E4
-_080CC318:
- ldr r4, _080CC3C0 @ =0x00004043
- mov r0, sp
- ldrh r0, [r0]
- ldr r1, [sp, 0xC]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- adds r4, 0x1
- mov r0, sp
- ldrh r0, [r0, 0x2]
- ldr r1, [r7, 0x4]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- adds r4, 0x1
- mov r0, sp
- ldrh r0, [r0, 0x4]
- ldr r1, [r7, 0x8]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- adds r4, 0x1
- mov r0, sp
- ldrh r0, [r0, 0x6]
- ldr r1, [r7, 0xC]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- adds r4, 0x1
- mov r0, sp
- ldrh r0, [r0, 0x8]
- ldr r1, [r7, 0x10]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- adds r4, 0x1
- mov r0, sp
- ldrh r0, [r0, 0xA]
- ldr r1, [r7, 0x14]
- bl SpeciesToMailSpecies
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
- ldr r0, _080CC3C4 @ =0x00004042
- ldr r1, _080CC3C8 @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- bl VarSet
- add sp, 0x24
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC3BC: .4byte gPlayerParty
-_080CC3C0: .4byte 0x00004043
-_080CC3C4: .4byte 0x00004042
-_080CC3C8: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80CC2BC
-
- thumb_func_start sub_80CC3CC
-sub_80CC3CC: @ 80CC3CC
- push {r4-r6,lr}
- movs r5, 0
- ldr r4, _080CC3F8 @ =gSpecialVar_0x8004
- movs r0, 0xA
- bl GetGameStat
- strh r0, [r4]
- movs r0, 0xD
- bl GetGameStat
- adds r6, r0, 0
- ldr r4, _080CC3FC @ =gSpecialVar_0x8006
- movs r0, 0x17
- bl GetGameStat
- strh r0, [r4]
- ldr r1, _080CC400 @ =0x0000ffff
- cmp r6, r1
- bls _080CC408
- ldr r0, _080CC404 @ =gSpecialVar_0x8005
- strh r1, [r0]
- b _080CC40C
- .align 2, 0
-_080CC3F8: .4byte gSpecialVar_0x8004
-_080CC3FC: .4byte gSpecialVar_0x8006
-_080CC400: .4byte 0x0000ffff
-_080CC404: .4byte gSpecialVar_0x8005
-_080CC408:
- ldr r0, _080CC440 @ =gSpecialVar_0x8005
- strh r6, [r0]
-_080CC40C:
- adds r1, r0, 0
- ldr r0, _080CC444 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- beq _080CC41A
- movs r0, 0x1
- orrs r5, r0
-_080CC41A:
- ldrh r0, [r1]
- cmp r0, 0
- beq _080CC428
- movs r0, 0x2
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r5, r0, 16
-_080CC428:
- ldr r0, _080CC448 @ =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0
- beq _080CC438
- movs r0, 0x4
- orrs r5, r0
- lsls r0, r5, 16
- lsrs r5, r0, 16
-_080CC438:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080CC440: .4byte gSpecialVar_0x8005
-_080CC444: .4byte gSpecialVar_0x8004
-_080CC448: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80CC3CC
-
- thumb_func_start GetHiddenItemAttr
-GetHiddenItemAttr: @ 80CC44C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _080CC45E
- lsls r0, 16
- lsrs r0, 16
- b _080CC486
-_080CC45E:
- cmp r1, 0x1
- bne _080CC470
- lsrs r0, 16
- movs r1, 0xFF
- ands r0, r1
- movs r1, 0xFA
- lsls r1, 2
- adds r0, r1
- b _080CC486
-_080CC470:
- cmp r1, 0x2
- bne _080CC47C
- lsrs r0, 24
- movs r1, 0x7F
- ands r0, r1
- b _080CC486
-_080CC47C:
- cmp r2, 0x3
- beq _080CC484
- movs r0, 0x1
- b _080CC486
-_080CC484:
- lsrs r0, 31
-_080CC486:
- pop {r1}
- bx r1
- thumb_func_end GetHiddenItemAttr
-
- thumb_func_start sub_80CC48C
-sub_80CC48C: @ 80CC48C
- push {r4,r5,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _080CC4CA
-_080CC49C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CC4B8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _080CC4BC @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- cmp r0, r1
- bne _080CC4C0
- movs r0, 0x1
- b _080CC4CC
- .align 2, 0
-_080CC4B8: .4byte gPlayerParty
-_080CC4BC: .4byte gSpecialVar_0x8004
-_080CC4C0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _080CC49C
-_080CC4CA:
- movs r0, 0
-_080CC4CC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80CC48C
-
- thumb_func_start sub_80CC4D4
-sub_80CC4D4: @ 80CC4D4
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _080CC508 @ =gSaveBlock1Ptr
- ldr r4, [r0]
- movs r6, 0x4
- ldrsb r6, [r4, r6]
- ldr r5, _080CC50C @ =gUnknown_83F5D32
- adds r0, r5, 0x2
- mov r12, r0
- adds r7, r5, 0x1
-_080CC4E8:
- lsls r0, r3, 1
- adds r2, r0, r3
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r6, r0
- bne _080CC510
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- adds r0, r2, r7
- ldrb r0, [r0]
- cmp r1, r0
- bne _080CC510
- mov r1, r12
- adds r0, r2, r1
- ldrb r0, [r0]
- b _080CC51C
- .align 2, 0
-_080CC508: .4byte gSaveBlock1Ptr
-_080CC50C: .4byte gUnknown_83F5D32
-_080CC510:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _080CC4E8
- movs r0, 0x1
-_080CC51C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CC4D4
-
- thumb_func_start sub_80CC524
-sub_80CC524: @ 80CC524
- push {lr}
- movs r0, 0xB
- movs r1, 0
- bl sub_8113550
- pop {r0}
- bx r0
- thumb_func_end sub_80CC524
-
- thumb_func_start sub_80CC534
-sub_80CC534: @ 80CC534
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _080CC57C @ =gSaveBlock1Ptr
- ldr r5, _080CC580 @ =gUnknown_83F5D58
-_080CC53C:
- ldr r3, [r6]
- movs r1, 0x4
- ldrsb r1, [r3, r1]
- lsls r0, r4, 3
- adds r2, r0, r5
- ldrh r0, [r2]
- cmp r1, r0
- bne _080CC58C
- movs r0, 0x5
- ldrsb r0, [r3, r0]
- ldrh r2, [r2, 0x2]
- cmp r0, r2
- bne _080CC58C
- ldr r5, _080CC584 @ =0x0000404d
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x23
- bne _080CC56A
- cmp r4, 0x20
- beq _080CC596
-_080CC56A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl VarSet
- ldr r0, _080CC588 @ =0x00000808
- bl FlagSet
- b _080CC596
- .align 2, 0
-_080CC57C: .4byte gSaveBlock1Ptr
-_080CC580: .4byte gUnknown_83F5D58
-_080CC584: .4byte 0x0000404d
-_080CC588: .4byte 0x00000808
-_080CC58C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x32
- bls _080CC53C
-_080CC596:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80CC534
-
- thumb_func_start sub_80CC59C
-sub_80CC59C: @ 80CC59C
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r0, _080CC5F8 @ =0x0000404d
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r6, _080CC5FC @ =0xffffff00
- ldr r0, [sp, 0x4]
- ands r0, r6
- ldr r4, _080CC600 @ =0xffff00ff
- ands r0, r4
- str r0, [sp, 0x4]
- ldr r0, _080CC604 @ =0x00000808
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080CC5C4
- b _080CC71E
-_080CC5C4:
- cmp r5, 0x5
- bne _080CC61C
- ldr r0, _080CC608 @ =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- adds r7, r0, 0
- cmp r1, 0xF
- bne _080CC67C
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080CC5E2
- cmp r0, 0x3
- bne _080CC67C
-_080CC5E2:
- ldr r1, [sp, 0x4]
- ands r1, r6
- movs r0, 0x66
- orrs r1, r0
- str r1, [sp, 0x4]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, 0
- bne _080CC60C
- lsls r0, r5, 8
- b _080CC610
- .align 2, 0
-_080CC5F8: .4byte 0x0000404d
-_080CC5FC: .4byte 0xffffff00
-_080CC600: .4byte 0xffff00ff
-_080CC604: .4byte 0x00000808
-_080CC608: .4byte gSaveBlock1Ptr
-_080CC60C:
- movs r0, 0xC0
- lsls r0, 3
-_080CC610:
- ands r1, r4
- orrs r1, r0
- str r1, [sp, 0x4]
- add r1, sp, 0x4
- movs r0, 0x23
- b _080CC66C
-_080CC61C:
- ldr r7, _080CC65C @ =gSaveBlock1Ptr
- cmp r5, 0x3
- bne _080CC67C
- ldr r1, [r7]
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- cmp r0, 0x3
- bne _080CC67C
- ldrb r0, [r1, 0x5]
- subs r0, 0x29
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080CC67C
- ldr r1, _080CC660 @ =gUnknown_83F5D58
- ldrh r0, [r1, 0x18]
- ldrh r1, [r1, 0x1A]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- add r1, sp, 0x4
- strb r0, [r1]
- ldr r0, [r7]
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- adds r6, r1, 0
- cmp r0, 0x29
- bne _080CC664
- strb r5, [r6, 0x1]
- b _080CC668
- .align 2, 0
-_080CC65C: .4byte gSaveBlock1Ptr
-_080CC660: .4byte gUnknown_83F5D58
-_080CC664:
- movs r0, 0x4
- strb r0, [r6, 0x1]
-_080CC668:
- movs r0, 0x23
- adds r1, r6, 0
-_080CC66C:
- bl sub_8113550
- ldr r0, _080CC678 @ =0x00000808
- bl FlagClear
- b _080CC71E
- .align 2, 0
-_080CC678: .4byte 0x00000808
-_080CC67C:
- ldr r3, [r7]
- movs r2, 0x4
- ldrsb r2, [r3, r2]
- ldr r1, _080CC6D0 @ =gUnknown_83F5D58
- lsls r0, r5, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0x4]
- cmp r2, r0
- bne _080CC71E
- movs r0, 0x5
- ldrsb r0, [r3, r0]
- ldrh r2, [r1, 0x6]
- cmp r0, r2
- bne _080CC71E
- ldrh r0, [r1]
- ldrh r1, [r1, 0x2]
- bl get_mapheader_by_bank_and_number
- ldrb r1, [r0, 0x14]
- add r0, sp, 0x4
- strb r1, [r0]
- strb r5, [r0, 0x1]
- adds r6, r0, 0
- cmp r5, 0x16
- bne _080CC6D4
- 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]
- cmp r0, 0xF
- bne _080CC6F6
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0x1A
- beq _080CC6FC
- b _080CC6F6
- .align 2, 0
-_080CC6D0: .4byte gUnknown_83F5D58
-_080CC6D4:
- cmp r5, 0x2A
- bne _080CC6FC
- 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]
- cmp r0, 0x43
- bne _080CC6F6
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- beq _080CC6FC
-_080CC6F6:
- ldrb r0, [r6, 0x1]
- adds r0, 0x1
- strb r0, [r6, 0x1]
-_080CC6FC:
- movs r0, 0x23
- adds r1, r6, 0
- bl sub_8113550
- ldr r4, _080CC728 @ =0x00000808
- adds r0, r4, 0
- bl FlagClear
- cmp r5, 0x23
- bne _080CC71E
- ldr r0, _080CC72C @ =0x0000404d
- movs r1, 0x20
- bl VarSet
- adds r0, r4, 0
- bl FlagSet
-_080CC71E:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC728: .4byte 0x00000808
-_080CC72C: .4byte 0x0000404d
- thumb_func_end sub_80CC59C
-
- thumb_func_start sub_80CC730
-sub_80CC730: @ 80CC730
- push {lr}
- ldr r0, _080CC744 @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x4
- bhi _080CC77C
- lsls r0, 2
- ldr r1, _080CC748 @ =_080CC74C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CC744: .4byte gSpecialVar_Result
-_080CC748: .4byte _080CC74C
- .align 2, 0
-_080CC74C:
- .4byte _080CC760
- .4byte _080CC764
- .4byte _080CC768
- .4byte _080CC76C
- .4byte _080CC770
-_080CC760:
- movs r0, 0x3
- b _080CC772
-_080CC764:
- movs r0, 0x4
- b _080CC772
-_080CC768:
- movs r0, 0
- b _080CC772
-_080CC76C:
- movs r0, 0x1
- b _080CC772
-_080CC770:
- movs r0, 0x2
-_080CC772:
- bl sub_81445C0
- lsls r0, 16
- lsrs r0, 16
- b _080CC78A
-_080CC77C:
- ldr r0, _080CC790 @ =gUnknown_83F5EF0 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/scr_tool.c"
- ldr r1, _080CC794 @ =0x00000f21
- ldr r2, _080CC798 @ =gUnknown_83F5F24 "0"
- movs r3, 0x1
- bl AGBAssert
- movs r0, 0
-_080CC78A:
- pop {r1}
- bx r1
- .align 2, 0
-_080CC790: .4byte gUnknown_83F5EF0
-_080CC794: .4byte 0x00000f21
-_080CC798: .4byte gUnknown_83F5F24
- thumb_func_end sub_80CC730
-
- thumb_func_start set_unknown_box_id
-set_unknown_box_id: @ 80CC79C
- ldr r1, _080CC7A4 @ =gUnknown_2039A1A
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080CC7A4: .4byte gUnknown_2039A1A
- thumb_func_end set_unknown_box_id
-
- thumb_func_start get_unknown_box_id
-get_unknown_box_id: @ 80CC7A8
- ldr r0, _080CC7B0 @ =gUnknown_2039A1A
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080CC7B0: .4byte gUnknown_2039A1A
- thumb_func_end get_unknown_box_id
-
- thumb_func_start sub_80CC7B4
-sub_80CC7B4: @ 80CC7B4
- push {r4,r5,lr}
- ldr r5, _080CC7E8 @ =0x00000843
- adds r0, r5, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080CC7F0
- bl StorageGetCurrentBox
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080CC7EC @ =0x00004037
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- beq _080CC7F0
- adds r0, r5, 0
- bl FlagSet
- movs r0, 0x1
- b _080CC7F2
- .align 2, 0
-_080CC7E8: .4byte 0x00000843
-_080CC7EC: .4byte 0x00004037
-_080CC7F0:
- movs r0, 0
-_080CC7F2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80CC7B4
-
- thumb_func_start sub_80CC7F8
-sub_80CC7F8: @ 80CC7F8
- push {r4-r7,lr}
- ldr r0, _080CC850 @ =0x00004037
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl set_unknown_box_id
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r4, r0, 24
-_080CC810:
- movs r5, 0
- lsls r6, r4, 24
- lsls r7, r4, 16
-_080CC816:
- lsls r1, r5, 24
- lsrs r1, 24
- lsrs r0, r6, 24
- bl GetBoxedMonPtr
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _080CC858
- bl get_unknown_box_id
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- beq _080CC83E
- ldr r0, _080CC854 @ =0x00000843
- bl FlagClear
-_080CC83E:
- ldr r0, _080CC850 @ =0x00004037
- lsrs r1, r7, 16
- bl VarSet
- bl sub_80CC7B4
- lsls r0, 24
- lsrs r0, 24
- b _080CC874
- .align 2, 0
-_080CC850: .4byte 0x00004037
-_080CC854: .4byte 0x00000843
-_080CC858:
- adds r5, 0x1
- cmp r5, 0x1D
- ble _080CC816
- adds r4, 0x1
- cmp r4, 0xE
- bne _080CC866
- movs r4, 0
-_080CC866:
- bl StorageGetCurrentBox
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080CC810
- movs r0, 0
-_080CC874:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CC7F8
-
- thumb_func_start sub_80CC87C
-sub_80CC87C: @ 80CC87C
- push {r4,lr}
- ldr r0, _080CC8AC @ =gUnknown_2031DB4
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, _080CC8B0 @ =gUnknown_83F5F26
- ldrh r0, [r2]
- ldr r1, _080CC8B4 @ =0x0000ffff
- cmp r0, r1
- beq _080CC8C2
- adds r4, r1, 0
- adds r1, r2, 0
-_080CC8A0:
- ldrh r0, [r2]
- cmp r0, r3
- bne _080CC8B8
- movs r0, 0x1
- b _080CC8C4
- .align 2, 0
-_080CC8AC: .4byte gUnknown_2031DB4
-_080CC8B0: .4byte gUnknown_83F5F26
-_080CC8B4: .4byte 0x0000ffff
-_080CC8B8:
- adds r1, 0x2
- adds r2, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _080CC8A0
-_080CC8C2:
- movs r0, 0
-_080CC8C4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CC87C
-
- thumb_func_start sub_80CC8CC
-sub_80CC8CC: @ 80CC8CC
- push {r4,lr}
- ldr r1, _080CC8E4 @ =gSpecialVar_0x8004
- ldr r2, _080CC8E8 @ =0xfffffedf
- adds r0, r2, 0
- ldrh r2, [r1]
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x39
- bls _080CC8EC
- movs r0, 0
- b _080CC908
- .align 2, 0
-_080CC8E4: .4byte gSpecialVar_0x8004
-_080CC8E8: .4byte 0xfffffedf
-_080CC8EC:
- ldr r4, _080CC910 @ =gStringVar1
- ldrh r0, [r1]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080CC914 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
-_080CC908:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080CC910: .4byte gStringVar1
-_080CC914: .4byte gMoveNames
- thumb_func_end sub_80CC8CC
-
- thumb_func_start sub_80CC918
-sub_80CC918: @ 80CC918
- push {r4,lr}
- ldr r4, _080CC940 @ =0x00004025
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080CC944 @ =0x000001f3
- cmp r1, r0
- bhi _080CC938
- adds r1, 0x1
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl VarSet
-_080CC938:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CC940: .4byte 0x00004025
-_080CC944: .4byte 0x000001f3
- thumb_func_end sub_80CC918
-
- thumb_func_start sub_80CC948
-sub_80CC948: @ 80CC948
- push {lr}
- ldr r0, _080CC968 @ =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080CC96C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- ldr r0, _080CC970 @ =0x00004025
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080CC968: .4byte gSpecialVar_0x8004
-_080CC96C: .4byte gPlayerParty
-_080CC970: .4byte 0x00004025
- thumb_func_end sub_80CC948
-
- thumb_func_start sub_80CC974
-sub_80CC974: @ 80CC974
- push {r4-r6,lr}
- ldr r0, _080CC9A8 @ =sub_80CCA18
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r5, r1, 3
- ldr r6, _080CC9AC @ =gTasks+0x8
- adds r4, r5, r6
- movs r0, 0x3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CC9B4
- adds r0, r6, 0
- subs r0, 0x8
- adds r0, r5, r0
- ldr r1, _080CC9B0 @ =sub_80CCAF4
- str r1, [r0]
- b _080CCA08
- .align 2, 0
-_080CC9A8: .4byte sub_80CCA18
-_080CC9AC: .4byte gTasks+0x8
-_080CC9B0: .4byte sub_80CCAF4
-_080CC9B4:
- ldr r0, _080CC9D8 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, _080CC9DC @ =0x00004f01
- cmp r1, r0
- bne _080CC9E8
- ldr r0, _080CC9E0 @ =gUnknown_83F61FB
- ldrb r0, [r0]
- strh r0, [r4]
- movs r0, 0x8
- strh r0, [r4, 0x4]
- ldr r0, _080CC9E4 @ =gUnknown_83F60D0
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
- b _080CC9FC
- .align 2, 0
-_080CC9D8: .4byte gSaveBlock1Ptr
-_080CC9DC: .4byte 0x00004f01
-_080CC9E0: .4byte gUnknown_83F61FB
-_080CC9E4: .4byte gUnknown_83F60D0
-_080CC9E8:
- ldr r0, _080CCA10 @ =gUnknown_83F61F0
- ldrb r0, [r0]
- strh r0, [r4]
- movs r0, 0xB
- strh r0, [r4, 0x4]
- ldr r0, _080CCA14 @ =gUnknown_83F5F50
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
-_080CC9FC:
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x7
- movs r1, 0x1
- bl sub_8059948
-_080CCA08:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCA10: .4byte gUnknown_83F61F0
-_080CCA14: .4byte gUnknown_83F5F50
- thumb_func_end sub_80CC974
-
- thumb_func_start sub_80CCA18
-sub_80CCA18: @ 80CCA18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080CCAA4 @ =gTasks+0x8
- adds r4, r1, r0
- ldr r0, _080CCAA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CCAE6
- movs r0, 0x2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080CCAE6
- movs r0, 0x5
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CCAE6
- ldr r0, _080CCAAC @ =gUnknown_2036E28
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _080CCAE6
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _080CCAE6
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _080CCA78
- strh r2, [r4, 0x2]
-_080CCA78:
- ldr r0, _080CCAB0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, _080CCAB4 @ =0x00004f01
- cmp r1, r0
- bne _080CCAC0
- ldr r1, _080CCAB8 @ =gUnknown_83F61FB
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4]
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 5
- ldr r1, _080CCABC @ =gUnknown_83F60D0
- adds r0, r1
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
- b _080CCADE
- .align 2, 0
-_080CCAA4: .4byte gTasks+0x8
-_080CCAA8: .4byte gPaletteFade
-_080CCAAC: .4byte gUnknown_2036E28
-_080CCAB0: .4byte gSaveBlock1Ptr
-_080CCAB4: .4byte 0x00004f01
-_080CCAB8: .4byte gUnknown_83F61FB
-_080CCABC: .4byte gUnknown_83F60D0
-_080CCAC0:
- ldr r1, _080CCAEC @ =gUnknown_83F61F0
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4]
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- lsls r0, 5
- ldr r1, _080CCAF0 @ =gUnknown_83F5F50
- adds r0, r1
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
-_080CCADE:
- movs r0, 0x7
- movs r1, 0x1
- bl sub_8059948
-_080CCAE6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCAEC: .4byte gUnknown_83F61F0
-_080CCAF0: .4byte gUnknown_83F5F50
- thumb_func_end sub_80CCA18
-
- thumb_func_start sub_80CCAF4
-sub_80CCAF4: @ 80CCAF4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080CCB5A
- ldr r0, _080CCB20 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, _080CCB24 @ =0x00004f01
- cmp r1, r0
- bne _080CCB2C
- ldr r0, _080CCB28 @ =gUnknown_83F61D0
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
- b _080CCB36
- .align 2, 0
-_080CCB20: .4byte gSaveBlock1Ptr
-_080CCB24: .4byte 0x00004f01
-_080CCB28: .4byte gUnknown_83F61D0
-_080CCB2C:
- ldr r0, _080CCB60 @ =gUnknown_83F60B0
- movs r1, 0x70
- movs r2, 0x20
- bl LoadPalette
-_080CCB36:
- movs r0, 0x7
- movs r1, 0x1
- bl sub_8059948
- ldr r0, _080CCB64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080CCB54
- movs r0, 0x80
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
-_080CCB54:
- adds r0, r4, 0
- bl DestroyTask
-_080CCB5A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCB60: .4byte gUnknown_83F60B0
-_080CCB64: .4byte gPaletteFade
- thumb_func_end sub_80CCAF4
-
- thumb_func_start sub_80CCB68
-sub_80CCB68: @ 80CCB68
- push {r4,lr}
- ldr r4, _080CCB90 @ =sub_80CCA18
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCB88
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_080CCB88:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCB90: .4byte sub_80CCA18
- thumb_func_end sub_80CCB68
-
- thumb_func_start sub_80CCB94
-sub_80CCB94: @ 80CCB94
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- movs r6, 0
- bl GetLeadMonIndex
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _080CCBC0 @ =gSpecialVar_0x8007
- mov r1, r8
- strh r1, [r0]
- movs r4, 0
- movs r0, 0x64
- mov r5, r8
- muls r5, r0
- ldr r0, _080CCBC4 @ =gPlayerParty
- mov r9, r0
- b _080CCBCE
- .align 2, 0
-_080CCBC0: .4byte gSpecialVar_0x8007
-_080CCBC4: .4byte gPlayerParty
-_080CCBC8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCBCE:
- cmp r4, 0x2
- bhi _080CCBEA
- mov r1, r9
- adds r0, r5, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _080CCC1C @ =gUnknown_83F6203
- adds r1, r4, r1
- ldrb r1, [r1]
- cmp r0, r1
- bne _080CCBC8
- adds r7, r4, 0
-_080CCBEA:
- cmp r4, 0x3
- beq _080CCC7A
- movs r0, 0x64
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _080CCC20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _080CCC7A
- cmp r7, 0
- bne _080CCC34
- ldr r0, _080CCC24 @ =gStringVar2
- ldr r1, _080CCC28 @ =gUnknown_82481BE
- bl StringCopy
- ldr r1, _080CCC2C @ =gSpecialVar_0x8005
- movs r0, 0xF
- strh r0, [r1]
- ldr r0, _080CCC30 @ =0x000002de
- b _080CCC6E
- .align 2, 0
-_080CCC1C: .4byte gUnknown_83F6203
-_080CCC20: .4byte gPlayerParty
-_080CCC24: .4byte gStringVar2
-_080CCC28: .4byte gUnknown_82481BE
-_080CCC2C: .4byte gSpecialVar_0x8005
-_080CCC30: .4byte 0x000002de
-_080CCC34:
- cmp r7, 0x1
- bne _080CCC5C
- ldr r0, _080CCC4C @ =gStringVar2
- ldr r1, _080CCC50 @ =gUnknown_824802B
- bl StringCopy
- ldr r1, _080CCC54 @ =gSpecialVar_0x8005
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, _080CCC58 @ =0x000002df
- b _080CCC6E
- .align 2, 0
-_080CCC4C: .4byte gStringVar2
-_080CCC50: .4byte gUnknown_824802B
-_080CCC54: .4byte gSpecialVar_0x8005
-_080CCC58: .4byte 0x000002df
-_080CCC5C:
- ldr r0, _080CCC80 @ =gStringVar2
- ldr r1, _080CCC84 @ =gUnknown_8248038
- bl StringCopy
- ldr r1, _080CCC88 @ =gSpecialVar_0x8005
- movs r0, 0x11
- strh r0, [r1]
- movs r0, 0xB8
- lsls r0, 2
-_080CCC6E:
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCC8C
-_080CCC7A:
- movs r0, 0
- b _080CCCE4
- .align 2, 0
-_080CCC80: .4byte gStringVar2
-_080CCC84: .4byte gUnknown_8248038
-_080CCC88: .4byte gSpecialVar_0x8005
-_080CCC8C:
- movs r0, 0x64
- mov r1, r8
- muls r1, r0
- ldr r0, _080CCCF0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xD
- bl GetMonData
- cmp r0, 0
- beq _080CCCA8
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080CCCA8:
- adds r0, r4, 0
- movs r1, 0xE
- bl GetMonData
- cmp r0, 0
- beq _080CCCBA
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080CCCBA:
- adds r0, r4, 0
- movs r1, 0xF
- bl GetMonData
- cmp r0, 0
- beq _080CCCCC
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080CCCCC:
- adds r0, r4, 0
- movs r1, 0x10
- bl GetMonData
- cmp r0, 0
- beq _080CCCDE
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_080CCCDE:
- ldr r0, _080CCCF4 @ =gSpecialVar_0x8006
- strh r6, [r0]
- movs r0, 0x1
-_080CCCE4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080CCCF0: .4byte gPlayerParty
-_080CCCF4: .4byte gSpecialVar_0x8006
- thumb_func_end sub_80CCB94
-
- thumb_func_start sub_80CCCF8
-sub_80CCCF8: @ 80CCCF8
- push {r4,lr}
- movs r4, 0
- ldr r0, _080CCD0C @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0xF
- bne _080CCD14
- ldr r0, _080CCD10 @ =0x000002de
- bl FlagSet
- b _080CCD2C
- .align 2, 0
-_080CCD0C: .4byte gSpecialVar_0x8005
-_080CCD10: .4byte 0x000002de
-_080CCD14:
- cmp r0, 0x10
- bne _080CCD24
- ldr r0, _080CCD20 @ =0x000002df
- bl FlagSet
- b _080CCD2C
- .align 2, 0
-_080CCD20: .4byte 0x000002df
-_080CCD24:
- movs r0, 0xB8
- lsls r0, 2
- bl FlagSet
-_080CCD2C:
- ldr r0, _080CCD74 @ =0x000002de
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCD40
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCD40:
- ldr r0, _080CCD78 @ =0x000002df
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCD54
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCD54:
- movs r0, 0xB8
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCD6A
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080CCD6A:
- cmp r4, 0x3
- beq _080CCD7C
- movs r0, 0
- b _080CCD7E
- .align 2, 0
-_080CCD74: .4byte 0x000002de
-_080CCD78: .4byte 0x000002df
-_080CCD7C:
- movs r0, 0x1
-_080CCD7E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80CCCF8
-
- thumb_func_start sub_80CCD84
-sub_80CCD84: @ 80CCD84
- push {lr}
- ldr r0, _080CCDB8 @ =0x000002e3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080CCDC8
- ldr r0, _080CCDBC @ =gSaveBlock1Ptr
- ldr r2, [r0]
- ldrh r1, [r2, 0x4]
- ldr r0, _080CCDC0 @ =0x00003d03
- cmp r1, r0
- bne _080CCDC8
- ldr r1, [r2]
- ldr r0, _080CCDC4 @ =0x00190018
- cmp r1, r0
- bne _080CCDC8
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _080CCDC8
- movs r0, 0x1
- b _080CCDCA
- .align 2, 0
-_080CCDB8: .4byte 0x000002e3
-_080CCDBC: .4byte gSaveBlock1Ptr
-_080CCDC0: .4byte 0x00003d03
-_080CCDC4: .4byte 0x00190018
-_080CCDC8:
- movs r0, 0
-_080CCDCA:
- pop {r1}
- bx r1
- thumb_func_end sub_80CCD84
-
- thumb_func_start sub_80CCDD0
-sub_80CCDD0: @ 80CCDD0
- push {lr}
- movs r2, 0xD6
- lsls r2, 2
- movs r0, 0x1F
- movs r1, 0x1F
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _080CCDF8 @ =0x000002e3
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_080CCDF8: .4byte 0x000002e3
- thumb_func_end sub_80CCDD0
-
- thumb_func_start sub_80CCDFC
-sub_80CCDFC: @ 80CCDFC
- push {lr}
- ldr r0, _080CCE0C @ =task_deoxys_sound
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_080CCE0C: .4byte task_deoxys_sound
- thumb_func_end sub_80CCDFC
-
- thumb_func_start task_deoxys_sound
-task_deoxys_sound: @ 80CCE10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _080CCE30 @ =0x00000848
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CCE38
- ldr r1, _080CCE34 @ =gSpecialVar_Result
- movs r0, 0x3
- b _080CCE9E
- .align 2, 0
-_080CCE30: .4byte 0x00000848
-_080CCE34: .4byte gSpecialVar_Result
-_080CCE38:
- ldr r0, _080CCE80 @ =0x0000403e
- mov r8, r0
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r4, _080CCE84 @ =0x00004026
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- cmp r5, 0
- beq _080CCE90
- ldr r0, _080CCE88 @ =gUnknown_83F637C
- subs r1, r5, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, r6
- bcs _080CCE90
- movs r0, 0
- bl sub_80CCEE8
- mov r0, r8
- movs r1, 0
- bl VarSet
- ldr r1, _080CCE8C @ =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _080CCEA4
- .align 2, 0
-_080CCE80: .4byte 0x0000403e
-_080CCE84: .4byte 0x00004026
-_080CCE88: .4byte gUnknown_83F637C
-_080CCE8C: .4byte gSpecialVar_Result
-_080CCE90:
- cmp r5, 0xA
- bne _080CCEB4
- ldr r0, _080CCEAC @ =0x00000848
- bl FlagSet
- ldr r1, _080CCEB0 @ =gSpecialVar_Result
- movs r0, 0x2
-_080CCE9E:
- strh r0, [r1]
- bl EnableBothScriptContexts
-_080CCEA4:
- adds r0, r7, 0
- bl DestroyTask
- b _080CCED6
- .align 2, 0
-_080CCEAC: .4byte 0x00000848
-_080CCEB0: .4byte gSpecialVar_Result
-_080CCEB4:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80CCEE8
- ldr r0, _080CCEE0 @ =0x0000403e
- adds r1, r5, 0
- bl VarSet
- ldr r1, _080CCEE4 @ =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- adds r0, r7, 0
- bl DestroyTask
-_080CCED6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCEE0: .4byte 0x0000403e
-_080CCEE4: .4byte gSpecialVar_Result
- thumb_func_end task_deoxys_sound
-
- thumb_func_start sub_80CCEE8
-sub_80CCEE8: @ 80CCEE8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 5
- ldr r1, _080CCF24 @ =gUnknown_83F6206
- adds r0, r1
- movs r1, 0xD0
- lsls r1, 1
- movs r2, 0x8
- bl LoadPalette
- movs r0, 0xA
- bl sub_8083598
- ldr r0, _080CCF28 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x1
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- cmp r4, 0
- bne _080CCF2C
- movs r0, 0xBD
- bl PlaySE
- b _080CCF32
- .align 2, 0
-_080CCF24: .4byte gUnknown_83F6206
-_080CCF28: .4byte gSaveBlock1Ptr
-_080CCF2C:
- movs r0, 0xFD
- bl PlaySE
-_080CCF32:
- ldr r0, _080CCF64 @ =sub_80CCF98
- movs r1, 0x8
- bl CreateTask
- ldr r3, _080CCF68 @ =gFieldEffectArguments
- movs r0, 0x1
- str r0, [r3]
- movs r0, 0x38
- str r0, [r3, 0x4]
- movs r0, 0x2
- str r0, [r3, 0x8]
- ldr r0, _080CCF6C @ =gUnknown_83F6366
- lsls r2, r4, 1
- adds r1, r2, r0
- ldrb r1, [r1]
- str r1, [r3, 0xC]
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- str r0, [r3, 0x10]
- adds r5, r2, 0
- cmp r4, 0
- bne _080CCF70
- movs r0, 0x3C
- b _080CCF72
- .align 2, 0
-_080CCF64: .4byte sub_80CCF98
-_080CCF68: .4byte gFieldEffectArguments
-_080CCF6C: .4byte gUnknown_83F6366
-_080CCF70:
- movs r0, 0x5
-_080CCF72:
- str r0, [r3, 0x14]
- movs r0, 0x43
- bl FieldEffectStart
- ldr r0, _080CCF94 @ =gUnknown_83F6366
- adds r1, r5, r0
- ldrb r1, [r1]
- adds r0, 0x1
- adds r0, r5, r0
- ldrb r2, [r0]
- movs r0, 0x1
- bl Overworld_SetMapObjTemplateCoords
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CCF94: .4byte gUnknown_83F6366
- thumb_func_end sub_80CCEE8
-
- thumb_func_start sub_80CCF98
-sub_80CCF98: @ 80CCF98
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x43
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080CCFB4
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080CCFB4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CCF98
-
- thumb_func_start sub_80CCFBC
-sub_80CCFBC: @ 80CCFBC
- push {r4,lr}
- ldr r4, _080CCFEC @ =0x00004026
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, _080CCFF0 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, _080CCFF4 @ =0x00003802
- cmp r1, r0
- bne _080CD000
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x63
- bls _080CCFF8
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- b _080CD000
- .align 2, 0
-_080CCFEC: .4byte 0x00004026
-_080CCFF0: .4byte gSaveBlock1Ptr
-_080CCFF4: .4byte 0x00003802
-_080CCFF8:
- adds r0, r4, 0
- adds r1, r2, 0
- bl VarSet
-_080CD000:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CCFBC
-
- thumb_func_start sub_80CD008
-sub_80CD008: @ 80CD008
- push {lr}
- ldr r0, _080CD02C @ =0x0000403e
- bl VarGet
- lsls r0, 24
- lsrs r0, 19
- ldr r1, _080CD030 @ =gUnknown_83F6206
- adds r0, r1
- movs r1, 0xD0
- lsls r1, 1
- movs r2, 0x8
- bl LoadPalette
- movs r0, 0xA
- bl sub_8083598
- pop {r0}
- bx r0
- .align 2, 0
-_080CD02C: .4byte 0x0000403e
-_080CD030: .4byte gUnknown_83F6206
- thumb_func_end sub_80CD008
-
- thumb_func_start sub_80CD034
-sub_80CD034: @ 80CD034
- push {r4,r5,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _080CD06A
-_080CD044:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CD05C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x4
- bl GetMonData
- cmp r0, 0x1
- bne _080CD060
- movs r0, 0x1
- b _080CD06C
- .align 2, 0
-_080CD05C: .4byte gPlayerParty
-_080CD060:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _080CD044
-_080CD06A:
- movs r0, 0
-_080CD06C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80CD034
-
- thumb_func_start sub_80CD074
-sub_80CD074: @ 80CD074
- push {lr}
- ldr r0, _080CD088 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, _080CD08C @ =0x00000a02
- cmp r1, r0
- beq _080CD090
- movs r0, 0x1
- b _080CD092
- .align 2, 0
-_080CD088: .4byte gSaveBlock1Ptr
-_080CD08C: .4byte 0x00000a02
-_080CD090:
- movs r0, 0
-_080CD092:
- pop {r1}
- bx r1
- thumb_func_end sub_80CD074
-
- thumb_func_start sub_80CD098
-sub_80CD098: @ 80CD098
- push {lr}
- sub sp, 0x4
- ldr r0, _080CD0CC @ =gUnknown_203ADFA
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080CD0E8
- ldr r0, _080CD0D0 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- adds r0, 0x1B
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r0, _080CD0D4 @ =gSpecialVar_0x8006
- ldrh r3, [r0]
- cmp r3, 0
- bne _080CD0E0
- ldr r0, _080CD0D8 @ =gSpecialVar_0x8005
- ldrh r2, [r0]
- str r3, [sp]
- movs r0, 0
- movs r3, 0
- bl CreateTextCursorSpriteForOakSpeech
- ldr r1, _080CD0DC @ =gUnknown_2039A1B
- strb r0, [r1]
- b _080CD0E8
- .align 2, 0
-_080CD0CC: .4byte gUnknown_203ADFA
-_080CD0D0: .4byte gSpecialVar_0x8004
-_080CD0D4: .4byte gSpecialVar_0x8006
-_080CD0D8: .4byte gSpecialVar_0x8005
-_080CD0DC: .4byte gUnknown_2039A1B
-_080CD0E0:
- ldr r0, _080CD0F0 @ =gUnknown_2039A1B
- ldrb r0, [r0]
- bl sub_8006398
-_080CD0E8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CD0F0: .4byte gUnknown_2039A1B
- thumb_func_end sub_80CD098
-
- thumb_func_start sub_80CD0F4
-sub_80CD0F4: @ 80CD0F4
- push {r4-r7,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0
- cmp r6, r7
- bcs _080CD14A
-_080CD104:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080CD138 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _080CD13C @ =gSpecialVar_0x8004
- ldrh r1, [r1]
- cmp r0, r1
- bne _080CD140
- bl sub_80CC1E4
- adds r4, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- cmp r4, r0
- bne _080CD140
- movs r0, 0x1
- b _080CD14C
- .align 2, 0
-_080CD138: .4byte gPlayerParty
-_080CD13C: .4byte gSpecialVar_0x8004
-_080CD140:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _080CD104
-_080CD14A:
- movs r0, 0
-_080CD14C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80CD0F4
-
- thumb_func_start sub_80CD154
-sub_80CD154: @ 80CD154
- push {r4,lr}
- movs r0, 0xA
- bl GetGameStat
- adds r4, r0, 0
- cmp r4, 0x18
- bls _080CD1AE
- movs r0, 0xA5
- bl FlagClear
- cmp r4, 0x31
- bls _080CD172
- movs r0, 0xA6
- bl FlagClear
-_080CD172:
- cmp r4, 0x4A
- bls _080CD17C
- movs r0, 0xA7
- bl FlagClear
-_080CD17C:
- cmp r4, 0x63
- bls _080CD186
- movs r0, 0xA8
- bl FlagClear
-_080CD186:
- cmp r4, 0x7C
- bls _080CD190
- movs r0, 0xA9
- bl FlagClear
-_080CD190:
- cmp r4, 0x95
- bls _080CD19A
- movs r0, 0xAA
- bl FlagClear
-_080CD19A:
- cmp r4, 0xAE
- bls _080CD1A4
- movs r0, 0xAB
- bl FlagClear
-_080CD1A4:
- cmp r4, 0xC7
- bls _080CD1AE
- movs r0, 0xAC
- bl FlagClear
-_080CD1AE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80CD154
-
- thumb_func_start sub_80CD1B4
-sub_80CD1B4: @ 80CD1B4
- push {lr}
- ldr r0, _080CD1C8 @ =sub_80CD1CC
- movs r1, 0x8
- bl CreateTask
- movs r0, 0x96
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_080CD1C8: .4byte sub_80CD1CC
- thumb_func_end sub_80CD1B4
-
- thumb_func_start sub_80CD1CC
-sub_80CD1CC: @ 80CD1CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080CD21C @ =gTasks+0x8
- adds r4, r0, r1
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- ldr r0, _080CD220 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r1, r0
- bne _080CD200
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x96
- bl PlaySE
-_080CD200:
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldr r0, _080CD224 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _080CD214
- adds r0, r5, 0
- bl DestroyTask
-_080CD214:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CD21C: .4byte gTasks+0x8
-_080CD220: .4byte gSpecialVar_0x8005
-_080CD224: .4byte gSpecialVar_0x8004
- thumb_func_end sub_80CD1CC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s
index 3452841c4..ec892e0bb 100644
--- a/asm/fldeff_cut.s
+++ b/asm/fldeff_cut.s
@@ -33,7 +33,7 @@ sub_8097898: @ 8097898
ldr r4, _080978CC @ =gUnknown_2039874
movs r0, 0
strb r0, [r4]
- bl sub_80CCD84
+ bl CutMoveRuinValleyCheck
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -232,7 +232,7 @@ sub_8097A20: @ 8097A20
ldrb r0, [r0]
cmp r0, 0x1
bne _08097A3C
- bl sub_80CCDD0
+ bl CutMoveOpenDottedHoleDoor
b _08097A42
.align 2, 0
_08097A38: .4byte gUnknown_2039874
diff --git a/asm/fldeff_flash.s b/asm/fldeff_flash.s
index 4ce45b5c7..63067bb03 100644
--- a/asm/fldeff_flash.s
+++ b/asm/fldeff_flash.s
@@ -76,13 +76,13 @@ sub_80C9BB0: @ 80C9BB0
bl PlaySE
ldr r0, _080C9BC8 @ =0x00000806
bl FlagSet
- ldr r0, _080C9BCC @ =gUnknown_81BFB5F
+ ldr r0, _080C9BCC @ =EventScript_81BFB5F
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_080C9BC8: .4byte 0x00000806
-_080C9BCC: .4byte gUnknown_81BFB5F
+_080C9BCC: .4byte EventScript_81BFB5F
thumb_func_end sub_80C9BB0
thumb_func_start sub_80C9BD0
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/learn_move.s b/asm/learn_move.s
index a7a5b264d..36b88bc20 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -15,8 +15,8 @@ sub_80E4620: @ 80E4620
bx r0
thumb_func_end sub_80E4620
- thumb_func_start sub_80E4634
-sub_80E4634: @ 80E4634
+ thumb_func_start DisplayMoveTutorMenu
+DisplayMoveTutorMenu: @ 80E4634
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
@@ -35,7 +35,7 @@ sub_80E4634: @ 80E4634
bx r0
.align 2, 0
_080E465C: .4byte sub_80E4660
- thumb_func_end sub_80E4634
+ thumb_func_end DisplayMoveTutorMenu
thumb_func_start sub_80E4660
sub_80E4660: @ 80E4660
@@ -1653,7 +1653,7 @@ _080E53F4:
movs r2, 0x2
movs r3, 0x2
bl sub_80E559C
- ldr r1, _080E5440 @ =gUnknown_84886E8
+ ldr r1, _080E5440 @ =gMoveDescriptionPointers
subs r0, r5, 0x1
lsls r0, 2
adds r0, r1
@@ -1670,7 +1670,7 @@ _080E53F4:
bx r0
.align 2, 0
_080E543C: .4byte gBattleMoves
-_080E5440: .4byte gUnknown_84886E8
+_080E5440: .4byte gMoveDescriptionPointers
thumb_func_end sub_80E5340
thumb_func_start sub_80E5444
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/macros/event.inc b/asm/macros/event.inc
index 7ce50a5e1..21e3e65c0 100644
--- a/asm/macros/event.inc
+++ b/asm/macros/event.inc
@@ -37,6 +37,13 @@
.4byte \destination
.endm
+ lt = 0
+ eq = 1
+ gt = 2
+ le = 3
+ ge = 4
+ ne = 5
+
@ If the result of the last comparison matches condition (see Comparison operators), calls destination.
.macro call_if condition, destination
.byte 0x07
@@ -1225,10 +1232,9 @@
.byte 0xb7
.endm
- .macro setvaddress long, word
+ .macro setvaddress long
.byte 0xb8
.4byte \long
- .2byte \word
.endm
.macro vgoto pointer
@@ -1406,7 +1412,7 @@
@ Supplementary
.macro goto_if_eq dest
- goto_if 1, \dest
+ goto_if eq, \dest
.endm
.macro switch var
@@ -1442,3 +1448,14 @@
setorcopyvar 0x8002, \fanfare
callstd 9
.endm
+
+ .macro famechecker person:req, index:req, function=SetFlavorTextFlagFromSpecialVars
+ setvar VAR_0x8004, \person
+ setvar VAR_0x8005, \index
+ special \function
+ .endm
+
+ .macro set_gym_trainers gym:req
+ setvar VAR_0x8008, \gym
+ call EventScript_1A6B18
+ .endm
diff --git a/asm/macros/map.inc b/asm/macros/map.inc
index 075993fd3..d903899fe 100644
--- a/asm/macros/map.inc
+++ b/asm/macros/map.inc
@@ -55,8 +55,8 @@
inc _num_signs
.endm
- .macro bg_hidden_item_event x, y, height, item, flag, unknown
- bg_event \x, \y, \height, 7, 0, \item, \flag, \unknown
+ .macro bg_hidden_item_event x, y, height, item, flag, quantity, underfoot
+ bg_event \x, \y, \height, 7, 0, \item, \flag, \quantity | (\underfoot << 7)
.endm
.macro map_events npcs, warps, traps, signs
diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc
index f077a8f5a..8ad5a313e 100644
--- a/asm/macros/movement.inc
+++ b/asm/macros/movement.inc
@@ -110,6 +110,8 @@
create_movement step_65
create_movement step_66
create_movement step_67
+ create_movement step_68
+ create_movement step_69
enum_start 0x91
create_movement step_91
diff --git a/asm/mail.s b/asm/mail.s
deleted file mode 100644
index e5b265df2..000000000
--- a/asm/mail.s
+++ /dev/null
@@ -1,1041 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80BEBEC
-sub_80BEBEC: @ 80BEBEC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, _080BEC38 @ =gUnknown_20399C4
- ldr r0, _080BEC3C @ =0x000020fc
- bl AllocZeroed
- str r0, [r4]
- adds r0, 0xED
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xEE
- movs r1, 0x1
- strb r1, [r0]
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xF0
- ldr r0, _080BEC40 @ =CopyEasyChatWord
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _080BEC44 @ =ConvertEasyChatWordsToString
- str r0, [r1]
- ldrh r1, [r5, 0x20]
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _080BEC48
- subs r1, 0x79
- adds r0, r2, 0
- adds r0, 0xEA
- strb r1, [r0]
- b _080BEC52
- .align 2, 0
-_080BEC38: .4byte gUnknown_20399C4
-_080BEC3C: .4byte 0x000020fc
-_080BEC40: .4byte CopyEasyChatWord
-_080BEC44: .4byte ConvertEasyChatWordsToString
-_080BEC48:
- adds r1, r2, 0
- adds r1, 0xEA
- movs r0, 0
- strb r0, [r1]
- movs r6, 0
-_080BEC52:
- ldr r0, _080BEC78 @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xEE
- ldrb r1, [r1]
- cmp r1, 0
- beq _080BEC64
- cmp r1, 0x1
- beq _080BEC80
-_080BEC64:
- adds r2, r0, 0
- adds r2, 0xF8
- adds r0, 0xEA
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BEC7C @ =gUnknown_83EEAC4
- b _080BEC90
- .align 2, 0
-_080BEC78: .4byte gUnknown_20399C4
-_080BEC7C: .4byte gUnknown_83EEAC4
-_080BEC80:
- adds r2, r0, 0
- adds r2, 0xF8
- adds r0, 0xEA
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BECC8 @ =gUnknown_83EEB68
-_080BEC90:
- adds r0, r1
- str r0, [r2]
- ldrh r0, [r5, 0x1E]
- mov r1, sp
- bl MailSpeciesToSpecies
- lsls r0, 16
- ldr r1, _080BECCC @ =0xffff0000
- adds r0, r1
- movs r1, 0xCD
- lsls r1, 17
- cmp r0, r1
- bhi _080BECE4
- ldr r0, _080BECD0 @ =gUnknown_20399C4
- ldr r1, [r0]
- adds r2, r1, 0
- adds r2, 0xEA
- ldrb r2, [r2]
- adds r3, r0, 0
- cmp r2, 0x6
- beq _080BECD4
- cmp r2, 0x9
- beq _080BECDC
- adds r1, 0xEB
- movs r0, 0
- strb r0, [r1]
- b _080BECF0
- .align 2, 0
-_080BECC8: .4byte gUnknown_83EEB68
-_080BECCC: .4byte 0xffff0000
-_080BECD0: .4byte gUnknown_20399C4
-_080BECD4:
- adds r1, 0xEB
- movs r0, 0x1
- strb r0, [r1]
- b _080BECF0
-_080BECDC:
- adds r1, 0xEB
- movs r0, 0x2
- strb r0, [r1]
- b _080BECF0
-_080BECE4:
- ldr r0, _080BED10 @ =gUnknown_20399C4
- ldr r1, [r0]
- adds r1, 0xEB
- movs r2, 0
- strb r2, [r1]
- adds r3, r0, 0
-_080BECF0:
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0xE4
- str r5, [r0]
- subs r0, 0x8
- str r7, [r0]
- adds r0, 0xC
- strb r6, [r0]
- ldr r0, _080BED14 @ =sub_80BF110
- bl SetMainCallback2
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BED10: .4byte gUnknown_20399C4
-_080BED14: .4byte sub_80BF110
- thumb_func_end sub_80BEBEC
-
- thumb_func_start sub_80BED18
-sub_80BED18: @ 80BED18
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, _080BED38 @ =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _080BED2C
- b _080BF102
-_080BED2C:
- lsls r0, 2
- ldr r1, _080BED3C @ =_080BED40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080BED38: .4byte gMain
-_080BED3C: .4byte _080BED40
- .align 2, 0
-_080BED40:
- .4byte _080BED8C
- .4byte _080BEDBC
- .4byte _080BEDD4
- .4byte _080BEDDA
- .4byte _080BEDE0
- .4byte _080BEDE6
- .4byte _080BEE40
- .4byte _080BEE78
- .4byte _080BEE88
- .4byte _080BEEB8
- .4byte _080BEEC6
- .4byte _080BEF14
- .4byte _080BEF28
- .4byte _080BEFE8
- .4byte _080BF000
- .4byte _080BF01C
- .4byte _080BF026
- .4byte _080BF040
- .4byte _080BF0A4
-_080BED8C:
- movs r0, 0
- bl SetVBlankCallback
- bl ScanlineEffect_Stop
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r0, _080BEDB0 @ =gPlayerPcMenuManager
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _080BEDB4
- movs r0, 0x22
- bl HelpSystem_SetSomeVariable2
- b _080BF0F4
- .align 2, 0
-_080BEDB0: .4byte gPlayerPcMenuManager
-_080BEDB4:
- movs r0, 0x1E
- bl HelpSystem_SetSomeVariable2
- b _080BF0F4
-_080BEDBC:
- add r1, sp, 0x8
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, _080BEDD0 @ =0x01000200
- add r0, sp, 0x8
- bl CpuSet
- b _080BF0F4
- .align 2, 0
-_080BEDD0: .4byte 0x01000200
-_080BEDD4:
- bl ResetPaletteFade
- b _080BF0F4
-_080BEDDA:
- bl ResetTasks
- b _080BF0F4
-_080BEDE0:
- bl ResetSpriteData
- b _080BF0F4
-_080BEDE6:
- bl FreeAllSpritePalettes
- bl ResetTempTileDataBuffers
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- b _080BF0F4
-_080BEE40:
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, _080BEE6C @ =gUnknown_83EE998
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r4, _080BEE70 @ =gUnknown_20399C4
- ldr r1, [r4]
- adds r1, 0xFC
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, _080BEE74 @ =0x000010fc
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- b _080BF0F4
- .align 2, 0
-_080BEE6C: .4byte gUnknown_83EE998
-_080BEE70: .4byte gUnknown_20399C4
-_080BEE74: .4byte 0x000010fc
-_080BEE78:
- ldr r0, _080BEE84 @ =gUnknown_83EE9A4
- bl InitWindows
- bl DeactivateAllTextPrinters
- b _080BF0F4
- .align 2, 0
-_080BEE84: .4byte gUnknown_83EE9A4
-_080BEE88:
- ldr r2, _080BEEB0 @ =gUnknown_83EE9C8
- ldr r0, _080BEEB4 @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xEA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndCopyTileDataToVram
- b _080BF0F4
- .align 2, 0
-_080BEEB0: .4byte gUnknown_83EE9C8
-_080BEEB4: .4byte gUnknown_20399C4
-_080BEEB8:
- bl FreeTempTileDataBuffersIfPossible
- lsls r0, 24
- cmp r0, 0
- bne _080BEEC4
- b _080BF0F4
-_080BEEC4:
- b _080BF102
-_080BEEC6:
- movs r5, 0x1E
- str r5, [sp]
- movs r4, 0x14
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r5, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- ldr r2, _080BEF0C @ =gUnknown_83EE9C8
- ldr r0, _080BEF10 @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xEA
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _080BF0F4
- .align 2, 0
-_080BEF0C: .4byte gUnknown_83EE9C8
-_080BEF10: .4byte gUnknown_20399C4
-_080BEF14:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- b _080BF0F4
-_080BEF28:
- movs r0, 0
- bl stdpal_get
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r6, _080BEFD0 @ =gPlttBufferUnfaded
- ldr r4, _080BEFD4 @ =gUnknown_83EE9C8
- ldr r0, _080BEFD8 @ =gUnknown_20399C4
- ldr r3, [r0]
- adds r3, 0xEA
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x10]
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r6, r2
- strh r1, [r0]
- ldr r5, _080BEFDC @ =gPlttBufferFaded
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x10]
- adds r2, r5, r2
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x12]
- movs r2, 0xFB
- lsls r2, 1
- adds r0, r6, r2
- strh r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x12]
- adds r2, r5, r2
- strh r0, [r2]
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _080BEFE0 @ =gUnknown_83EE9C0
- ldr r0, _080BEFE4 @ =gSaveBlock2Ptr
- ldr r2, [r0]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r6, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x14]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r6, 0x16]
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r5, 0x16]
- b _080BF0F4
- .align 2, 0
-_080BEFD0: .4byte gPlttBufferUnfaded
-_080BEFD4: .4byte gUnknown_83EE9C8
-_080BEFD8: .4byte gUnknown_20399C4
-_080BEFDC: .4byte gPlttBufferFaded
-_080BEFE0: .4byte gUnknown_83EE9C0
-_080BEFE4: .4byte gSaveBlock2Ptr
-_080BEFE8:
- ldr r0, _080BEFFC @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xE8
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BEFF6
- b _080BF0F4
-_080BEFF6:
- bl sub_80BF13C
- b _080BF0F4
- .align 2, 0
-_080BEFFC: .4byte gUnknown_20399C4
-_080BF000:
- ldr r0, _080BF018 @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xE8
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BF0F4
- bl sub_80BF224
- bl RunTextPrinters
- b _080BF0F4
- .align 2, 0
-_080BF018: .4byte gUnknown_20399C4
-_080BF01C:
- bl sub_8058244
- cmp r0, 0x1
- bne _080BF0F4
- b _080BF102
-_080BF026:
- ldr r0, _080BF038 @ =sub_80BF354
- bl SetVBlankCallback
- ldr r2, _080BF03C @ =gPaletteFade
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _080BF0F4
- .align 2, 0
-_080BF038: .4byte sub_80BF354
-_080BF03C: .4byte gPaletteFade
-_080BF040:
- ldr r5, _080BF064 @ =gUnknown_20399C4
- ldr r0, [r5]
- adds r0, 0xE4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_8096FD4
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, [r5]
- adds r0, 0xEB
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080BF068
- cmp r0, 0x2
- beq _080BF080
- b _080BF0F4
- .align 2, 0
-_080BF064: .4byte gUnknown_20399C4
-_080BF068:
- adds r0, r4, 0
- bl sub_80970E0
- ldr r1, _080BF07C @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x60
- b _080BF092
- .align 2, 0
-_080BF07C: .4byte SpriteCallbackDummy
-_080BF080:
- adds r0, r4, 0
- bl sub_80970E0
- ldr r1, _080BF0A0 @ =SpriteCallbackDummy
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x28
-_080BF092:
- movs r3, 0x80
- bl sub_8096ECC
- ldr r1, [r5]
- adds r1, 0xEC
- strb r0, [r1]
- b _080BF0F4
- .align 2, 0
-_080BF0A0: .4byte SpriteCallbackDummy
-_080BF0A4:
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _080BF0E8 @ =gPaletteFade
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _080BF0EC @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xE0
- ldr r1, _080BF0F0 @ =sub_80BF394
- str r1, [r0]
- movs r0, 0x1
- b _080BF104
- .align 2, 0
-_080BF0E8: .4byte gPaletteFade
-_080BF0EC: .4byte gUnknown_20399C4
-_080BF0F0: .4byte sub_80BF394
-_080BF0F4:
- ldr r1, _080BF10C @ =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_080BF102:
- movs r0, 0
-_080BF104:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080BF10C: .4byte gMain
- thumb_func_end sub_80BED18
-
- thumb_func_start sub_80BF110
-sub_80BF110: @ 80BF110
- push {lr}
-_080BF112:
- bl sub_80BED18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BF12C
- ldr r0, _080BF128 @ =sub_80BF368
- bl SetMainCallback2
- b _080BF138
- .align 2, 0
-_080BF128: .4byte sub_80BF368
-_080BF12C:
- bl MenuHelpers_LinkSomething
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080BF112
-_080BF138:
- pop {r0}
- bx r0
- thumb_func_end sub_80BF110
-
- thumb_func_start sub_80BF13C
-sub_80BF13C: @ 80BF13C
- push {r4-r7,lr}
- movs r6, 0
- movs r5, 0
- ldr r2, _080BF1E0 @ =gUnknown_20399C4
- ldr r0, [r2]
- adds r0, 0xF8
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r5, r0
- bcs _080BF19C
- adds r7, r2, 0
-_080BF152:
- movs r0, 0x1A
- muls r0, r5
- ldr r2, [r7]
- adds r0, r2, r0
- adds r1, r2, 0
- adds r1, 0xE4
- lsls r3, r6, 1
- ldr r1, [r1]
- adds r1, r3
- adds r2, 0xF8
- ldr r2, [r2]
- ldr r2, [r2, 0x8]
- lsls r4, r5, 2
- adds r2, r4, r2
- ldr r2, [r2]
- lsls r2, 30
- lsrs r2, 30
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- ldr r0, [r7]
- adds r0, 0xF8
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- adds r4, r0
- ldr r0, [r4]
- lsls r0, 30
- lsrs r0, 30
- adds r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r1, [r1]
- cmp r5, r1
- bcc _080BF152
-_080BF19C:
- ldr r4, _080BF1E0 @ =gUnknown_20399C4
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xEE
- ldrb r0, [r0]
- cmp r0, 0
- bne _080BF1E8
- adds r0, r1, 0
- adds r0, 0xD0
- adds r1, 0xE4
- ldr r1, [r1]
- adds r1, 0x12
- bl StringCopy
- ldr r1, _080BF1E4 @ =gUnknown_841E234
- bl StringCopy
- ldr r0, [r4]
- adds r0, 0xD0
- bl StringLength
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0xF8
- ldr r1, [r1]
- lsls r0, 16
- lsrs r0, 13
- subs r0, 0x60
- ldrb r1, [r1, 0x2]
- subs r1, r0
- adds r2, 0xE9
- strb r1, [r2]
- b _080BF21E
- .align 2, 0
-_080BF1E0: .4byte gUnknown_20399C4
-_080BF1E4: .4byte gUnknown_841E234
-_080BF1E8:
- adds r0, r1, 0
- adds r0, 0xD0
- adds r1, 0xE4
- ldr r1, [r1]
- adds r1, 0x12
- bl StringCopy
- ldr r0, [r4]
- adds r0, 0xD0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _080BF210
- ldr r0, [r4]
- adds r0, 0xD0
- movs r1, 0x1
- bl ConvertInternationalString
-_080BF210:
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xF8
- ldr r1, [r1]
- ldrb r1, [r1, 0x2]
- adds r0, 0xE9
- strb r1, [r0]
-_080BF21E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80BF13C
-
- thumb_func_start sub_80BF224
-sub_80BF224: @ 80BF224
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r7, 0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r6, 0
- ldr r0, _080BF348 @ =gUnknown_20399C4
- mov r9, r0
- ldr r0, [r0]
- adds r0, 0xF8
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r6, r0
- bcs _080BF2CE
- mov r8, r9
-_080BF260:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x1A
- muls r0, r6
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080BF2BA
- cmp r0, 0
- beq _080BF2BA
- adds r0, r1, 0
- adds r0, 0xF8
- ldr r1, [r0]
- ldr r0, [r1, 0x8]
- lsls r4, r6, 2
- adds r0, r4, r0
- ldr r2, [r0]
- lsls r2, 24
- lsrs r2, 26
- ldrb r0, [r1, 0x4]
- adds r2, r0
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r1, 0x3]
- adds r3, r7, r3
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080BF34C @ =gUnknown_83EE9BC
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r1, 0x1
- bl AddTextPrinterParameterized3
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r0, [r0]
- ldr r0, [r0, 0x8]
- adds r4, r0
- ldrb r0, [r4, 0x1]
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
-_080BF2BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xF8
- ldr r0, [r0]
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080BF260
-_080BF2CE:
- ldr r4, _080BF350 @ =gUnknown_841E234
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0
- bl GetStringWidth
- mov r9, r0
- ldr r5, _080BF348 @ =gUnknown_20399C4
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xE9
- ldrb r2, [r1]
- adds r0, 0xF8
- ldr r0, [r0]
- ldrb r3, [r0, 0x1]
- ldr r0, _080BF34C @ =gUnknown_83EE9BC
- mov r8, r0
- str r0, [sp]
- movs r6, 0
- str r6, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- bl AddTextPrinterParameterized3
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0xE9
- ldrb r2, [r0]
- add r2, r9
- lsls r2, 24
- lsrs r2, 24
- adds r0, 0xF
- ldr r0, [r0]
- ldrb r3, [r0, 0x1]
- mov r0, r8
- str r0, [sp]
- str r6, [sp, 0x4]
- adds r0, r1, 0
- adds r0, 0xD0
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- bl AddTextPrinterParameterized3
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF348: .4byte gUnknown_20399C4
-_080BF34C: .4byte gUnknown_83EE9BC
-_080BF350: .4byte gUnknown_841E234
- thumb_func_end sub_80BF224
-
- thumb_func_start sub_80BF354
-sub_80BF354: @ 80BF354
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80BF354
-
- thumb_func_start sub_80BF368
-sub_80BF368: @ 80BF368
- push {r4,lr}
- ldr r4, _080BF390 @ =gUnknown_20399C4
- ldr r0, [r4]
- adds r0, 0xEB
- ldrb r0, [r0]
- cmp r0, 0
- beq _080BF37E
- bl AnimateSprites
- bl BuildOamBuffer
-_080BF37E:
- ldr r0, [r4]
- adds r0, 0xE0
- ldr r0, [r0]
- bl _call_via_r0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF390: .4byte gUnknown_20399C4
- thumb_func_end sub_80BF368
-
- thumb_func_start sub_80BF394
-sub_80BF394: @ 80BF394
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080BF3AA
- ldr r0, _080BF3B0 @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xE0
- ldr r1, _080BF3B4 @ =sub_80BF3B8
- str r1, [r0]
-_080BF3AA:
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3B0: .4byte gUnknown_20399C4
-_080BF3B4: .4byte sub_80BF3B8
- thumb_func_end sub_80BF394
-
- thumb_func_start sub_80BF3B8
-sub_80BF3B8: @ 80BF3B8
- push {lr}
- sub sp, 0x4
- ldr r0, _080BF3E8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080BF3E2
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _080BF3EC @ =gUnknown_20399C4
- ldr r0, [r0]
- adds r0, 0xE0
- ldr r1, _080BF3F0 @ =sub_80BF3F4
- str r1, [r0]
-_080BF3E2:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080BF3E8: .4byte gMain
-_080BF3EC: .4byte gUnknown_20399C4
-_080BF3F0: .4byte sub_80BF3F4
- thumb_func_end sub_80BF3B8
-
- thumb_func_start sub_80BF3F4
-sub_80BF3F4: @ 80BF3F4
- push {r4,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _080BF460
- ldr r4, _080BF468 @ =gUnknown_20399C4
- ldr r0, [r4]
- adds r0, 0xDC
- ldr r0, [r0]
- bl SetMainCallback2
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xEB
- ldrb r1, [r1]
- cmp r1, 0x2
- bgt _080BF442
- cmp r1, 0x1
- blt _080BF442
- adds r0, 0xE4
- ldr r0, [r0]
- ldrh r0, [r0, 0x1E]
- bl sub_8096FD4
- lsls r0, 16
- lsrs r0, 16
- bl sub_8097168
- ldr r0, [r4]
- adds r0, 0xEC
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080BF46C @ =gSprites
- adds r0, r1
- bl sub_8097070
-_080BF442:
- ldr r4, _080BF468 @ =gUnknown_20399C4
- ldr r0, [r4]
- ldr r2, _080BF470 @ =0x000020fc
- movs r1, 0
- bl memset
- bl ResetPaletteFade
- bl FreeAllWindowBuffers
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
-_080BF460:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080BF468: .4byte gUnknown_20399C4
-_080BF46C: .4byte gSprites
-_080BF470: .4byte 0x000020fc
- thumb_func_end sub_80BF3F4
-
- .align 2, 0 @ Don't pad with nop.
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 9bcd95eab..9b9fe037f 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -15,7 +15,7 @@ sub_8054BC8: @ 8054BC8
movs r0, 0xA4
lsls r0, 2
adds r4, r0
- bl sub_8054C04
+ bl ComputeWhiteOutMoneyLoss
adds r1, r0, 0
adds r0, r4, 0
bl RemoveMoney
@@ -31,17 +31,17 @@ _08054BFC: .4byte gUnknown_81A654B
_08054C00: .4byte gSaveBlock1Ptr
thumb_func_end sub_8054BC8
- thumb_func_start sub_8054C04
-sub_8054C04: @ 8054C04
+ thumb_func_start ComputeWhiteOutMoneyLoss
+ComputeWhiteOutMoneyLoss: @ 8054C04
push {r4,lr}
- bl sub_8054C70
+ bl CountBadgesForOverworldWhiteOutLossCalculation
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl GetPlayerPartyHighestLevel
lsls r0, 24
lsrs r0, 24
- ldr r1, _08054C40 @ =gUnknown_826D294
+ ldr r1, _08054C40 @ =sWhiteOutMoneyLossMultipliers
adds r4, r1
ldrb r1, [r4]
lsls r1, 2
@@ -62,14 +62,14 @@ _08054C38:
pop {r1}
bx r1
.align 2, 0
-_08054C40: .4byte gUnknown_826D294
+_08054C40: .4byte sWhiteOutMoneyLossMultipliers
_08054C44: .4byte gSaveBlock1Ptr
- thumb_func_end sub_8054C04
+ thumb_func_end ComputeWhiteOutMoneyLoss
- thumb_func_start sub_8054C48
-sub_8054C48: @ 8054C48
+ thumb_func_start Special_OverworldWhiteOutGetMoneyLoss
+Special_OverworldWhiteOutGetMoneyLoss: @ 8054C48
push {r4,r5,lr}
- bl sub_8054C04
+ bl ComputeWhiteOutMoneyLoss
adds r4, r0, 0
ldr r5, _08054C6C @ =gStringVar1
bl CountDigits
@@ -85,14 +85,14 @@ sub_8054C48: @ 8054C48
bx r0
.align 2, 0
_08054C6C: .4byte gStringVar1
- thumb_func_end sub_8054C48
+ thumb_func_end Special_OverworldWhiteOutGetMoneyLoss
- thumb_func_start sub_8054C70
-sub_8054C70: @ 8054C70
+ thumb_func_start CountBadgesForOverworldWhiteOutLossCalculation
+CountBadgesForOverworldWhiteOutLossCalculation: @ 8054C70
push {r4-r6,lr}
movs r6, 0
movs r5, 0
- ldr r4, _08054C9C @ =gUnknown_826D29E
+ ldr r4, _08054C9C @ =sWhiteOutMoneyLossBadgeFlagIDs
_08054C78:
ldrh r0, [r4]
bl FlagGet
@@ -112,8 +112,8 @@ _08054C8A:
pop {r1}
bx r1
.align 2, 0
-_08054C9C: .4byte gUnknown_826D29E
- thumb_func_end sub_8054C70
+_08054C9C: .4byte sWhiteOutMoneyLossBadgeFlagIDs
+ thumb_func_end CountBadgesForOverworldWhiteOutLossCalculation
thumb_func_start sub_8054CA0
sub_8054CA0: @ 8054CA0
@@ -749,7 +749,7 @@ warp_shift: @ 8055198
str r0, [r2, 0x4]
str r1, [r2, 0x8]
ldr r2, _080551D0 @ =gUnknown_2031DC4
- ldr r0, _080551D4 @ =gUnknown_826D2B0
+ ldr r0, _080551D4 @ =sDummyWarpData
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2]
@@ -763,7 +763,7 @@ _080551C4: .4byte gUnknown_2031DB4
_080551C8: .4byte gSaveBlock1Ptr
_080551CC: .4byte gUnknown_2031DBC
_080551D0: .4byte gUnknown_2031DC4
-_080551D4: .4byte gUnknown_826D2B0
+_080551D4: .4byte sDummyWarpData
_080551D8: .4byte gUnknown_2031DCC
thumb_func_end warp_shift
@@ -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
@@ -1717,7 +1717,7 @@ sub_8055864: @ 8055864
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
bl mapheader_run_script_with_tag_x3
- bl sub_815D8F8
+ bl TryRegenerateRenewableHiddenItems
bl not_trainer_hill_battle_pyramid
ldr r4, _0805591C @ =gMapHeader
ldr r0, [r4]
@@ -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
@@ -1794,7 +1794,7 @@ _08055974:
bl sub_8055CB8
bl sav1_reset_battle_music_maybe
bl mapheader_run_script_with_tag_x3
- bl sub_815D8F8
+ bl TryRegenerateRenewableHiddenItems
bl UpdateLocationHistoryForRoamer
bl RoamerMoveToOtherLocationSet
bl sub_8110920
@@ -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
@@ -3293,7 +3293,7 @@ _080564B0:
adds r2, r4, 0
bl sub_805B3E0
_080564BA:
- bl sub_811092C
+ bl RunQuestLogCB
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -3328,7 +3328,7 @@ sub_80564C8: @ 80564C8
.align 2, 0
_08056508: .4byte gUnknown_3005E90
_0805650C:
- bl sub_811092C
+ bl RunQuestLogCB
b _08056522
_08056512:
bl sub_8111CD0
@@ -3336,7 +3336,7 @@ _08056512:
lsrs r0, 24
cmp r0, 0x1
bne _08056522
- bl sub_811092C
+ bl RunQuestLogCB
_08056522:
ldr r0, _08056530 @ =gUnknown_3005E90
bl sub_806C888
@@ -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
@@ -6964,13 +6964,13 @@ sub_8058214: @ 8058214
thumb_func_start sub_8058230
sub_8058230: @ 8058230
push {lr}
- ldr r0, _08058240 @ =gUnknown_81BB9F0
+ ldr r0, _08058240 @ =EventScript_1BB9F0
bl ScriptContext1_SetupScript
bl ScriptContext2_Enable
pop {r0}
bx r0
.align 2, 0
-_08058240: .4byte gUnknown_81BB9F0
+_08058240: .4byte EventScript_1BB9F0
thumb_func_end sub_8058230
thumb_func_start sub_8058244
diff --git a/asm/party_menu.s b/asm/party_menu.s
index df016c018..b0506d6c9 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -4284,7 +4284,7 @@ _08120B64:
lsls r0, 16
lsrs r0, 16
adds r1, r6, 0
- bl sub_8120BE8
+ bl IsMonCompatibleWithMoveTutorMove
lsls r0, 24
cmp r0, 0
bne _08120B80
@@ -4293,7 +4293,7 @@ _08120B7C:
b _08120B9E
_08120B80:
mov r0, r8
- bl sub_8120BA8
+ bl GetMoveTutorMove
_08120B86:
lsls r0, 16
lsrs r1, r0, 16
@@ -4315,8 +4315,8 @@ _08120B9E:
bx r1
thumb_func_end sub_8120B20
- thumb_func_start sub_8120BA8
-sub_8120BA8: @ 8120BA8
+ thumb_func_start GetMoveTutorMove
+GetMoveTutorMove: @ 8120BA8
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -4333,19 +4333,19 @@ _08120BBC:
b _08120BD6
_08120BC2:
movs r0, 0xA9
- lsls r0, 1
+ lsls r0, 1 @ MOVE_FRENZY_PLANT
b _08120BDE
_08120BC8:
- ldr r0, _08120BCC @ =0x00000133
+ ldr r0, _08120BCC @ =0x00000133 @ MOVE_BLAST_BURN
b _08120BDE
.align 2, 0
_08120BCC: .4byte 0x00000133
_08120BD0:
movs r0, 0x9A
- lsls r0, 1
+ lsls r0, 1 @ MOVE_HYDRO_CANNON
b _08120BDE
_08120BD6:
- ldr r0, _08120BE4 @ =gUnknown_8459B60
+ ldr r0, _08120BE4 @ =gMoveTutorMoves
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
@@ -4353,11 +4353,11 @@ _08120BDE:
pop {r1}
bx r1
.align 2, 0
-_08120BE4: .4byte gUnknown_8459B60
- thumb_func_end sub_8120BA8
+_08120BE4: .4byte gMoveTutorMoves
+ thumb_func_end GetMoveTutorMove
- thumb_func_start sub_8120BE8
-sub_8120BE8: @ 8120BE8
+ thumb_func_start IsMonCompatibleWithMoveTutorMove
+IsMonCompatibleWithMoveTutorMove: @ 8120BE8
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -4375,19 +4375,19 @@ _08120C00:
beq _08120C12
b _08120C18
_08120C06:
- cmp r0, 0x3
+ cmp r0, 3 @ SPECIES_VENUSAUR
beq _08120C34
b _08120C2A
_08120C0C:
- cmp r0, 0x6
+ cmp r0, 6 @ SPECIES_CHARIZARD
beq _08120C34
b _08120C2A
_08120C12:
- cmp r0, 0x9
+ cmp r0, 9 @ SPECIES_BLASTOISE
beq _08120C34
b _08120C2A
_08120C18:
- ldr r1, _08120C30 @ =gUnknown_8459B7E
+ ldr r1, _08120C30 @ =gMoveTutorMoveCompatibilityTable
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
@@ -4400,13 +4400,13 @@ _08120C2A:
movs r0, 0
b _08120C36
.align 2, 0
-_08120C30: .4byte gUnknown_8459B7E
+_08120C30: .4byte gMoveTutorMoveCompatibilityTable
_08120C34:
movs r0, 0x1
_08120C36:
pop {r1}
bx r1
- thumb_func_end sub_8120BE8
+ thumb_func_end IsMonCompatibleWithMoveTutorMove
thumb_func_start sub_8120C3C
sub_8120C3C: @ 8120C3C
@@ -7206,7 +7206,7 @@ party_menu_link_mon_icon_anim: @ 812224C
lsrs r7, r3, 24
cmp r5, 0
beq _0812229A
- ldr r1, _081222A4 @ =sub_809718C
+ ldr r1, _081222A4 @ =SpriteCB_MonIcon
ldr r0, [r4, 0x4]
ldrb r2, [r0]
ldrb r3, [r0, 0x1]
@@ -7240,7 +7240,7 @@ _0812229A:
pop {r0}
bx r0
.align 2, 0
-_081222A4: .4byte sub_809718C
+_081222A4: .4byte SpriteCB_MonIcon
_081222A8: .4byte gSprites
thumb_func_end party_menu_link_mon_icon_anim
@@ -7276,7 +7276,7 @@ _081222D4:
ldr r1, _081222F0 @ =gSprites
adds r0, r1
movs r1, 0
- bl sub_8097414
+ bl MonIcon_SetAnim
b _0812234C
.align 2, 0
_081222F0: .4byte gSprites
@@ -7287,7 +7287,7 @@ _081222F4:
ldr r1, _08122308 @ =gSprites
adds r0, r1
movs r1, 0x1
- bl sub_8097414
+ bl MonIcon_SetAnim
b _0812234C
.align 2, 0
_08122308: .4byte gSprites
@@ -7298,7 +7298,7 @@ _0812230C:
ldr r1, _08122320 @ =gSprites
adds r0, r1
movs r1, 0x2
- bl sub_8097414
+ bl MonIcon_SetAnim
b _0812234C
.align 2, 0
_08122320: .4byte gSprites
@@ -7309,7 +7309,7 @@ _08122324:
ldr r1, _08122338 @ =gSprites
adds r0, r1
movs r1, 0x3
- bl sub_8097414
+ bl MonIcon_SetAnim
b _0812234C
.align 2, 0
_08122338: .4byte gSprites
@@ -7320,7 +7320,7 @@ _0812233C:
ldr r1, _08122354 @ =gSprites
adds r0, r1
movs r1, 0x4
- bl sub_8097414
+ bl MonIcon_SetAnim
_0812234C:
pop {r4}
pop {r0}
@@ -10642,7 +10642,7 @@ sub_8123D84: @ 8123D84
adds r0, r1
ldr r1, _08123DC8 @ =sub_8123DCC
movs r2, 0x1
- bl sub_80BEBEC
+ bl ReadMail
pop {r0}
bx r0
.align 2, 0
@@ -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
@@ -16549,7 +16549,7 @@ sub_8126DC8: @ 8126DC8
bl GetMonNickname
ldr r4, _08126E5C @ =gSpecialVar_0x8005
ldrb r0, [r4]
- bl sub_8120BA8
+ bl GetMoveTutorMove
strh r0, [r7, 0xE]
ldr r0, _08126E60 @ =gStringVar2
movs r1, 0xE
diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s
deleted file mode 100644
index f7ab6b1a6..000000000
--- a/asm/pokemon_icon.s
+++ /dev/null
@@ -1,848 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start CreateMonIcon
-CreateMonIcon: @ 8096E18
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x30
- adds r4, r0, 0
- adds r6, r1, 0
- ldr r0, [sp, 0x4C]
- ldr r1, [sp, 0x50]
- ldr r5, [sp, 0x54]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _08096EB4 @ =gUnknown_83D4068
- str r0, [sp, 0x18]
- adds r0, r4, 0
- adds r2, r5, 0
- bl GetMonIconPtr
- str r0, [sp, 0x1C]
- ldr r0, _08096EB8 @ =gUnknown_83D40AC
- str r0, [sp, 0x20]
- ldr r0, _08096EBC @ =gUnknown_83D40E0
- str r0, [sp, 0x24]
- str r6, [sp, 0x28]
- ldr r0, _08096EC0 @ =gUnknown_83D3E80
- adds r0, r4, r0
- ldr r1, _08096EC4 @ =0x0000dac0
- adds r5, r1, 0
- ldrb r0, [r0]
- adds r1, r5, r0
- add r0, sp, 0x2C
- strh r1, [r0]
- add r1, sp, 0x18
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08096E7E
- mov r0, sp
- strh r5, [r0, 0x14]
-_08096E7E:
- mov r0, r8
- lsls r1, r0, 16
- asrs r1, 16
- lsls r2, r7, 16
- asrs r2, 16
- mov r0, sp
- mov r3, r9
- bl CreateMonIconSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08096EC8 @ =gSprites
- adds r0, r1
- bl UpdateMonIconFrame
- adds r0, r4, 0
- add sp, 0x30
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08096EB4: .4byte gUnknown_83D4068
-_08096EB8: .4byte gUnknown_83D40AC
-_08096EBC: .4byte gUnknown_83D40E0
-_08096EC0: .4byte gUnknown_83D3E80
-_08096EC4: .4byte 0x0000dac0
-_08096EC8: .4byte gSprites
- thumb_func_end CreateMonIcon
-
- thumb_func_start sub_8096ECC
-sub_8096ECC: @ 8096ECC
- push {r4-r7,lr}
- sub sp, 0x18
- adds r4, r2, 0
- adds r5, r3, 0
- ldr r6, [sp, 0x2C]
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 24
- lsrs r6, 24
- mov r3, sp
- ldr r2, _08096F44 @ =gUnknown_83D4068
- str r2, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r2, _08096F48 @ =gUnknown_83D40AC
- str r2, [sp, 0x8]
- ldr r2, _08096F4C @ =gUnknown_83D40E0
- str r2, [sp, 0xC]
- str r1, [sp, 0x10]
- ldr r2, _08096F50 @ =gUnknown_83D3E80
- adds r2, r0, r2
- ldr r7, _08096F54 @ =0x0000dac0
- adds r1, r7, 0
- ldrb r2, [r2]
- adds r1, r2
- strh r1, [r3, 0x14]
- ldr r1, [sp, 0x30]
- bl sub_8097028
- str r0, [sp, 0x4]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl CreateMonIconSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _08096F58 @ =gSprites
- adds r0, r1
- bl UpdateMonIconFrame
- adds r0, r4, 0
- add sp, 0x18
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08096F44: .4byte gUnknown_83D4068
-_08096F48: .4byte gUnknown_83D40AC
-_08096F4C: .4byte gUnknown_83D40E0
-_08096F50: .4byte gUnknown_83D3E80
-_08096F54: .4byte 0x0000dac0
-_08096F58: .4byte gSprites
- thumb_func_end sub_8096ECC
-
- thumb_func_start mon_icon_convert_unown_species_id
-mon_icon_convert_unown_species_id: @ 8096F5C
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xC9
- bne _08096F86
- adds r0, r1, 0
- bl GetUnownLetterByPersonality
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _08096F78
- movs r0, 0xC9
- b _08096F82
-_08096F78:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08096F82:
- adds r1, r0, 0
- b _08096F92
-_08096F86:
- movs r0, 0xCE
- lsls r0, 1
- adds r1, r2, 0
- cmp r1, r0
- bls _08096F92
- movs r1, 0
-_08096F92:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end mon_icon_convert_unown_species_id
-
- thumb_func_start GetUnownLetterByPersonality
-GetUnownLetterByPersonality: @ 8096F98
- push {lr}
- adds r2, r0, 0
- cmp r2, 0
- beq _08096FCE
- 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
- b _08096FD0
-_08096FCE:
- movs r0, 0
-_08096FD0:
- pop {r1}
- bx r1
- thumb_func_end GetUnownLetterByPersonality
-
- thumb_func_start sub_8096FD4
-sub_8096FD4: @ 8096FD4
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- mov r1, sp
- bl MailSpeciesToSpecies
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC9
- bne _0809700A
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, 0
- bne _08096FFA
- mov r1, sp
- adds r0, 0xC9
- b _08097002
-_08096FFA:
- mov r1, sp
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r2
-_08097002:
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- b _08097020
-_0809700A:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08097014
- movs r4, 0
-_08097014:
- adds r0, r4, 0
- movs r1, 0
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
-_08097020:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8096FD4
-
- thumb_func_start sub_8097028
-sub_8097028: @ 8097028
- push {lr}
- adds r3, r1, 0
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08097050 @ =gUnknown_83D37A0
- lsls r1, r0, 2
- adds r1, r2
- ldr r2, [r1]
- movs r1, 0xCD
- lsls r1, 1
- cmp r0, r1
- bne _0809704A
- cmp r3, 0x1
- bne _0809704A
- movs r0, 0x80
- lsls r0, 3
- adds r2, r0
-_0809704A:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08097050: .4byte gUnknown_83D37A0
- thumb_func_end sub_8097028
-
- thumb_func_start GetMonIconPtr
-GetMonIconPtr: @ 8097054
- push {r4,lr}
- adds r4, r2, 0
- lsls r0, 16
- lsrs r0, 16
- bl mon_icon_convert_unown_species_id
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_8097028
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonIconPtr
-
- thumb_func_start sub_8097070
-sub_8097070: @ 8097070
- push {lr}
- bl sub_80973D8
- pop {r0}
- bx r0
- thumb_func_end sub_8097070
-
- thumb_func_start LoadMonIconPalettes
-LoadMonIconPalettes: @ 809707C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0809709C @ =gUnknown_83D4038
-_08097082:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadSpritePalette
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08097082
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809709C: .4byte gUnknown_83D4038
- thumb_func_end LoadMonIconPalettes
-
- thumb_func_start SafeLoadMonIconPalette
-SafeLoadMonIconPalette: @ 80970A0
- push {r4,lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _080970B0
- movs r1, 0
-_080970B0:
- ldr r0, _080970D8 @ =gUnknown_83D3E80
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _080970DC @ =gUnknown_83D4038
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080970D0
- adds r0, r4, 0
- bl LoadSpritePalette
-_080970D0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080970D8: .4byte gUnknown_83D3E80
-_080970DC: .4byte gUnknown_83D4038
- thumb_func_end SafeLoadMonIconPalette
-
- thumb_func_start sub_80970E0
-sub_80970E0: @ 80970E0
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0809710C @ =gUnknown_83D3E80
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08097110 @ =gUnknown_83D4038
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08097106
- adds r0, r4, 0
- bl LoadSpritePalette
-_08097106:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809710C: .4byte gUnknown_83D3E80
-_08097110: .4byte gUnknown_83D4038
- thumb_func_end sub_80970E0
-
- thumb_func_start FreeMonIconPalettes
-FreeMonIconPalettes: @ 8097114
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08097134 @ =gUnknown_83D4038
-_0809711A:
- lsls r0, r4, 3
- adds r0, r5
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0809711A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08097134: .4byte gUnknown_83D4038
- thumb_func_end FreeMonIconPalettes
-
- thumb_func_start sub_8097138
-sub_8097138: @ 8097138
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _08097148
- movs r1, 0
-_08097148:
- ldr r0, _08097160 @ =gUnknown_83D3E80
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r1, _08097164 @ =gUnknown_83D4038
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_08097160: .4byte gUnknown_83D3E80
-_08097164: .4byte gUnknown_83D4038
- thumb_func_end sub_8097138
-
- thumb_func_start sub_8097168
-sub_8097168: @ 8097168
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08097184 @ =gUnknown_83D3E80
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08097188 @ =gUnknown_83D4038
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_08097184: .4byte gUnknown_83D3E80
-_08097188: .4byte gUnknown_83D4038
- thumb_func_end sub_8097168
-
- thumb_func_start sub_809718C
-sub_809718C: @ 809718C
- push {lr}
- bl UpdateMonIconFrame
- pop {r0}
- bx r0
- thumb_func_end sub_809718C
-
- thumb_func_start sub_8097198
-sub_8097198: @ 8097198
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xA0
- bhi _080971C0
- ldr r6, _080971C8 @ =gUnknown_83D4038
- movs r5, 0x5
-_080971A6:
- ldr r0, [r6]
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- adds r0, r4, 0
- adds r0, 0x10
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x8
- subs r5, 0x1
- cmp r5, 0
- bge _080971A6
-_080971C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080971C8: .4byte gUnknown_83D4038
- thumb_func_end sub_8097198
-
- thumb_func_start GetValidMonIconPalettePtr
-GetValidMonIconPalettePtr: @ 80971CC
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r2, r0
- bls _080971DC
- movs r2, 0
-_080971DC:
- ldr r1, _080971F0 @ =gUnknown_83D4038
- ldr r0, _080971F4 @ =gUnknown_83D3E80
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_080971F0: .4byte gUnknown_83D4038
-_080971F4: .4byte gUnknown_83D3E80
- thumb_func_end GetValidMonIconPalettePtr
-
- thumb_func_start sub_80971F8
-sub_80971F8: @ 80971F8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bls _08097208
- movs r1, 0
-_08097208:
- ldr r0, _08097214 @ =gUnknown_83D3E80
- adds r0, r1, r0
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08097214: .4byte gUnknown_83D3E80
- thumb_func_end sub_80971F8
-
- thumb_func_start sub_8097218
-sub_8097218: @ 8097218
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08097224 @ =gUnknown_83D3E80
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08097224: .4byte gUnknown_83D3E80
- thumb_func_end sub_8097218
-
- thumb_func_start UpdateMonIconFrame
-UpdateMonIconFrame: @ 8097228
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r7, 0
- adds r6, r4, 0
- adds r6, 0x2C
- ldrb r2, [r6]
- movs r0, 0x3F
- mov r9, r0
- ands r0, r2
- cmp r0, 0
- bne _080972DC
- movs r1, 0x2A
- adds r1, r4
- mov r8, r1
- ldrb r1, [r1]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r5, r4, 0
- adds r5, 0x2B
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- ldrsh r3, [r0, r1]
- movs r0, 0x2
- negs r0, r0
- cmp r3, r0
- beq _08097272
- adds r0, 0x1
- cmp r3, r0
- bne _08097276
- b _080972F0
-_08097272:
- strb r7, [r5]
- b _080972F0
-_08097276:
- ldr r2, _080972D4 @ =gUnknown_83D40E8
- ldrb r1, [r4, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r4, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- adds r1, r2, 0
- muls r1, r3
- ldr r0, [r4, 0xC]
- adds r0, r1
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 17
- ldr r3, _080972D8 @ =0x06010000
- adds r1, r3
- bl RequestSpriteCopy
- mov r0, r8
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r5]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- mov r1, r9
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldrb r7, [r5]
- b _080972F0
- .align 2, 0
-_080972D4: .4byte gUnknown_83D40E8
-_080972D8: .4byte 0x06010000
-_080972DC:
- lsls r0, r2, 26
- lsrs r0, 26
- subs r0, 0x1
- movs r1, 0x3F
- ands r0, r1
- movs r1, 0x40
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r6]
-_080972F0:
- adds r0, r7, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end UpdateMonIconFrame
-
- thumb_func_start CreateMonIconSprite
-CreateMonIconSprite: @ 8097300
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x38
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- str r0, [sp, 0x30]
- ldr r2, _080973C8 @ =gUnknown_83D40E8
- mov r0, r9
- ldr r6, [r0]
- ldrb r1, [r6, 0x3]
- lsrs r1, 6
- lsls r1, 1
- ldrb r0, [r6, 0x1]
- lsrs r0, 6
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrh r2, [r1]
- ldr r1, _080973CC @ =0xffff0000
- add r3, sp, 0x30
- ldr r0, [r3, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [r3, 0x4]
- add r1, sp, 0x18
- ldr r0, _080973D0 @ =0x0000ffff
- strh r0, [r1]
- mov r0, r9
- ldrh r2, [r0, 0x14]
- mov r0, sp
- adds r0, 0x1A
- strh r2, [r0]
- str r6, [sp, 0x1C]
- mov r2, r9
- ldr r0, [r2, 0x8]
- str r0, [sp, 0x20]
- str r3, [sp, 0x24]
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x28]
- ldr r0, [r2, 0x10]
- str r0, [sp, 0x2C]
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, sp
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _080973D4 @ =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r4, r3, r6
- adds r5, r4, 0
- adds r5, 0x2C
- ldrb r1, [r5]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r5]
- adds r4, 0x3F
- ldrb r2, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r4]
- adds r6, 0xC
- adds r3, r6
- mov r2, r9
- ldr r1, [r2, 0x4]
- str r1, [r3]
- add sp, 0x38
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080973C8: .4byte gUnknown_83D40E8
-_080973CC: .4byte 0xffff0000
-_080973D0: .4byte 0x0000ffff
-_080973D4: .4byte gSprites
- thumb_func_end CreateMonIconSprite
-
- thumb_func_start sub_80973D8
-sub_80973D8: @ 80973D8
- push {lr}
- sub sp, 0x8
- movs r1, 0
- str r1, [sp]
- ldr r3, _0809740C @ =gUnknown_83D40E8
- ldrb r2, [r0, 0x3]
- lsrs r2, 6
- lsls r2, 1
- ldrb r1, [r0, 0x1]
- lsrs r1, 6
- lsls r1, 3
- adds r2, r1
- adds r2, r3
- ldrh r3, [r2]
- ldr r2, _08097410 @ =0xffff0000
- ldr r1, [sp, 0x4]
- ands r1, r2
- orrs r1, r3
- str r1, [sp, 0x4]
- mov r1, sp
- str r1, [r0, 0xC]
- bl DestroySprite
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0809740C: .4byte gUnknown_83D40E8
-_08097410: .4byte 0xffff0000
- thumb_func_end sub_80973D8
-
- thumb_func_start sub_8097414
-sub_8097414: @ 8097414
- mov r12, r0
- adds r0, 0x2A
- movs r3, 0
- strb r1, [r0]
- mov r2, r12
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- mov r0, r12
- adds r0, 0x2B
- strb r3, [r0]
- bx lr
- thumb_func_end sub_8097414
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokemon_size_record.s b/asm/pokemon_size_record.s
index cb87652fa..e14bdc51d 100644
--- a/asm/pokemon_size_record.s
+++ b/asm/pokemon_size_record.s
@@ -323,8 +323,8 @@ sub_80A0904: @ 80A0904
_080A0914: .4byte 0x0000403d
thumb_func_end sub_80A0904
- thumb_func_start sub_80A0918
-sub_80A0918: @ 80A0918
+ thumb_func_start GetHeracrossSizeRecordInfo
+GetHeracrossSizeRecordInfo: @ 80A0918
push {lr}
ldr r0, _080A092C @ =0x0000403d
bl GetVarPointer
@@ -335,10 +335,10 @@ sub_80A0918: @ 80A0918
bx r0
.align 2, 0
_080A092C: .4byte 0x0000403d
- thumb_func_end sub_80A0918
+ thumb_func_end GetHeracrossSizeRecordInfo
- thumb_func_start sub_80A0930
-sub_80A0930: @ 80A0930
+ thumb_func_start CompareHeracrossSize
+CompareHeracrossSize: @ 80A0930
push {r4,lr}
ldr r0, _080A0950 @ =0x0000403d
bl GetVarPointer
@@ -355,7 +355,7 @@ sub_80A0930: @ 80A0930
.align 2, 0
_080A0950: .4byte 0x0000403d
_080A0954: .4byte gSpecialVar_Result
- thumb_func_end sub_80A0930
+ thumb_func_end CompareHeracrossSize
thumb_func_start sub_80A0958
sub_80A0958: @ 80A0958
@@ -369,8 +369,8 @@ sub_80A0958: @ 80A0958
_080A0968: .4byte 0x00004040
thumb_func_end sub_80A0958
- thumb_func_start sub_80A096C
-sub_80A096C: @ 80A096C
+ thumb_func_start GetMagikarpSizeRecordInfo
+GetMagikarpSizeRecordInfo: @ 80A096C
push {lr}
ldr r0, _080A0980 @ =0x00004040
bl GetVarPointer
@@ -381,10 +381,10 @@ sub_80A096C: @ 80A096C
bx r0
.align 2, 0
_080A0980: .4byte 0x00004040
- thumb_func_end sub_80A096C
+ thumb_func_end GetMagikarpSizeRecordInfo
- thumb_func_start sub_80A0984
-sub_80A0984: @ 80A0984
+ thumb_func_start CompareMagikarpSize
+CompareMagikarpSize: @ 80A0984
push {r4,lr}
ldr r0, _080A09A4 @ =0x00004040
bl GetVarPointer
@@ -401,7 +401,7 @@ sub_80A0984: @ 80A0984
.align 2, 0
_080A09A4: .4byte 0x00004040
_080A09A8: .4byte gSpecialVar_Result
- thumb_func_end sub_80A0984
+ thumb_func_end CompareMagikarpSize
thumb_func_start GiveGiftRibbonToParty
GiveGiftRibbonToParty: @ 80A09AC
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index a68ced640..ec0e9e53c 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1751,8 +1751,8 @@ _0808C69C:
_0808C6A4: .4byte gPaletteFade
thumb_func_end c3_0808C39C
- thumb_func_start sub_808C6A8
-sub_808C6A8: @ 808C6A8
+ thumb_func_start ShowPokemonStorageSystem
+ShowPokemonStorageSystem: @ 808C6A8
push {lr}
ldr r0, _0808C6D0 @ =c3_0808C39C
movs r1, 0x50
@@ -1773,7 +1773,7 @@ sub_808C6A8: @ 808C6A8
.align 2, 0
_0808C6D0: .4byte c3_0808C39C
_0808C6D4: .4byte gTasks
- thumb_func_end sub_808C6A8
+ thumb_func_end ShowPokemonStorageSystem
thumb_func_start mapldr_0808C6D8
mapldr_0808C6D8: @ 808C6D8
@@ -11179,7 +11179,7 @@ _08091248:
lsrs r4, 16
adds r0, r3, 0
movs r1, 0x1
- bl sub_8097028
+ bl GetMonIconTiles
lsls r1, r4, 5
ldr r2, _08091288 @ =0x06010000
adds r1, r2
@@ -11271,11 +11271,11 @@ sub_80912E0: @ 80912E0
ldm r0!, {r3,r5,r7}
stm r2!, {r3,r5,r7}
adds r0, r6, 0
- bl mon_icon_convert_unown_species_id
+ bl GetIconSpecies
mov r10, r0
mov r6, r10
mov r2, sp
- ldr r1, _08091394 @ =gUnknown_83D3E80
+ ldr r1, _08091394 @ =gMonIconPaletteIndices
adds r1, r6, r1
ldr r3, _08091398 @ =0x0000dac0
adds r0, r3, 0
@@ -11329,7 +11329,7 @@ sub_80912E0: @ 80912E0
b _080913B4
.align 2, 0
_08091390: .4byte gUnknown_83CEBF0
-_08091394: .4byte gUnknown_83D3E80
+_08091394: .4byte gMonIconPaletteIndices
_08091398: .4byte 0x0000dac0
_0809139C: .4byte 0x0000ffff
_080913A0: .4byte gSprites
@@ -19235,7 +19235,7 @@ _0809515A:
movs r0, 0
bl HideBg
movs r0, 0x80
- bl sub_8097198
+ bl LoadMonIconPalettesAt
b _080951F8
_08095168:
adds r0, r1, 0x2
@@ -19954,7 +19954,7 @@ sub_80956A4: @ 80956A4
bl GetMonIconPtr
adds r4, r0, 0
adds r0, r5, 0
- bl sub_80971F8
+ bl GetValidMonIconPalIndex
adds r0, 0x8
lsls r0, 24
lsrs r0, 24
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index ec6e6723d..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
@@ -6470,7 +6470,7 @@ _08137B1C:
str r1, [sp, 0x4]
str r6, [sp, 0x8]
str r5, [sp, 0xC]
- ldr r3, _08137BC8 @ =gUnknown_84886E8
+ ldr r3, _08137BC8 @ =gMoveDescriptionPointers
mov r4, r8
ldrb r1, [r4]
lsls r1, 1
@@ -6502,7 +6502,7 @@ _08137BB8: .4byte 0x00003004
_08137BBC: .4byte gUnknown_8463FA4
_08137BC0: .4byte 0x0000316c
_08137BC4: .4byte 0x00003188
-_08137BC8: .4byte gUnknown_84886E8
+_08137BC8: .4byte gMoveDescriptionPointers
_08137BCC: .4byte 0x00003258
thumb_func_end sub_8137AF8
@@ -7652,7 +7652,7 @@ _081384C4: .4byte gEnemyParty
_081384C8: .4byte gLinkPlayers
_081384CC: .4byte 0x0000304c
_081384D0:
- bl sub_80CC1E4
+ bl GetPlayerTrainerId
adds r4, r0, 0
ldr r0, _0813851C @ =0x0000ffff
ands r4, r0
@@ -10916,7 +10916,7 @@ sub_8139F20: @ 8139F20
bl GetMonData
lsls r0, 16
lsrs r0, 16
- bl sub_8097138
+ bl SafeFreeMonIconPalette
ldr r0, [r4]
ldr r1, _08139F5C @ =0x00003014
adds r0, r1
@@ -10926,7 +10926,7 @@ sub_8139F20: @ 8139F20
lsls r0, 2
ldr r1, _08139F60 @ =gSprites
adds r0, r1
- bl sub_8097070
+ bl DestroyMonIcon
pop {r4}
pop {r0}
bx r0
diff --git a/asm/post_battle_event_funcs.s b/asm/post_battle_event_funcs.s
index 20455093a..be7554fd0 100644
--- a/asm/post_battle_event_funcs.s
+++ b/asm/post_battle_event_funcs.s
@@ -106,16 +106,16 @@ _080CA3BC: .4byte 0x0000083b
_080CA3C0: .4byte CB2_DoHallOfFameScreen
thumb_func_end Special_HallOfFame
- thumb_func_start sub_80CA3C4
-sub_80CA3C4: @ 80CA3C4
+ 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
- thumb_func_end sub_80CA3C4
+_080CA3D4: .4byte CB2_WhiteOut
+ thumb_func_end sp0C8_whiteout_maybe
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index 56781a953..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,2058 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809C954
-sub_809C954: @ 809C954
- push {lr}
- adds r1, r0, 0
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- adds r1, r0, 0
- adds r0, r1, 0x7
- cmp r0, 0
- bge _0809C96A
- adds r0, 0x7
-_0809C96A:
- lsls r0, 13
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809C954
-
- thumb_func_start sub_809C974
-sub_809C974: @ 809C974
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, [r7]
- bl sub_809C954
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0x1
- cmp r5, r4
- bcs _0809C9AA
-_0809C98C:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl sub_809C954
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bcs _0809C9A0
- adds r6, r0, 0
-_0809C9A0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r4
- bcc _0809C98C
-_0809C9AA:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C974
-
- thumb_func_start ScriptMenu_Multichoice
-ScriptMenu_Multichoice: @ 809C9B4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, _0809C9F0 @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C9F8
- ldr r0, _0809C9F4 @ =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_809CA64
- movs r0, 0x1
- b _0809C9FA
- .align 2, 0
-_0809C9F0: .4byte sub_809CC98
-_0809C9F4: .4byte gSpecialVar_Result
-_0809C9F8:
- movs r0, 0
-_0809C9FA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_Multichoice
-
- thumb_func_start ScriptMenu_MultichoiceWithDefault
-ScriptMenu_MultichoiceWithDefault: @ 809CA04
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0809CA4C @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CA54
- ldr r1, _0809CA50 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- str r4, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_809CA64
- movs r0, 0x1
- b _0809CA56
- .align 2, 0
-_0809CA4C: .4byte sub_809CC98
-_0809CA50: .4byte gSpecialVar_Result
-_0809CA54:
- movs r0, 0
-_0809CA56:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_MultichoiceWithDefault
-
- thumb_func_start sub_809CA64
-sub_809CA64: @ 809CA64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x1C]
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- bne _0809CAA6
- ldr r0, _0809CB54 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CBA2
-_0809CAA6:
- movs r0, 0x1
- ldr r1, [sp, 0x18]
- ands r1, r0
- str r1, [sp, 0x18]
- ldr r1, _0809CB58 @ =gUnknown_83E04B0
- mov r2, r10
- lsls r0, r2, 3
- adds r0, r1
- ldrb r7, [r0, 0x4]
- ldr r0, [r0]
- mov r8, r0
- movs r6, 0
- cmp r6, r7
- bge _0809CADE
- mov r5, r8
- adds r4, r7, 0
-_0809CAC6:
- ldr r1, [r5]
- movs r0, 0x2
- movs r2, 0
- bl GetStringWidth
- cmp r0, r6
- ble _0809CAD6
- adds r6, r0, 0
-_0809CAD6:
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _0809CAC6
-_0809CADE:
- adds r0, r6, 0
- adds r0, 0x9
- cmp r0, 0
- bge _0809CAE8
- adds r0, 0x7
-_0809CAE8:
- asrs r0, 3
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r9
- adds r0, r1, r5
- cmp r0, 0x1C
- ble _0809CB02
- movs r0, 0x1C
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0809CB02:
- adds r0, r7, 0
- bl sub_809CBB4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- ldr r1, [sp, 0x14]
- adds r2, r5, 0
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- mov r2, r10
- cmp r2, 0x1E
- beq _0809CB32
- cmp r2, 0xD
- beq _0809CB32
- cmp r2, 0x29
- bne _0809CB5C
-_0809CB32:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl MultichoiceList_PrintItems
- b _0809CB7A
- .align 2, 0
-_0809CB54: .4byte sub_809D6D4
-_0809CB58: .4byte gUnknown_83E04B0
-_0809CB5C:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl MultichoiceList_PrintItems
-_0809CB7A:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- ldr r2, [sp, 0x1C]
- str r2, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- ldr r0, [sp, 0x18]
- adds r1, r7, 0
- adds r2, r5, 0
- mov r3, r10
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809CBA2:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809CA64
-
- thumb_func_start sub_809CBB4
-sub_809CBB4: @ 809CBB4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bhi _0809CC10
- lsls r0, 2
- ldr r1, _0809CBC8 @ =_0809CBCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809CBC8: .4byte _0809CBCC
- .align 2, 0
-_0809CBCC:
- .4byte _0809CC10
- .4byte _0809CBF0
- .4byte _0809CBF4
- .4byte _0809CBF8
- .4byte _0809CBFC
- .4byte _0809CC00
- .4byte _0809CC04
- .4byte _0809CC08
- .4byte _0809CC0C
-_0809CBF0:
- movs r0, 0x2
- b _0809CC12
-_0809CBF4:
- movs r0, 0x4
- b _0809CC12
-_0809CBF8:
- movs r0, 0x6
- b _0809CC12
-_0809CBFC:
- movs r0, 0x7
- b _0809CC12
-_0809CC00:
- movs r0, 0x9
- b _0809CC12
-_0809CC04:
- movs r0, 0xB
- b _0809CC12
-_0809CC08:
- movs r0, 0xD
- b _0809CC12
-_0809CC0C:
- movs r0, 0xE
- b _0809CC12
-_0809CC10:
- movs r0, 0x1
-_0809CC12:
- pop {r1}
- bx r1
- thumb_func_end sub_809CBB4
-
- thumb_func_start sub_809CC18
-sub_809CC18: @ 809CC18
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- cmp r4, 0x27
- beq _0809CC36
- cmp r4, 0x2F
- beq _0809CC36
- cmp r4, 0x32
- bne _0809CC40
-_0809CC36:
- ldr r1, _0809CC3C @ =gUnknown_2039988
- movs r0, 0xC
- b _0809CC44
- .align 2, 0
-_0809CC3C: .4byte gUnknown_2039988
-_0809CC40:
- ldr r1, _0809CC68 @ =gUnknown_2039988
- movs r0, 0
-_0809CC44:
- strb r0, [r1]
- ldr r0, _0809CC6C @ =sub_809CC98
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0809CC70 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r6, [r1, 0x10]
- cmp r5, 0x3
- bls _0809CC74
- movs r0, 0x1
- b _0809CC76
- .align 2, 0
-_0809CC68: .4byte gUnknown_2039988
-_0809CC6C: .4byte sub_809CC98
-_0809CC70: .4byte gTasks
-_0809CC74:
- movs r0, 0
-_0809CC76:
- strh r0, [r1, 0x12]
- ldr r1, _0809CC94 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x14]
- strh r4, [r0, 0x16]
- adds r0, r4, 0
- bl sub_809CD48
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CC94: .4byte gTasks
- thumb_func_end sub_809CC18
-
- thumb_func_start sub_809CC98
-sub_809CC98: @ 809CC98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0809CCC4 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0809CCC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809CD3C
- ldr r1, _0809CCCC @ =gUnknown_2039988
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809CCD0
- subs r0, 0x1
- strb r0, [r1]
- b _0809CD3C
- .align 2, 0
-_0809CCC4: .4byte gTasks+0x8
-_0809CCC8: .4byte gPaletteFade
-_0809CCCC: .4byte gUnknown_2039988
-_0809CCD0:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809CCDE
- bl Menu_ProcessInputNoWrapAround
- b _0809CCE2
-_0809CCDE:
- bl Menu_ProcessInput
-_0809CCE2:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809CD20 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _0809CCF8
- ldrb r0, [r5, 0xE]
- bl sub_809CD48
-_0809CCF8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _0809CD3C
- adds r0, 0x1
- cmp r1, r0
- bne _0809CD28
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809CD3C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809CD24 @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _0809CD2C
- .align 2, 0
-_0809CD20: .4byte gMain
-_0809CD24: .4byte gSpecialVar_Result
-_0809CD28:
- ldr r0, _0809CD44 @ =gSpecialVar_Result
- strh r1, [r0]
-_0809CD2C:
- ldrb r0, [r5, 0xC]
- bl sub_809D6B0
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809CD3C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CD44: .4byte gSpecialVar_Result
- thumb_func_end sub_809CC98
-
- thumb_func_start sub_809CD48
-sub_809CD48: @ 809CD48
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2F
- beq _0809CD78
- cmp r0, 0x2F
- bgt _0809CD60
- cmp r0, 0x27
- beq _0809CD66
- b _0809CDE0
-_0809CD60:
- cmp r1, 0x32
- beq _0809CDB0
- b _0809CDE0
-_0809CD66:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CD74 @ =gUnknown_83E072C
- b _0809CD82
- .align 2, 0
-_0809CD74: .4byte gUnknown_83E072C
-_0809CD78:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CDAC @ =gUnknown_83E0738
-_0809CD82:
- bl Menu_GetCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
- b _0809CDE0
- .align 2, 0
-_0809CDAC: .4byte gUnknown_83E0738
-_0809CDB0:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CDE8 @ =gUnknown_83E0748
- bl Menu_GetCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
-_0809CDE0:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CDE8: .4byte gUnknown_83E0748
- thumb_func_end sub_809CD48
-
- thumb_func_start ScriptMenu_YesNo
-ScriptMenu_YesNo: @ 809CDEC
- push {r4,lr}
- ldr r4, _0809CE04 @ =task_yes_no_maybe
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CE08
- movs r0, 0
- b _0809CE28
- .align 2, 0
-_0809CE04: .4byte task_yes_no_maybe
-_0809CE08:
- ldr r1, _0809CE30 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809CE34 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- cmp r0, 0
- bne _0809CE26
- bl DisplayYesNoMenuDefaultYes
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809CE26:
- movs r0, 0x1
-_0809CE28:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CE30: .4byte gSpecialVar_Result
-_0809CE34: .4byte sub_809D6D4
- thumb_func_end ScriptMenu_YesNo
-
- thumb_func_start sub_809CE38
-sub_809CE38: @ 809CE38
- push {lr}
- ldr r0, _0809CE48 @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _0809CE4C
- movs r0, 0x1
- b _0809CE4E
- .align 2, 0
-_0809CE48: .4byte gSpecialVar_Result
-_0809CE4C:
- movs r0, 0
-_0809CE4E:
- pop {r1}
- bx r1
- thumb_func_end sub_809CE38
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 809CE54
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0809CE74 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _0809CE78
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0809CEBC
- .align 2, 0
-_0809CE74: .4byte gTasks
-_0809CE78:
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809CE9C
- cmp r1, r0
- bgt _0809CE94
- subs r0, 0x1
- cmp r1, r0
- beq _0809CEBC
- b _0809CEB2
-_0809CE94:
- cmp r1, 0
- beq _0809CEAC
- cmp r1, 0x1
- bne _0809CEB2
-_0809CE9C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809CEA8 @ =gSpecialVar_Result
- movs r0, 0
- b _0809CEB0
- .align 2, 0
-_0809CEA8: .4byte gSpecialVar_Result
-_0809CEAC:
- ldr r1, _0809CEC4 @ =gSpecialVar_Result
- movs r0, 0x1
-_0809CEB0:
- strh r0, [r1]
-_0809CEB2:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809CEBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CEC4: .4byte gSpecialVar_Result
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start ScriptMenu_MultichoiceGrid
-ScriptMenu_MultichoiceGrid: @ 809CEC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r0, _0809CF04 @ =sub_809CFDC
- mov r9, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CF08
- movs r0, 0
- b _0809CFBA
- .align 2, 0
-_0809CF04: .4byte sub_809CFDC
-_0809CF08:
- ldr r1, _0809CFCC @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809CFD0 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CFB8
- ldr r1, _0809CFD4 @ =gUnknown_83E04B0
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- mov r8, r1
- ldrb r4, [r0, 0x4]
- mov r0, r8
- adds r1, r4, 0
- bl sub_809C974
- adds r5, r0, 0
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl __udivsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809CFD8 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- mov r9, r0
- mov r1, r10
- strh r1, [r4, 0x10]
- adds r2, r5, 0
- muls r2, r7
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 25
- lsrs r3, 24
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0
- bl SetStdWindowBorderStyle
- ldrb r0, [r4, 0x14]
- lsls r5, 27
- lsrs r5, 24
- str r7, [sp]
- str r6, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x10
- bl MultichoiceGrid_PrintItems
- ldrb r0, [r4, 0x14]
- str r5, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl MultichoiceGrid_InitCursor
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809CFB8:
- movs r0, 0x1
-_0809CFBA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CFCC: .4byte gSpecialVar_Result
-_0809CFD0: .4byte sub_809D6D4
-_0809CFD4: .4byte gUnknown_83E04B0
-_0809CFD8: .4byte gTasks
- thumb_func_end ScriptMenu_MultichoiceGrid
-
- thumb_func_start sub_809CFDC
-sub_809CFDC: @ 809CFDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809D018 @ =gTasks+0x8
- adds r5, r0, r1
- bl Menu_ProcessInputGridLayout
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _0809D034
- adds r0, 0x1
- cmp r1, r0
- bne _0809D020
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809D034
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809D01C @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _0809D024
- .align 2, 0
-_0809D018: .4byte gTasks+0x8
-_0809D01C: .4byte gSpecialVar_Result
-_0809D020:
- ldr r0, _0809D03C @ =gSpecialVar_Result
- strh r1, [r0]
-_0809D024:
- ldrb r0, [r5, 0xC]
- bl sub_809D6B0
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809D034:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D03C: .4byte gSpecialVar_Result
- thumb_func_end sub_809CFDC
-
- thumb_func_start ScrSpecial_CreatePCMenu
-ScrSpecial_CreatePCMenu: @ 809D040
- push {lr}
- ldr r0, _0809D060 @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809D068
- ldr r1, _0809D064 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_809D070
- movs r0, 0x1
- b _0809D06A
- .align 2, 0
-_0809D060: .4byte sub_809CC98
-_0809D064: .4byte gSpecialVar_Result
-_0809D068:
- movs r0, 0
-_0809D06A:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_CreatePCMenu
-
- thumb_func_start sub_809D070
-sub_809D070: @ 809D070
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- ldr r0, _0809D11C @ =gUnknown_8417BB6
- bl sub_809C954
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xA
- bgt _0809D0A0
- cmp r0, 0x9
- bge _0809D0AE
-_0809D0A0:
- ldr r0, _0809D120 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- movs r4, 0xD
- cmp r0, 0
- beq _0809D0B0
-_0809D0AE:
- movs r4, 0xE
-_0809D0B0:
- ldr r0, _0809D124 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0809D134
- movs r0, 0x5
- mov r9, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0xA
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- ldr r2, _0809D128 @ =gUnknown_8417BD3
- movs r0, 0x22
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, _0809D12C @ =gUnknown_8417BBE
- movs r0, 0x32
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, _0809D130 @ =gUnknown_8417BCB
- movs r0, 0x42
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _0809D1A8
- .align 2, 0
-_0809D11C: .4byte gUnknown_8417BB6
-_0809D120: .4byte 0x00000829
-_0809D124: .4byte 0x0000082c
-_0809D128: .4byte gUnknown_8417BD3
-_0809D12C: .4byte gUnknown_8417BBE
-_0809D130: .4byte gUnknown_8417BCB
-_0809D134:
- ldr r1, _0809D1D0 @ =0x00000829
- mov r8, r1
- mov r0, r8
- bl FlagGet
- lsls r0, 24
- movs r1, 0x3
- mov r9, r1
- cmp r0, 0
- beq _0809D14C
- movs r0, 0x4
- mov r9, r0
-_0809D14C:
- mov r1, r9
- lsls r3, r1, 1
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- mov r0, r8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809D188
- ldr r2, _0809D1D4 @ =gUnknown_8417BD3
- movs r0, 0x22
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D188:
- ldr r2, _0809D1D8 @ =gUnknown_8417BCB
- mov r0, r9
- subs r0, 0x1
- lsls r0, 4
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D1A8:
- ldr r0, _0809D1DC @ =0x00000834
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0809D1E4
- ldr r2, _0809D1E0 @ =gUnknown_8417BAC
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _0809D1FA
- .align 2, 0
-_0809D1D0: .4byte 0x00000829
-_0809D1D4: .4byte gUnknown_8417BD3
-_0809D1D8: .4byte gUnknown_8417BCB
-_0809D1DC: .4byte 0x00000834
-_0809D1E0: .4byte gUnknown_8417BAC
-_0809D1E4:
- ldr r2, _0809D248 @ =gUnknown_8417B9F
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D1FA:
- ldr r4, _0809D24C @ =gStringVar4
- ldr r1, _0809D250 @ =gUnknown_8417BB6
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- movs r3, 0x12
- bl Menu_PrintFormatIntlPlayerName
- movs r0, 0x10
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- movs r0, 0
- mov r1, r9
- adds r2, r6, 0
- movs r3, 0xFF
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D248: .4byte gUnknown_8417B9F
-_0809D24C: .4byte gStringVar4
-_0809D250: .4byte gUnknown_8417BB6
- thumb_func_end sub_809D070
-
- thumb_func_start ScriptMenu_DisplayPCStartupPrompt
-ScriptMenu_DisplayPCStartupPrompt: @ 809D254
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x1
- bl sub_80F7768
- ldr r2, _0809D284 @ =gUnknown_81A508A
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0809D284: .4byte gUnknown_81A508A
- thumb_func_end ScriptMenu_DisplayPCStartupPrompt
-
- thumb_func_start sub_809D288
-sub_809D288: @ 809D288
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D2AC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0809D2E8
- cmp r0, 0x1
- bgt _0809D2B0
- cmp r0, 0
- beq _0809D2CE
- b _0809D2E8
- .align 2, 0
-_0809D2AC: .4byte gTasks
-_0809D2B0:
- cmp r0, 0x2
- beq _0809D2BA
- cmp r0, 0x3
- beq _0809D2DC
- b _0809D2E8
-_0809D2BA:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D2D8 @ =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl sub_8083A5C
-_0809D2CE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0809D2E8
- .align 2, 0
-_0809D2D8: .4byte gSprites
-_0809D2DC:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D2E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D288
-
- thumb_func_start ScriptMenu_ShowPokemonPic
-ScriptMenu_ShowPokemonPic: @ 809D2F0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0809D318 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D31C
- movs r0, 0x1
- b _0809D3C2
- .align 2, 0
-_0809D318: .4byte sub_809D6D4
-_0809D31C:
- ldr r4, _0809D3B0 @ =sub_809D288
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D3C0
- lsls r1, r7, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r6, 19
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- movs r3, 0
- bl sub_8083970
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r1, _0809D3B4 @ =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r3, 0x12]
- strh r1, [r3, 0x8]
- mov r0, r8
- strh r0, [r3, 0xA]
- strh r5, [r3, 0xC]
- ldr r4, _0809D3B8 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _0809D3BC @ =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x12]
- movs r1, 0x1
- bl SetStdWindowBorderStyle
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- movs r0, 0x1
- b _0809D3C2
- .align 2, 0
-_0809D3B0: .4byte sub_809D288
-_0809D3B4: .4byte gTasks
-_0809D3B8: .4byte gSprites
-_0809D3BC: .4byte SpriteCallbackDummy
-_0809D3C0:
- movs r0, 0
-_0809D3C2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_ShowPokemonPic
-
- thumb_func_start ScriptMenu_GetPicboxWaitFunc
-ScriptMenu_GetPicboxWaitFunc: @ 809D3CC
- push {lr}
- ldr r0, _0809D3F0 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _0809D3FC
- ldr r0, _0809D3F4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, _0809D3F8 @ =sub_809D404
- b _0809D3FE
- .align 2, 0
-_0809D3F0: .4byte sub_809D288
-_0809D3F4: .4byte gTasks
-_0809D3F8: .4byte sub_809D404
-_0809D3FC:
- movs r0, 0
-_0809D3FE:
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_GetPicboxWaitFunc
-
- thumb_func_start sub_809D404
-sub_809D404: @ 809D404
- push {lr}
- ldr r0, _0809D418 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809D41C
- movs r0, 0
- b _0809D41E
- .align 2, 0
-_0809D418: .4byte sub_809D288
-_0809D41C:
- movs r0, 0x1
-_0809D41E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D404
-
- thumb_func_start sub_809D424
-sub_809D424: @ 809D424
- push {r4,r5,lr}
- ldr r0, _0809D450 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- beq _0809D48C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D454 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _0809D48C
- cmp r0, 0x2
- ble _0809D458
- cmp r0, 0x3
- beq _0809D480
- b _0809D48C
- .align 2, 0
-_0809D450: .4byte sub_809D288
-_0809D454: .4byte gTasks
-_0809D458:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D47C @ =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl sub_8083A5C
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
- b _0809D48C
- .align 2, 0
-_0809D47C: .4byte gSprites
-_0809D480:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D48C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D424
-
- thumb_func_start sub_809D494
-sub_809D494: @ 809D494
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D4B8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0809D4FC
- cmp r0, 0x1
- bgt _0809D4BC
- cmp r0, 0
- beq _0809D4DE
- b _0809D4FC
- .align 2, 0
-_0809D4B8: .4byte gTasks
-_0809D4BC:
- cmp r0, 0x2
- beq _0809D4C6
- cmp r0, 0x3
- beq _0809D4F0
- b _0809D4FC
-_0809D4C6:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D4E8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _0809D4EC @ =0x00001b58
- bl FreeSpriteTilesByTag
-_0809D4DE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0809D4FC
- .align 2, 0
-_0809D4E8: .4byte gSprites
-_0809D4EC: .4byte 0x00001b58
-_0809D4F0:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D4FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D494
-
- thumb_func_start sub_809D504
-sub_809D504: @ 809D504
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0809D544 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809D5F2
- ldr r0, _0809D548 @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D55C
- ldr r0, _0809D54C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x8D
- bne _0809D558
- ldr r0, _0809D550 @ =gUnknown_83E17C0
- bl LoadSpriteSheets
- ldr r0, _0809D554 @ =gUnknown_83E17A0
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- b _0809D572
- .align 2, 0
-_0809D544: .4byte sub_809D6D4
-_0809D548: .4byte sub_809D494
-_0809D54C: .4byte gSpecialVar_0x8004
-_0809D550: .4byte gUnknown_83E17C0
-_0809D554: .4byte gUnknown_83E17A0
-_0809D558:
- cmp r0, 0x8E
- beq _0809D560
-_0809D55C:
- movs r0, 0
- b _0809D5F4
-_0809D560:
- ldr r0, _0809D600 @ =gUnknown_83E17D0
- bl LoadSpriteSheets
- ldr r0, _0809D604 @ =gUnknown_83E0F80
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
-_0809D572:
- ldr r0, _0809D608 @ =gUnknown_83E0768
- ldr r1, _0809D60C @ =gSpecialVar_0x8005
- mov r8, r1
- ldrh r1, [r1]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldr r6, _0809D610 @ =gSpecialVar_0x8006
- ldrh r2, [r6]
- lsls r2, 19
- movs r3, 0xA0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0809D614 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0xD0
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0809D618 @ =sub_809D494
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- ldrb r1, [r6]
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r2, _0809D61C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x8]
- strh r5, [r1, 0xC]
- movs r1, 0x1
- bl SetStdWindowBorderStyle
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809D5F2:
- movs r0, 0x1
-_0809D5F4:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D600: .4byte gUnknown_83E17D0
-_0809D604: .4byte gUnknown_83E0F80
-_0809D608: .4byte gUnknown_83E0768
-_0809D60C: .4byte gSpecialVar_0x8005
-_0809D610: .4byte gSpecialVar_0x8006
-_0809D614: .4byte gSprites
-_0809D618: .4byte sub_809D494
-_0809D61C: .4byte gTasks
- thumb_func_end sub_809D504
-
- thumb_func_start sub_809D620
-sub_809D620: @ 809D620
- push {lr}
- ldr r0, _0809D644 @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _0809D64C
- ldr r0, _0809D648 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x1
- b _0809D64E
- .align 2, 0
-_0809D644: .4byte sub_809D494
-_0809D648: .4byte gTasks
-_0809D64C:
- movs r0, 0
-_0809D64E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D620
-
- thumb_func_start CreateWindowFromRect
-CreateWindowFromRect: @ 809D654
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x38
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowTemplateFields
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateWindowFromRect
-
- thumb_func_start sub_809D6B0
-sub_809D6B0: @ 809D6B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl ClearWindowTilemap
- adds r0, r4, 0
- movs r1, 0x1
- bl ClearStdWindowAndFrameToTransparent
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809D6B0
-
- thumb_func_start sub_809D6D4
-sub_809D6D4: @ 809D6D4
- push {lr}
- ldr r0, _0809D74C @ =EventScript_1A7AE0
- bl ScriptContext1_SetupScript
- ldr r0, _0809D750 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D710
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0809D754 @ =gTasks+0x8
- adds r2, r0, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bgt _0809D710
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D758 @ =gSprites
- adds r0, r1
- ldrb r1, [r2, 0x4]
- bl sub_8083A5C
-_0809D710:
- ldr r0, _0809D75C @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D748
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0809D754 @ =gTasks+0x8
- adds r2, r0, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bgt _0809D748
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D758 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _0809D760 @ =0x00001b58
- bl FreeSpriteTilesByTag
-_0809D748:
- pop {r0}
- bx r0
- .align 2, 0
-_0809D74C: .4byte EventScript_1A7AE0
-_0809D750: .4byte sub_809D288
-_0809D754: .4byte gTasks+0x8
-_0809D758: .4byte gSprites
-_0809D75C: .4byte sub_809D494
-_0809D760: .4byte 0x00001b58
- thumb_func_end sub_809D6D4
-
- thumb_func_start sub_809D764
-sub_809D764: @ 809D764
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r1, _0809D7A0 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809D7A4 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D784
- b _0809D8A8
-_0809D784:
- ldr r0, _0809D7A8 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0809D7B0
- ldr r0, _0809D7AC @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- movs r4, 0x4
- cmp r0, 0x4
- bhi _0809D798
- movs r4, 0x5
-_0809D798:
- movs r0, 0x5
- mov r9, r0
- movs r5, 0x2
- b _0809D7B8
- .align 2, 0
-_0809D7A0: .4byte gSpecialVar_Result
-_0809D7A4: .4byte sub_809D6D4
-_0809D7A8: .4byte gSpecialVar_0x8005
-_0809D7AC: .4byte gSpecialVar_0x8004
-_0809D7B0:
- movs r4, 0
- movs r0, 0x6
- mov r9, r0
- movs r5, 0
-_0809D7B8:
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- mov r0, r9
- lsls r3, r0, 1
- movs r0, 0x11
- adds r1, r5, 0
- movs r2, 0xB
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- movs r6, 0
- mov r5, r9
- subs r5, 0x2
- cmp r6, r5
- bge _0809D844
-_0809D7F2:
- ldr r0, _0809D820 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- beq _0809D828
- ldr r1, _0809D824 @ =gUnknown_83E17E0
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r6, 4
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- b _0809D82E
- .align 2, 0
-_0809D820: .4byte gSpecialVar_0x8004
-_0809D824: .4byte gUnknown_83E17E0
-_0809D828:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0809D82E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bne _0809D83A
- movs r4, 0
-_0809D83A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r5
- blt _0809D7F2
-_0809D844:
- ldr r2, _0809D8B8 @ =gUnknown_8417DED
- lsls r0, r6, 4
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- adds r0, r6, 0x1
- lsls r0, 24
- ldr r2, _0809D8BC @ =gOtherText_Exit
- lsrs r0, 20
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- movs r0, 0x10
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- movs r0, 0
- mov r1, r9
- adds r2, r7, 0
- movs r3, 0xFF
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809D8A8:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8B8: .4byte gUnknown_8417DED
-_0809D8BC: .4byte gOtherText_Exit
- thumb_func_end sub_809D764
-
- thumb_func_start sub_809D8C0
-sub_809D8C0: @ 809D8C0
- push {lr}
- ldr r3, _0809D8EC @ =gSpecialVar_Result
- ldrh r2, [r3]
- adds r1, r2, 0
- cmp r1, 0x7F
- beq _0809D930
- ldr r0, _0809D8F0 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0809D924
- cmp r1, 0x3
- beq _0809D928
- cmp r1, 0x4
- beq _0809D930
- cmp r1, 0
- bne _0809D8F8
- ldr r0, _0809D8F4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _0809D904
- movs r0, 0x4
- b _0809D94E
- .align 2, 0
-_0809D8EC: .4byte gSpecialVar_Result
-_0809D8F0: .4byte gSpecialVar_0x8005
-_0809D8F4: .4byte gSpecialVar_0x8004
-_0809D8F8:
- cmp r1, 0x1
- bne _0809D90C
- ldr r0, _0809D908 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x5
- bls _0809D918
-_0809D904:
- movs r0, 0x5
- b _0809D94E
- .align 2, 0
-_0809D908: .4byte gSpecialVar_0x8004
-_0809D90C:
- cmp r1, 0x2
- bne _0809D94C
- ldr r0, _0809D91C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x6
- bls _0809D920
-_0809D918:
- movs r0, 0x6
- b _0809D94E
- .align 2, 0
-_0809D91C: .4byte gSpecialVar_0x8004
-_0809D920:
- movs r0, 0x7
- b _0809D94E
-_0809D924:
- cmp r1, 0x4
- bne _0809D92C
-_0809D928:
- movs r0, 0xFE
- b _0809D94E
-_0809D92C:
- cmp r1, 0x5
- bne _0809D934
-_0809D930:
- movs r0, 0x7F
- b _0809D94E
-_0809D934:
- ldr r0, _0809D944 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r1, r0
- bcc _0809D948
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0809D94E
- .align 2, 0
-_0809D944: .4byte gSpecialVar_0x8004
-_0809D948:
- ldrh r0, [r3]
- b _0809D94E
-_0809D94C:
- movs r0, 0
-_0809D94E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D8C0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80A0058.s b/asm/script_pokemon_util_80A0058.s
index 6b4cdd1a8..525293081 100644
--- a/asm/script_pokemon_util_80A0058.s
+++ b/asm/script_pokemon_util_80A0058.s
@@ -420,8 +420,8 @@ _080A0378: .4byte gSpecialVar_Result
_080A037C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A0350
- thumb_func_start sub_80A0380
-sub_80A0380: @ 80A0380
+ thumb_func_start ChooseBattleTowerPlayerParty
+ChooseBattleTowerPlayerParty: @ 80A0380
push {lr}
ldr r1, _080A0394 @ =gMain
ldr r0, _080A0398 @ =sub_80A039C
@@ -433,7 +433,7 @@ sub_80A0380: @ 80A0380
.align 2, 0
_080A0394: .4byte gMain
_080A0398: .4byte sub_80A039C
- thumb_func_end sub_80A0380
+ thumb_func_end ChooseBattleTowerPlayerParty
thumb_func_start sub_80A039C
sub_80A039C: @ 80A039C
@@ -450,7 +450,7 @@ sub_80A039C: @ 80A039C
_080A03B0: .4byte gUnknown_203B0D4
_080A03B4: .4byte gSpecialVar_Result
_080A03B8:
- bl sub_80A03D8
+ bl ReducePlayerPartyToThree
ldr r1, _080A03D0 @ =gSpecialVar_Result
movs r0, 0x1
strh r0, [r1]
@@ -465,8 +465,8 @@ _080A03D0: .4byte gSpecialVar_Result
_080A03D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A039C
- thumb_func_start sub_80A03D8
-sub_80A03D8: @ 80A03D8
+ thumb_func_start ReducePlayerPartyToThree
+ReducePlayerPartyToThree: @ 80A03D8
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -530,6 +530,6 @@ _080A042C:
_080A0454: .4byte gPlayerParty
_080A0458: .4byte gUnknown_203B0D4
_080A045C: .4byte 0x05000096
- thumb_func_end sub_80A03D8
+ thumb_func_end ReducePlayerPartyToThree
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_pokemon_util_80BF8FC.s b/asm/script_pokemon_util_80BF8FC.s
index 297d09e9a..15d19e08b 100644
--- a/asm/script_pokemon_util_80BF8FC.s
+++ b/asm/script_pokemon_util_80BF8FC.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_80BF8FC
-sub_80BF8FC: @ 80BF8FC
+ thumb_func_start Special_ChooseMonFromParty
+Special_ChooseMonFromParty: @ 80BF8FC
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
@@ -34,10 +34,10 @@ sub_80BF8FC: @ 80BF8FC
.align 2, 0
_080BF934: .4byte sub_80BF97C
_080BF938: .4byte gTasks
- thumb_func_end sub_80BF8FC
+ thumb_func_end Special_ChooseMonFromParty
- thumb_func_start sub_80BF93C
-sub_80BF93C: @ 80BF93C
+ thumb_func_start SelectMoveTutorMon
+SelectMoveTutorMon: @ 80BF93C
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
@@ -65,7 +65,7 @@ sub_80BF93C: @ 80BF93C
.align 2, 0
_080BF974: .4byte sub_80BF97C
_080BF978: .4byte gTasks
- thumb_func_end sub_80BF93C
+ thumb_func_end SelectMoveTutorMon
thumb_func_start sub_80BF97C
sub_80BF97C: @ 80BF97C
@@ -100,8 +100,8 @@ _080BF9B4: .4byte gPaletteFade
_080BF9B8: .4byte gTasks
thumb_func_end sub_80BF97C
- thumb_func_start sub_80BF9BC
-sub_80BF9BC: @ 80BF9BC
+ thumb_func_start SelectMove
+SelectMove: @ 80BF9BC
push {r4,lr}
sub sp, 0x4
ldr r0, _080BF9F0 @ =gPlayerParty
@@ -132,7 +132,7 @@ _080BF9F8: .4byte gPlayerPartyCount
_080BF9FC: .4byte CB2_ReturnToField
_080BFA00: .4byte gFieldCallback
_080BFA04: .4byte FieldCallback_ReturnToEventScript2
- thumb_func_end sub_80BF9BC
+ thumb_func_end SelectMove
thumb_func_start ScrSpecial_CountPokemonMoves
ScrSpecial_CountPokemonMoves: @ 80BFA08
@@ -333,8 +333,8 @@ sub_80BFAA8: @ 80BFAA8
_080BFBA4: .4byte gPPUpGetMask
thumb_func_end sub_80BFAA8
- thumb_func_start sub_80BFBA8
-sub_80BFBA8: @ 80BFBA8
+ thumb_func_start DeleteMonMove
+DeleteMonMove: @ 80BFBA8
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -385,10 +385,10 @@ _080BFBFC:
_080BFC08: .4byte gSpecialVar_0x8004
_080BFC0C: .4byte gPlayerParty
_080BFC10: .4byte gSpecialVar_0x8005
- thumb_func_end sub_80BFBA8
+ thumb_func_end DeleteMonMove
- thumb_func_start sub_80BFC14
-sub_80BFC14: @ 80BFC14
+ thumb_func_start IsSelectedMonEgg
+IsSelectedMonEgg: @ 80BFC14
push {lr}
ldr r0, _080BFC38 @ =gSpecialVar_0x8004
ldrh r1, [r0]
@@ -417,6 +417,6 @@ _080BFC48:
bx r0
.align 2, 0
_080BFC4C: .4byte gSpecialVar_Result
- thumb_func_end sub_80BFC14
+ thumb_func_end IsSelectedMonEgg
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 0aa029b62..2beb96151 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -169,7 +169,7 @@ _0804D048:
str r0, [sp, 0x4]
str r1, [sp, 0x8]
adds r0, r5, 0
- ldr r1, _0804D144 @ =sub_809718C
+ ldr r1, _0804D144 @ =SpriteCB_MonIcon
bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
@@ -228,7 +228,7 @@ _0804D0BE:
movs r0, 0
str r0, [sp, 0x8]
adds r0, r5, 0
- ldr r1, _0804D144 @ =sub_809718C
+ ldr r1, _0804D144 @ =SpriteCB_MonIcon
bl CreateMonIcon
mov r2, r8
ldr r1, [r2]
@@ -255,7 +255,7 @@ _0804D134: .4byte gEnemyPartyCount
_0804D138: .4byte gTradeMonSpriteCoords
_0804D13C: .4byte gPlayerParty
_0804D140: .4byte 0xfff40000
-_0804D144: .4byte sub_809718C
+_0804D144: .4byte SpriteCB_MonIcon
_0804D148: .4byte gEnemyParty
_0804D14C: .4byte gMain
_0804D150:
@@ -790,7 +790,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -3609,7 +3609,7 @@ _0804EBA2:
adds r0, r1
lsls r0, 2
add r0, r8
- ldr r1, _0804ECAC @ =sub_809718C
+ ldr r1, _0804ECAC @ =SpriteCB_MonIcon
bl StoreSpriteCallbackInData6
ldr r2, _0804ECA4 @ =gUnknown_2031DA8
ldr r1, [r2]
@@ -3656,7 +3656,7 @@ _0804EC98:
_0804ECA0: .4byte gSprites
_0804ECA4: .4byte gUnknown_2031DA8
_0804ECA8: .4byte gTradeMonSpriteCoords
-_0804ECAC: .4byte sub_809718C
+_0804ECAC: .4byte SpriteCB_MonIcon
_0804ECB0: .4byte gUnknown_8260A32
_0804ECB4:
ldr r2, _0804ECE4 @ =gSprites
@@ -3675,7 +3675,7 @@ _0804ECB4:
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
- ldr r0, _0804ECE8 @ =sub_809718C
+ ldr r0, _0804ECE8 @ =SpriteCB_MonIcon
cmp r1, r0
beq _0804ECDC
b _0804EE54
@@ -3685,7 +3685,7 @@ _0804ECDC:
b _0804EE54
.align 2, 0
_0804ECE4: .4byte gSprites
-_0804ECE8: .4byte sub_809718C
+_0804ECE8: .4byte SpriteCB_MonIcon
_0804ECEC:
ldr r1, _0804EE08 @ =gUnknown_8260834
ldr r0, [sp, 0x60]
@@ -5314,7 +5314,7 @@ _0804F988:
subs r1, r2
lsls r1, 24
lsrs r1, 24
- bl sub_8097414
+ bl MonIcon_SetAnim
adds r4, 0x1
ldr r0, [r6]
adds r0, 0x36
@@ -7758,7 +7758,7 @@ _08050D98:
orrs r0, r7
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
- ldr r1, _08050DD8 @ =gUnknown_08331F60
+ ldr r1, _08050DD8 @ =gUnknown_826601C
ldr r2, _08050DDC @ =0x06009000
ldr r0, _08050DD0 @ =0x040000d4
str r1, [r0]
@@ -7779,7 +7779,7 @@ _08050DC8: .4byte gTradeGba_Gfx
_08050DCC: .4byte 0x06004000
_08050DD0: .4byte 0x040000d4
_08050DD4: .4byte 0x80000800
-_08050DD8: .4byte gUnknown_08331F60
+_08050DD8: .4byte gUnknown_826601C
_08050DDC: .4byte 0x06009000
thumb_func_end sub_8050968
@@ -10010,7 +10010,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
@@ -10039,7 +10039,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
@@ -12235,7 +12235,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
@@ -12264,7 +12264,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
@@ -12362,7 +12362,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]
@@ -12391,7 +12391,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
@@ -12737,8 +12737,8 @@ _08053A94: .4byte gUnknown_826D1E4
_08053A98: .4byte SpriteCallbackDummy
thumb_func_end sub_8053A0C
- thumb_func_start sub_8053A9C
-sub_8053A9C: @ 8053A9C
+ thumb_func_start GetInGameTradeSpeciesInfo
+GetInGameTradeSpeciesInfo: @ 8053A9C
push {r4-r6,lr}
ldr r0, _08053AD0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
@@ -12769,7 +12769,7 @@ _08053AD4: .4byte gIngameTrades
_08053AD8: .4byte gStringVar1
_08053ADC: .4byte gSpeciesNames
_08053AE0: .4byte gStringVar2
- thumb_func_end sub_8053A9C
+ thumb_func_end GetInGameTradeSpeciesInfo
thumb_func_start sub_8053AE4
sub_8053AE4: @ 8053AE4
@@ -13036,8 +13036,8 @@ _08053CEE:
_08053D28: .4byte gUnknown_826D1A8
thumb_func_end sub_8053CD4
- thumb_func_start sub_8053D2C
-sub_8053D2C: @ 8053D2C
+ thumb_func_start GetTradeSpecies
+GetTradeSpecies: @ 8053D2C
push {r4-r6,lr}
ldr r6, _08053D58 @ =gSpecialVar_0x8005
ldrh r0, [r6]
@@ -13066,10 +13066,10 @@ _08053D62:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_8053D2C
+ thumb_func_end GetTradeSpecies
- thumb_func_start sub_8053D68
-sub_8053D68: @ 8053D68
+ thumb_func_start CreateInGameTradePokemon
+CreateInGameTradePokemon: @ 8053D68
push {lr}
ldr r0, _08053D7C @ =gSpecialVar_0x8005
ldrb r0, [r0]
@@ -13081,7 +13081,7 @@ sub_8053D68: @ 8053D68
.align 2, 0
_08053D7C: .4byte gSpecialVar_0x8005
_08053D80: .4byte gSpecialVar_0x8004
- thumb_func_end sub_8053D68
+ thumb_func_end CreateInGameTradePokemon
thumb_func_start sub_8053D84
sub_8053D84: @ 8053D84
@@ -13703,7 +13703,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl IsRfuTaskFinished
+ bl IsLinkRfuTaskFinished
lsls r0, 24
cmp r0, 0
beq _08054396
@@ -13797,8 +13797,8 @@ _08054438: .4byte gWirelessCommType
_0805443C: .4byte gMain
thumb_func_end sub_80543C4
- thumb_func_start sub_8054440
-sub_8054440: @ 8054440
+ thumb_func_start DoInGameTradeScene
+DoInGameTradeScene: @ 8054440
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
@@ -13818,7 +13818,7 @@ sub_8054440: @ 8054440
bx r0
.align 2, 0
_0805446C: .4byte sub_8054470
- thumb_func_end sub_8054440
+ thumb_func_end DoInGameTradeScene
thumb_func_start sub_8054470
sub_8054470: @ 8054470
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 1ebda42ab..1e97ba2de 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1215,7 +1215,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x54
strh r0, [r1]
@@ -1223,7 +1223,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x56
strh r0, [r1]
@@ -1231,7 +1231,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x58
strh r0, [r1]
@@ -1239,7 +1239,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x5A
strh r0, [r1]
@@ -1247,7 +1247,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x5C
strh r0, [r1]
@@ -1255,7 +1255,7 @@ _080899AE:
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_8096FD4
+ bl MailSpeciesToIconSpecies
adds r1, r5, 0
adds r1, 0x5E
strh r0, [r1]
@@ -3203,7 +3203,7 @@ _0808AAA4:
ldrh r0, [r1]
cmp r0, 0
beq _0808AAEE
- bl sub_8097218
+ bl GetMonIconPaletteIndexFromSpecies
lsls r0, 24
lsrs r0, 24
lsls r1, r4, 20
@@ -3250,7 +3250,7 @@ _0808AB0C: .4byte 0x00000457
sub_808AB10: @ 808AB10
push {r4,r5,lr}
sub sp, 0x4
- ldr r0, _0808AB40 @ =gUnknown_83D3740
+ ldr r0, _0808AB40 @ =gMonIconPalettes
ldr r4, _0808AB44 @ =gUnknown_20397A4
ldr r1, [r4]
ldr r5, _0808AB48 @ =0x00000396
@@ -3271,7 +3271,7 @@ sub_808AB10: @ 808AB10
beq _0808AB80
b _0808AB88
.align 2, 0
-_0808AB40: .4byte gUnknown_83D3740
+_0808AB40: .4byte gMonIconPalettes
_0808AB44: .4byte gUnknown_20397A4
_0808AB48: .4byte 0x00000396
_0808AB4C: .4byte 0x000004aa
@@ -3322,7 +3322,7 @@ _0808AB9A:
adds r0, r1
ldrh r0, [r0]
movs r1, 0
- bl sub_8097028
+ bl GetMonIconTiles
adds r1, r0, 0
lsls r3, r4, 20
movs r0, 0x80
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/union_room_chat.s b/asm/union_room_chat.s
index 64cc9aa9f..0d1640699 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -4265,7 +4265,7 @@ sub_812A424: @ 812A424
bl PutWindowTilemap
ldr r0, [r6]
ldrb r0, [r0, 0x18]
- ldr r2, _0812A514 @ =gUnknown_8417938
+ ldr r2, _0812A514 @ =gText_Yes
movs r5, 0x2
str r5, [sp]
movs r4, 0xFF
@@ -4276,7 +4276,7 @@ sub_812A424: @ 812A424
bl AddTextPrinterParameterized
ldr r0, [r6]
ldrb r0, [r0, 0x18]
- ldr r2, _0812A518 @ =gUnknown_841793C
+ ldr r2, _0812A518 @ =gText_No
movs r1, 0x10
str r1, [sp]
str r4, [sp, 0x4]
@@ -4314,8 +4314,8 @@ _0812A504: .4byte 0xff00ffff
_0812A508: .4byte 0x00ffffff
_0812A50C: .4byte 0x0000ffff
_0812A510: .4byte gUnknown_203B0E4
-_0812A514: .4byte gUnknown_8417938
-_0812A518: .4byte gUnknown_841793C
+_0812A514: .4byte gText_Yes
+_0812A518: .4byte gText_No
thumb_func_end sub_812A424
thumb_func_start sub_812A51C
diff --git a/asm/wild_encounter.s b/asm/wild_encounter.s
index c43ebf0a9..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:
@@ -966,8 +966,8 @@ _08082E48:
bx r1
thumb_func_end sub_8082CBC
- thumb_func_start sub_8082E54
-sub_8082E54: @ 8082E54
+ thumb_func_start Special_RockSmashEncounter
+Special_RockSmashEncounter: @ 8082E54
push {r4,lr}
bl sub_8082934
lsls r0, 16
@@ -999,7 +999,7 @@ sub_8082E54: @ 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]
@@ -1018,7 +1018,7 @@ _08082EB6:
bx r0
.align 2, 0
_08082EBC: .4byte gSpecialVar_Result
- thumb_func_end sub_8082E54
+ thumb_func_end Special_RockSmashEncounter
thumb_func_start SweetScentWildEncounter
SweetScentWildEncounter: @ 8082EC0
@@ -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
@@ -1302,14 +1302,14 @@ sub_80830B8: @ 80830B8
bl VarSet
cmp r4, 0
bne _08083104
- ldr r0, _08083100 @ =gUnknown_81BFB65
+ ldr r0, _08083100 @ =EventScript_1BFB65
bl ScriptContext1_SetupScript
movs r0, 0x1
b _08083106
.align 2, 0
_080830F8: .4byte gUnknown_203ADFA
_080830FC: .4byte 0x00004020
-_08083100: .4byte gUnknown_81BFB65
+_08083100: .4byte EventScript_1BFB65
_08083104:
movs r0, 0
_08083106: