summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rwxr-xr-xasm/union_room_battle.s1351
-rwxr-xr-xasm/union_room_player_avatar.s2747
2 files changed, 1351 insertions, 2747 deletions
diff --git a/asm/union_room_battle.s b/asm/union_room_battle.s
new file mode 100755
index 000000000..db8c62f6d
--- /dev/null
+++ b/asm/union_room_battle.s
@@ -0,0 +1,1351 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_801A3F4
+sub_801A3F4: @ 801A3F4
+ push {lr}
+ bl IsDma3ManagerBusyWithBgCopy
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801A414
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+_0801A414:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A3F4
+
+ thumb_func_start sub_801A418
+sub_801A418: @ 801A418
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A418
+
+ thumb_func_start sub_801A42C
+sub_801A42C: @ 801A42C
+ push {lr}
+ ldr r0, =sub_801A43C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A42C
+
+ thumb_func_start sub_801A43C
+sub_801A43C: @ 801A43C
+ push {r4,r5,lr}
+ sub sp, 0xC
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r5, =gUnknown_03000DAC
+ movs r0, 0x6C
+ bl AllocZeroed
+ str r0, [r5]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F0D34
+ movs r0, 0
+ movs r2, 0x2
+ bl InitBgsFromTemplates
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ adds r0, r4, 0
+ bl Alloc
+ adds r1, r0, 0
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ ldr r1, =gWirelessInfoScreenGfx
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl DecompressAndLoadBgGfxUsingHeap
+ ldr r1, =gWirelessInfoScreenTilemap
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl CopyToBgTilemapBuffer
+ ldr r0, =gUnknown_082F0D3C
+ bl InitWindows
+ bl DeactivateAllTextPrinters
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ScanlineEffect_Stop
+ bl m4aSoundVSyncOn
+ ldr r0, =sub_801A418
+ bl SetVBlankCallback
+ ldr r0, =sub_801A6C0
+ movs r1, 0
+ bl CreateTask
+ ldr r1, [r5]
+ adds r1, 0x60
+ strb r0, [r1]
+ bl sub_8013C40
+ ldr r1, [r5]
+ adds r1, 0x61
+ strb r0, [r1]
+ ldr r1, [r5]
+ movs r0, 0x1
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgX
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl ChangeBgY
+ ldr r0, =gWirelessInfoScreenPal
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0xF0
+ bl Menu_LoadStdPalAt
+ bl DynamicPlaceholderTextUtil_Reset
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0x1
+ bl CopyBgTilemapBufferToVram
+ ldr r0, =sub_801A3F4
+ bl SetMainCallback2
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A43C
+
+ thumb_func_start sub_801A584
+sub_801A584: @ 801A584
+ push {r4,lr}
+ bl FreeAllWindowBuffers
+ movs r4, 0
+_0801A58C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl GetBgTilemapBuffer
+ bl Free
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0801A58C
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ bl Free
+ ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A584
+
+ thumb_func_start sub_801A5BC
+sub_801A5BC: @ 801A5BC
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0801A5E4
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _0801A5E0
+ movs r0, 0
+ strh r0, [r1]
+_0801A5E0:
+ movs r0, 0
+ strh r0, [r2]
+_0801A5E4:
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ adds r0, 0x2
+ lsls r0, 5
+ ldr r1, =gWirelessInfoScreenPal
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x10
+ bl LoadPalette
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A5BC
+
+ thumb_func_start sub_801A600
+sub_801A600: @ 801A600
+ push {r4,r5,lr}
+ sub sp, 0x8
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x1
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ ldr r5, =gUnknown_082F0D5C
+ ldr r4, [r5]
+ movs r0, 0x1
+ adds r1, r4, 0
+ movs r2, 0xC0
+ bl GetStringCenterAlignXOffset
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x6
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r4, 0
+ bl sub_801A8B0
+ movs r1, 0
+_0801A644:
+ adds r4, r1, 0x1
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r2, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 20
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_801A8B0
+ adds r1, r4, 0
+ cmp r4, 0x2
+ ble _0801A644
+ ldr r1, =gUnknown_082F0D5C
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 25
+ movs r1, 0x80
+ lsls r1, 20
+ adds r0, r1
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_801A8B0
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x2
+ bl CopyWindowToVram
+ movs r0, 0x1
+ bl PutWindowTilemap
+ movs r0, 0x1
+ movs r1, 0x2
+ bl CopyWindowToVram
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A600
+
+ thumb_func_start sub_801A6C0
+sub_801A6C0: @ 801A6C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bls _0801A6E2
+ b _0801A89C
+_0801A6E2:
+ lsls r0, 2
+ ldr r1, =_0801A6F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801A6F4:
+ .4byte _0801A70C
+ .4byte _0801A728
+ .4byte _0801A74C
+ .4byte _0801A768
+ .4byte _0801A85C
+ .4byte _0801A884
+_0801A70C:
+ bl sub_801A600
+ ldr r0, =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0801A89C
+ .pool
+_0801A728:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ bl ShowBg
+ movs r0, 0
+ bl CopyBgTilemapBufferToVram
+ movs r0, 0
+ bl ShowBg
+ b _0801A86C
+_0801A74C:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A75A
+ b _0801A89C
+_0801A75A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ b _0801A876
+ .pool
+_0801A768:
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0x10
+ adds r2, r0, 0
+ adds r2, 0x20
+ adds r3, r0, 0
+ adds r3, 0x61
+ ldrb r3, [r3]
+ bl sub_801AA30
+ lsls r1, r5, 2
+ mov r8, r1
+ cmp r0, 0
+ beq _0801A7F8
+ movs r0, 0x2
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r4, 0
+ ldr r6, =gStringVar4
+ movs r7, 0x80
+ lsls r7, 20
+_0801A796:
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r6, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ cmp r4, 0x3
+ beq _0801A7CC
+ lsrs r0, r7, 24
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_801A8B0
+ b _0801A7DE
+ .pool
+_0801A7CC:
+ movs r0, 0x62
+ str r0, [sp]
+ movs r0, 0x2
+ str r0, [sp, 0x4]
+ movs r1, 0x1
+ adds r2, r6, 0
+ movs r3, 0xC
+ bl sub_801A8B0
+_0801A7DE:
+ movs r2, 0xF0
+ lsls r2, 21
+ adds r7, r2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801A796
+ movs r0, 0x2
+ bl PutWindowTilemap
+ movs r0, 0x2
+ movs r1, 0x3
+ bl CopyWindowToVram
+_0801A7F8:
+ ldr r0, =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A80C
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801A836
+_0801A80C:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, =gTasks
+ ldr r0, =gUnknown_03000DAC
+ ldr r0, [r0]
+ adds r0, 0x61
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0xFF
+ strh r1, [r0, 0x26]
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0801A836:
+ mov r2, r8
+ adds r1, r2, r5
+ lsls r1, 3
+ ldr r0, =gTasks + 0x8
+ adds r1, r0
+ adds r0, r1, 0
+ adds r0, 0xE
+ adds r1, 0x10
+ bl sub_801A5BC
+ b _0801A89C
+ .pool
+_0801A85C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0801A86C:
+ ldr r1, =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+_0801A876:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0801A89C
+ .pool
+_0801A884:
+ ldr r0, =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801A89C
+ ldr r0, =sub_801A584
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0801A89C:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801A6C0
+
+ thumb_func_start sub_801A8B0
+sub_801A8B0: @ 801A8B0
+ push {r4-r7,lr}
+ sub sp, 0x18
+ mov r12, r2
+ ldr r2, [sp, 0x2C]
+ ldr r4, [sp, 0x30]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r4, 24
+ lsrs r0, r4, 24
+ cmp r0, 0x4
+ bhi _0801A93A
+ lsls r0, 2
+ ldr r1, =_0801A8E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801A8E0:
+ .4byte _0801A8F4
+ .4byte _0801A902
+ .4byte _0801A910
+ .4byte _0801A91E
+ .4byte _0801A92C
+_0801A8F4:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ b _0801A938
+_0801A902:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ b _0801A938
+_0801A910:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ movs r0, 0x5
+ b _0801A938
+_0801A91E:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ b _0801A938
+_0801A92C:
+ add r1, sp, 0x14
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+_0801A938:
+ strb r0, [r1, 0x2]
+_0801A93A:
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x14
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0xC]
+ mov r0, r12
+ str r0, [sp, 0x10]
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl AddTextPrinterParameterized4
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801A8B0
+
+ thumb_func_start sub_801A960
+sub_801A960: @ 801A960
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r12, r0
+ adds r7, r1, 0
+ ldrb r0, [r0, 0xA]
+ lsls r0, 25
+ lsrs r0, 25
+ mov r8, r0
+ movs r4, 0
+ ldr r0, =gUnknown_082F0D70
+ mov r9, r0
+ movs r1, 0x1
+ add r1, r9
+ mov r10, r1
+ mov r3, r12
+ adds r3, 0x4
+ str r3, [sp]
+_0801A98A:
+ lsls r0, r4, 1
+ adds r2, r0, r4
+ mov r3, r9
+ adds r1, r2, r3
+ adds r5, r0, 0
+ adds r6, r4, 0x1
+ ldrb r1, [r1]
+ cmp r8, r1
+ bne _0801A9EE
+ mov r0, r12
+ ldrb r1, [r0, 0x1A]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0801A9EE
+ mov r0, r9
+ adds r0, 0x2
+ adds r3, r2, r0
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0801A9DC
+ movs r2, 0
+ movs r1, 0
+ ldr r3, [sp]
+_0801A9BA:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801A9C4
+ adds r2, 0x1
+_0801A9C4:
+ adds r1, 0x1
+ cmp r1, 0x3
+ ble _0801A9BA
+ adds r2, 0x1
+ adds r0, r5, r4
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r7
+ b _0801A9E8
+ .pool
+_0801A9DC:
+ mov r1, r10
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r3]
+_0801A9E8:
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r1]
+_0801A9EE:
+ adds r4, r6, 0
+ cmp r4, 0x1E
+ bls _0801A98A
+ mov r0, r8
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801A960
+
+ thumb_func_start sub_801AA08
+sub_801AA08: @ 801AA08
+ push {r4,lr}
+ movs r4, 0
+ adds r3, r1, 0
+ adds r2, r0, 0
+_0801AA10:
+ ldr r1, [r2]
+ ldr r0, [r3]
+ cmp r1, r0
+ beq _0801AA1C
+ movs r0, 0x1
+ b _0801AA28
+_0801AA1C:
+ adds r3, 0x4
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801AA10
+ movs r0, 0
+_0801AA28:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AA08
+
+ thumb_func_start sub_801AA30
+sub_801AA30: @ 801AA30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ adds r5, r2, 0
+ lsls r4, r3, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, =gTasks + 0x8
+ adds r7, r0, r1
+ movs r4, 0
+_0801AA5E:
+ lsls r1, r4, 5
+ ldr r0, [r7]
+ adds r0, r1
+ mov r1, sp
+ bl sub_801A960
+ adds r1, r0, 0
+ ldr r0, [r5]
+ cmp r1, r0
+ beq _0801AA78
+ str r1, [r5]
+ movs r2, 0x1
+ mov r8, r2
+_0801AA78:
+ adds r5, 0x4
+ adds r4, 0x1
+ cmp r4, 0xF
+ ble _0801AA5E
+ mov r0, sp
+ mov r1, r9
+ bl sub_801AA08
+ cmp r0, 0
+ bne _0801AA9C
+ mov r3, r8
+ cmp r3, 0x1
+ beq _0801AAC4
+ movs r0, 0
+ b _0801AAC6
+ .pool
+_0801AA9C:
+ adds r1, r6, 0
+ mov r0, sp
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r9
+ mov r0, sp
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ adds r0, r1
+ ldr r1, [r6, 0x8]
+ adds r0, r1
+ ldr r1, [r6, 0xC]
+ adds r0, r1
+ str r0, [r6, 0xC]
+_0801AAC4:
+ movs r0, 0x1
+_0801AAC6:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801AA30
+
+ thumb_func_start sub_801AAD4
+sub_801AAD4: @ 801AAD4
+ push {r4-r7,lr}
+ movs r0, 0xA
+ bl sub_8014210
+ movs r4, 0
+ movs r7, 0x64
+ ldr r6, =gPlayerParty
+ ldr r5, =gEnemyParty
+_0801AAE4:
+ ldr r0, =gSelectedOrderFromParty
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r0, 0
+ muls r1, r7
+ adds r1, r6
+ adds r0, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r5, 0x64
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0801AAE4
+ ldr r4, =gPlayerParty
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r5, r4, r0
+_0801AB0A:
+ adds r0, r4, 0
+ bl ZeroMonData
+ adds r4, 0x64
+ cmp r4, r5
+ ble _0801AB0A
+ ldr r4, =gPlayerParty
+ movs r5, 0
+ adds r6, r4, 0
+ adds r6, 0x64
+_0801AB1E:
+ ldr r1, =gEnemyParty
+ adds r1, r5, r1
+ adds r0, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r4, 0x64
+ adds r5, 0x64
+ cmp r4, r6
+ ble _0801AB1E
+ movs r0, 0x32
+ bl IncrementGameStat
+ bl CalculatePlayerPartyCount
+ ldr r0, =gTrainerBattleOpponent_A
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, =CB2_InitBattle
+ bl SetMainCallback2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AAD4
+
+ thumb_func_start sub_801AB68
+sub_801AB68: @ 801AB68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ adds r5, r0, 0
+ adds r7, r1, 0
+ adds r6, r2, 0
+ ldr r4, [sp, 0x38]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ mov r9, r0
+ movs r1, 0x1
+ mov r10, r1
+ ldr r0, =gUnknown_082F0DE4
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ orrs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ str r3, [sp, 0x14]
+ bl FillWindowPixelBuffer
+ mov r1, r9
+ str r1, [sp]
+ mov r0, r10
+ str r0, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp, 0xC]
+ str r7, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldr r3, [sp, 0x14]
+ bl AddTextPrinterParameterized4
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AB68
+
+ thumb_func_start sub_801ABDC
+sub_801ABDC: @ 801ABDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0801ABF4
+ cmp r0, 0x1
+ beq _0801AC22
+ b _0801AC36
+_0801ABF4:
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD
+ bl DrawTextBorderOuter
+ str r5, [sp]
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_801AB68
+ movs r0, 0
+ bl PutWindowTilemap
+ movs r0, 0
+ movs r1, 0x3
+ bl CopyWindowToVram
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0801AC36
+_0801AC22:
+ movs r0, 0
+ bl IsTextPrinterActive
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0801AC36
+ strh r0, [r4]
+ movs r0, 0x1
+ b _0801AC38
+_0801AC36:
+ movs r0, 0
+_0801AC38:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801ABDC
+
+ thumb_func_start sub_801AC40
+sub_801AC40: @ 801AC40
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801AC40
+
+ thumb_func_start sub_801AC54
+sub_801AC54: @ 801AC54
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x33
+ bls _0801AC6A
+ b _0801AFAE
+_0801AC6A:
+ lsls r0, 2
+ ldr r1, =_0801AC7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .pool
+ .align 2, 0
+_0801AC7C:
+ .4byte _0801AD4C
+ .4byte _0801ADFC
+ .4byte _0801AE24
+ .4byte _0801AE48
+ .4byte _0801AE98
+ .4byte _0801AFAE
+ .4byte _0801AF7C
+ .4byte _0801AF58
+ .4byte _0801AF7C
+ .4byte _0801AF98
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AFAE
+ .4byte _0801AF24
+ .4byte _0801AF40
+_0801AD4C:
+ movs r0, 0
+ movs r1, 0
+ bl SetGpuReg
+ ldr r4, =gUnknown_02022C6C
+ movs r0, 0x4
+ bl AllocZeroed
+ str r0, [r4]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ movs r0, 0
+ bl ResetBgsAndClearDma3BusyFlags
+ ldr r1, =gUnknown_082F0DD0
+ movs r0, 0
+ movs r2, 0x1
+ bl InitBgsFromTemplates
+ bl reset_temp_tile_data_buffers
+ ldr r0, =gUnknown_082F0DD4
+ bl InitWindows
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801AD8C
+ b _0801AFC2
+_0801AD8C:
+ bl DeactivateAllTextPrinters
+ movs r0, 0
+ bl ClearWindowTilemap
+ movs r0, 0
+ movs r1, 0
+ bl FillWindowPixelBuffer
+ movs r0, 0
+ movs r1, 0x11
+ bl FillWindowPixelBuffer
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0xF
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl FillBgTilemapBufferRect
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD0
+ bl LoadUserWindowBorderGfx
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xD0
+ bl LoadUserWindowBorderGfx_
+ bl sub_819789C
+ ldr r0, =sub_801AC40
+ bl SetVBlankCallback
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0801AF8A
+ .pool
+_0801ADFC:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_CommStandbyAwaitingOtherPlayer
+ movs r2, 0
+ bl sub_801ABDC
+ cmp r0, 0
+ bne _0801AE0E
+ b _0801AFAE
+_0801AE0E:
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AE24:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ bl ShowBg
+ ldr r1, =gMain
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ b _0801AF8A
+ .pool
+_0801AE48:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AE54
+ b _0801AFAE
+_0801AE54:
+ ldr r4, =gBlockSendBuffer
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl memset
+ ldr r0, =gSelectedOrderFromParty
+ ldrb r1, [r0]
+ ldrb r0, [r0, 0x1]
+ cmn r1, r0
+ bne _0801AE78
+ movs r0, 0x52
+ b _0801AE7A
+ .pool
+_0801AE78:
+ movs r0, 0x51
+_0801AE7A:
+ strb r0, [r4]
+ ldr r1, =gBlockSendBuffer
+ movs r0, 0
+ movs r2, 0x20
+ bl SendBlock
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AE98:
+ bl GetBlockReceivedStatus
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0801AEA6
+ b _0801AFAE
+_0801AEA6:
+ ldr r1, =gBlockRecvBuffer
+ ldrh r0, [r1]
+ cmp r0, 0x51
+ bne _0801AEE0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x51
+ bne _0801AEE0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x32
+ b _0801AF16
+ .pool
+_0801AEE0:
+ bl sub_800AC34
+ ldr r4, =gBlockRecvBuffer
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r0, 16
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x52
+ bne _0801AF0C
+ ldr r0, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0x6
+ b _0801AF16
+ .pool
+_0801AF0C:
+ ldr r0, =gMain
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x8
+_0801AF16:
+ strb r1, [r0]
+ bl ResetBlockReceivedFlags
+ b _0801AFAE
+ .pool
+_0801AF24:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801AFAE
+ bl sub_800ADF8
+ ldr r1, =gMain
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r2
+ b _0801AF8A
+ .pool
+_0801AF40:
+ bl IsLinkTaskFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =sub_801AAD4
+ bl SetMainCallback2
+ b _0801AFAE
+ .pool
+_0801AF58:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_RefusedBattle
+ movs r2, 0x1
+ bl sub_801ABDC
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =CB2_ReturnToField
+ bl SetMainCallback2
+ b _0801AFAE
+ .pool
+_0801AF7C:
+ ldr r0, =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801AFAE
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r2, r0
+_0801AF8A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801AFAE
+ .pool
+_0801AF98:
+ ldr r0, =gUnknown_02022C6C
+ ldr r0, [r0]
+ ldr r1, =gText_BattleWasRefused
+ movs r2, 0x1
+ bl sub_801ABDC
+ cmp r0, 0
+ beq _0801AFAE
+ ldr r0, =CB2_ReturnToField
+ bl SetMainCallback2
+_0801AFAE:
+ bl RunTasks
+ bl RunTextPrinters
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+_0801AFC2:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .pool
+ thumb_func_end sub_801AC54
diff --git a/asm/union_room_player_avatar.s b/asm/union_room_player_avatar.s
deleted file mode 100755
index aa9fa5e85..000000000
--- a/asm/union_room_player_avatar.s
+++ /dev/null
@@ -1,2747 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start is_walking_or_running
-is_walking_or_running: @ 8019958
- push {lr}
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x2
- beq _08019966
- cmp r0, 0
- bne _08019970
-_08019966:
- movs r0, 0x1
- b _08019972
- .pool
-_08019970:
- movs r0, 0
-_08019972:
- pop {r1}
- bx r1
- thumb_func_end is_walking_or_running
-
- thumb_func_start sub_8019978
-sub_8019978: @ 8019978
- ldr r3, =gUnknown_082F072C
- movs r2, 0x7
- ands r2, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- adds r2, r1
- adds r2, r3
- ldrb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_8019978
-
- thumb_func_start sub_8019990
-sub_8019990: @ 8019990
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, =gUnknown_082F0740
- mov r8, r4
- lsls r0, 2
- adds r4, r0, r4
- movs r6, 0
- ldrsh r5, [r4, r6]
- ldr r6, =gUnknown_082F0760
- lsls r1, 1
- adds r4, r1, r6
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- adds r5, r4
- adds r5, 0x7
- str r5, [r2]
- movs r2, 0x2
- add r8, r2
- add r0, r8
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r6, 0x1
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- str r0, [r3]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019990
-
- thumb_func_start sub_80199E0
-sub_80199E0: @ 80199E0
- push {r4-r7,lr}
- mov r12, r3
- ldr r7, =gUnknown_082F0740
- lsls r5, r0, 2
- adds r0, r5, r7
- movs r4, 0
- ldrsh r3, [r0, r4]
- ldr r6, =gUnknown_082F0760
- lsls r4, r1, 1
- adds r0, r4, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r3, r0
- adds r3, 0x7
- cmp r3, r2
- bne _08019A28
- adds r0, r7, 0x2
- adds r0, r5, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r0, r6, 0x1
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r1, r0
- adds r1, 0x7
- cmp r1, r12
- bne _08019A28
- movs r0, 0x1
- b _08019A2A
- .pool
-_08019A28:
- movs r0, 0
-_08019A2A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80199E0
-
- thumb_func_start IsUnionRoomPlayerHidden
-IsUnionRoomPlayerHidden: @ 8019A30
- push {lr}
- ldr r1, =0x000002bf
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end IsUnionRoomPlayerHidden
-
- thumb_func_start HideUnionRoomPlayer
-HideUnionRoomPlayer: @ 8019A4C
- push {lr}
- ldr r1, =0x000002bf
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end HideUnionRoomPlayer
-
- thumb_func_start ShowUnionRoomPlayer
-ShowUnionRoomPlayer: @ 8019A64
- push {lr}
- ldr r1, =0x000002bf
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagClear
- pop {r0}
- bx r0
- .pool
- thumb_func_end ShowUnionRoomPlayer
-
- thumb_func_start SetUnionRoomPlayerGfx
-SetUnionRoomPlayerGfx: @ 8019A7C
- push {lr}
- ldr r2, =0x00004010
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUnionRoomPlayerGfx
-
- thumb_func_start CreateUnionRoomPlayerEventObject
-CreateUnionRoomPlayerEventObject: @ 8019A98
- push {lr}
- ldr r1, =gUnknown_082F0774
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateUnionRoomPlayerEventObject
-
- thumb_func_start RemoveUnionRoomPlayerEventObject
-RemoveUnionRoomPlayerEventObject: @ 8019AB8
- push {lr}
- ldr r1, =gUnknown_082F0774
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveEventObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .pool
- thumb_func_end RemoveUnionRoomPlayerEventObject
-
- thumb_func_start SetUnionRoomPlayerEnterExitMovement
-SetUnionRoomPlayerEnterExitMovement: @ 8019AD8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- ldr r1, =gUnknown_082F0774
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08019B30
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl EventObjectIsMovementOverridden
- lsls r0, 24
- cmp r0, 0
- bne _08019B30
- ldrb r1, [r5]
- adds r0, r4, 0
- bl EventObjectSetHeldMovement
- lsls r0, 24
- cmp r0, 0
- bne _08019B30
- movs r0, 0x1
- b _08019B32
- .pool
-_08019B30:
- movs r0, 0
-_08019B32:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end SetUnionRoomPlayerEnterExitMovement
-
- thumb_func_start sub_8019B3C
-sub_8019B3C: @ 8019B3C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, =gUnknown_082F0774
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08019B9C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl EventObjectClearHeldMovementIfFinished
- lsls r0, 24
- cmp r0, 0
- bne _08019B84
- movs r0, 0
- b _08019B9E
- .pool
-_08019B84:
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- cmp r0, 0
- bne _08019B96
- adds r0, r4, 0
- bl UnfreezeEventObject
- b _08019B9C
-_08019B96:
- adds r0, r4, 0
- bl FreezeEventObject
-_08019B9C:
- movs r0, 0x1
-_08019B9E:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8019B3C
-
- thumb_func_start sub_8019BA8
-sub_8019BA8: @ 8019BA8
- push {lr}
- ldr r2, =gUnknown_02022C68
- movs r1, 0
- str r1, [r2]
- ldr r1, =gUnknown_02022C64
- str r0, [r1]
- movs r1, 0
- movs r2, 0x7
-_08019BB8:
- strb r1, [r0]
- strb r1, [r0, 0x1]
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- adds r0, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _08019BB8
- bl sub_8019DF4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8019BA8
-
- thumb_func_start sub_8019BDC
-sub_8019BDC: @ 8019BDC
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- beq _08019BF0
- cmp r0, 0x1
- beq _08019C10
- b _08019C2E
-_08019BF0:
- ldr r1, =gUnknown_082F078C
- adds r0, r4, 0
- bl SetUnionRoomPlayerEnterExitMovement
- cmp r0, 0x1
- bne _08019C2E
- adds r0, r4, 0
- bl HideUnionRoomPlayer
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08019C2E
- .pool
-_08019C10:
- adds r0, r4, 0
- bl sub_8019B3C
- cmp r0, 0
- beq _08019C2E
- adds r0, r4, 0
- bl RemoveUnionRoomPlayerEventObject
- adds r0, r4, 0
- bl HideUnionRoomPlayer
- movs r0, 0
- strb r0, [r5]
- movs r0, 0x1
- b _08019C30
-_08019C2E:
- movs r0, 0
-_08019C30:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8019BDC
-
- thumb_func_start sub_8019C38
-sub_8019C38: @ 8019C38
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- movs r0, 0
- ldrsb r0, [r6, r0]
- cmp r0, 0x2
- beq _08019CD4
- cmp r0, 0x2
- bgt _08019C54
- cmp r0, 0
- beq _08019C5A
- b _08019CE6
-_08019C54:
- cmp r0, 0x3
- beq _08019CBC
- b _08019CE6
-_08019C5A:
- bl is_walking_or_running
- cmp r0, 0
- beq _08019CE6
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r4, r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80199E0
- cmp r0, 0x1
- beq _08019CE6
- mov r0, sp
- adds r1, r4, 0
- bl player_get_pos_including_state_based_drift
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r4, r0]
- adds r0, r5, 0
- movs r1, 0
- bl sub_80199E0
- cmp r0, 0x1
- beq _08019CE6
- ldrb r1, [r7, 0x1]
- adds r0, r5, 0
- bl SetUnionRoomPlayerGfx
- adds r0, r5, 0
- bl CreateUnionRoomPlayerEventObject
- adds r0, r5, 0
- bl ShowUnionRoomPlayer
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
-_08019CBC:
- ldr r1, =gUnknown_082F078E
- adds r0, r5, 0
- bl SetUnionRoomPlayerEnterExitMovement
- cmp r0, 0x1
- bne _08019CE6
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _08019CE6
- .pool
-_08019CD4:
- adds r0, r5, 0
- bl sub_8019B3C
- cmp r0, 0
- beq _08019CE6
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _08019CE8
-_08019CE6:
- movs r0, 0
-_08019CE8:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8019C38
-
- thumb_func_start sub_8019CF0
-sub_8019CF0: @ 8019CF0
- push {r4,lr}
- ldr r3, =gUnknown_02022C64
- lsls r0, 2
- ldr r4, [r3]
- adds r4, r0
- movs r0, 0x1
- strb r0, [r4, 0x3]
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8019978
- strb r0, [r4, 0x1]
- ldrb r0, [r4]
- cmp r0, 0
- beq _08019D18
- movs r0, 0
- b _08019D1A
- .pool
-_08019D18:
- movs r0, 0x1
-_08019D1A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8019CF0
-
- thumb_func_start AGBAssert
-AGBAssert: @ 8019D20
- push {lr}
- ldr r1, =gUnknown_02022C64
- lsls r0, 2
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0x2
- strb r0, [r1, 0x3]
- ldrb r0, [r1]
- cmp r0, 0x1
- beq _08019D3C
- movs r0, 0
- b _08019D3E
- .pool
-_08019D3C:
- movs r0, 0x1
-_08019D3E:
- pop {r1}
- bx r1
- thumb_func_end AGBAssert
-
- thumb_func_start sub_8019D44
-sub_8019D44: @ 8019D44
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _08019DA6
- cmp r1, 0x1
- bgt _08019D5A
- cmp r1, 0
- beq _08019D64
- b _08019DC6
-_08019D5A:
- cmp r1, 0x2
- beq _08019D70
- cmp r1, 0x3
- beq _08019DB4
- b _08019DC6
-_08019D64:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x1
- bne _08019DC6
- movs r0, 0x2
- strb r0, [r4]
- strb r1, [r4, 0x2]
-_08019D70:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8019F8C
- adds r1, r0, 0
- cmp r1, 0
- bne _08019D96
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- bne _08019D96
- strb r1, [r4]
- strb r1, [r4, 0x2]
- adds r0, r5, 0
- bl RemoveUnionRoomPlayerEventObject
- adds r0, r5, 0
- bl HideUnionRoomPlayer
- b _08019DC6
-_08019D96:
- adds r0, r4, 0x2
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8019C38
- cmp r0, 0x1
- bne _08019DC6
- b _08019DC4
-_08019DA6:
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- bne _08019DC6
- movs r1, 0
- movs r0, 0x3
- strb r0, [r4]
- strb r1, [r4, 0x2]
-_08019DB4:
- adds r0, r4, 0x2
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8019BDC
- cmp r0, 0x1
- bne _08019DC6
- movs r0, 0
-_08019DC4:
- strb r0, [r4]
-_08019DC6:
- movs r0, 0
- strb r0, [r4, 0x3]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8019D44
-
- thumb_func_start sub_8019DD0
-sub_8019DD0: @ 8019DD0
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gUnknown_02022C64
-_08019DD6:
- lsls r0, r4, 2
- ldr r1, [r5]
- adds r1, r0
- adds r0, r4, 0
- bl sub_8019D44
- adds r4, 0x1
- cmp r4, 0x7
- ble _08019DD6
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019DD0
-
- thumb_func_start sub_8019DF4
-sub_8019DF4: @ 8019DF4
- push {r4,lr}
- ldr r4, =sub_8019DD0
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08019E18
- adds r0, r4, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- b _08019E1A
- .pool
-_08019E18:
- movs r0, 0x10
-_08019E1A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8019DF4
-
- thumb_func_start sub_8019E20
-sub_8019E20: @ 8019E20
- push {lr}
- ldr r0, =sub_8019DD0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bhi _08019E34
- bl DestroyTask
-_08019E34:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019E20
-
- thumb_func_start sub_8019E3C
-sub_8019E3C: @ 8019E3C
- push {r4,lr}
- movs r4, 0
-_08019E40:
- adds r0, r4, 0
- bl IsUnionRoomPlayerHidden
- cmp r0, 0
- bne _08019E56
- adds r0, r4, 0
- bl RemoveUnionRoomPlayerEventObject
- adds r0, r4, 0
- bl HideUnionRoomPlayer
-_08019E56:
- adds r4, 0x1
- cmp r4, 0x7
- ble _08019E40
- ldr r1, =gUnknown_02022C64
- movs r0, 0
- str r0, [r1]
- bl sub_8019E20
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019E3C
-
- thumb_func_start sub_8019E70
-sub_8019E70: @ 8019E70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r0, [sp, 0x8]
- mov r9, r1
- movs r7, 0
- mov r0, r9
- lsls r0, 2
- mov r8, r0
- ldr r0, =gUnknown_082F0740
- mov r2, r8
- adds r1, r2, r0
- ldrh r1, [r1]
- mov r2, sp
- strh r1, [r2, 0xC]
- adds r0, 0x2
- add r0, r8
- ldrh r0, [r0]
- mov r10, r0
- ldr r6, =gUnknown_082F0760
-_08019E9E:
- mov r5, r8
- add r5, r9
- adds r5, r7
- adds r4, r5, 0
- subs r4, 0x38
- lsls r4, 24
- lsrs r4, 24
- movs r2, 0
- ldrsb r2, [r6, r2]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- adds r2, r0, r2
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x1
- ldrsb r3, [r6, r3]
- add r3, r10
- lsls r3, 16
- asrs r3, 16
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x41
- adds r1, r4, 0
- bl sprite_new
- ldr r1, [sp, 0x8]
- adds r5, r1, r5
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8097C44
- adds r6, 0x2
- adds r7, 0x1
- cmp r7, 0x4
- ble _08019E9E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019E70
-
- thumb_func_start sub_8019F04
-sub_8019F04: @ 8019F04
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldr r6, =gSprites
-_08019F0C:
- adds r0, r5, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- adds r4, 0x1
- cmp r4, 0x27
- ble _08019F0C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8019F04
-
- thumb_func_start sub_8019F2C
-sub_8019F2C: @ 8019F2C
- push {r4-r7,lr}
- sub sp, 0x8
- movs r5, 0
- add r7, sp, 0x4
-_08019F34:
- movs r4, 0
- adds r6, r5, 0x1
-_08019F38:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- adds r3, r7, 0
- bl sub_8019990
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0
- bl sub_8088B94
- adds r4, 0x1
- cmp r4, 0x4
- ble _08019F38
- adds r5, r6, 0
- cmp r5, 0x7
- ble _08019F34
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8019F2C
-
- thumb_func_start sub_8019F64
-sub_8019F64: @ 8019F64
- push {lr}
- adds r1, r0, 0
- cmp r1, 0
- beq _08019F78
- ldr r0, =gUnknown_082F076F
- adds r0, r1, r0
- ldrb r0, [r0]
- b _08019F88
- .pool
-_08019F78:
- ldrb r1, [r2, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- beq _08019F86
- movs r0, 0x4
- b _08019F88
-_08019F86:
- movs r0, 0x1
-_08019F88:
- pop {r1}
- bx r1
- thumb_func_end sub_8019F64
-
- thumb_func_start sub_8019F8C
-sub_8019F8C: @ 8019F8C
- push {lr}
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r2
- adds r0, r1
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097C8C
- pop {r1}
- bx r1
- thumb_func_end sub_8019F8C
-
- thumb_func_start sub_8019FA4
-sub_8019FA4: @ 8019FA4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- mov r9, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r0, r5, 2
- adds r0, r5
- adds r7, r0, r6
- adds r0, r5, 0
- bl sub_8019F8C
- cmp r0, 0x1
- bne _08019FE2
- adds r4, r7, 0
- subs r4, 0x38
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_8097C44
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8097CC4
-_08019FE2:
- adds r0, r7, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- mov r1, r8
- bl sub_8097BB4
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_8019F64
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_801A3B0
- add r3, sp, 0x4
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl sub_8019990
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0x1
- bl sub_8088B94
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8019FA4
-
- thumb_func_start sub_801A02C
-sub_801A02C: @ 801A02C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r5
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8097CC4
- add r3, sp, 0x4
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl sub_8019990
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- movs r2, 0
- bl sub_8088B94
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_801A02C
-
- thumb_func_start sub_801A064
-sub_801A064: @ 801A064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- mov r8, r1
- mov r6, sp
- adds r6, 0x2
- mov r0, sp
- adds r1, r6, 0
- bl PlayerGetDestCoords
- add r4, sp, 0x4
- mov r5, sp
- adds r5, 0x6
- adds r0, r4, 0
- adds r1, r5, 0
- bl player_get_pos_including_state_based_drift
- lsls r0, r7, 2
- adds r0, r7
- subs r0, 0x38
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097C8C
- mov r10, r6
- mov r9, r4
- adds r6, r5, 0
- cmp r0, 0x1
- bne _0801A0F0
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, r10
- movs r1, 0
- ldrsh r3, [r0, r1]
- adds r0, r7, 0
- movs r1, 0
- bl sub_80199E0
- cmp r0, 0x1
- beq _0801A15C
- movs r0, 0
- ldrsh r2, [r4, r0]
- movs r1, 0
- ldrsh r3, [r6, r1]
- adds r0, r7, 0
- movs r1, 0
- bl sub_80199E0
- cmp r0, 0x1
- beq _0801A15C
- mov r2, r8
- ldrb r0, [r2, 0xB]
- lsls r0, 31
- lsrs r0, 31
- ldrb r1, [r2, 0x2]
- bl sub_8019978
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- movs r1, 0
- mov r3, r8
- bl sub_8019FA4
-_0801A0F0:
- movs r5, 0x1
- mov r4, r8
- adds r4, 0x4
-_0801A0F6:
- ldrb r0, [r4]
- cmp r0, 0
- bne _0801A106
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_801A02C
- b _0801A154
-_0801A106:
- mov r0, sp
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, r10
- movs r1, 0
- ldrsh r3, [r0, r1]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80199E0
- cmp r0, 0
- bne _0801A154
- mov r0, r9
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r0, 0
- ldrsh r3, [r6, r0]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_80199E0
- cmp r0, 0
- bne _0801A154
- ldrb r2, [r4]
- lsrs r0, r2, 3
- movs r1, 0x1
- ands r0, r1
- movs r1, 0x7
- ands r1, r2
- bl sub_8019978
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r5, 0
- mov r3, r8
- bl sub_8019FA4
-_0801A154:
- adds r4, 0x1
- adds r5, 0x1
- cmp r5, 0x4
- ble _0801A0F6
-_0801A15C:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801A064
-
- thumb_func_start sub_801A16C
-sub_801A16C: @ 801A16C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldrb r0, [r4, 0xA]
- lsls r0, 25
- lsrs r0, 25
- subs r0, 0x40
- cmp r0, 0x14
- bhi _0801A20E
- lsls r0, 2
- ldr r1, =_0801A18C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0801A18C:
- .4byte _0801A1E0
- .4byte _0801A200
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A200
- .4byte _0801A200
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A200
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A20E
- .4byte _0801A200
- .4byte _0801A200
- .4byte _0801A200
- .4byte _0801A1E0
-_0801A1E0:
- ldrb r1, [r4, 0xB]
- lsls r1, 31
- lsrs r1, 31
- ldrb r2, [r4, 0x2]
- adds r0, r5, 0
- bl sub_8019CF0
- movs r4, 0
-_0801A1F0:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A02C
- adds r4, 0x1
- cmp r4, 0x4
- bls _0801A1F0
- b _0801A20E
-_0801A200:
- adds r0, r5, 0
- bl AGBAssert
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A064
-_0801A20E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_801A16C
-
- thumb_func_start sub_801A214
-sub_801A214: @ 801A214
- push {r4,r5,lr}
- adds r5, r0, 0
- bl AGBAssert
- movs r4, 0
-_0801A21E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A02C
- adds r4, 0x1
- cmp r4, 0x4
- ble _0801A21E
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_801A214
-
- thumb_func_start sub_801A234
-sub_801A234: @ 801A234
- push {r4,r5,lr}
- ldr r2, =gUnknown_02022C68
- movs r1, 0
- str r1, [r2]
- movs r5, 0
- ldr r4, [r0]
-_0801A240:
- ldrb r0, [r4, 0x1A]
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- bne _0801A258
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A16C
- b _0801A264
- .pool
-_0801A258:
- cmp r1, 0x2
- bne _0801A264
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A214
-_0801A264:
- adds r4, 0x20
- adds r5, 0x1
- cmp r5, 0x7
- ble _0801A240
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_801A234
-
- thumb_func_start sub_801A274
-sub_801A274: @ 801A274
- ldr r1, =gUnknown_02022C68
- movs r0, 0x96
- lsls r0, 1
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_801A274
-
- thumb_func_start sub_801A284
-sub_801A284: @ 801A284
- push {lr}
- adds r2, r0, 0
- ldr r0, =gUnknown_02022C68
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- movs r0, 0x96
- lsls r0, 1
- cmp r1, r0
- bls _0801A29E
- adds r0, r2, 0
- bl sub_801A234
-_0801A29E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A284
-
- thumb_func_start sub_801A2A8
-sub_801A2A8: @ 801A2A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r5, r0, 0
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- bl is_walking_or_running
- cmp r0, 0
- bne _0801A2F0
- b _0801A396
-_0801A2C4:
- ldr r4, =gUnknown_082F076A
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r2, [r0]
- adds r0, r6, 0
- ldr r1, [sp, 0xC]
- bl sub_801A3B0
- ldr r0, [sp, 0x4]
- strh r6, [r0]
- mov r1, sp
- ldrh r2, [r1, 0xC]
- ldr r1, [sp, 0x8]
- strh r2, [r1]
- movs r0, 0x1
- b _0801A398
- .pool
-_0801A2F0:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r0, =gUnknown_082F0740
- adds r7, r5, 0
- movs r1, 0
- mov r10, r1
- adds r2, r0, 0x2
- str r2, [sp, 0x10]
- str r0, [sp, 0x14]
-_0801A30E:
- movs r6, 0
- ldr r4, [sp, 0x14]
- movs r0, 0
- ldrsh r4, [r4, r0]
- mov r9, r4
- ldr r1, [sp, 0x10]
- mov r8, r1
- ldr r5, =gUnknown_082F0760
-_0801A31E:
- mov r2, r10
- adds r3, r2, r6
- mov r0, sp
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r5, r0]
- add r0, r9
- adds r0, 0x7
- cmp r1, r0
- bne _0801A372
- mov r1, sp
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- mov r4, r8
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- ldrsb r2, [r5, r2]
- adds r1, r2
- adds r1, 0x7
- cmp r0, r1
- bne _0801A372
- adds r0, r3, 0
- subs r0, 0x38
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8097C8C
- cmp r0, 0
- bne _0801A372
- adds r0, r4, 0
- bl sub_8097D9C
- cmp r0, 0
- bne _0801A372
- ldrb r1, [r7, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0801A2C4
-_0801A372:
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _0801A31E
- adds r7, 0x20
- movs r4, 0x5
- add r10, r4
- ldr r0, [sp, 0x10]
- adds r0, 0x4
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- adds r1, 0x4
- str r1, [sp, 0x14]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- str r2, [sp, 0xC]
- cmp r2, 0x7
- ble _0801A30E
-_0801A396:
- movs r0, 0
-_0801A398:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_801A2A8
-
- thumb_func_start sub_801A3B0
-sub_801A3B0: @ 801A3B0
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r1, 0
- lsls r1, r2, 24
- lsrs r1, 24
- lsls r0, r3, 2
- adds r0, r3
- subs r0, 0x38
- adds r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl sub_8097B78
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_801A3B0
-
- thumb_func_start sub_801A3D0
-sub_801A3D0: @ 801A3D0
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r3, r4, 5
- adds r3, r2
- adds r2, r3, 0
- bl sub_8019F64
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_801A3B0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_801A3D0
-
- thumb_func_start sub_801A3F4
-sub_801A3F4: @ 801A3F4
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _0801A414
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
-_0801A414:
- pop {r0}
- bx r0
- thumb_func_end sub_801A3F4
-
- thumb_func_start sub_801A418
-sub_801A418: @ 801A418
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_801A418
-
- thumb_func_start sub_801A42C
-sub_801A42C: @ 801A42C
- push {lr}
- ldr r0, =sub_801A43C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A42C
-
- thumb_func_start sub_801A43C
-sub_801A43C: @ 801A43C
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r5, =gUnknown_03000DAC
- movs r0, 0x6C
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_082F0D34
- movs r0, 0
- movs r2, 0x2
- bl InitBgsFromTemplates
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- adds r0, r4, 0
- bl Alloc
- adds r1, r0, 0
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, =gWirelessInfoScreenGfx
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl DecompressAndLoadBgGfxUsingHeap
- ldr r1, =gWirelessInfoScreenTilemap
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- ldr r0, =gUnknown_082F0D3C
- bl InitWindows
- bl DeactivateAllTextPrinters
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl ScanlineEffect_Stop
- bl m4aSoundVSyncOn
- ldr r0, =sub_801A418
- bl SetVBlankCallback
- ldr r0, =sub_801A6C0
- movs r1, 0
- bl CreateTask
- ldr r1, [r5]
- adds r1, 0x60
- strb r0, [r1]
- bl sub_8013C40
- ldr r1, [r5]
- adds r1, 0x61
- strb r0, [r1]
- ldr r1, [r5]
- movs r0, 0x1
- str r0, [r1, 0x1C]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, =gWirelessInfoScreenPal
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0xF0
- bl Menu_LoadStdPalAt
- bl DynamicPlaceholderTextUtil_Reset
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- ldr r0, =sub_801A3F4
- bl SetMainCallback2
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A43C
-
- thumb_func_start sub_801A584
-sub_801A584: @ 801A584
- push {r4,lr}
- bl FreeAllWindowBuffers
- movs r4, 0
-_0801A58C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl GetBgTilemapBuffer
- bl Free
- adds r4, 0x1
- cmp r4, 0x1
- ble _0801A58C
- ldr r0, =gUnknown_03000DAC
- ldr r0, [r0]
- bl Free
- ldr r0, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A584
-
- thumb_func_start sub_801A5BC
-sub_801A5BC: @ 801A5BC
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _0801A5E4
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _0801A5E0
- movs r0, 0
- strh r0, [r1]
-_0801A5E0:
- movs r0, 0
- strh r0, [r2]
-_0801A5E4:
- movs r2, 0
- ldrsh r0, [r1, r2]
- adds r0, 0x2
- lsls r0, 5
- ldr r1, =gWirelessInfoScreenPal
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl LoadPalette
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A5BC
-
- thumb_func_start sub_801A600
-sub_801A600: @ 801A600
- push {r4,r5,lr}
- sub sp, 0x8
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_082F0D5C
- ldr r4, [r5]
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0xC0
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x6
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- adds r2, r4, 0
- bl sub_801A8B0
- movs r1, 0
-_0801A644:
- adds r4, r1, 0x1
- lsls r0, r4, 2
- adds r0, r5
- ldr r2, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 25
- movs r1, 0x80
- lsls r1, 20
- adds r0, r1
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r1, 0x1
- movs r3, 0
- bl sub_801A8B0
- adds r1, r4, 0
- cmp r4, 0x2
- ble _0801A644
- ldr r1, =gUnknown_082F0D5C
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 25
- movs r1, 0x80
- lsls r1, 20
- adds r0, r1
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0
- bl sub_801A8B0
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A600
-
- thumb_func_start sub_801A6C0
-sub_801A6C0: @ 801A6C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x5
- bls _0801A6E2
- b _0801A89C
-_0801A6E2:
- lsls r0, 2
- ldr r1, =_0801A6F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0801A6F4:
- .4byte _0801A70C
- .4byte _0801A728
- .4byte _0801A74C
- .4byte _0801A768
- .4byte _0801A85C
- .4byte _0801A884
-_0801A70C:
- bl sub_801A600
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0801A89C
- .pool
-_0801A728:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- bl ShowBg
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl ShowBg
- b _0801A86C
-_0801A74C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0801A75A
- b _0801A89C
-_0801A75A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- b _0801A876
- .pool
-_0801A768:
- ldr r0, =gUnknown_03000DAC
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x10
- adds r2, r0, 0
- adds r2, 0x20
- adds r3, r0, 0
- adds r3, 0x61
- ldrb r3, [r3]
- bl sub_801AA30
- lsls r1, r5, 2
- mov r8, r1
- cmp r0, 0
- beq _0801A7F8
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r4, 0
- ldr r6, =gStringVar4
- movs r7, 0x80
- lsls r7, 20
-_0801A796:
- ldr r0, =gUnknown_03000DAC
- ldr r0, [r0]
- lsls r1, r4, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r6, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- cmp r4, 0x3
- beq _0801A7CC
- lsrs r0, r7, 24
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0x1
- adds r2, r6, 0
- movs r3, 0xC
- bl sub_801A8B0
- b _0801A7DE
- .pool
-_0801A7CC:
- movs r0, 0x62
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r1, 0x1
- adds r2, r6, 0
- movs r3, 0xC
- bl sub_801A8B0
-_0801A7DE:
- movs r2, 0xF0
- lsls r2, 21
- adds r7, r2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801A796
- movs r0, 0x2
- bl PutWindowTilemap
- movs r0, 0x2
- movs r1, 0x3
- bl CopyWindowToVram
-_0801A7F8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801A80C
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801A836
-_0801A80C:
- movs r0, 0x5
- bl PlaySE
- ldr r2, =gTasks
- ldr r0, =gUnknown_03000DAC
- ldr r0, [r0]
- adds r0, 0x61
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xFF
- strh r1, [r0, 0x26]
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0801A836:
- mov r2, r8
- adds r1, r2, r5
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r1, r0
- adds r0, r1, 0
- adds r0, 0xE
- adds r1, 0x10
- bl sub_801A5BC
- b _0801A89C
- .pool
-_0801A85C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0801A86C:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
-_0801A876:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0801A89C
- .pool
-_0801A884:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801A89C
- ldr r0, =sub_801A584
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0801A89C:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801A6C0
-
- thumb_func_start sub_801A8B0
-sub_801A8B0: @ 801A8B0
- push {r4-r7,lr}
- sub sp, 0x18
- mov r12, r2
- ldr r2, [sp, 0x2C]
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r4, 24
- lsrs r0, r4, 24
- cmp r0, 0x4
- bhi _0801A93A
- lsls r0, 2
- ldr r1, =_0801A8E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0801A8E0:
- .4byte _0801A8F4
- .4byte _0801A902
- .4byte _0801A910
- .4byte _0801A91E
- .4byte _0801A92C
-_0801A8F4:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- movs r0, 0x3
- b _0801A938
-_0801A902:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x3
- b _0801A938
-_0801A910:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- movs r0, 0x5
- b _0801A938
-_0801A91E:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- movs r0, 0x6
- b _0801A938
-_0801A92C:
- add r1, sp, 0x14
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
-_0801A938:
- strb r0, [r1, 0x2]
-_0801A93A:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- add r0, sp, 0x14
- str r0, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- mov r0, r12
- str r0, [sp, 0x10]
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl AddTextPrinterParameterized4
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801A8B0
-
- thumb_func_start sub_801A960
-sub_801A960: @ 801A960
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r12, r0
- adds r7, r1, 0
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r8, r0
- movs r4, 0
- ldr r0, =gUnknown_082F0D70
- mov r9, r0
- movs r1, 0x1
- add r1, r9
- mov r10, r1
- mov r3, r12
- adds r3, 0x4
- str r3, [sp]
-_0801A98A:
- lsls r0, r4, 1
- adds r2, r0, r4
- mov r3, r9
- adds r1, r2, r3
- adds r5, r0, 0
- adds r6, r4, 0x1
- ldrb r1, [r1]
- cmp r8, r1
- bne _0801A9EE
- mov r0, r12
- ldrb r1, [r0, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0801A9EE
- mov r0, r9
- adds r0, 0x2
- adds r3, r2, r0
- ldrb r0, [r3]
- cmp r0, 0
- bne _0801A9DC
- movs r2, 0
- movs r1, 0
- ldr r3, [sp]
-_0801A9BA:
- adds r0, r3, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801A9C4
- adds r2, 0x1
-_0801A9C4:
- adds r1, 0x1
- cmp r1, 0x3
- ble _0801A9BA
- adds r2, 0x1
- adds r0, r5, r4
- add r0, r10
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r7
- b _0801A9E8
- .pool
-_0801A9DC:
- mov r1, r10
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r3]
-_0801A9E8:
- ldr r0, [r1]
- adds r0, r2
- str r0, [r1]
-_0801A9EE:
- adds r4, r6, 0
- cmp r4, 0x1E
- bls _0801A98A
- mov r0, r8
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_801A960
-
- thumb_func_start sub_801AA08
-sub_801AA08: @ 801AA08
- push {r4,lr}
- movs r4, 0
- adds r3, r1, 0
- adds r2, r0, 0
-_0801AA10:
- ldr r1, [r2]
- ldr r0, [r3]
- cmp r1, r0
- beq _0801AA1C
- movs r0, 0x1
- b _0801AA28
-_0801AA1C:
- adds r3, 0x4
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801AA10
- movs r0, 0
-_0801AA28:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_801AA08
-
- thumb_func_start sub_801AA30
-sub_801AA30: @ 801AA30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- adds r5, r2, 0
- lsls r4, r3, 24
- lsrs r4, 24
- movs r0, 0
- mov r8, r0
- mov r0, sp
- movs r1, 0
- movs r2, 0x10
- bl memset
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r7, r0, r1
- movs r4, 0
-_0801AA5E:
- lsls r1, r4, 5
- ldr r0, [r7]
- adds r0, r1
- mov r1, sp
- bl sub_801A960
- adds r1, r0, 0
- ldr r0, [r5]
- cmp r1, r0
- beq _0801AA78
- str r1, [r5]
- movs r2, 0x1
- mov r8, r2
-_0801AA78:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0xF
- ble _0801AA5E
- mov r0, sp
- mov r1, r9
- bl sub_801AA08
- cmp r0, 0
- bne _0801AA9C
- mov r3, r8
- cmp r3, 0x1
- beq _0801AAC4
- movs r0, 0
- b _0801AAC6
- .pool
-_0801AA9C:
- adds r1, r6, 0
- mov r0, sp
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r9
- mov r0, sp
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldr r0, [r0]
- str r0, [r1]
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- adds r0, r1
- ldr r1, [r6, 0x8]
- adds r0, r1
- ldr r1, [r6, 0xC]
- adds r0, r1
- str r0, [r6, 0xC]
-_0801AAC4:
- movs r0, 0x1
-_0801AAC6:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_801AA30
-
- thumb_func_start sub_801AAD4
-sub_801AAD4: @ 801AAD4
- push {r4-r7,lr}
- movs r0, 0xA
- bl sub_8014210
- movs r4, 0
- movs r7, 0x64
- ldr r6, =gPlayerParty
- ldr r5, =gEnemyParty
-_0801AAE4:
- ldr r0, =gSelectedOrderFromParty
- adds r0, r4, r0
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r0, 0
- muls r1, r7
- adds r1, r6
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r5, 0x64
- adds r4, 0x1
- cmp r4, 0x1
- ble _0801AAE4
- ldr r4, =gPlayerParty
- movs r0, 0xFA
- lsls r0, 1
- adds r5, r4, r0
-_0801AB0A:
- adds r0, r4, 0
- bl ZeroMonData
- adds r4, 0x64
- cmp r4, r5
- ble _0801AB0A
- ldr r4, =gPlayerParty
- movs r5, 0
- adds r6, r4, 0
- adds r6, 0x64
-_0801AB1E:
- ldr r1, =gEnemyParty
- adds r1, r5, r1
- adds r0, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r4, 0x64
- adds r5, 0x64
- cmp r4, r6
- ble _0801AB1E
- movs r0, 0x32
- bl IncrementGameStat
- bl CalculatePlayerPartyCount
- ldr r0, =gTrainerBattleOpponent_A
- movs r2, 0xC0
- lsls r2, 4
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801AAD4
-
- thumb_func_start sub_801AB68
-sub_801AB68: @ 801AB68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- adds r5, r0, 0
- adds r7, r1, 0
- adds r6, r2, 0
- ldr r4, [sp, 0x38]
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- mov r9, r0
- movs r1, 0x1
- mov r10, r1
- ldr r0, =gUnknown_082F0DE4
- mov r8, r0
- ldrb r0, [r0]
- lsls r1, r0, 4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- str r3, [sp, 0x14]
- bl FillWindowPixelBuffer
- mov r1, r9
- str r1, [sp]
- mov r0, r10
- str r0, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- lsls r4, 24
- asrs r4, 24
- str r4, [sp, 0xC]
- str r7, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x1
- adds r2, r6, 0
- ldr r3, [sp, 0x14]
- bl AddTextPrinterParameterized4
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801AB68
-
- thumb_func_start sub_801ABDC
-sub_801ABDC: @ 801ABDC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0801ABF4
- cmp r0, 0x1
- beq _0801AC22
- b _0801AC36
-_0801ABF4:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl DrawTextBorderOuter
- str r5, [sp]
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_801AB68
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0801AC36
-_0801AC22:
- movs r0, 0
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0801AC36
- strh r0, [r4]
- movs r0, 0x1
- b _0801AC38
-_0801AC36:
- movs r0, 0
-_0801AC38:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801ABDC
-
- thumb_func_start sub_801AC40
-sub_801AC40: @ 801AC40
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_801AC40
-
- thumb_func_start sub_801AC54
-sub_801AC54: @ 801AC54
- push {r4,lr}
- sub sp, 0xC
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x33
- bls _0801AC6A
- b _0801AFAE
-_0801AC6A:
- lsls r0, 2
- ldr r1, =_0801AC7C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0801AC7C:
- .4byte _0801AD4C
- .4byte _0801ADFC
- .4byte _0801AE24
- .4byte _0801AE48
- .4byte _0801AE98
- .4byte _0801AFAE
- .4byte _0801AF7C
- .4byte _0801AF58
- .4byte _0801AF7C
- .4byte _0801AF98
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AFAE
- .4byte _0801AF24
- .4byte _0801AF40
-_0801AD4C:
- movs r0, 0
- movs r1, 0
- bl SetGpuReg
- ldr r4, =gUnknown_02022C6C
- movs r0, 0x4
- bl AllocZeroed
- str r0, [r4]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_082F0DD0
- movs r0, 0
- movs r2, 0x1
- bl InitBgsFromTemplates
- bl reset_temp_tile_data_buffers
- ldr r0, =gUnknown_082F0DD4
- bl InitWindows
- lsls r0, 16
- cmp r0, 0
- bne _0801AD8C
- b _0801AFC2
-_0801AD8C:
- bl DeactivateAllTextPrinters
- movs r0, 0
- bl ClearWindowTilemap
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x14
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl LoadUserWindowBorderGfx
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl LoadUserWindowBorderGfx_
- bl sub_819789C
- ldr r0, =sub_801AC40
- bl SetVBlankCallback
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0801AF8A
- .pool
-_0801ADFC:
- ldr r0, =gUnknown_02022C6C
- ldr r0, [r0]
- ldr r1, =gText_CommStandbyAwaitingOtherPlayer
- movs r2, 0
- bl sub_801ABDC
- cmp r0, 0
- bne _0801AE0E
- b _0801AFAE
-_0801AE0E:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0801AF8A
- .pool
-_0801AE24:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0
- bl ShowBg
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0801AF8A
- .pool
-_0801AE48:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- beq _0801AE54
- b _0801AFAE
-_0801AE54:
- ldr r4, =gBlockSendBuffer
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, =gSelectedOrderFromParty
- ldrb r1, [r0]
- ldrb r0, [r0, 0x1]
- cmn r1, r0
- bne _0801AE78
- movs r0, 0x52
- b _0801AE7A
- .pool
-_0801AE78:
- movs r0, 0x51
-_0801AE7A:
- strb r0, [r4]
- ldr r1, =gBlockSendBuffer
- movs r0, 0
- movs r2, 0x20
- bl SendBlock
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0801AF8A
- .pool
-_0801AE98:
- bl GetBlockReceivedStatus
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0801AEA6
- b _0801AFAE
-_0801AEA6:
- ldr r1, =gBlockRecvBuffer
- ldrh r0, [r1]
- cmp r0, 0x51
- bne _0801AEE0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0x51
- bne _0801AEE0
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x32
- b _0801AF16
- .pool
-_0801AEE0:
- bl sub_800AC34
- ldr r4, =gBlockRecvBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 16
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x52
- bne _0801AF0C
- ldr r0, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r2
- movs r1, 0x6
- b _0801AF16
- .pool
-_0801AF0C:
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x8
-_0801AF16:
- strb r1, [r0]
- bl ResetBlockReceivedFlags
- b _0801AFAE
- .pool
-_0801AF24:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0801AFAE
- bl sub_800ADF8
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
- b _0801AF8A
- .pool
-_0801AF40:
- bl IsLinkTaskFinished
- lsls r0, 24
- cmp r0, 0
- beq _0801AFAE
- ldr r0, =sub_801AAD4
- bl SetMainCallback2
- b _0801AFAE
- .pool
-_0801AF58:
- ldr r0, =gUnknown_02022C6C
- ldr r0, [r0]
- ldr r1, =gText_RefusedBattle
- movs r2, 0x1
- bl sub_801ABDC
- cmp r0, 0
- beq _0801AFAE
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- b _0801AFAE
- .pool
-_0801AF7C:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801AFAE
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
-_0801AF8A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801AFAE
- .pool
-_0801AF98:
- ldr r0, =gUnknown_02022C6C
- ldr r0, [r0]
- ldr r1, =gText_BattleWasRefused
- movs r2, 0x1
- bl sub_801ABDC
- cmp r0, 0
- beq _0801AFAE
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
-_0801AFAE:
- bl RunTasks
- bl RunTextPrinters
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
-_0801AFC2:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801AC54