2383 lines
42 KiB
ArmAsm
2383 lines
42 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start CB1_UpdateLinkState
|
|
CB1_UpdateLinkState: @ 8057884
|
|
push {r4,lr}
|
|
ldr r0, _080578C8 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805789E
|
|
bl IsRfuRecvQueueEmpty
|
|
cmp r0, 0
|
|
beq _0805789E
|
|
bl IsSendingKeysToLink
|
|
cmp r0, 0
|
|
bne _080578C0
|
|
_0805789E:
|
|
ldr r0, _080578CC @ =gLocalLinkPlayerId
|
|
ldrb r4, [r0]
|
|
ldr r0, _080578D0 @ =gLinkPartnersHeldKeys
|
|
adds r1, r4, 0
|
|
bl sub_8057BE4
|
|
ldr r0, _080578D4 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8057C4C
|
|
bl ClearAllPlayerKeys
|
|
_080578C0:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578C8: .4byte gWirelessCommType
|
|
_080578CC: .4byte gLocalLinkPlayerId
|
|
_080578D0: .4byte gLinkPartnersHeldKeys
|
|
_080578D4: .4byte gUnknown_3000E84
|
|
thumb_func_end CB1_UpdateLinkState
|
|
|
|
thumb_func_start ResetAllMultiplayerState
|
|
ResetAllMultiplayerState: @ 80578D8
|
|
push {lr}
|
|
bl sub_805793C
|
|
ldr r0, _080578E8 @ =sub_8057D5C
|
|
bl c1_link_related_func_set
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578E8: .4byte sub_8057D5C
|
|
thumb_func_end ResetAllMultiplayerState
|
|
|
|
thumb_func_start ClearAllPlayerKeys
|
|
ClearAllPlayerKeys: @ 80578EC
|
|
push {lr}
|
|
ldr r0, _080578F8 @ =gLinkPartnersHeldKeys
|
|
bl sub_8057D48
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080578F8: .4byte gLinkPartnersHeldKeys
|
|
thumb_func_end ClearAllPlayerKeys
|
|
|
|
thumb_func_start c1_link_related_func_set
|
|
c1_link_related_func_set: @ 80578FC
|
|
ldr r2, _08057908 @ =gUnknown_3000E89
|
|
movs r1, 0
|
|
strb r1, [r2]
|
|
ldr r1, _0805790C @ =gUnknown_3000E84
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08057908: .4byte gUnknown_3000E89
|
|
_0805790C: .4byte gUnknown_3000E84
|
|
thumb_func_end c1_link_related_func_set
|
|
|
|
thumb_func_start sub_8057910
|
|
sub_8057910: @ 8057910
|
|
push {lr}
|
|
ldr r0, _08057934 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0805792E
|
|
ldr r1, _08057938 @ =gUnknown_3000E89
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3C
|
|
bls _0805792E
|
|
bl LinkRfu_FatalError
|
|
_0805792E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057934: .4byte gWirelessCommType
|
|
_08057938: .4byte gUnknown_3000E89
|
|
thumb_func_end sub_8057910
|
|
|
|
thumb_func_start sub_805793C
|
|
sub_805793C: @ 805793C
|
|
push {lr}
|
|
ldr r1, _08057950 @ =gUnknown_3000E80
|
|
movs r2, 0x80
|
|
adds r0, r1, 0x3
|
|
_08057944:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08057944
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057950: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_805793C
|
|
|
|
thumb_func_start sub_8057954
|
|
sub_8057954: @ 8057954
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _08057974 @ =gFieldLinkPlayerCount
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _08057982
|
|
ldr r4, _08057978 @ =gUnknown_3000E80
|
|
_08057966:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
beq _0805797C
|
|
movs r0, 0
|
|
b _08057984
|
|
.align 2, 0
|
|
_08057974: .4byte gFieldLinkPlayerCount
|
|
_08057978: .4byte gUnknown_3000E80
|
|
_0805797C:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _08057966
|
|
_08057982:
|
|
movs r0, 0x1
|
|
_08057984:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057954
|
|
|
|
thumb_func_start sub_805798C
|
|
sub_805798C: @ 805798C
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldr r0, _080579AC @ =gFieldLinkPlayerCount
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
cmp r1, r2
|
|
bge _080579BA
|
|
ldr r4, _080579B0 @ =gUnknown_3000E80
|
|
_0805799E:
|
|
adds r0, r1, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
bne _080579B4
|
|
movs r0, 0x1
|
|
b _080579BC
|
|
.align 2, 0
|
|
_080579AC: .4byte gFieldLinkPlayerCount
|
|
_080579B0: .4byte gUnknown_3000E80
|
|
_080579B4:
|
|
adds r1, 0x1
|
|
cmp r1, r2
|
|
blt _0805799E
|
|
_080579BA:
|
|
movs r0, 0
|
|
_080579BC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805798C
|
|
|
|
thumb_func_start sub_80579C4
|
|
sub_80579C4: @ 80579C4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r7, r0, 0
|
|
adds r6, r2, 0
|
|
mov r9, r3
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
ldr r0, _08057A14 @ =gUnknown_3000E80
|
|
adds r5, r7, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x80
|
|
beq _080579E4
|
|
b _08057B5E
|
|
_080579E4:
|
|
adds r0, r6, 0
|
|
bl sub_805801C
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08057A1C
|
|
bl sub_805812C
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08057A04
|
|
b _08057BD2
|
|
_08057A04:
|
|
ldr r0, _08057A18 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_80581DC
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057A14: .4byte gUnknown_3000E80
|
|
_08057A18: .4byte sub_8057DA4
|
|
_08057A1C:
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
cmp r0, 0x1
|
|
bne _08057A44
|
|
movs r0, 0x81
|
|
strb r0, [r5]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
bne _08057A32
|
|
b _08057BD2
|
|
_08057A32:
|
|
ldr r0, _08057A40 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_8058230
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057A40: .4byte sub_8057DA4
|
|
_08057A44:
|
|
mov r0, r8
|
|
subs r0, 0x12
|
|
cmp r0, 0xA
|
|
bls _08057A4E
|
|
b _08057B5E
|
|
_08057A4E:
|
|
lsls r0, 2
|
|
ldr r1, _08057A58 @ =_08057A5C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08057A58: .4byte _08057A5C
|
|
.align 2, 0
|
|
_08057A5C:
|
|
.4byte _08057AB4
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057B5E
|
|
.4byte _08057A88
|
|
.4byte _08057AE0
|
|
.4byte _08057B5E
|
|
.4byte _08057B10
|
|
.4byte _08057B3C
|
|
_08057A88:
|
|
adds r0, r6, 0
|
|
bl sub_8058004
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057AAC @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057AB0 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_80581C8
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057AAC: .4byte gUnknown_3000E80
|
|
_08057AB0: .4byte sub_8057DA4
|
|
_08057AB4:
|
|
adds r0, r6, 0
|
|
bl sub_8058034
|
|
cmp r0, 0x1
|
|
bne _08057B5E
|
|
ldr r0, _08057AD8 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057ADC @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
bl sub_80581F8
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057AD8: .4byte gUnknown_3000E80
|
|
_08057ADC: .4byte sub_8057DA4
|
|
_08057AE0:
|
|
adds r0, r6, 0
|
|
bl sub_8058060
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B08 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B0C @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
adds r0, r4, 0
|
|
bl sub_8058214
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057B08: .4byte gUnknown_3000E80
|
|
_08057B0C: .4byte sub_8057DA4
|
|
_08057B10:
|
|
adds r0, r6, 0
|
|
bl sub_8057FEC
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B34 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B38 @ =sub_8057DC8
|
|
bl c1_link_related_func_set
|
|
bl sub_80581BC
|
|
b _08057B5E
|
|
.align 2, 0
|
|
_08057B34: .4byte gUnknown_3000E80
|
|
_08057B38: .4byte sub_8057DC8
|
|
_08057B3C:
|
|
adds r0, r6, 0
|
|
bl sub_8057FEC
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B70 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x81
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057B5E
|
|
ldr r0, _08057B74 @ =sub_8057DEC
|
|
bl c1_link_related_func_set
|
|
bl sub_80581BC
|
|
_08057B5E:
|
|
mov r0, r8
|
|
cmp r0, 0x17
|
|
beq _08057B84
|
|
cmp r0, 0x17
|
|
bgt _08057B78
|
|
cmp r0, 0x16
|
|
beq _08057B94
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057B70: .4byte gUnknown_3000E80
|
|
_08057B74: .4byte sub_8057DEC
|
|
_08057B78:
|
|
mov r1, r8
|
|
cmp r1, 0x1A
|
|
beq _08057BA4
|
|
cmp r1, 0x1D
|
|
beq _08057BC4
|
|
b _08057BD2
|
|
_08057B84:
|
|
ldr r0, _08057B90 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x83
|
|
strb r1, [r0]
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057B90: .4byte gUnknown_3000E80
|
|
_08057B94:
|
|
ldr r0, _08057BA0 @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x82
|
|
strb r1, [r0]
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057BA0: .4byte gUnknown_3000E80
|
|
_08057BA4:
|
|
ldr r0, _08057BBC @ =gUnknown_3000E80
|
|
adds r0, r7, r0
|
|
movs r1, 0x80
|
|
strb r1, [r0]
|
|
ldrb r0, [r6, 0x1]
|
|
cmp r0, 0
|
|
beq _08057BD2
|
|
ldr r0, _08057BC0 @ =sub_8057D5C
|
|
bl c1_link_related_func_set
|
|
b _08057BD2
|
|
.align 2, 0
|
|
_08057BBC: .4byte gUnknown_3000E80
|
|
_08057BC0: .4byte sub_8057D5C
|
|
_08057BC4:
|
|
ldr r0, _08057BE0 @ =gUnknown_3000E80
|
|
adds r1, r7, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x82
|
|
bne _08057BD2
|
|
movs r0, 0x81
|
|
strb r0, [r1]
|
|
_08057BD2:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057BE0: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_80579C4
|
|
|
|
thumb_func_start sub_8057BE4
|
|
sub_8057BE4: @ 8057BE4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
mov r8, r1
|
|
movs r6, 0
|
|
add r5, sp, 0x10
|
|
mov r9, r5
|
|
adds r7, r0, 0
|
|
_08057BF8:
|
|
ldrb r4, [r7]
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
mov r2, sp
|
|
bl sub_8057F84
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
mov r2, sp
|
|
adds r3, r5, 0
|
|
bl sub_80579C4
|
|
ldr r0, _08057C48 @ =gUnknown_3000E80
|
|
adds r0, r6, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
bne _08057C28
|
|
adds r0, r4, 0
|
|
bl sub_8057D14
|
|
mov r1, r9
|
|
strh r0, [r1]
|
|
_08057C28:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5]
|
|
bl sub_8058618
|
|
adds r7, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08057BF8
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057C48: .4byte gUnknown_3000E80
|
|
thumb_func_end sub_8057BE4
|
|
|
|
thumb_func_start sub_8057C4C
|
|
sub_8057C4C: @ 8057C4C
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
ldr r1, _08057C64 @ =0xffef0000
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _08057C6C
|
|
ldr r0, _08057C68 @ =gHeldKeyCodeToSend
|
|
strh r4, [r0]
|
|
b _08057C72
|
|
.align 2, 0
|
|
_08057C64: .4byte 0xffef0000
|
|
_08057C68: .4byte gHeldKeyCodeToSend
|
|
_08057C6C:
|
|
ldr r1, _08057CB0 @ =gHeldKeyCodeToSend
|
|
movs r0, 0x11
|
|
strh r0, [r1]
|
|
_08057C72:
|
|
ldr r0, _08057CB4 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08057CA8
|
|
bl sub_805833C
|
|
cmp r0, 0x1
|
|
bls _08057CA8
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _08057CA8
|
|
bl IsSendingKeysToLink
|
|
cmp r0, 0x1
|
|
bne _08057CA8
|
|
cmp r4, 0x11
|
|
blt _08057CA8
|
|
cmp r4, 0x15
|
|
ble _08057CA2
|
|
cmp r4, 0x19
|
|
bgt _08057CA8
|
|
cmp r4, 0x18
|
|
blt _08057CA8
|
|
_08057CA2:
|
|
ldr r1, _08057CB0 @ =gHeldKeyCodeToSend
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_08057CA8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057CB0: .4byte gHeldKeyCodeToSend
|
|
_08057CB4: .4byte gWirelessCommType
|
|
thumb_func_end sub_8057C4C
|
|
|
|
thumb_func_start sub_8057CB8
|
|
sub_8057CB8: @ 8057CB8
|
|
push {lr}
|
|
ldr r2, _08057CCC @ =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CD0
|
|
movs r0, 0x13
|
|
b _08057D10
|
|
.align 2, 0
|
|
_08057CCC: .4byte gMain
|
|
_08057CD0:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CDC
|
|
movs r0, 0x12
|
|
b _08057D10
|
|
_08057CDC:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CE8
|
|
movs r0, 0x14
|
|
b _08057D10
|
|
_08057CE8:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057CF4
|
|
movs r0, 0x15
|
|
b _08057D10
|
|
_08057CF4:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057D02
|
|
movs r0, 0x18
|
|
b _08057D10
|
|
_08057D02:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08057D0E
|
|
movs r0, 0x11
|
|
b _08057D10
|
|
_08057D0E:
|
|
movs r0, 0x19
|
|
_08057D10:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057CB8
|
|
|
|
thumb_func_start sub_8057D14
|
|
sub_8057D14: @ 8057D14
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, 0x13
|
|
beq _08057D3A
|
|
cmp r0, 0x13
|
|
bgt _08057D2A
|
|
cmp r0, 0x12
|
|
beq _08057D3E
|
|
b _08057D42
|
|
_08057D2A:
|
|
cmp r1, 0x14
|
|
beq _08057D36
|
|
cmp r1, 0x15
|
|
bne _08057D42
|
|
movs r0, 0x4
|
|
b _08057D44
|
|
_08057D36:
|
|
movs r0, 0x3
|
|
b _08057D44
|
|
_08057D3A:
|
|
movs r0, 0x1
|
|
b _08057D44
|
|
_08057D3E:
|
|
movs r0, 0x2
|
|
b _08057D44
|
|
_08057D42:
|
|
movs r0, 0
|
|
_08057D44:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D14
|
|
|
|
thumb_func_start sub_8057D48
|
|
sub_8057D48: @ 8057D48
|
|
push {lr}
|
|
movs r2, 0x11
|
|
adds r1, r0, 0x6
|
|
_08057D4E:
|
|
strh r2, [r1]
|
|
subs r1, 0x2
|
|
cmp r1, r0
|
|
bge _08057D4E
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8057D48
|
|
|
|
thumb_func_start sub_8057D5C
|
|
sub_8057D5C: @ 8057D5C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08057D70
|
|
movs r0, 0x11
|
|
b _08057D92
|
|
_08057D70:
|
|
bl GetLinkRecvQueueLength
|
|
cmp r0, 0x4
|
|
bls _08057D7C
|
|
movs r0, 0x1B
|
|
b _08057D92
|
|
_08057D7C:
|
|
bl sub_805833C
|
|
cmp r0, 0x4
|
|
bls _08057D88
|
|
movs r0, 0x1C
|
|
b _08057D92
|
|
_08057D88:
|
|
adds r0, r4, 0
|
|
bl sub_8057CB8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
_08057D92:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D5C
|
|
|
|
thumb_func_start sub_8057D98
|
|
sub_8057D98: @ 8057D98
|
|
push {lr}
|
|
bl sub_8057910
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057D98
|
|
|
|
thumb_func_start sub_8057DA4
|
|
sub_8057DA4: @ 8057DA4
|
|
push {r4,lr}
|
|
bl ScriptContext2_IsEnabled
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r4, 0x11
|
|
cmp r0, 0x1
|
|
beq _08057DBC
|
|
movs r4, 0x1A
|
|
ldr r0, _08057DC4 @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057DBC:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057DC4: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DA4
|
|
|
|
thumb_func_start sub_8057DC8
|
|
sub_8057DC8: @ 8057DC8
|
|
push {r4,lr}
|
|
bl GetLinkRecvQueueLength
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08057DE0
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, _08057DE8 @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057DE0:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057DE8: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DC8
|
|
|
|
thumb_func_start sub_8057DEC
|
|
sub_8057DEC: @ 8057DEC
|
|
push {r4,lr}
|
|
bl sub_805833C
|
|
movs r4, 0x11
|
|
cmp r0, 0x2
|
|
bhi _08057E04
|
|
movs r4, 0x1A
|
|
bl ScriptContext2_Disable
|
|
ldr r0, _08057E0C @ =sub_8057D98
|
|
bl c1_link_related_func_set
|
|
_08057E04:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E0C: .4byte sub_8057D98
|
|
thumb_func_end sub_8057DEC
|
|
|
|
thumb_func_start sub_8057E10
|
|
sub_8057E10: @ 8057E10
|
|
push {lr}
|
|
bl sub_8057910
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E10
|
|
|
|
thumb_func_start sub_8057E1C
|
|
sub_8057E1C: @ 8057E1C
|
|
push {lr}
|
|
ldr r1, _08057E40 @ =gUnknown_3000E80
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _08057E4C
|
|
ldr r0, _08057E44 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08057E50
|
|
ldr r0, _08057E48 @ =sub_8057E10
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x1D
|
|
b _08057E52
|
|
.align 2, 0
|
|
_08057E40: .4byte gUnknown_3000E80
|
|
_08057E44: .4byte gMain
|
|
_08057E48: .4byte sub_8057E10
|
|
_08057E4C:
|
|
bl sub_8057910
|
|
_08057E50:
|
|
movs r0, 0x11
|
|
_08057E52:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057E1C
|
|
|
|
thumb_func_start sub_8057E58
|
|
sub_8057E58: @ 8057E58
|
|
push {lr}
|
|
ldr r0, _08057E68 @ =sub_8057E1C
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E68: .4byte sub_8057E1C
|
|
thumb_func_end sub_8057E58
|
|
|
|
thumb_func_start sub_8057E6C
|
|
sub_8057E6C: @ 8057E6C
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_8057E6C
|
|
|
|
thumb_func_start sub_8057E70
|
|
sub_8057E70: @ 8057E70
|
|
push {lr}
|
|
ldr r1, _08057E9C @ =gUnknown_3000E80
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x83
|
|
beq _08057E80
|
|
bl sub_8057910
|
|
_08057E80:
|
|
movs r0, 0x83
|
|
bl sub_8057954
|
|
cmp r0, 0x1
|
|
bne _08057E96
|
|
ldr r0, _08057EA0 @ =CableClub_EventScript_DoLinkRoomExit
|
|
bl ScriptContext1_SetupScript
|
|
ldr r0, _08057EA4 @ =sub_8057E6C
|
|
bl c1_link_related_func_set
|
|
_08057E96:
|
|
movs r0, 0x11
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057E9C: .4byte gUnknown_3000E80
|
|
_08057EA0: .4byte CableClub_EventScript_DoLinkRoomExit
|
|
_08057EA4: .4byte sub_8057E6C
|
|
thumb_func_end sub_8057E70
|
|
|
|
thumb_func_start sub_8057EA8
|
|
sub_8057EA8: @ 8057EA8
|
|
push {lr}
|
|
ldr r0, _08057EB8 @ =sub_8057E70
|
|
bl c1_link_related_func_set
|
|
movs r0, 0x17
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057EB8: .4byte sub_8057E70
|
|
thumb_func_end sub_8057EA8
|
|
|
|
thumb_func_start sub_8057EBC
|
|
sub_8057EBC: @ 8057EBC
|
|
movs r0, 0x11
|
|
bx lr
|
|
thumb_func_end sub_8057EBC
|
|
|
|
thumb_func_start sub_8057EC0
|
|
sub_8057EC0: @ 8057EC0
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
cmp r0, 0x1
|
|
beq _08057EFC
|
|
ldr r0, _08057F00 @ =gUnknown_3000E84
|
|
ldr r2, [r0]
|
|
ldr r1, _08057F04 @ =sub_8057E1C
|
|
adds r3, r0, 0
|
|
cmp r2, r1
|
|
bne _08057EE6
|
|
ldr r1, _08057F08 @ =gUnknown_3000E80
|
|
ldr r0, _08057F0C @ =gLocalLinkPlayerId
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
bne _08057F1E
|
|
_08057EE6:
|
|
ldr r1, [r3]
|
|
ldr r0, _08057F10 @ =sub_8057E10
|
|
cmp r1, r0
|
|
bne _08057F14
|
|
ldr r1, _08057F08 @ =gUnknown_3000E80
|
|
ldr r0, _08057F0C @ =gLocalLinkPlayerId
|
|
ldrb r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x81
|
|
bne _08057F14
|
|
_08057EFC:
|
|
movs r0, 0x2
|
|
b _08057F24
|
|
.align 2, 0
|
|
_08057F00: .4byte gUnknown_3000E84
|
|
_08057F04: .4byte sub_8057E1C
|
|
_08057F08: .4byte gUnknown_3000E80
|
|
_08057F0C: .4byte gLocalLinkPlayerId
|
|
_08057F10: .4byte sub_8057E10
|
|
_08057F14:
|
|
movs r0, 0x82
|
|
bl sub_8057954
|
|
cmp r0, 0
|
|
bne _08057F22
|
|
_08057F1E:
|
|
movs r0, 0
|
|
b _08057F24
|
|
_08057F22:
|
|
movs r0, 0x1
|
|
_08057F24:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057EC0
|
|
|
|
thumb_func_start sub_8057F28
|
|
sub_8057F28: @ 8057F28
|
|
push {lr}
|
|
movs r0, 0x83
|
|
bl sub_805798C
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057F28
|
|
|
|
thumb_func_start sub_8057F34
|
|
sub_8057F34: @ 8057F34
|
|
push {lr}
|
|
ldr r0, _08057F44 @ =sub_8057E58
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F44: .4byte sub_8057E58
|
|
thumb_func_end sub_8057F34
|
|
|
|
thumb_func_start sub_8057F48
|
|
sub_8057F48: @ 8057F48
|
|
push {lr}
|
|
ldr r0, _08057F58 @ =sub_8057DA4
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F58: .4byte sub_8057DA4
|
|
thumb_func_end sub_8057F48
|
|
|
|
thumb_func_start sub_8057F5C
|
|
sub_8057F5C: @ 8057F5C
|
|
push {lr}
|
|
ldr r0, _08057F6C @ =sub_8057EA8
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F6C: .4byte sub_8057EA8
|
|
thumb_func_end sub_8057F5C
|
|
|
|
thumb_func_start sub_8057F70
|
|
sub_8057F70: @ 8057F70
|
|
push {lr}
|
|
ldr r0, _08057F80 @ =sub_8057EBC
|
|
bl c1_link_related_func_set
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08057F80: .4byte sub_8057EBC
|
|
thumb_func_end sub_8057F70
|
|
|
|
thumb_func_start sub_8057F84
|
|
sub_8057F84: @ 8057F84
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r6, r2, 0
|
|
strb r4, [r6]
|
|
movs r0, 0
|
|
cmp r4, r1
|
|
bne _08057F96
|
|
movs r0, 0x1
|
|
_08057F96:
|
|
strb r0, [r6, 0x1]
|
|
ldr r1, _08057FE8 @ =gLinkPlayerObjectEvents
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x3]
|
|
strb r0, [r6, 0x2]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_805854C
|
|
strb r0, [r6, 0x3]
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_8058524
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r6, 0x4]
|
|
ldrh r0, [r5]
|
|
strh r0, [r6, 0x6]
|
|
adds r0, r4, 0
|
|
bl sub_805856C
|
|
strb r0, [r6, 0x8]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
bl MapGridGetMetatileBehaviorAt
|
|
strh r0, [r6, 0xC]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08057FE8: .4byte gLinkPlayerObjectEvents
|
|
thumb_func_end sub_8057F84
|
|
|
|
thumb_func_start sub_8057FEC
|
|
sub_8057FEC: @ 8057FEC
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08057FF8
|
|
cmp r0, 0
|
|
bne _08057FFC
|
|
_08057FF8:
|
|
movs r0, 0x1
|
|
b _08057FFE
|
|
_08057FFC:
|
|
movs r0, 0
|
|
_08057FFE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8057FEC
|
|
|
|
thumb_func_start sub_8058004
|
|
sub_8058004: @ 8058004
|
|
push {lr}
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08058010
|
|
cmp r0, 0
|
|
bne _08058014
|
|
_08058010:
|
|
movs r0, 0x1
|
|
b _08058016
|
|
_08058014:
|
|
movs r0, 0
|
|
_08058016:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058004
|
|
|
|
thumb_func_start sub_805801C
|
|
sub_805801C: @ 805801C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x2
|
|
bne _0805802E
|
|
adds r0, r1, 0x4
|
|
bl GetCoordEventScriptAtMapPosition
|
|
b _08058030
|
|
_0805802E:
|
|
movs r0, 0
|
|
_08058030:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805801C
|
|
|
|
thumb_func_start sub_8058034
|
|
sub_8058034: @ 8058034
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
beq _08058042
|
|
cmp r0, 0
|
|
bne _08058058
|
|
_08058042:
|
|
ldrb r0, [r4, 0xC]
|
|
bl MetatileBehavior_IsSouthArrowWarp
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08058058
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0x1
|
|
bne _08058058
|
|
movs r0, 0x1
|
|
b _0805805A
|
|
_08058058:
|
|
movs r0, 0
|
|
_0805805A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058034
|
|
|
|
thumb_func_start sub_8058060
|
|
sub_8058060: @ 8058060
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _08058074
|
|
cmp r0, 0x2
|
|
beq _08058074
|
|
movs r0, 0
|
|
b _08058122
|
|
_08058074:
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r4, 0x8]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r3, _080580E4 @ =gDirectionToVectors
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _080580E8 @ =0xffff0000
|
|
ldr r2, [sp]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp]
|
|
asrs r1, r2, 16
|
|
ldrb r0, [r4, 0x3]
|
|
lsls r0, 3
|
|
adds r3, 0x4
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldr r1, _080580EC @ =0x0000ffff
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
ldr r2, _080580F0 @ =0xffffff00
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r2
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
asrs r1, 16
|
|
bl GetLinkPlayerIdAt
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r2, r1, 0
|
|
cmp r1, 0x4
|
|
beq _08058118
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _080580E0
|
|
ldr r0, _080580F4 @ =gUnknown_3000E80
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
beq _080580FC
|
|
_080580E0:
|
|
ldr r0, _080580F8 @ =CableClub_EventScript_TooBusyToNotice
|
|
b _08058122
|
|
.align 2, 0
|
|
_080580E4: .4byte gDirectionToVectors
|
|
_080580E8: .4byte 0xffff0000
|
|
_080580EC: .4byte 0x0000ffff
|
|
_080580F0: .4byte 0xffffff00
|
|
_080580F4: .4byte gUnknown_3000E80
|
|
_080580F8: .4byte CableClub_EventScript_TooBusyToNotice
|
|
_080580FC:
|
|
adds r0, r2, 0
|
|
bl GetSeeingLinkPlayerCardMsg
|
|
cmp r0, 0
|
|
bne _08058110
|
|
ldr r0, _0805810C @ =CableClub_EventScript_ReadTrainerCard
|
|
b _08058122
|
|
.align 2, 0
|
|
_0805810C: .4byte CableClub_EventScript_ReadTrainerCard
|
|
_08058110:
|
|
ldr r0, _08058114 @ =CableClub_EventScript_ReadTrainerCardColored
|
|
b _08058122
|
|
.align 2, 0
|
|
_08058114: .4byte CableClub_EventScript_ReadTrainerCardColored
|
|
_08058118:
|
|
ldrb r1, [r4, 0xC]
|
|
ldrb r2, [r4, 0x3]
|
|
mov r0, sp
|
|
bl GetInteractedLinkPlayerScript
|
|
_08058122:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058060
|
|
|
|
thumb_func_start sub_805812C
|
|
sub_805812C: @ 805812C
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08058178 @ =BattleColosseum_4P_EventScript_PlayerSpot0
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805817C @ =BattleColosseum_4P_EventScript_PlayerSpot1
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058180 @ =BattleColosseum_4P_EventScript_PlayerSpot2
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _08058184 @ =BattleColosseum_4P_EventScript_PlayerSpot3
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058188 @ =RecordCenter_EventScript_Spot
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805818C @ =RecordCenter_EventScript_Spot
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058190 @ =RecordCenter_EventScript_Spot
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _08058194 @ =RecordCenter_EventScript_Spot
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _08058198 @ =BattleColosseum_2P_EventScript_PlayerSpot0
|
|
cmp r1, r0
|
|
beq _08058172
|
|
ldr r0, _0805819C @ =BattleColosseum_2P_EventScript_PlayerSpot1
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
ldr r0, _080581A0 @ =TradeCenter_EventScript_Chair0
|
|
cmp r1, r0
|
|
bne _080581A4
|
|
_08058172:
|
|
movs r0, 0xA
|
|
b _080581B6
|
|
.align 2, 0
|
|
_08058178: .4byte BattleColosseum_4P_EventScript_PlayerSpot0
|
|
_0805817C: .4byte BattleColosseum_4P_EventScript_PlayerSpot1
|
|
_08058180: .4byte BattleColosseum_4P_EventScript_PlayerSpot2
|
|
_08058184: .4byte BattleColosseum_4P_EventScript_PlayerSpot3
|
|
_08058188: .4byte RecordCenter_EventScript_Spot
|
|
_0805818C: .4byte RecordCenter_EventScript_Spot
|
|
_08058190: .4byte RecordCenter_EventScript_Spot
|
|
_08058194: .4byte RecordCenter_EventScript_Spot
|
|
_08058198: .4byte BattleColosseum_2P_EventScript_PlayerSpot0
|
|
_0805819C: .4byte BattleColosseum_2P_EventScript_PlayerSpot1
|
|
_080581A0: .4byte TradeCenter_EventScript_Chair0
|
|
_080581A4:
|
|
ldr r0, _080581B0 @ =TradeCenter_EventScript_Chair1
|
|
cmp r1, r0
|
|
beq _080581B4
|
|
movs r0, 0
|
|
b _080581B6
|
|
.align 2, 0
|
|
_080581B0: .4byte TradeCenter_EventScript_Chair1
|
|
_080581B4:
|
|
movs r0, 0x9
|
|
_080581B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_805812C
|
|
|
|
thumb_func_start sub_80581BC
|
|
sub_80581BC: @ 80581BC
|
|
push {lr}
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80581BC
|
|
|
|
thumb_func_start sub_80581C8
|
|
sub_80581C8: @ 80581C8
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
bl ShowStartMenu
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80581C8
|
|
|
|
thumb_func_start sub_80581DC
|
|
sub_80581DC: @ 80581DC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80581DC
|
|
|
|
thumb_func_start sub_80581F8
|
|
sub_80581F8: @ 80581F8
|
|
push {lr}
|
|
movs r0, 0x6
|
|
bl PlaySE
|
|
ldr r0, _08058210 @ =TradeCenter_ConfirmLeaveRoom
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058210: .4byte TradeCenter_ConfirmLeaveRoom
|
|
thumb_func_end sub_80581F8
|
|
|
|
thumb_func_start sub_8058214
|
|
sub_8058214: @ 8058214
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
adds r0, r4, 0
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8058214
|
|
|
|
thumb_func_start sub_8058230
|
|
sub_8058230: @ 8058230
|
|
push {lr}
|
|
ldr r0, _08058240 @ =TradeCenter_TerminateLink
|
|
bl ScriptContext1_SetupScript
|
|
bl ScriptContext2_Enable
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058240: .4byte TradeCenter_TerminateLink
|
|
thumb_func_end sub_8058230
|
|
|
|
thumb_func_start sub_8058244
|
|
sub_8058244: @ 8058244
|
|
push {lr}
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0
|
|
bne _08058252
|
|
movs r0, 0
|
|
b _0805826C
|
|
_08058252:
|
|
bl GetLinkRecvQueueLength
|
|
cmp r0, 0x2
|
|
bls _08058264
|
|
ldr r1, _08058260 @ =gUnknown_3000E88
|
|
movs r0, 0x1
|
|
b _08058268
|
|
.align 2, 0
|
|
_08058260: .4byte gUnknown_3000E88
|
|
_08058264:
|
|
ldr r1, _08058270 @ =gUnknown_3000E88
|
|
movs r0, 0
|
|
_08058268:
|
|
strb r0, [r1]
|
|
ldrb r0, [r1]
|
|
_0805826C:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058270: .4byte gUnknown_3000E88
|
|
thumb_func_end sub_8058244
|
|
|
|
thumb_func_start sub_8058274
|
|
sub_8058274: @ 8058274
|
|
push {lr}
|
|
bl GetLinkRecvQueueLength
|
|
cmp r0, 0x1
|
|
bls _080582D8
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _080582D8
|
|
bl IsSendingKeysToLink
|
|
cmp r0, 0x1
|
|
bne _080582D8
|
|
ldr r0, _080582C4 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
ldr r0, _080582C8 @ =sub_8057DC8
|
|
cmp r1, r0
|
|
beq _080582C0
|
|
ldr r0, _080582CC @ =sub_8057DA4
|
|
cmp r1, r0
|
|
bne _080582D8
|
|
ldr r0, _080582D0 @ =gUnknown_3000E88
|
|
ldrb r2, [r0]
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
cmp r2, 0x1
|
|
beq _080582C0
|
|
ldr r2, _080582D4 @ =gPaletteFade
|
|
ldrb r1, [r2, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080582D8
|
|
ldrb r1, [r2, 0xA]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080582D8
|
|
_080582C0:
|
|
movs r0, 0x1
|
|
b _080582DA
|
|
.align 2, 0
|
|
_080582C4: .4byte gUnknown_3000E84
|
|
_080582C8: .4byte sub_8057DC8
|
|
_080582CC: .4byte sub_8057DA4
|
|
_080582D0: .4byte gUnknown_3000E88
|
|
_080582D4: .4byte gPaletteFade
|
|
_080582D8:
|
|
movs r0, 0
|
|
_080582DA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058274
|
|
|
|
thumb_func_start sub_80582E0
|
|
sub_80582E0: @ 80582E0
|
|
push {lr}
|
|
bl sub_805833C
|
|
cmp r0, 0x1
|
|
bls _08058304
|
|
bl IsUpdateLinkStateCBActive
|
|
cmp r0, 0x1
|
|
bne _08058304
|
|
bl IsSendingKeysToLink
|
|
cmp r0, 0x1
|
|
bne _08058304
|
|
ldr r0, _08058308 @ =gUnknown_3000E84
|
|
ldr r1, [r0]
|
|
ldr r0, _0805830C @ =sub_8057DEC
|
|
cmp r1, r0
|
|
beq _08058310
|
|
_08058304:
|
|
movs r0, 0
|
|
b _08058312
|
|
.align 2, 0
|
|
_08058308: .4byte gUnknown_3000E84
|
|
_0805830C: .4byte sub_8057DEC
|
|
_08058310:
|
|
movs r0, 0x1
|
|
_08058312:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80582E0
|
|
|
|
thumb_func_start sub_8058318
|
|
sub_8058318: @ 8058318
|
|
push {lr}
|
|
ldr r0, _08058330 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08058334
|
|
bl IsSendingKeysToLink
|
|
cmp r0, 0
|
|
beq _08058334
|
|
movs r0, 0x1
|
|
b _08058336
|
|
.align 2, 0
|
|
_08058330: .4byte gWirelessCommType
|
|
_08058334:
|
|
movs r0, 0
|
|
_08058336:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058318
|
|
|
|
thumb_func_start sub_805833C
|
|
sub_805833C: @ 805833C
|
|
push {lr}
|
|
ldr r0, _08058350 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0805835C
|
|
ldr r0, _08058354 @ =gLink
|
|
ldr r1, _08058358 @ =0x00000339
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _08058364
|
|
.align 2, 0
|
|
_08058350: .4byte gWirelessCommType
|
|
_08058354: .4byte gLink
|
|
_08058358: .4byte 0x00000339
|
|
_0805835C:
|
|
ldr r0, _08058368 @ =Rfu
|
|
ldr r1, _0805836C @ =0x000008d2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
_08058364:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08058368: .4byte Rfu
|
|
_0805836C: .4byte 0x000008d2
|
|
thumb_func_end sub_805833C
|
|
|
|
thumb_func_start ZeroLinkPlayerObjectEvent
|
|
ZeroLinkPlayerObjectEvent: @ 8058370
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end ZeroLinkPlayerObjectEvent
|
|
|
|
thumb_func_start ClearLinkPlayerObjectEvents
|
|
ClearLinkPlayerObjectEvents: @ 8058378
|
|
push {lr}
|
|
ldr r0, _08058388 @ =gLinkPlayerObjectEvents
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058388: .4byte gLinkPlayerObjectEvents
|
|
thumb_func_end ClearLinkPlayerObjectEvents
|
|
|
|
thumb_func_start ZeroObjectEvent
|
|
ZeroObjectEvent: @ 805838C
|
|
push {lr}
|
|
movs r1, 0
|
|
movs r2, 0x24
|
|
bl memset
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end ZeroObjectEvent
|
|
|
|
thumb_func_start SpawnLinkPlayerObjectEvent
|
|
SpawnLinkPlayerObjectEvent: @ 805839C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r9, r1
|
|
mov r10, r2
|
|
mov r8, r3
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r0, r9
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
mov r1, r10
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r10, r1
|
|
mov r2, r8
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
bl GetFirstInactiveObjectEventId
|
|
adds r6, r0, 0
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
lsls r4, r7, 2
|
|
ldr r0, _08058440 @ =gLinkPlayerObjectEvents
|
|
adds r4, r0
|
|
lsls r5, r6, 3
|
|
adds r5, r6
|
|
lsls r5, 2
|
|
ldr r0, _08058444 @ =gObjectEvents
|
|
adds r5, r0
|
|
adds r0, r4, 0
|
|
bl ZeroLinkPlayerObjectEvent
|
|
adds r0, r5, 0
|
|
bl ZeroObjectEvent
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
strb r7, [r4, 0x1]
|
|
strb r6, [r4, 0x2]
|
|
strb r2, [r4, 0x3]
|
|
ldrb r0, [r5]
|
|
orrs r0, r1
|
|
mov r2, r8
|
|
ands r2, r1
|
|
lsls r2, 1
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x19]
|
|
movs r0, 0x40
|
|
strb r0, [r5, 0x4]
|
|
mov r0, r9
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
mov r1, r10
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r10, r1
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
mov r2, r10
|
|
bl InitLinkPlayerObjectEventPos
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058440: .4byte gLinkPlayerObjectEvents
|
|
_08058444: .4byte gObjectEvents
|
|
thumb_func_end SpawnLinkPlayerObjectEvent
|
|
|
|
thumb_func_start InitLinkPlayerObjectEventPos
|
|
InitLinkPlayerObjectEventPos: @ 8058448
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
strh r0, [r4, 0x10]
|
|
strh r1, [r4, 0x12]
|
|
strh r0, [r4, 0x14]
|
|
strh r1, [r4, 0x16]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r4, 0
|
|
adds r2, 0xC
|
|
adds r3, r4, 0
|
|
adds r3, 0xE
|
|
bl SetSpritePosToMapCoords
|
|
ldrh r0, [r4, 0xC]
|
|
adds r0, 0x8
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r4, 0
|
|
bl ObjectEventUpdateZCoord
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end InitLinkPlayerObjectEventPos
|
|
|
|
thumb_func_start sub_8058488
|
|
sub_8058488: @ 8058488
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
ldr r1, _080584B0 @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080584AA
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080584B4 @ =gObjectEvents
|
|
adds r1, r0
|
|
strb r2, [r1, 0x19]
|
|
_080584AA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080584B0: .4byte gLinkPlayerObjectEvents
|
|
_080584B4: .4byte gObjectEvents
|
|
thumb_func_end sub_8058488
|
|
|
|
thumb_func_start sub_80584B8
|
|
sub_80584B8: @ 80584B8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
ldr r1, _080584F8 @ =gLinkPlayerObjectEvents
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080584FC @ =gObjectEvents
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x40
|
|
beq _080584E4
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058500 @ =gSprites
|
|
adds r0, r1
|
|
bl DestroySprite
|
|
_080584E4:
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
ldrb r1, [r4]
|
|
subs r0, 0x2
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080584F8: .4byte gLinkPlayerObjectEvents
|
|
_080584FC: .4byte gObjectEvents
|
|
_08058500: .4byte gSprites
|
|
thumb_func_end sub_80584B8
|
|
|
|
thumb_func_start GetSpriteForLinkedPlayer
|
|
GetSpriteForLinkedPlayer: @ 8058504
|
|
lsls r0, 24
|
|
ldr r1, _0805851C @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058520 @ =gObjectEvents
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805851C: .4byte gLinkPlayerObjectEvents
|
|
_08058520: .4byte gObjectEvents
|
|
thumb_func_end GetSpriteForLinkedPlayer
|
|
|
|
thumb_func_start sub_8058524
|
|
sub_8058524: @ 8058524
|
|
lsls r0, 24
|
|
ldr r3, _08058544 @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r0, r3
|
|
ldrb r3, [r0, 0x2]
|
|
lsls r0, r3, 3
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r3, _08058548 @ =gObjectEvents
|
|
adds r0, r3
|
|
ldrh r3, [r0, 0x10]
|
|
strh r3, [r1]
|
|
ldrh r0, [r0, 0x12]
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08058544: .4byte gLinkPlayerObjectEvents
|
|
_08058548: .4byte gObjectEvents
|
|
thumb_func_end sub_8058524
|
|
|
|
thumb_func_start sub_805854C
|
|
sub_805854C: @ 805854C
|
|
lsls r0, 24
|
|
ldr r1, _08058564 @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058568 @ =gObjectEvents
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x19]
|
|
bx lr
|
|
.align 2, 0
|
|
_08058564: .4byte gLinkPlayerObjectEvents
|
|
_08058568: .4byte gObjectEvents
|
|
thumb_func_end sub_805854C
|
|
|
|
thumb_func_start sub_805856C
|
|
sub_805856C: @ 805856C
|
|
lsls r0, 24
|
|
ldr r1, _08058588 @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805858C @ =gObjectEvents
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 28
|
|
lsrs r0, 28
|
|
bx lr
|
|
.align 2, 0
|
|
_08058588: .4byte gLinkPlayerObjectEvents
|
|
_0805858C: .4byte gObjectEvents
|
|
thumb_func_end sub_805856C
|
|
|
|
thumb_func_start sub_8058590
|
|
sub_8058590: @ 8058590
|
|
lsls r0, 24
|
|
ldr r1, _080585B0 @ =gLinkPlayerObjectEvents
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldrb r1, [r0, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080585B4 @ =gObjectEvents
|
|
adds r0, r1
|
|
adds r0, 0x21
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
movs r0, 0x10
|
|
subs r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080585B0: .4byte gLinkPlayerObjectEvents
|
|
_080585B4: .4byte gObjectEvents
|
|
thumb_func_end sub_8058590
|
|
|
|
thumb_func_start GetLinkPlayerIdAt
|
|
GetLinkPlayerIdAt: @ 80585B8
|
|
push {r4-r6,lr}
|
|
movs r2, 0
|
|
ldr r5, _080585FC @ =gLinkPlayerObjectEvents
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
_080585C6:
|
|
lsls r0, r2, 2
|
|
adds r1, r0, r5
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08058604
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0
|
|
beq _080585DA
|
|
cmp r0, 0x2
|
|
bne _08058604
|
|
_080585DA:
|
|
ldrb r1, [r1, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058600 @ =gObjectEvents
|
|
adds r1, r0, r1
|
|
movs r6, 0x10
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r4
|
|
bne _08058604
|
|
movs r6, 0x12
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r3
|
|
bne _08058604
|
|
adds r0, r2, 0
|
|
b _08058610
|
|
.align 2, 0
|
|
_080585FC: .4byte gLinkPlayerObjectEvents
|
|
_08058600: .4byte gObjectEvents
|
|
_08058604:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x3
|
|
bls _080585C6
|
|
movs r0, 0x4
|
|
_08058610:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GetLinkPlayerIdAt
|
|
|
|
thumb_func_start sub_8058618
|
|
sub_8058618: @ 8058618
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
adds r2, r3, 0
|
|
lsrs r0, 22
|
|
ldr r1, _08058648 @ =gLinkPlayerObjectEvents
|
|
adds r5, r0, r1
|
|
ldrb r1, [r5, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _0805864C @ =gObjectEvents
|
|
adds r6, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08058674
|
|
cmp r3, 0xA
|
|
bls _08058650
|
|
ldrb r0, [r6]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
b _08058674
|
|
.align 2, 0
|
|
_08058648: .4byte gLinkPlayerObjectEvents
|
|
_0805864C: .4byte gObjectEvents
|
|
_08058650:
|
|
ldr r4, _0805867C @ =gUnknown_826D374
|
|
ldr r1, _08058680 @ =gUnknown_826D33C
|
|
ldrb r0, [r5, 0x3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r3, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 22
|
|
adds r0, r4
|
|
ldr r2, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
_08058674:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0805867C: .4byte gUnknown_826D374
|
|
_08058680: .4byte gUnknown_826D33C
|
|
thumb_func_end sub_8058618
|
|
|
|
thumb_func_start sub_8058684
|
|
sub_8058684: @ 8058684
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, _080586A0 @ =gUnknown_826D348
|
|
lsls r3, r2, 2
|
|
adds r3, r4
|
|
ldr r3, [r3]
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080586A0: .4byte gUnknown_826D348
|
|
thumb_func_end sub_8058684
|
|
|
|
thumb_func_start sub_80586A4
|
|
sub_80586A4: @ 80586A4
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80586A4
|
|
|
|
thumb_func_start sub_80586A8
|
|
sub_80586A8: @ 80586A8
|
|
push {r4,lr}
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, _080586C4 @ =gUnknown_826D348
|
|
lsls r3, r2, 2
|
|
adds r3, r4
|
|
ldr r3, [r3]
|
|
bl _call_via_r3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080586C4: .4byte gUnknown_826D348
|
|
thumb_func_end sub_80586A8
|
|
|
|
thumb_func_start sub_80586C8
|
|
sub_80586C8: @ 80586C8
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80586C8
|
|
|
|
thumb_func_start sub_80586CC
|
|
sub_80586CC: @ 80586CC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5, 0x19]
|
|
bl npc_something3
|
|
strb r0, [r5, 0x19]
|
|
ldrb r1, [r5, 0x19]
|
|
mov r6, sp
|
|
adds r6, 0x2
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
adds r3, r6, 0
|
|
bl ObjectEventMoveDestCoords
|
|
ldrb r0, [r4, 0x2]
|
|
ldrb r1, [r5, 0x19]
|
|
mov r2, sp
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
movs r4, 0
|
|
ldrsh r3, [r6, r4]
|
|
bl npc_080587EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0805872A
|
|
adds r1, r5, 0
|
|
adds r1, 0x21
|
|
movs r0, 0x10
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r3, 0
|
|
ldrsh r2, [r6, r3]
|
|
adds r0, r5, 0
|
|
bl ShiftObjectEventCoords
|
|
adds r0, r5, 0
|
|
bl ObjectEventUpdateZCoord
|
|
movs r0, 0x1
|
|
b _0805872C
|
|
_0805872A:
|
|
movs r0, 0
|
|
_0805872C:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80586CC
|
|
|
|
thumb_func_start sub_8058734
|
|
sub_8058734: @ 8058734
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r4, 0x19]
|
|
bl npc_something3
|
|
strb r0, [r4, 0x19]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8058734
|
|
|
|
thumb_func_start sub_805874C
|
|
sub_805874C: @ 805874C
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
bx lr
|
|
thumb_func_end sub_805874C
|
|
|
|
thumb_func_start sub_8058754
|
|
sub_8058754: @ 8058754
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r4, 0
|
|
adds r5, 0x21
|
|
ldrb r0, [r5]
|
|
subs r0, 0x1
|
|
strb r0, [r5]
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x3]
|
|
ldrb r0, [r4, 0x19]
|
|
adds r1, 0xC
|
|
adds r2, r4, 0
|
|
adds r2, 0xE
|
|
bl MoveCoords
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
bne _08058784
|
|
adds r0, r4, 0
|
|
bl ShiftStillObjectEventCoords
|
|
movs r0, 0x2
|
|
strb r0, [r6, 0x3]
|
|
_08058784:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8058754
|
|
|
|
thumb_func_start npc_something3
|
|
npc_something3: @ 805878C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r2, r1, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x9
|
|
bhi _080587E4
|
|
lsls r0, 2
|
|
ldr r1, _080587A8 @ =_080587AC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080587A8: .4byte _080587AC
|
|
.align 2, 0
|
|
_080587AC:
|
|
.4byte _080587D4
|
|
.4byte _080587D8
|
|
.4byte _080587DC
|
|
.4byte _080587E0
|
|
.4byte _080587E4
|
|
.4byte _080587E4
|
|
.4byte _080587D4
|
|
.4byte _080587D8
|
|
.4byte _080587DC
|
|
.4byte _080587E0
|
|
_080587D4:
|
|
movs r0, 0x2
|
|
b _080587E6
|
|
_080587D8:
|
|
movs r0, 0x1
|
|
b _080587E6
|
|
_080587DC:
|
|
movs r0, 0x3
|
|
b _080587E6
|
|
_080587E0:
|
|
movs r0, 0x4
|
|
b _080587E6
|
|
_080587E4:
|
|
adds r0, r2, 0
|
|
_080587E6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_something3
|
|
|
|
thumb_func_start npc_080587EC
|
|
npc_080587EC: @ 80587EC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
mov r12, r2
|
|
lsls r3, 16
|
|
movs r4, 0
|
|
ldr r0, _08058850 @ =gObjectEvents
|
|
mov r9, r0
|
|
lsrs r2, r3, 16
|
|
mov r10, r2
|
|
asrs r6, r3, 16
|
|
_08058810:
|
|
mov r7, r12
|
|
lsls r3, r7, 16
|
|
mov r0, r10
|
|
lsls r5, r0, 16
|
|
cmp r4, r8
|
|
beq _08058854
|
|
lsls r0, r4, 3
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
mov r2, r9
|
|
adds r1, r0, r2
|
|
movs r7, 0x10
|
|
ldrsh r0, [r1, r7]
|
|
asrs r2, r3, 16
|
|
cmp r0, r2
|
|
bne _08058838
|
|
movs r7, 0x12
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r6
|
|
beq _0805884A
|
|
_08058838:
|
|
movs r7, 0x14
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r2
|
|
bne _08058854
|
|
movs r0, 0x16
|
|
ldrsh r1, [r1, r0]
|
|
asrs r0, r5, 16
|
|
cmp r1, r0
|
|
bne _08058854
|
|
_0805884A:
|
|
movs r0, 0x1
|
|
b _0805886A
|
|
.align 2, 0
|
|
_08058850: .4byte gObjectEvents
|
|
_08058854:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0xF
|
|
bls _08058810
|
|
asrs r0, r3, 16
|
|
asrs r1, r5, 16
|
|
bl MapGridIsImpassableAt
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_0805886A:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end npc_080587EC
|
|
|
|
thumb_func_start CreateLinkPlayerSprite
|
|
CreateLinkPlayerSprite: @ 8058878
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r1, 24
|
|
lsrs r3, r1, 24
|
|
lsls r2, r5, 2
|
|
ldr r0, _080588B4 @ =gLinkPlayerObjectEvents
|
|
adds r2, r0
|
|
ldrb r1, [r2, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080588B8 @ =gObjectEvents
|
|
adds r4, r0, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080588FC
|
|
subs r0, r3, 0x4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bhi _080588BC
|
|
ldrb r1, [r4]
|
|
lsls r1, 30
|
|
lsrs r1, 31
|
|
movs r0, 0
|
|
bl GetRivalAvatarGraphicsIdByStateIdAndGender
|
|
b _080588C6
|
|
.align 2, 0
|
|
_080588B4: .4byte gLinkPlayerObjectEvents
|
|
_080588B8: .4byte gObjectEvents
|
|
_080588BC:
|
|
ldrb r0, [r4]
|
|
lsls r0, 30
|
|
lsrs r0, 31
|
|
bl GetHoennLinkPartnerGraphicsIdByGender
|
|
_080588C6:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08058904 @ =SpriteCB_LinkPlayer
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r3, 0
|
|
bl AddPseudoObjectEvent
|
|
strb r0, [r4, 0x4]
|
|
ldrb r1, [r4, 0x4]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058908 @ =gSprites
|
|
adds r0, r1
|
|
adds r3, r0, 0
|
|
adds r3, 0x3E
|
|
ldrb r1, [r3]
|
|
movs r2, 0x2
|
|
orrs r1, r2
|
|
strb r1, [r3]
|
|
strh r5, [r0, 0x2E]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r4]
|
|
_080588FC:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08058904: .4byte SpriteCB_LinkPlayer
|
|
_08058908: .4byte gSprites
|
|
thumb_func_end CreateLinkPlayerSprite
|
|
|
|
thumb_func_start SpriteCB_LinkPlayer
|
|
SpriteCB_LinkPlayer: @ 805890C
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
movs r0, 0x2E
|
|
ldrsh r4, [r5, r0]
|
|
lsls r4, 2
|
|
ldr r0, _08058970 @ =gLinkPlayerObjectEvents
|
|
adds r4, r0
|
|
ldrb r1, [r4, 0x2]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _08058974 @ =gObjectEvents
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6, 0xC]
|
|
strh r0, [r5, 0x20]
|
|
ldrh r0, [r6, 0xE]
|
|
strh r0, [r5, 0x22]
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl SetObjectSubpriorityByZCoord
|
|
ldrb r0, [r6, 0xB]
|
|
lsrs r0, 4
|
|
bl ZCoordToPriority
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
lsls r1, 2
|
|
ldrb r2, [r5, 0x5]
|
|
movs r0, 0xD
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, 0x5]
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0
|
|
bne _08058978
|
|
ldrb r0, [r6, 0x19]
|
|
bl GetFaceDirectionAnimNum
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnim
|
|
b _0805898A
|
|
.align 2, 0
|
|
_08058970: .4byte gLinkPlayerObjectEvents
|
|
_08058974: .4byte gObjectEvents
|
|
_08058978:
|
|
ldrb r0, [r6, 0x19]
|
|
bl GetMoveDirectionAnimNum
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r5, 0
|
|
bl StartSpriteAnimIfDifferent
|
|
_0805898A:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl UpdateObjectEventSpriteVisibility
|
|
ldrb r0, [r6]
|
|
lsls r0, 29
|
|
cmp r0, 0
|
|
bge _080589BC
|
|
ldrh r0, [r5, 0x3C]
|
|
movs r1, 0x4
|
|
ands r1, r0
|
|
lsls r1, 16
|
|
adds r3, r5, 0
|
|
adds r3, 0x3E
|
|
lsrs r1, 18
|
|
lsls r1, 2
|
|
ldrb r2, [r3]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
ldrh r0, [r5, 0x3C]
|
|
adds r0, 0x1
|
|
strh r0, [r5, 0x3C]
|
|
_080589BC:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end SpriteCB_LinkPlayer
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|