mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
2527 lines
44 KiB
ArmAsm
2527 lines
44 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8080748
|
|
sub_8080748: @ 8080748
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r4, _08080784 @ =sub_80809F8
|
|
adds r0, r4, 0
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
bne _0808077C
|
|
adds r0, r4, 0
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08080788 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r6, [r1, 0xA]
|
|
strh r5, [r1, 0xC]
|
|
_0808077C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080784: .4byte sub_80809F8
|
|
_08080788: .4byte gTasks
|
|
thumb_func_end sub_8080748
|
|
|
|
thumb_func_start sub_808078C
|
|
sub_808078C: @ 808078C
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
ldr r0, _080807DC @ =gStringVar1
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl SetStdWindowBorderStyle
|
|
ldr r5, _080807E0 @ =gStringVar4
|
|
ldr r1, _080807E4 @ =gUnknown_841DF82
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080807DC: .4byte gStringVar1
|
|
_080807E0: .4byte gStringVar4
|
|
_080807E4: .4byte gUnknown_841DF82
|
|
thumb_func_end sub_808078C
|
|
|
|
thumb_func_start sub_80807E8
|
|
sub_80807E8: @ 80807E8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl ClearStdWindowAndFrame
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80807E8
|
|
|
|
thumb_func_start sub_8080808
|
|
sub_8080808: @ 8080808
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08080830 @ =gTasks+0x8
|
|
adds r4, r1, r0
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r5, r0
|
|
beq _0808083E
|
|
cmp r5, 0x1
|
|
bhi _08080834
|
|
ldrh r0, [r4, 0xA]
|
|
bl sub_80807E8
|
|
b _0808083C
|
|
.align 2, 0
|
|
_08080830: .4byte gTasks+0x8
|
|
_08080834:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r1, r5, 0
|
|
bl sub_808078C
|
|
_0808083C:
|
|
strh r5, [r4, 0x6]
|
|
_0808083E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8080808
|
|
|
|
thumb_func_start sub_8080844
|
|
sub_8080844: @ 8080844
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_800A0D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
cmp r0, 0x5
|
|
bhi _080808B4
|
|
lsls r0, 2
|
|
ldr r1, _08080868 @ =_0808086C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080868: .4byte _0808086C
|
|
.align 2, 0
|
|
_0808086C:
|
|
.4byte _08080884
|
|
.4byte _080808B4
|
|
.4byte _08080888
|
|
.4byte _0808088C
|
|
.4byte _08080890
|
|
.4byte _08080894
|
|
_08080884:
|
|
movs r0, 0x1
|
|
b _080808B6
|
|
_08080888:
|
|
movs r0, 0x3
|
|
b _080808B6
|
|
_0808088C:
|
|
movs r0, 0x7
|
|
b _080808B6
|
|
_08080890:
|
|
movs r0, 0x9
|
|
b _080808B6
|
|
_08080894:
|
|
ldr r4, _080808B0 @ =gStringVar1
|
|
bl GetLinkPlayerCount_2
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
movs r0, 0x4
|
|
b _080808B6
|
|
.align 2, 0
|
|
_080808B0: .4byte gStringVar1
|
|
_080808B4:
|
|
movs r0, 0
|
|
_080808B6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8080844
|
|
|
|
thumb_func_start sub_80808BC
|
|
sub_80808BC: @ 80808BC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl HasLinkErrorOccurred
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080808D2
|
|
movs r0, 0
|
|
b _080808E2
|
|
_080808D2:
|
|
ldr r0, _080808E8 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080808EC @ =sub_8080FF0
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_080808E2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080808E8: .4byte gTasks
|
|
_080808EC: .4byte sub_8080FF0
|
|
thumb_func_end sub_80808BC
|
|
|
|
thumb_func_start sub_80808F0
|
|
sub_80808F0: @ 80808F0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08080924 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080934
|
|
bl IsLinkConnectionEstablished
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _08080934
|
|
ldr r0, _08080928 @ =gLinkType
|
|
strh r1, [r0]
|
|
ldr r1, _0808092C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08080930 @ =sub_8080FB4
|
|
str r1, [r0]
|
|
movs r0, 0x1
|
|
b _08080936
|
|
.align 2, 0
|
|
_08080924: .4byte gMain
|
|
_08080928: .4byte gLinkType
|
|
_0808092C: .4byte gTasks
|
|
_08080930: .4byte sub_8080FB4
|
|
_08080934:
|
|
movs r0, 0
|
|
_08080936:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80808F0
|
|
|
|
thumb_func_start sub_808093C
|
|
sub_808093C: @ 808093C
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl IsLinkConnectionEstablished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08080952
|
|
movs r0, 0x1
|
|
bl SetSuppressLinkErrorMessage
|
|
_08080952:
|
|
ldr r0, _08080964 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08080968
|
|
movs r0, 0
|
|
b _0808097E
|
|
.align 2, 0
|
|
_08080964: .4byte gMain
|
|
_08080968:
|
|
ldr r1, _08080984 @ =gLinkType
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, _08080988 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _0808098C @ =sub_8080FB4
|
|
str r1, [r0]
|
|
movs r0, 0x1
|
|
_0808097E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08080984: .4byte gLinkType
|
|
_08080988: .4byte gTasks
|
|
_0808098C: .4byte sub_8080FB4
|
|
thumb_func_end sub_808093C
|
|
|
|
thumb_func_start sub_8080990
|
|
sub_8080990: @ 8080990
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl GetSioMultiSI
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080809A6
|
|
movs r0, 0
|
|
b _080809B6
|
|
_080809A6:
|
|
ldr r0, _080809BC @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080809C0 @ =sub_8080FF0
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_080809B6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080809BC: .4byte gTasks
|
|
_080809C0: .4byte sub_8080FF0
|
|
thumb_func_end sub_8080990
|
|
|
|
thumb_func_start sub_80809C4
|
|
sub_80809C4: @ 80809C4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080809F4 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _080809EE
|
|
movs r0, 0x2
|
|
bl sub_800A474
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_080809EE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080809F4: .4byte gTasks
|
|
thumb_func_end sub_80809C4
|
|
|
|
thumb_func_start sub_80809F8
|
|
sub_80809F8: @ 80809F8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08080A28 @ =gTasks+0x8
|
|
adds r4, r1, r0
|
|
movs r3, 0
|
|
ldrsh r2, [r4, r3]
|
|
cmp r2, 0
|
|
bne _08080A30
|
|
bl sub_800A0B4
|
|
bl sub_800AA24
|
|
bl sub_800A270
|
|
ldr r0, _08080A2C @ =gUnknown_83C6AB0
|
|
bl AddWindow
|
|
strh r0, [r4, 0xA]
|
|
b _08080A3C
|
|
.align 2, 0
|
|
_08080A28: .4byte gTasks+0x8
|
|
_08080A2C: .4byte gUnknown_83C6AB0
|
|
_08080A30:
|
|
cmp r2, 0x9
|
|
ble _08080A3C
|
|
subs r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r1, _08080A48 @ =sub_8080A4C
|
|
str r1, [r0]
|
|
_08080A3C:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080A48: .4byte sub_8080A4C
|
|
thumb_func_end sub_80809F8
|
|
|
|
thumb_func_start sub_8080A4C
|
|
sub_8080A4C: @ 8080A4C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl GetLinkPlayerCount_2
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_80808F0
|
|
cmp r0, 0x1
|
|
beq _08080AC0
|
|
adds r0, r4, 0
|
|
bl sub_808093C
|
|
cmp r0, 0x1
|
|
beq _08080AC0
|
|
cmp r5, 0x1
|
|
bls _08080AC0
|
|
movs r0, 0x1
|
|
bl SetSuppressLinkErrorMessage
|
|
ldr r1, _08080AA4 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
movs r0, 0
|
|
strh r0, [r4, 0xE]
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08080AB0
|
|
movs r0, 0x15
|
|
bl PlaySE
|
|
ldr r0, _08080AA8 @ =gUnknown_81BC4CE
|
|
bl ShowFieldAutoScrollMessage
|
|
ldr r0, _08080AAC @ =sub_8080AD0
|
|
b _08080ABE
|
|
.align 2, 0
|
|
_08080AA4: .4byte gTasks
|
|
_08080AA8: .4byte gUnknown_81BC4CE
|
|
_08080AAC: .4byte sub_8080AD0
|
|
_08080AB0:
|
|
movs r0, 0x16
|
|
bl PlaySE
|
|
ldr r0, _08080AC8 @ =gUnknown_81BC54C
|
|
bl ShowFieldAutoScrollMessage
|
|
ldr r0, _08080ACC @ =sub_8080CDC
|
|
_08080ABE:
|
|
str r0, [r4]
|
|
_08080AC0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080AC8: .4byte gUnknown_81BC54C
|
|
_08080ACC: .4byte sub_8080CDC
|
|
thumb_func_end sub_8080A4C
|
|
|
|
thumb_func_start sub_8080AD0
|
|
sub_8080AD0: @ 8080AD0
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_80808F0
|
|
cmp r0, 0x1
|
|
beq _08080B10
|
|
adds r0, r4, 0
|
|
bl sub_8080990
|
|
cmp r0, 0x1
|
|
beq _08080B10
|
|
adds r0, r4, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080B10
|
|
bl textbox_any_visible
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _08080B10
|
|
ldr r0, _08080B18 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
strh r2, [r1, 0xE]
|
|
ldr r0, _08080B1C @ =sub_8080B20
|
|
str r0, [r1]
|
|
_08080B10:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080B18: .4byte gTasks
|
|
_08080B1C: .4byte sub_8080B20
|
|
thumb_func_end sub_8080AD0
|
|
|
|
thumb_func_start sub_8080B20
|
|
sub_8080B20: @ 8080B20
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
mov r8, r0
|
|
ldr r0, _08080BB4 @ =gTasks+0x8
|
|
mov r9, r0
|
|
mov r7, r8
|
|
add r7, r9
|
|
bl GetLinkPlayerCount_2
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_80808F0
|
|
cmp r0, 0x1
|
|
beq _08080BA8
|
|
adds r0, r4, 0
|
|
bl sub_8080990
|
|
cmp r0, 0x1
|
|
beq _08080BA8
|
|
adds r0, r4, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080BA8
|
|
adds r6, r5, 0
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_8080808
|
|
ldr r0, _08080BB8 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080BA8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r7, r1]
|
|
cmp r5, r0
|
|
blt _08080BA8
|
|
adds r0, r6, 0
|
|
bl sub_800A900
|
|
ldrh r0, [r7, 0xA]
|
|
bl sub_80807E8
|
|
ldr r0, _08080BBC @ =gStringVar1
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r0, _08080BC0 @ =gUnknown_81BC50D
|
|
bl ShowFieldAutoScrollMessage
|
|
mov r0, r9
|
|
subs r0, 0x8
|
|
add r0, r8
|
|
ldr r1, _08080BC4 @ =sub_8080BC8
|
|
str r1, [r0]
|
|
_08080BA8:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080BB4: .4byte gTasks+0x8
|
|
_08080BB8: .4byte gMain
|
|
_08080BBC: .4byte gStringVar1
|
|
_08080BC0: .4byte gUnknown_81BC50D
|
|
_08080BC4: .4byte sub_8080BC8
|
|
thumb_func_end sub_8080B20
|
|
|
|
thumb_func_start sub_8080BC8
|
|
sub_8080BC8: @ 8080BC8
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r6, r5, 0
|
|
adds r0, r5, 0
|
|
bl sub_80808F0
|
|
cmp r0, 0x1
|
|
beq _08080C5C
|
|
adds r0, r5, 0
|
|
bl sub_8080990
|
|
cmp r0, 0x1
|
|
beq _08080C5C
|
|
adds r0, r5, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080C5C
|
|
bl textbox_any_visible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08080C5C
|
|
bl sub_800A944
|
|
adds r4, r0, 0
|
|
bl GetLinkPlayerCount_2
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _08080C16
|
|
ldr r0, _08080C2C @ =gMain
|
|
ldrh r1, [r0, 0x2C]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080C3C
|
|
_08080C16:
|
|
ldr r0, _08080C30 @ =gUnknown_81BC4CE
|
|
bl ShowFieldAutoScrollMessage
|
|
ldr r1, _08080C34 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08080C38 @ =sub_8080AD0
|
|
str r1, [r0]
|
|
b _08080C5C
|
|
.align 2, 0
|
|
_08080C2C: .4byte gMain
|
|
_08080C30: .4byte gUnknown_81BC4CE
|
|
_08080C34: .4byte gTasks
|
|
_08080C38: .4byte sub_8080AD0
|
|
_08080C3C:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08080C5C
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
bl CheckShouldAdvanceLinkState
|
|
ldr r0, _08080C64 @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _08080C68 @ =sub_8080C6C
|
|
str r0, [r1]
|
|
_08080C5C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080C64: .4byte gTasks
|
|
_08080C68: .4byte sub_8080C6C
|
|
thumb_func_end sub_8080BC8
|
|
|
|
thumb_func_start sub_8080C6C
|
|
sub_8080C6C: @ 8080C6C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08080CB0 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrb r7, [r5, 0xA]
|
|
ldrb r6, [r5, 0xC]
|
|
adds r0, r4, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080CCE
|
|
adds r0, r4, 0
|
|
bl sub_808102C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08080CCE
|
|
bl GetLinkPlayerCount_2
|
|
adds r4, r0, 0
|
|
bl sub_800A944
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _08080CB8
|
|
ldr r0, _08080CB4 @ =sub_8080FF0
|
|
b _08080CCC
|
|
.align 2, 0
|
|
_08080CB0: .4byte gTasks
|
|
_08080CB4: .4byte sub_8080FF0
|
|
_08080CB8:
|
|
ldr r4, _08080CD4 @ =gSpecialVar_Result
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_8080844
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _08080CCE
|
|
ldr r0, _08080CD8 @ =sub_8080DC0
|
|
_08080CCC:
|
|
str r0, [r5]
|
|
_08080CCE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080CD4: .4byte gSpecialVar_Result
|
|
_08080CD8: .4byte sub_8080DC0
|
|
thumb_func_end sub_8080C6C
|
|
|
|
thumb_func_start sub_8080CDC
|
|
sub_8080CDC: @ 8080CDC
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08080D30 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r5, r0, r1
|
|
ldrb r7, [r5, 0xA]
|
|
ldrb r6, [r5, 0xC]
|
|
adds r0, r4, 0
|
|
bl sub_80808F0
|
|
cmp r0, 0x1
|
|
beq _08080D74
|
|
adds r0, r4, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080D74
|
|
ldr r4, _08080D34 @ =gSpecialVar_Result
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_8080844
|
|
adds r1, r0, 0
|
|
strh r1, [r4]
|
|
lsls r0, r1, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08080D74
|
|
subs r0, r1, 0x3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _08080D3C
|
|
bl sub_800AAC0
|
|
bl HideFieldMessageBox
|
|
ldr r0, _08080D38 @ =sub_8080F78
|
|
b _08080D72
|
|
.align 2, 0
|
|
_08080D30: .4byte gTasks
|
|
_08080D34: .4byte gSpecialVar_Result
|
|
_08080D38: .4byte sub_8080F78
|
|
_08080D3C:
|
|
cmp r2, 0x7
|
|
beq _08080D44
|
|
cmp r2, 0x9
|
|
bne _08080D54
|
|
_08080D44:
|
|
bl CloseLink
|
|
bl HideFieldMessageBox
|
|
ldr r0, _08080D50 @ =sub_8080F78
|
|
b _08080D72
|
|
.align 2, 0
|
|
_08080D50: .4byte sub_8080F78
|
|
_08080D54:
|
|
bl GetLinkPlayerCount_2
|
|
ldr r4, _08080D7C @ =gUnknown_3005030
|
|
strb r0, [r4]
|
|
bl GetMultiplayerId
|
|
ldr r1, _08080D80 @ =gUnknown_300502C
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl sub_800A900
|
|
ldr r0, _08080D84 @ =gBlockSendBuffer
|
|
bl sub_80898E8
|
|
ldr r0, _08080D88 @ =sub_8080E6C
|
|
_08080D72:
|
|
str r0, [r5]
|
|
_08080D74:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080D7C: .4byte gUnknown_3005030
|
|
_08080D80: .4byte gUnknown_300502C
|
|
_08080D84: .4byte gBlockSendBuffer
|
|
_08080D88: .4byte sub_8080E6C
|
|
thumb_func_end sub_8080CDC
|
|
|
|
thumb_func_start sub_8080D8C
|
|
sub_8080D8C: @ 8080D8C
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r4, _08080D94 @ =gLinkPlayers
|
|
b _08080DAC
|
|
.align 2, 0
|
|
_08080D94: .4byte gLinkPlayers
|
|
_08080D98:
|
|
ldrb r0, [r4]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _08080DA8
|
|
movs r0, 0x1
|
|
b _08080DBA
|
|
_08080DA8:
|
|
adds r4, 0x1C
|
|
adds r5, 0x1
|
|
_08080DAC:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
blt _08080D98
|
|
movs r0, 0
|
|
_08080DBA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8080D8C
|
|
|
|
thumb_func_start sub_8080DC0
|
|
sub_8080DC0: @ 8080DC0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080E50
|
|
ldr r0, _08080DE8 @ =gSpecialVar_Result
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _08080DEC
|
|
bl sub_8080D8C
|
|
cmp r0, 0x1
|
|
beq _08080DFE
|
|
bl sub_800AAC0
|
|
b _08080E02
|
|
.align 2, 0
|
|
_08080DE8: .4byte gSpecialVar_Result
|
|
_08080DEC:
|
|
cmp r0, 0x3
|
|
bne _08080DF6
|
|
bl sub_800AAC0
|
|
b _08080E02
|
|
_08080DF6:
|
|
cmp r0, 0x7
|
|
beq _08080DFE
|
|
cmp r0, 0x9
|
|
bne _08080E20
|
|
_08080DFE:
|
|
bl CloseLink
|
|
_08080E02:
|
|
bl HideFieldMessageBox
|
|
ldr r0, _08080E18 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _08080E1C @ =sub_8080F78
|
|
str r0, [r1]
|
|
b _08080E50
|
|
.align 2, 0
|
|
_08080E18: .4byte gTasks
|
|
_08080E1C: .4byte sub_8080F78
|
|
_08080E20:
|
|
bl GetLinkPlayerCount_2
|
|
ldr r4, _08080E58 @ =gUnknown_3005030
|
|
strb r0, [r4]
|
|
bl GetMultiplayerId
|
|
ldr r1, _08080E5C @ =gUnknown_300502C
|
|
strb r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl sub_800A900
|
|
ldr r0, _08080E60 @ =gBlockSendBuffer
|
|
bl sub_80898E8
|
|
ldr r1, _08080E64 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08080E68 @ =sub_8080E6C
|
|
str r1, [r0]
|
|
movs r0, 0x2
|
|
bl sub_800A474
|
|
_08080E50:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080E58: .4byte gUnknown_3005030
|
|
_08080E5C: .4byte gUnknown_300502C
|
|
_08080E60: .4byte gBlockSendBuffer
|
|
_08080E64: .4byte gTasks
|
|
_08080E68: .4byte sub_8080E6C
|
|
thumb_func_end sub_8080DC0
|
|
|
|
thumb_func_start sub_8080E6C
|
|
sub_8080E6C: @ 8080E6C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r7, 0
|
|
bl sub_80808BC
|
|
cmp r0, 0x1
|
|
beq _08080F66
|
|
bl GetBlockReceivedStatus
|
|
adds r4, r0, 0
|
|
bl sub_800A8A4
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _08080F66
|
|
movs r5, 0
|
|
lsls r0, r7, 2
|
|
mov r8, r0
|
|
b _08080EF8
|
|
_08080E9A:
|
|
ldr r1, _08080ED0 @ =gLinkPlayers
|
|
lsls r0, r5, 3
|
|
subs r0, r5
|
|
lsls r0, 2
|
|
adds r6, r0, r1
|
|
ldrb r0, [r6]
|
|
subs r0, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _08080EDC
|
|
lsls r1, r5, 8
|
|
ldr r0, _08080ED4 @ =gBlockRecvBuffer
|
|
adds r1, r0
|
|
ldr r0, _08080ED8 @ =gTrainerCards
|
|
lsls r4, r5, 1
|
|
adds r4, r5
|
|
lsls r4, 5
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
movs r2, 0x38
|
|
bl memcpy
|
|
ldrh r0, [r6]
|
|
adds r4, 0x38
|
|
strb r0, [r4]
|
|
b _08080EF2
|
|
.align 2, 0
|
|
_08080ED0: .4byte gLinkPlayers
|
|
_08080ED4: .4byte gBlockRecvBuffer
|
|
_08080ED8: .4byte gTrainerCards
|
|
_08080EDC:
|
|
lsls r1, r5, 8
|
|
ldr r0, _08080F3C @ =gBlockRecvBuffer
|
|
adds r1, r0
|
|
ldr r2, _08080F40 @ =gTrainerCards
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 5
|
|
adds r0, r2
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
_08080EF2:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
_08080EF8:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r5, r0
|
|
bcc _08080E9A
|
|
movs r0, 0
|
|
bl SetSuppressLinkErrorMessage
|
|
bl ResetBlockReceivedFlags
|
|
bl HideFieldMessageBox
|
|
ldr r0, _08080F44 @ =gSpecialVar_Result
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08080F54
|
|
ldr r0, _08080F48 @ =gLinkType
|
|
ldrh r1, [r0]
|
|
ldr r0, _08080F4C @ =0x00004411
|
|
ldr r0, _08080F50 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x12]
|
|
bl sub_80807E8
|
|
bl EnableBothScriptContexts
|
|
adds r0, r7, 0
|
|
bl DestroyTask
|
|
b _08080F66
|
|
.align 2, 0
|
|
_08080F3C: .4byte gBlockRecvBuffer
|
|
_08080F40: .4byte gTrainerCards
|
|
_08080F44: .4byte gSpecialVar_Result
|
|
_08080F48: .4byte gLinkType
|
|
_08080F4C: .4byte 0x00004411
|
|
_08080F50: .4byte gTasks
|
|
_08080F54:
|
|
bl sub_800AAC0
|
|
ldr r0, _08080F70 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _08080F74 @ =sub_8080F78
|
|
str r0, [r1]
|
|
_08080F66:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080F70: .4byte gTasks
|
|
_08080F74: .4byte sub_8080F78
|
|
thumb_func_end sub_8080E6C
|
|
|
|
thumb_func_start sub_8080F78
|
|
sub_8080F78: @ 8080F78
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r0, _08080FAC @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08080FA6
|
|
ldr r0, _08080FB0 @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r0
|
|
ldrh r0, [r4, 0x12]
|
|
bl sub_80807E8
|
|
bl EnableBothScriptContexts
|
|
ldrb r0, [r4, 0x12]
|
|
bl RemoveWindow
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08080FA6:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080FAC: .4byte gReceivedRemoteLinkPlayers
|
|
_08080FB0: .4byte gTasks
|
|
thumb_func_end sub_8080F78
|
|
|
|
thumb_func_start sub_8080FB4
|
|
sub_8080FB4: @ 8080FB4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _08080FE8 @ =gSpecialVar_Result
|
|
movs r0, 0x5
|
|
strh r0, [r1]
|
|
ldr r1, _08080FEC @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x12]
|
|
bl sub_80807E8
|
|
bl HideFieldMessageBox
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08080FE8: .4byte gSpecialVar_Result
|
|
_08080FEC: .4byte gTasks
|
|
thumb_func_end sub_8080FB4
|
|
|
|
thumb_func_start sub_8080FF0
|
|
sub_8080FF0: @ 8080FF0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _08081024 @ =gSpecialVar_Result
|
|
movs r0, 0x6
|
|
strh r0, [r1]
|
|
ldr r1, _08081028 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x12]
|
|
bl sub_80807E8
|
|
bl HideFieldMessageBox
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081024: .4byte gSpecialVar_Result
|
|
_08081028: .4byte gTasks
|
|
thumb_func_end sub_8080FF0
|
|
|
|
thumb_func_start sub_808102C
|
|
sub_808102C: @ 808102C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08081050 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r2, r1, r2
|
|
ldrh r0, [r2, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x10]
|
|
lsls r0, 16
|
|
movs r1, 0x96
|
|
lsls r1, 18
|
|
cmp r0, r1
|
|
bgt _08081054
|
|
movs r0, 0
|
|
b _0808105A
|
|
.align 2, 0
|
|
_08081050: .4byte gTasks
|
|
_08081054:
|
|
ldr r0, _08081060 @ =sub_8080FF0
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
_0808105A:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08081060: .4byte sub_8080FF0
|
|
thumb_func_end sub_808102C
|
|
|
|
thumb_func_start sub_8081064
|
|
sub_8081064: @ 8081064
|
|
push {r4,lr}
|
|
movs r3, 0x2
|
|
movs r2, 0x2
|
|
ldr r0, _0808107C @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08081098
|
|
cmp r0, 0x2
|
|
bgt _08081080
|
|
cmp r0, 0x1
|
|
beq _08081086
|
|
b _080810B4
|
|
.align 2, 0
|
|
_0808107C: .4byte gSpecialVar_0x8004
|
|
_08081080:
|
|
cmp r0, 0x5
|
|
beq _080810A8
|
|
b _080810B4
|
|
_08081086:
|
|
movs r3, 0x2
|
|
ldr r1, _08081090 @ =gLinkType
|
|
ldr r4, _08081094 @ =0x00002233
|
|
b _080810B0
|
|
.align 2, 0
|
|
_08081090: .4byte gLinkType
|
|
_08081094: .4byte 0x00002233
|
|
_08081098:
|
|
movs r3, 0x2
|
|
ldr r1, _080810A0 @ =gLinkType
|
|
ldr r4, _080810A4 @ =0x00002244
|
|
b _080810B0
|
|
.align 2, 0
|
|
_080810A0: .4byte gLinkType
|
|
_080810A4: .4byte 0x00002244
|
|
_080810A8:
|
|
movs r3, 0x4
|
|
movs r2, 0x4
|
|
ldr r1, _080810C4 @ =gLinkType
|
|
ldr r4, _080810C8 @ =0x00002255
|
|
_080810B0:
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
_080810B4:
|
|
adds r0, r3, 0
|
|
adds r1, r2, 0
|
|
bl sub_8080748
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080810C4: .4byte gLinkType
|
|
_080810C8: .4byte 0x00002255
|
|
thumb_func_end sub_8081064
|
|
|
|
thumb_func_start sub_80810CC
|
|
sub_80810CC: @ 80810CC
|
|
push {lr}
|
|
ldr r1, _080810E8 @ =gLinkType
|
|
ldr r2, _080810EC @ =0x00001133
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _080810F0 @ =gBattleTypeFlags
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
bl sub_8080748
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080810E8: .4byte gLinkType
|
|
_080810EC: .4byte 0x00001133
|
|
_080810F0: .4byte gBattleTypeFlags
|
|
thumb_func_end sub_80810CC
|
|
|
|
thumb_func_start sub_80810F4
|
|
sub_80810F4: @ 80810F4
|
|
push {lr}
|
|
ldr r1, _08081118 @ =gSpecialVar_Result
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0808111C @ =gLinkType
|
|
ldr r2, _08081120 @ =0x00003311
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _08081124 @ =gBattleTypeFlags
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x4
|
|
bl sub_8080748
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081118: .4byte gSpecialVar_Result
|
|
_0808111C: .4byte gLinkType
|
|
_08081120: .4byte 0x00003311
|
|
_08081124: .4byte gBattleTypeFlags
|
|
thumb_func_end sub_80810F4
|
|
|
|
thumb_func_start sub_8081128
|
|
sub_8081128: @ 8081128
|
|
push {lr}
|
|
ldr r1, _08081144 @ =gLinkType
|
|
ldr r2, _08081148 @ =0x00006601
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r1, _0808114C @ =gBattleTypeFlags
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r0, 0x4
|
|
movs r1, 0x4
|
|
bl sub_8080748
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081144: .4byte gLinkType
|
|
_08081148: .4byte 0x00006601
|
|
_0808114C: .4byte gBattleTypeFlags
|
|
thumb_func_end sub_8081128
|
|
|
|
thumb_func_start sub_8081150
|
|
sub_8081150: @ 8081150
|
|
push {lr}
|
|
ldr r0, _08081164 @ =sub_80811FC
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08081168
|
|
movs r0, 0xFF
|
|
b _080811EC
|
|
.align 2, 0
|
|
_08081164: .4byte sub_80811FC
|
|
_08081168:
|
|
ldr r0, _0808117C @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, 0x4
|
|
bhi _080811E0
|
|
lsls r0, 2
|
|
ldr r1, _08081180 @ =_08081184
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0808117C: .4byte gSpecialVar_0x8004
|
|
_08081180: .4byte _08081184
|
|
.align 2, 0
|
|
_08081184:
|
|
.4byte _08081198
|
|
.4byte _080811A8
|
|
.4byte _080811C8
|
|
.4byte _080811D8
|
|
.4byte _080811B8
|
|
_08081198:
|
|
ldr r1, _080811A0 @ =gLinkType
|
|
ldr r2, _080811A4 @ =0x00002233
|
|
b _080811DC
|
|
.align 2, 0
|
|
_080811A0: .4byte gLinkType
|
|
_080811A4: .4byte 0x00002233
|
|
_080811A8:
|
|
ldr r1, _080811B0 @ =gLinkType
|
|
ldr r2, _080811B4 @ =0x00002244
|
|
b _080811DC
|
|
.align 2, 0
|
|
_080811B0: .4byte gLinkType
|
|
_080811B4: .4byte 0x00002244
|
|
_080811B8:
|
|
ldr r1, _080811C0 @ =gLinkType
|
|
ldr r2, _080811C4 @ =0x00002255
|
|
b _080811DC
|
|
.align 2, 0
|
|
_080811C0: .4byte gLinkType
|
|
_080811C4: .4byte 0x00002255
|
|
_080811C8:
|
|
ldr r1, _080811D0 @ =gLinkType
|
|
ldr r2, _080811D4 @ =0x00001111
|
|
b _080811DC
|
|
.align 2, 0
|
|
_080811D0: .4byte gLinkType
|
|
_080811D4: .4byte 0x00001111
|
|
_080811D8:
|
|
ldr r1, _080811F0 @ =gLinkType
|
|
ldr r2, _080811F4 @ =0x00003322
|
|
_080811DC:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_080811E0:
|
|
ldr r0, _080811F8 @ =sub_80811FC
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080811EC:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080811F0: .4byte gLinkType
|
|
_080811F4: .4byte 0x00003322
|
|
_080811F8: .4byte sub_80811FC
|
|
thumb_func_end sub_8081150
|
|
|
|
thumb_func_start sub_80811FC
|
|
sub_80811FC: @ 80811FC
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08081228 @ =gTasks+0x8
|
|
adds r4, r1, r0
|
|
movs r3, 0
|
|
ldrsh r2, [r4, r3]
|
|
cmp r2, 0
|
|
bne _08081230
|
|
bl OpenLink
|
|
bl sub_800A270
|
|
ldr r0, _0808122C @ =sub_8081A90
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
b _0808123C
|
|
.align 2, 0
|
|
_08081228: .4byte gTasks+0x8
|
|
_0808122C: .4byte sub_8081A90
|
|
_08081230:
|
|
cmp r2, 0x9
|
|
ble _0808123C
|
|
subs r0, 0x8
|
|
adds r0, r1, r0
|
|
ldr r1, _08081248 @ =sub_808124C
|
|
str r1, [r0]
|
|
_0808123C:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081248: .4byte sub_808124C
|
|
thumb_func_end sub_80811FC
|
|
|
|
thumb_func_start sub_808124C
|
|
sub_808124C: @ 808124C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
bl GetLinkPlayerCount_2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08081292
|
|
bl IsLinkMaster
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08081284
|
|
ldr r0, _0808127C @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _08081280 @ =sub_80812A0
|
|
b _08081290
|
|
.align 2, 0
|
|
_0808127C: .4byte gTasks
|
|
_08081280: .4byte sub_80812A0
|
|
_08081284:
|
|
ldr r0, _08081298 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _0808129C @ =sub_80812D8
|
|
_08081290:
|
|
str r0, [r1]
|
|
_08081292:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081298: .4byte gTasks
|
|
_0808129C: .4byte sub_80812D8
|
|
thumb_func_end sub_808124C
|
|
|
|
thumb_func_start sub_80812A0
|
|
sub_80812A0: @ 80812A0
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_800A944
|
|
adds r4, r0, 0
|
|
bl GetLinkPlayerCount_2
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
bne _080812CA
|
|
bl CheckShouldAdvanceLinkState
|
|
ldr r0, _080812D0 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080812D4 @ =sub_80812D8
|
|
str r0, [r1]
|
|
_080812CA:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080812D0: .4byte gTasks
|
|
_080812D4: .4byte sub_80812D8
|
|
thumb_func_end sub_80812A0
|
|
|
|
thumb_func_start sub_80812D8
|
|
sub_80812D8: @ 80812D8
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08081308 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _08081300
|
|
bl IsLinkPlayerDataExchangeComplete
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08081300
|
|
bl sub_800A9A4
|
|
bl sub_8009FE8
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08081300:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081308: .4byte gReceivedRemoteLinkPlayers
|
|
thumb_func_end sub_80812D8
|
|
|
|
thumb_func_start sub_808130C
|
|
sub_808130C: @ 808130C
|
|
push {lr}
|
|
bl sub_806F67C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808130C
|
|
|
|
thumb_func_start sub_8081318
|
|
sub_8081318: @ 8081318
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _0808133C @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
bls _08081332
|
|
b _0808143A
|
|
_08081332:
|
|
lsls r0, 2
|
|
ldr r1, _08081340 @ =_08081344
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0808133C: .4byte gTasks
|
|
_08081340: .4byte _08081344
|
|
.align 2, 0
|
|
_08081344:
|
|
.4byte _0808135C
|
|
.4byte _0808137C
|
|
.4byte _0808138C
|
|
.4byte _0808139C
|
|
.4byte _080813A2
|
|
.4byte _080813B8
|
|
_0808135C:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl fade_screen
|
|
ldr r1, _08081374 @ =gLinkType
|
|
ldr r2, _08081378 @ =0x00002211
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl sub_800A068
|
|
b _080813AA
|
|
.align 2, 0
|
|
_08081374: .4byte gLinkType
|
|
_08081378: .4byte 0x00002211
|
|
_0808137C:
|
|
ldr r0, _08081388 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
b _080813A6
|
|
.align 2, 0
|
|
_08081388: .4byte gPaletteFade
|
|
_0808138C:
|
|
ldrh r0, [r4, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0808143A
|
|
b _080813AA
|
|
_0808139C:
|
|
bl sub_800AAC0
|
|
b _080813AA
|
|
_080813A2:
|
|
ldr r0, _080813B4 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
_080813A6:
|
|
cmp r0, 0
|
|
bne _0808143A
|
|
_080813AA:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _0808143A
|
|
.align 2, 0
|
|
_080813B4: .4byte gReceivedRemoteLinkPlayers
|
|
_080813B8:
|
|
ldr r0, _080813CC @ =gLinkPlayers
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080813D4
|
|
ldr r0, _080813D0 @ =0x00000109
|
|
bl PlayMapChosenOrBattleBGM
|
|
b _080813DC
|
|
.align 2, 0
|
|
_080813CC: .4byte gLinkPlayers
|
|
_080813D0: .4byte 0x00000109
|
|
_080813D4:
|
|
movs r0, 0x85
|
|
lsls r0, 1
|
|
bl PlayMapChosenOrBattleBGM
|
|
_080813DC:
|
|
ldr r0, _080813F0 @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _08081404
|
|
cmp r0, 0x2
|
|
bgt _080813F4
|
|
cmp r0, 0x1
|
|
beq _080813FA
|
|
b _0808141A
|
|
.align 2, 0
|
|
_080813F0: .4byte gSpecialVar_0x8004
|
|
_080813F4:
|
|
cmp r0, 0x5
|
|
beq _08081410
|
|
b _0808141A
|
|
_080813FA:
|
|
ldr r1, _08081400 @ =gBattleTypeFlags
|
|
movs r0, 0xA
|
|
b _08081418
|
|
.align 2, 0
|
|
_08081400: .4byte gBattleTypeFlags
|
|
_08081404:
|
|
ldr r1, _0808140C @ =gBattleTypeFlags
|
|
movs r0, 0xB
|
|
b _08081418
|
|
.align 2, 0
|
|
_0808140C: .4byte gBattleTypeFlags
|
|
_08081410:
|
|
bl sub_80A03D8
|
|
ldr r1, _08081440 @ =gBattleTypeFlags
|
|
movs r0, 0x4B
|
|
_08081418:
|
|
str r0, [r1]
|
|
_0808141A:
|
|
bl CleanupOverworldWindowsAndTilemaps
|
|
ldr r1, _08081444 @ =gTrainerBattleOpponent_A
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08081448 @ =sub_800FD9C
|
|
bl SetMainCallback2
|
|
ldr r1, _0808144C @ =gMain
|
|
ldr r0, _08081450 @ =sub_8081668
|
|
str r0, [r1, 0x8]
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_0808143A:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081440: .4byte gBattleTypeFlags
|
|
_08081444: .4byte gTrainerBattleOpponent_A
|
|
_08081448: .4byte sub_800FD9C
|
|
_0808144C: .4byte gMain
|
|
_08081450: .4byte sub_8081668
|
|
thumb_func_end sub_8081318
|
|
|
|
thumb_func_start sub_8081454
|
|
sub_8081454: @ 8081454
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _08081478 @ =gTasks+0x8
|
|
adds r6, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x7
|
|
bls _0808146E
|
|
b _0808160A
|
|
_0808146E:
|
|
lsls r0, 2
|
|
ldr r1, _0808147C @ =_08081480
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08081478: .4byte gTasks+0x8
|
|
_0808147C: .4byte _08081480
|
|
.align 2, 0
|
|
_08081480:
|
|
.4byte _080814A0
|
|
.4byte _080814C4
|
|
.4byte _080814DC
|
|
.4byte _080814F0
|
|
.4byte _0808154C
|
|
.4byte _08081560
|
|
.4byte _0808156A
|
|
.4byte _0808157A
|
|
_080814A0:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl fade_screen
|
|
ldr r0, _080814BC @ =gLinkType
|
|
ldr r2, _080814C0 @ =0x00002211
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
bl sub_800A068
|
|
movs r0, 0x1
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
.align 2, 0
|
|
_080814BC: .4byte gLinkType
|
|
_080814C0: .4byte 0x00002211
|
|
_080814C4:
|
|
ldr r0, _080814D8 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080814D2
|
|
b _0808160A
|
|
_080814D2:
|
|
movs r0, 0x2
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
.align 2, 0
|
|
_080814D8: .4byte gPaletteFade
|
|
_080814DC:
|
|
ldr r1, _080814EC @ =gLocalLinkPlayer
|
|
movs r0, 0
|
|
movs r2, 0x1C
|
|
bl SendBlock
|
|
movs r0, 0x3
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
.align 2, 0
|
|
_080814EC: .4byte gLocalLinkPlayer
|
|
_080814F0:
|
|
bl GetBlockReceivedStatus
|
|
adds r4, r0, 0
|
|
bl sub_800A8D4
|
|
lsls r4, 24
|
|
lsls r0, 24
|
|
cmp r4, r0
|
|
beq _08081504
|
|
b _0808160A
|
|
_08081504:
|
|
movs r4, 0
|
|
ldr r5, _0808150C @ =gLinkPlayers
|
|
b _08081536
|
|
.align 2, 0
|
|
_0808150C: .4byte gLinkPlayers
|
|
_08081510:
|
|
lsls r1, r4, 8
|
|
ldr r2, _08081548 @ =gBlockRecvBuffer
|
|
adds r0, r5, 0
|
|
adds r1, r2
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_800B284
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl ResetBlockReceivedFlag
|
|
adds r5, 0x1C
|
|
adds r4, 0x1
|
|
_08081536:
|
|
bl GetLinkPlayerCount
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r4, r0
|
|
blt _08081510
|
|
movs r0, 0x4
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
.align 2, 0
|
|
_08081548: .4byte gBlockRecvBuffer
|
|
_0808154C:
|
|
ldrh r0, [r6, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _0808160A
|
|
movs r0, 0x5
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
_08081560:
|
|
bl sub_800AB9C
|
|
movs r0, 0x6
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
_0808156A:
|
|
bl IsLinkTaskFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808160A
|
|
movs r0, 0x7
|
|
strh r0, [r6]
|
|
b _0808160A
|
|
_0808157A:
|
|
ldr r0, _08081590 @ =gLinkPlayers
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08081598
|
|
ldr r0, _08081594 @ =0x00000109
|
|
bl PlayMapChosenOrBattleBGM
|
|
b _080815A0
|
|
.align 2, 0
|
|
_08081590: .4byte gLinkPlayers
|
|
_08081594: .4byte 0x00000109
|
|
_08081598:
|
|
movs r0, 0x85
|
|
lsls r0, 1
|
|
bl PlayMapChosenOrBattleBGM
|
|
_080815A0:
|
|
ldr r0, _080815B8 @ =gLinkPlayers
|
|
ldr r1, _080815BC @ =0x00002211
|
|
str r1, [r0, 0x14]
|
|
ldr r0, _080815C0 @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _080815D4
|
|
cmp r0, 0x2
|
|
bgt _080815C4
|
|
cmp r0, 0x1
|
|
beq _080815CA
|
|
b _080815EA
|
|
.align 2, 0
|
|
_080815B8: .4byte gLinkPlayers
|
|
_080815BC: .4byte 0x00002211
|
|
_080815C0: .4byte gSpecialVar_0x8004
|
|
_080815C4:
|
|
cmp r0, 0x5
|
|
beq _080815E0
|
|
b _080815EA
|
|
_080815CA:
|
|
ldr r1, _080815D0 @ =gBattleTypeFlags
|
|
movs r0, 0xA
|
|
b _080815E8
|
|
.align 2, 0
|
|
_080815D0: .4byte gBattleTypeFlags
|
|
_080815D4:
|
|
ldr r1, _080815DC @ =gBattleTypeFlags
|
|
movs r0, 0xB
|
|
b _080815E8
|
|
.align 2, 0
|
|
_080815DC: .4byte gBattleTypeFlags
|
|
_080815E0:
|
|
bl sub_80A03D8
|
|
ldr r1, _08081610 @ =gBattleTypeFlags
|
|
movs r0, 0x4B
|
|
_080815E8:
|
|
str r0, [r1]
|
|
_080815EA:
|
|
bl CleanupOverworldWindowsAndTilemaps
|
|
ldr r1, _08081614 @ =gTrainerBattleOpponent_A
|
|
movs r3, 0x80
|
|
lsls r3, 4
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08081618 @ =sub_800FD9C
|
|
bl SetMainCallback2
|
|
ldr r1, _0808161C @ =gMain
|
|
ldr r0, _08081620 @ =sub_8081668
|
|
str r0, [r1, 0x8]
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_0808160A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081610: .4byte gBattleTypeFlags
|
|
_08081614: .4byte gTrainerBattleOpponent_A
|
|
_08081618: .4byte sub_800FD9C
|
|
_0808161C: .4byte gMain
|
|
_08081620: .4byte sub_8081668
|
|
thumb_func_end sub_8081454
|
|
|
|
thumb_func_start sub_8081624
|
|
sub_8081624: @ 8081624
|
|
push {r4,lr}
|
|
ldr r0, _0808163C @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08081640
|
|
cmp r0, 0x1
|
|
beq _0808164C
|
|
b _0808165C
|
|
.align 2, 0
|
|
_0808163C: .4byte gMain
|
|
_08081640:
|
|
bl sub_800AAC0
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0808165C
|
|
_0808164C:
|
|
bl IsLinkTaskFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0808165C
|
|
ldr r0, _08081664 @ =CB2_ReturnToField
|
|
bl SetMainCallback2
|
|
_0808165C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081664: .4byte CB2_ReturnToField
|
|
thumb_func_end sub_8081624
|
|
|
|
thumb_func_start sub_8081668
|
|
sub_8081668: @ 8081668
|
|
push {r4,r5,lr}
|
|
ldr r2, _080816B0 @ =gBattleTypeFlags
|
|
ldr r0, [r2]
|
|
ldr r1, _080816B4 @ =0x0000ffdf
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
bl sub_8055DB8
|
|
bl LoadPlayerParty
|
|
bl SavePlayerBag
|
|
bl sub_81134B8
|
|
ldr r0, _080816B8 @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _0808170A
|
|
ldr r0, _080816BC @ =gUnknown_300502C
|
|
ldrb r0, [r0]
|
|
movs r5, 0x1
|
|
eors r0, r5
|
|
bl TryRecordLinkBattleOutcome
|
|
ldr r0, _080816C0 @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0808170A
|
|
ldr r0, _080816C4 @ =gBattleOutcome
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _080816C8
|
|
cmp r0, 0x2
|
|
beq _080816EC
|
|
b _0808170A
|
|
.align 2, 0
|
|
_080816B0: .4byte gBattleTypeFlags
|
|
_080816B4: .4byte 0x0000ffdf
|
|
_080816B8: .4byte gSpecialVar_0x8004
|
|
_080816BC: .4byte gUnknown_300502C
|
|
_080816C0: .4byte gWirelessCommType
|
|
_080816C4: .4byte gBattleOutcome
|
|
_080816C8:
|
|
ldr r4, _080816E8 @ =gLinkPlayers
|
|
bl GetMultiplayerId
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r4, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
movs r0, 0
|
|
bl sub_8144714
|
|
b _0808170A
|
|
.align 2, 0
|
|
_080816E8: .4byte gLinkPlayers
|
|
_080816EC:
|
|
ldr r4, _08081718 @ =gLinkPlayers
|
|
bl GetMultiplayerId
|
|
eors r0, r5
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 3
|
|
subs r1, r0
|
|
lsls r1, 2
|
|
adds r4, 0x4
|
|
adds r1, r4
|
|
ldr r1, [r1]
|
|
movs r0, 0x1
|
|
bl sub_8144714
|
|
_0808170A:
|
|
bl InUnionRoom
|
|
cmp r0, 0x1
|
|
bne _08081724
|
|
ldr r1, _0808171C @ =gMain
|
|
ldr r0, _08081720 @ =sub_8081624
|
|
b _08081728
|
|
.align 2, 0
|
|
_08081718: .4byte gLinkPlayers
|
|
_0808171C: .4byte gMain
|
|
_08081720: .4byte sub_8081624
|
|
_08081724:
|
|
ldr r1, _08081738 @ =gMain
|
|
ldr r0, _0808173C @ =c2_8056854
|
|
_08081728:
|
|
str r0, [r1, 0x8]
|
|
ldr r0, _08081740 @ =sub_806FB7C
|
|
bl SetMainCallback2
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081738: .4byte gMain
|
|
_0808173C: .4byte c2_8056854
|
|
_08081740: .4byte sub_806FB7C
|
|
thumb_func_end sub_8081668
|
|
|
|
thumb_func_start sub_8081744
|
|
sub_8081744: @ 8081744
|
|
push {lr}
|
|
ldr r0, _0808176C @ =gSpecialVar_0x8004
|
|
ldrh r1, [r0]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _08081758
|
|
cmp r1, 0x5
|
|
bne _08081760
|
|
_08081758:
|
|
bl LoadPlayerParty
|
|
bl SavePlayerBag
|
|
_08081760:
|
|
movs r0, 0x7F
|
|
bl copy_saved_warp2_bank_and_enter_x_to_warp1
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0808176C: .4byte gSpecialVar_0x8004
|
|
thumb_func_end sub_8081744
|
|
|
|
thumb_func_start sub_8081770
|
|
sub_8081770: @ 8081770
|
|
push {lr}
|
|
bl sub_8057F5C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8081770
|
|
|
|
thumb_func_start sub_808177C
|
|
sub_808177C: @ 808177C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _080817A0 @ =gTasks
|
|
adds r5, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080817C0
|
|
cmp r0, 0x1
|
|
bgt _080817A4
|
|
cmp r0, 0
|
|
beq _080817AE
|
|
b _08081820
|
|
.align 2, 0
|
|
_080817A0: .4byte gTasks
|
|
_080817A4:
|
|
cmp r0, 0x2
|
|
beq _080817E0
|
|
cmp r0, 0x3
|
|
beq _0808180C
|
|
b _08081820
|
|
_080817AE:
|
|
ldr r0, _080817BC @ =gUnknown_81BC4AC
|
|
bl ShowFieldMessage
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _08081820
|
|
.align 2, 0
|
|
_080817BC: .4byte gUnknown_81BC4AC
|
|
_080817C0:
|
|
bl IsFieldMessageBoxHidden
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08081820
|
|
bl sub_8057F34
|
|
ldr r0, _080817DC @ =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
bl sub_80096F8
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x8]
|
|
b _08081820
|
|
.align 2, 0
|
|
_080817DC: .4byte gSpecialVar_0x8005
|
|
_080817E0:
|
|
bl sub_8057EC0
|
|
cmp r0, 0x1
|
|
beq _080817F2
|
|
cmp r0, 0x1
|
|
bcc _08081820
|
|
cmp r0, 0x2
|
|
beq _08081806
|
|
b _08081820
|
|
_080817F2:
|
|
bl HideFieldMessageBox
|
|
movs r0, 0
|
|
strh r0, [r5, 0x8]
|
|
bl sub_8057F70
|
|
adds r0, r4, 0
|
|
bl SwitchTaskToFollowupFunc
|
|
b _08081820
|
|
_08081806:
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x8]
|
|
b _08081820
|
|
_0808180C:
|
|
bl sub_8057F48
|
|
movs r0, 0x1
|
|
bl sub_80F771C
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
bl EnableBothScriptContexts
|
|
_08081820:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_808177C
|
|
|
|
thumb_func_start sub_8081828
|
|
sub_8081828: @ 8081828
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _0808184C @ =sub_808177C
|
|
adds r0, r4, 0
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl SetTaskFuncWithFollowupFunc
|
|
bl ScriptContext1_Stop
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0808184C: .4byte sub_808177C
|
|
thumb_func_end sub_8081828
|
|
|
|
thumb_func_start sub_8081850
|
|
sub_8081850: @ 8081850
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _08081874 @ =gTasks
|
|
adds r4, r0, r1
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08081894
|
|
cmp r0, 0x1
|
|
bgt _08081878
|
|
cmp r0, 0
|
|
beq _08081882
|
|
b _080818D8
|
|
.align 2, 0
|
|
_08081874: .4byte gTasks
|
|
_08081878:
|
|
cmp r0, 0x2
|
|
beq _080818A8
|
|
cmp r0, 0x3
|
|
beq _080818C4
|
|
b _080818D8
|
|
_08081882:
|
|
bl ScriptContext2_Enable
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl fade_screen
|
|
bl sub_800A068
|
|
b _080818B8
|
|
_08081894:
|
|
ldr r0, _080818A4 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080818D8
|
|
b _080818B8
|
|
.align 2, 0
|
|
_080818A4: .4byte gPaletteFade
|
|
_080818A8:
|
|
ldr r1, _080818C0 @ =gUnknown_2031DA4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bl m4aMPlayAllStop
|
|
bl sub_800AAC0
|
|
_080818B8:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080818D8
|
|
.align 2, 0
|
|
_080818C0: .4byte gUnknown_2031DA4
|
|
_080818C4:
|
|
ldr r0, _080818E0 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080818D8
|
|
ldr r0, _080818E4 @ =sub_804C718
|
|
bl SetMainCallback2
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080818D8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080818E0: .4byte gReceivedRemoteLinkPlayers
|
|
_080818E4: .4byte sub_804C718
|
|
thumb_func_end sub_8081850
|
|
|
|
thumb_func_start sub_80818E8
|
|
sub_80818E8: @ 80818E8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _0808190C @ =gTasks+0x8
|
|
adds r4, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _0808192C
|
|
cmp r0, 0x1
|
|
bgt _08081910
|
|
cmp r0, 0
|
|
beq _0808191A
|
|
b _08081970
|
|
.align 2, 0
|
|
_0808190C: .4byte gTasks+0x8
|
|
_08081910:
|
|
cmp r0, 0x2
|
|
beq _08081940
|
|
cmp r0, 0x3
|
|
beq _0808195C
|
|
b _08081970
|
|
_0808191A:
|
|
bl ScriptContext2_Enable
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl fade_screen
|
|
bl sub_80F985C
|
|
b _08081950
|
|
_0808192C:
|
|
ldr r0, _0808193C @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08081970
|
|
b _08081950
|
|
.align 2, 0
|
|
_0808193C: .4byte gPaletteFade
|
|
_08081940:
|
|
ldr r1, _08081958 @ =gUnknown_2031DA4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bl m4aMPlayAllStop
|
|
bl sub_800AB9C
|
|
_08081950:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _08081970
|
|
.align 2, 0
|
|
_08081958: .4byte gUnknown_2031DA4
|
|
_0808195C:
|
|
bl IsLinkTaskFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08081970
|
|
bl sub_8117118
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08081970:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80818E8
|
|
|
|
thumb_func_start sub_8081978
|
|
sub_8081978: @ 8081978
|
|
push {lr}
|
|
ldr r0, _0808198C @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08081994
|
|
ldr r0, _08081990 @ =sub_80818E8
|
|
bl sub_8081828
|
|
b _0808199A
|
|
.align 2, 0
|
|
_0808198C: .4byte gWirelessCommType
|
|
_08081990: .4byte sub_80818E8
|
|
_08081994:
|
|
ldr r0, _080819A0 @ =sub_8081850
|
|
bl sub_8081828
|
|
_0808199A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080819A0: .4byte sub_8081850
|
|
thumb_func_end sub_8081978
|
|
|
|
thumb_func_start sub_80819A4
|
|
sub_80819A4: @ 80819A4
|
|
push {lr}
|
|
ldr r0, _080819B4 @ =sub_8081850
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080819B4: .4byte sub_8081850
|
|
thumb_func_end sub_80819A4
|
|
|
|
thumb_func_start sub_80819B8
|
|
sub_80819B8: @ 80819B8
|
|
push {lr}
|
|
bl sub_80819A4
|
|
bl ScriptContext1_Stop
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80819B8
|
|
|
|
thumb_func_start sub_80819C8
|
|
sub_80819C8: @ 80819C8
|
|
push {lr}
|
|
ldr r1, _080819E4 @ =gLinkType
|
|
ldr r2, _080819E8 @ =0x00002211
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _080819EC @ =gWirelessCommType
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080819F4
|
|
ldr r0, _080819F0 @ =sub_8081454
|
|
bl sub_8081828
|
|
b _080819FA
|
|
.align 2, 0
|
|
_080819E4: .4byte gLinkType
|
|
_080819E8: .4byte 0x00002211
|
|
_080819EC: .4byte gWirelessCommType
|
|
_080819F0: .4byte sub_8081454
|
|
_080819F4:
|
|
ldr r0, _08081A00 @ =sub_8081318
|
|
bl sub_8081828
|
|
_080819FA:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081A00: .4byte sub_8081318
|
|
thumb_func_end sub_80819C8
|
|
|
|
thumb_func_start sub_8081A04
|
|
sub_8081A04: @ 8081A04
|
|
push {lr}
|
|
ldr r0, _08081A18 @ =sub_808177C
|
|
movs r1, 0x50
|
|
bl CreateTask
|
|
bl ScriptContext1_Stop
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081A18: .4byte sub_808177C
|
|
thumb_func_end sub_8081A04
|
|
|
|
thumb_func_start sp02A_crash_sound
|
|
sp02A_crash_sound: @ 8081A1C
|
|
push {lr}
|
|
ldr r0, _08081A2C @ =gSpecialVar_0x8006
|
|
ldrb r0, [r0]
|
|
ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
bl sub_808B700
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081A2C: .4byte gSpecialVar_0x8006
|
|
_08081A30: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
thumb_func_end sp02A_crash_sound
|
|
|
|
thumb_func_start sub_8081A34
|
|
sub_8081A34: @ 8081A34
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _08081A74 @ =gSpecialVar_0x8006
|
|
strh r4, [r0]
|
|
ldr r0, _08081A78 @ =gStringVar1
|
|
lsls r1, r4, 3
|
|
subs r1, r4
|
|
lsls r1, 2
|
|
ldr r2, _08081A7C @ =gLinkPlayers + 8
|
|
adds r1, r2
|
|
bl StringCopy
|
|
adds r0, r4, 0
|
|
bl sub_808B1BC
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _08081A88
|
|
ldr r0, _08081A80 @ =gStringVar2
|
|
ldr r2, _08081A84 @ =gUnknown_83C6AB8
|
|
subs r1, 0x1
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl StringCopy
|
|
movs r0, 0x1
|
|
b _08081A8A
|
|
.align 2, 0
|
|
_08081A74: .4byte gSpecialVar_0x8006
|
|
_08081A78: .4byte gStringVar1
|
|
_08081A7C: .4byte gLinkPlayers + 8
|
|
_08081A80: .4byte gStringVar2
|
|
_08081A84: .4byte gUnknown_83C6AB8
|
|
_08081A88:
|
|
movs r0, 0
|
|
_08081A8A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8081A34
|
|
|
|
thumb_func_start sub_8081A90
|
|
sub_8081A90: @ 8081A90
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r5, r4, 0
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
ldr r1, _08081AD8 @ =gTasks
|
|
adds r0, r1
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
lsls r1, 16
|
|
movs r0, 0x96
|
|
lsls r0, 17
|
|
cmp r1, r0
|
|
ble _08081AC2
|
|
bl CloseLink
|
|
ldr r0, _08081ADC @ =c2_800ACD4
|
|
bl SetMainCallback2
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08081AC2:
|
|
ldr r0, _08081AE0 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08081AD0
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08081AD0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081AD8: .4byte gTasks
|
|
_08081ADC: .4byte c2_800ACD4
|
|
_08081AE0: .4byte gReceivedRemoteLinkPlayers
|
|
thumb_func_end sub_8081A90
|
|
|
|
thumb_func_start sub_8081AE4
|
|
sub_8081AE4: @ 8081AE4
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08081B04 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08081AFC
|
|
bl EnableBothScriptContexts
|
|
adds r0, r4, 0
|
|
bl DestroyTask
|
|
_08081AFC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081B04: .4byte gReceivedRemoteLinkPlayers
|
|
thumb_func_end sub_8081AE4
|
|
|
|
thumb_func_start sub_8081B08
|
|
sub_8081B08: @ 8081B08
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_800AAC0
|
|
ldr r1, _08081B28 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _08081B2C @ =sub_8081AE4
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081B28: .4byte gTasks
|
|
_08081B2C: .4byte sub_8081AE4
|
|
thumb_func_end sub_8081B08
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|