pokeemerald/asm/union_room_player_avatar.s

2773 lines
42 KiB
ArmAsm
Raw Normal View History

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8019930
sub_8019930: @ 8019930
ldr r0, =0x000001a9
bx lr
.pool
thumb_func_end sub_8019930
thumb_func_start bgid_upload_textbox_1
bgid_upload_textbox_1: @ 8019938
push {lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r1, =gUnkTextboxBorderGfx
movs r2, 0x80
lsls r2, 1
movs r3, 0
str r3, [sp]
bl DecompressAndLoadBgGfxUsingHeap
add sp, 0x4
pop {r0}
bx r0
.pool
thumb_func_end bgid_upload_textbox_1
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 sub_81978B0
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 sub_8098858
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