1505 lines
28 KiB
ArmAsm
1505 lines
28 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
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 TryBattleLinkup
|
|
TryBattleLinkup: @ 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 TryBattleLinkup
|
|
|
|
thumb_func_start TryTradeLinkup
|
|
TryTradeLinkup: @ 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 TryTradeLinkup
|
|
|
|
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 ResetLinkPlayers
|
|
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 GetSavedPlayerCount
|
|
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 Field_AskSaveTheGame
|
|
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 FadeScreen
|
|
ldr r1, _08081374 @ =gLinkType
|
|
ldr r2, _08081378 @ =0x00002211
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl ClearLinkCallback_2
|
|
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 Link_TryStartSend5FFF
|
|
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 ReducePlayerPartyToThree
|
|
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 @ =CB2_InitBattle
|
|
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 CB2_InitBattle
|
|
_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 FadeScreen
|
|
ldr r0, _080814BC @ =gLinkType
|
|
ldr r2, _080814C0 @ =0x00002211
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
bl ClearLinkCallback_2
|
|
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 IntlConvertLinkPlayerName
|
|
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 PrepareSendLinkCmd2FFE_or_RfuCmd6600
|
|
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 ReducePlayerPartyToThree
|
|
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 @ =CB2_InitBattle
|
|
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 CB2_InitBattle
|
|
_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 Link_TryStartSend5FFF
|
|
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 Special_UpdateTrainerFansAfterLinkBattle
|
|
ldr r0, _080816B8 @ =gSpecialVar_0x8004
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x5
|
|
beq _0808170A
|
|
ldr r0, _080816BC @ =gLocalLinkPlayerId
|
|
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 @ B_OUTCOME_WON
|
|
beq _080816C8
|
|
cmp r0, 0x2 @ B_OUTCOME_LOST
|
|
beq _080816EC
|
|
b _0808170A
|
|
.align 2, 0
|
|
_080816B0: .4byte gBattleTypeFlags
|
|
_080816B4: .4byte 0x0000ffdf
|
|
_080816B8: .4byte gSpecialVar_0x8004
|
|
_080816BC: .4byte gLocalLinkPlayerId
|
|
_080816C0: .4byte gWirelessCommType
|
|
_080816C4: .4byte gBattleOutcome
|
|
_080816C8:
|
|
@ MEvent_RecordIdOfWonderCardSenderByEventType(0, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId);
|
|
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 MEvent_RecordIdOfWonderCardSenderByEventType
|
|
b _0808170A
|
|
.align 2, 0
|
|
_080816E8: .4byte gLinkPlayers
|
|
_080816EC:
|
|
@ MEvent_RecordIdOfWonderCardSenderByEventType(1, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId);
|
|
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 MEvent_RecordIdOfWonderCardSenderByEventType
|
|
_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 @ =CB2_SetUpSaveAfterLinkBattle
|
|
bl SetMainCallback2
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081738: .4byte gMain
|
|
_0808173C: .4byte c2_8056854
|
|
_08081740: .4byte CB2_SetUpSaveAfterLinkBattle
|
|
thumb_func_end sub_8081668
|
|
|
|
thumb_func_start CleanupLinkRoomState
|
|
CleanupLinkRoomState: @ 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 CleanupLinkRoomState
|
|
|
|
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 @ =CableClub_Text_PleaseWaitBCancel
|
|
bl ShowFieldMessage
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x8]
|
|
b _08081820
|
|
.align 2, 0
|
|
_080817BC: .4byte CableClub_Text_PleaseWaitBCancel
|
|
_080817C0:
|
|
bl IsFieldMessageBoxHidden
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08081820
|
|
bl sub_8057F34
|
|
ldr r0, _080817DC @ =gSpecialVar_0x8005
|
|
ldrb r0, [r0]
|
|
bl SetLocalLinkPlayerId
|
|
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 FadeScreen
|
|
bl ClearLinkCallback_2
|
|
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 @ =gSelectedTradeMonPositions
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bl m4aMPlayAllStop
|
|
bl Link_TryStartSend5FFF
|
|
_080818B8:
|
|
ldrh r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x8]
|
|
b _080818D8
|
|
.align 2, 0
|
|
_080818C0: .4byte gSelectedTradeMonPositions
|
|
_080818C4:
|
|
ldr r0, _080818E0 @ =gReceivedRemoteLinkPlayers
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080818D8
|
|
ldr r0, _080818E4 @ =CB2_ReturnFromLinkTrade
|
|
bl SetMainCallback2
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_080818D8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080818E0: .4byte gReceivedRemoteLinkPlayers
|
|
_080818E4: .4byte CB2_ReturnFromLinkTrade
|
|
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 FadeScreen
|
|
bl Rfu_set_zero
|
|
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 @ =gSelectedTradeMonPositions
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bl m4aMPlayAllStop
|
|
bl PrepareSendLinkCmd2FFE_or_RfuCmd6600
|
|
_08081950:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _08081970
|
|
.align 2, 0
|
|
_08081958: .4byte gSelectedTradeMonPositions
|
|
_0808195C:
|
|
bl IsLinkTaskFinished
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08081970
|
|
bl UnionRoom_CreateTask_CallBC2ReturnFromLinkTrade
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08081970:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80818E8
|
|
|
|
thumb_func_start EnterTradeSeat
|
|
EnterTradeSeat: @ 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 EnterTradeSeat
|
|
|
|
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 EnterColosseumPlayerSpot
|
|
EnterColosseumPlayerSpot: @ 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 EnterColosseumPlayerSpot
|
|
|
|
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 Script_ShowLinkTrainerCard
|
|
Script_ShowLinkTrainerCard: @ 8081A1C
|
|
push {lr}
|
|
ldr r0, _08081A2C @ =gSpecialVar_0x8006
|
|
ldrb r0, [r0]
|
|
ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
bl ShowTrainerCardInLink
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08081A2C: .4byte gSpecialVar_0x8006
|
|
_08081A30: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
|
|
thumb_func_end Script_ShowLinkTrainerCard
|
|
|
|
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 GetTrainerCardStars
|
|
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 @ =CB2_LinkError
|
|
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 CB2_LinkError
|
|
_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 Link_TryStartSend5FFF
|
|
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.
|