mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
2773 lines
42 KiB
ArmAsm
Executable File
2773 lines
42 KiB
ArmAsm
Executable File
.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
|