through sub_81186C8
This commit is contained in:
+3
-943
@@ -5,946 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend
|
|
||||||
MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r0, _08117F0C @ =sub_8117F20
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateTask
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r2, _08117F10 @ =gUnknown_203B05C
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 3
|
|
||||||
ldr r0, _08117F14 @ =gTasks+0x8
|
|
||||||
adds r1, r0
|
|
||||||
str r1, [r2]
|
|
||||||
ldr r0, _08117F18 @ =gUnknown_3002028
|
|
||||||
str r1, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
strb r2, [r1, 0x8]
|
|
||||||
strb r2, [r1, 0x9]
|
|
||||||
subs r4, 0x15
|
|
||||||
strb r4, [r1, 0x12]
|
|
||||||
ldr r0, _08117F1C @ =gSpecialVar_Result
|
|
||||||
strh r2, [r0]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08117F0C: .4byte sub_8117F20
|
|
||||||
_08117F10: .4byte gUnknown_203B05C
|
|
||||||
_08117F14: .4byte gTasks+0x8
|
|
||||||
_08117F18: .4byte gUnknown_3002028
|
|
||||||
_08117F1C: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend
|
|
||||||
|
|
||||||
thumb_func_start sub_8117F20
|
|
||||||
sub_8117F20: @ 8117F20
|
|
||||||
push {r4-r7,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r6, r0, 24
|
|
||||||
ldr r0, _08117F40 @ =gUnknown_203B05C
|
|
||||||
ldr r5, [r0]
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
cmp r0, 0xC
|
|
||||||
bls _08117F34
|
|
||||||
b _08118288
|
|
||||||
_08117F34:
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08117F44 @ =_08117F48
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_08117F40: .4byte gUnknown_203B05C
|
|
||||||
_08117F44: .4byte _08117F48
|
|
||||||
.align 2, 0
|
|
||||||
_08117F48:
|
|
||||||
.4byte _08117F7C
|
|
||||||
.4byte _08117FB0
|
|
||||||
.4byte _08117FC0
|
|
||||||
.4byte _08118070
|
|
||||||
.4byte _08118150
|
|
||||||
.4byte _0811818C
|
|
||||||
.4byte _081181EC
|
|
||||||
.4byte _08118248
|
|
||||||
.4byte _081181EC
|
|
||||||
.4byte _08118222
|
|
||||||
.4byte _081181EC
|
|
||||||
.4byte _0811826C
|
|
||||||
.4byte _08118278
|
|
||||||
_08117F7C:
|
|
||||||
ldrb r0, [r5, 0x12]
|
|
||||||
adds r0, 0x15
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_80FAF58
|
|
||||||
bl sub_800B1F4
|
|
||||||
bl OpenLink
|
|
||||||
bl sub_80FBBD8
|
|
||||||
movs r0, 0x70
|
|
||||||
bl AllocZeroed
|
|
||||||
str r0, [r5, 0x4]
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 2
|
|
||||||
bl AllocZeroed
|
|
||||||
str r0, [r5]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
_08117FB0:
|
|
||||||
ldr r0, _08117FBC @ =gUnknown_8458FE4
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
movs r0, 0x2
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_08117FBC: .4byte gUnknown_8458FE4
|
|
||||||
_08117FC0:
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
movs r1, 0x4
|
|
||||||
bl sub_811A650
|
|
||||||
ldr r0, [r5]
|
|
||||||
movs r1, 0x10
|
|
||||||
bl sub_811A5E4
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
ldrb r1, [r5, 0x12]
|
|
||||||
adds r1, 0x7
|
|
||||||
bl sub_811A054
|
|
||||||
movs r4, 0
|
|
||||||
strb r0, [r5, 0x11]
|
|
||||||
ldr r0, _0811805C @ =gUnknown_8456D4C
|
|
||||||
ldr r1, [r0, 0x4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [sp]
|
|
||||||
str r1, [sp, 0x4]
|
|
||||||
bl GetMysteryGiftBaseBlock
|
|
||||||
lsls r0, 16
|
|
||||||
ldr r2, _08118060 @ =0x0000ffff
|
|
||||||
ldr r1, [sp, 0x4]
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r0
|
|
||||||
str r1, [sp, 0x4]
|
|
||||||
mov r0, sp
|
|
||||||
bl AddWindow
|
|
||||||
strb r0, [r5, 0xB]
|
|
||||||
ldr r0, _08118064 @ =gUnknown_8456D54
|
|
||||||
bl AddWindow
|
|
||||||
strb r0, [r5, 0xD]
|
|
||||||
ldrb r0, [r5, 0xB]
|
|
||||||
bl MG_DrawTextBorder
|
|
||||||
ldr r0, _08118068 @ =gMultiuseListMenuTemplate
|
|
||||||
adds r2, r0, 0
|
|
||||||
ldr r1, _0811806C @ =gUnknown_8456DDC
|
|
||||||
ldm r1!, {r3,r6,r7}
|
|
||||||
stm r2!, {r3,r6,r7}
|
|
||||||
ldm r1!, {r3,r6,r7}
|
|
||||||
stm r2!, {r3,r6,r7}
|
|
||||||
ldrb r1, [r5, 0xB]
|
|
||||||
strb r1, [r0, 0x10]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl ListMenuInit
|
|
||||||
strb r0, [r5, 0xE]
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
bl MG_DrawTextBorder
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
movs r1, 0x11
|
|
||||||
bl FillWindowPixelBuffer
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
bl PutWindowTilemap
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
bl sub_8115924
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
movs r1, 0x2
|
|
||||||
bl CopyWindowToVram
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
strb r4, [r5, 0xF]
|
|
||||||
movs r0, 0x3
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_0811805C: .4byte gUnknown_8456D4C
|
|
||||||
_08118060: .4byte 0x0000ffff
|
|
||||||
_08118064: .4byte gUnknown_8456D54
|
|
||||||
_08118068: .4byte gMultiuseListMenuTemplate
|
|
||||||
_0811806C: .4byte gUnknown_8456DDC
|
|
||||||
_08118070:
|
|
||||||
bl sub_8116FE4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
cmp r2, 0
|
|
||||||
beq _0811808E
|
|
||||||
cmp r2, 0x1
|
|
||||||
bne _08118086
|
|
||||||
movs r0, 0x2
|
|
||||||
bl PlaySE
|
|
||||||
_08118086:
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
bl RedrawListMenu
|
|
||||||
b _08118288
|
|
||||||
_0811808E:
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
bl ListMenu_ProcessInput
|
|
||||||
adds r2, r0, 0
|
|
||||||
ldr r0, _08118128 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118138
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
cmp r2, r0
|
|
||||||
beq _08118138
|
|
||||||
ldr r0, [r5]
|
|
||||||
lsls r1, r2, 5
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r1, [r0, 0xA]
|
|
||||||
ldrb r0, [r0, 0x1A]
|
|
||||||
lsls r0, 30
|
|
||||||
lsrs r0, 30
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _08118130
|
|
||||||
lsrs r0, r1, 7
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08118130
|
|
||||||
strb r2, [r5, 0xF]
|
|
||||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateWirelessStatusIndicatorSprite
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
bl RedrawListMenu
|
|
||||||
ldr r4, _0811812C @ =gStringVar1
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
ldr r1, [r5]
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, 0x10
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringCopy
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
lsls r1, 28
|
|
||||||
lsrs r1, 28
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ConvertInternationalString
|
|
||||||
ldrb r1, [r5, 0xF]
|
|
||||||
lsls r1, 5
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r0, r1
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r4, 0x10
|
|
||||||
adds r0, 0x2
|
|
||||||
bl sub_8118658
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_80FBF54
|
|
||||||
movs r0, 0x67
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0x4
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_08118128: .4byte gMain
|
|
||||||
_0811812C: .4byte gStringVar1
|
|
||||||
_08118130:
|
|
||||||
movs r0, 0x7
|
|
||||||
bl PlaySE
|
|
||||||
b _08118288
|
|
||||||
_08118138:
|
|
||||||
ldr r0, _0811814C @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08118146
|
|
||||||
b _08118288
|
|
||||||
_08118146:
|
|
||||||
movs r0, 0x6
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_0811814C: .4byte gMain
|
|
||||||
_08118150:
|
|
||||||
ldr r0, _08118184 @ =gUnknown_8459238
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
ldr r4, _08118188 @ =gStringVar1
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
ldr r1, [r5]
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, 0x10
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringCopy
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
lsls r1, 28
|
|
||||||
lsrs r1, 28
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ConvertInternationalString
|
|
||||||
movs r0, 0x5
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_08118184: .4byte gUnknown_8459238
|
|
||||||
_08118188: .4byte gStringVar1
|
|
||||||
_0811818C:
|
|
||||||
ldr r0, _081181C4 @ =gReceivedRemoteLinkPlayers
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081181AA
|
|
||||||
ldr r2, _081181C8 @ =gUnknown_203B058
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1, 0xA]
|
|
||||||
lsls r0, 25
|
|
||||||
lsrs r0, 25
|
|
||||||
strb r0, [r2]
|
|
||||||
movs r0, 0xA
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
_081181AA:
|
|
||||||
bl sub_80FB9F4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x5
|
|
||||||
beq _081181D6
|
|
||||||
cmp r0, 0x5
|
|
||||||
bgt _081181CC
|
|
||||||
cmp r0, 0x2
|
|
||||||
bgt _08118288
|
|
||||||
cmp r0, 0x1
|
|
||||||
blt _08118288
|
|
||||||
b _081181D0
|
|
||||||
.align 2, 0
|
|
||||||
_081181C4: .4byte gReceivedRemoteLinkPlayers
|
|
||||||
_081181C8: .4byte gUnknown_203B058
|
|
||||||
_081181CC:
|
|
||||||
cmp r0, 0x6
|
|
||||||
bne _08118288
|
|
||||||
_081181D0:
|
|
||||||
movs r0, 0x8
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
_081181D6:
|
|
||||||
ldr r0, _081181E8 @ =gUnknown_84576AC
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80FB9E4
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_081181E8: .4byte gUnknown_84576AC
|
|
||||||
_081181EC:
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl DestroyListMenuTask
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldrb r0, [r5, 0xD]
|
|
||||||
bl RemoveWindow
|
|
||||||
ldrb r0, [r5, 0xB]
|
|
||||||
bl RemoveWindow
|
|
||||||
ldrb r0, [r5, 0x11]
|
|
||||||
bl DestroyTask
|
|
||||||
ldr r0, [r5]
|
|
||||||
bl Free
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
bl Free
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118288
|
|
||||||
_08118222:
|
|
||||||
adds r5, 0x9
|
|
||||||
ldr r4, _08118244 @ =gUnknown_8457838
|
|
||||||
bl sub_80FB9F4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 22
|
|
||||||
adds r0, r4
|
|
||||||
ldr r1, [r0]
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl MG_PrintTextOnWindow1AndWaitButton
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118288
|
|
||||||
bl DestroyWirelessStatusIndicatorSprite
|
|
||||||
b _08118252
|
|
||||||
.align 2, 0
|
|
||||||
_08118244: .4byte gUnknown_8457838
|
|
||||||
_08118248:
|
|
||||||
bl DestroyWirelessStatusIndicatorSprite
|
|
||||||
ldr r0, _08118264 @ =gUnknown_84571B8
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
_08118252:
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl DestroyTask
|
|
||||||
bl sub_80F8DC0
|
|
||||||
ldr r1, _08118268 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x5
|
|
||||||
strh r0, [r1]
|
|
||||||
b _08118288
|
|
||||||
.align 2, 0
|
|
||||||
_08118264: .4byte gUnknown_84571B8
|
|
||||||
_08118268: .4byte gSpecialVar_Result
|
|
||||||
_0811826C:
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
bl sub_800AB9C
|
|
||||||
b _08118288
|
|
||||||
_08118278:
|
|
||||||
bl IsLinkTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118288
|
|
||||||
adds r0, r6, 0
|
|
||||||
bl DestroyTask
|
|
||||||
_08118288:
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_8117F20
|
|
||||||
|
|
||||||
thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless
|
|
||||||
MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
ldr r0, _081182C8 @ =sub_81182DC
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateTask
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r2, _081182CC @ =gUnknown_203B05C
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 3
|
|
||||||
ldr r0, _081182D0 @ =gTasks+0x8
|
|
||||||
adds r1, r0
|
|
||||||
str r1, [r2]
|
|
||||||
ldr r0, _081182D4 @ =gUnknown_3002028
|
|
||||||
str r1, [r0]
|
|
||||||
movs r2, 0
|
|
||||||
strb r2, [r1, 0x8]
|
|
||||||
strb r2, [r1, 0x9]
|
|
||||||
subs r4, 0x15
|
|
||||||
strb r4, [r1, 0x12]
|
|
||||||
ldr r0, _081182D8 @ =gSpecialVar_Result
|
|
||||||
strh r2, [r0]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081182C8: .4byte sub_81182DC
|
|
||||||
_081182CC: .4byte gUnknown_203B05C
|
|
||||||
_081182D0: .4byte gTasks+0x8
|
|
||||||
_081182D4: .4byte gUnknown_3002028
|
|
||||||
_081182D8: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless
|
|
||||||
|
|
||||||
thumb_func_start sub_81182DC
|
|
||||||
sub_81182DC: @ 81182DC
|
|
||||||
push {r4-r6,lr}
|
|
||||||
sub sp, 0x8
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
ldr r0, _081182FC @ =gUnknown_203B05C
|
|
||||||
ldr r5, [r0]
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
cmp r0, 0xE
|
|
||||||
bls _081182F0
|
|
||||||
b _08118604
|
|
||||||
_081182F0:
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _08118300 @ =_08118304
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_081182FC: .4byte gUnknown_203B05C
|
|
||||||
_08118300: .4byte _08118304
|
|
||||||
.align 2, 0
|
|
||||||
_08118304:
|
|
||||||
.4byte _08118340
|
|
||||||
.4byte _0811836E
|
|
||||||
.4byte _08118380
|
|
||||||
.4byte _08118408
|
|
||||||
.4byte _081184C8
|
|
||||||
.4byte _08118504
|
|
||||||
.4byte _08118564
|
|
||||||
.4byte _081185A8
|
|
||||||
.4byte _08118564
|
|
||||||
.4byte _0811859A
|
|
||||||
.4byte _08118564
|
|
||||||
.4byte _081185B4
|
|
||||||
.4byte _08118564
|
|
||||||
.4byte _081185E8
|
|
||||||
.4byte _081185F4
|
|
||||||
_08118340:
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl sub_80FAF58
|
|
||||||
bl sub_800B1F4
|
|
||||||
bl OpenLink
|
|
||||||
bl sub_80FBBD8
|
|
||||||
movs r0, 0x70
|
|
||||||
bl AllocZeroed
|
|
||||||
str r0, [r5, 0x4]
|
|
||||||
movs r0, 0x80
|
|
||||||
lsls r0, 2
|
|
||||||
bl AllocZeroed
|
|
||||||
str r0, [r5]
|
|
||||||
movs r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
_0811836E:
|
|
||||||
ldr r0, _0811837C @ =gUnknown_84591DC
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
movs r0, 0x2
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_0811837C: .4byte gUnknown_84591DC
|
|
||||||
_08118380:
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
movs r1, 0x4
|
|
||||||
bl sub_811A650
|
|
||||||
ldr r0, [r5]
|
|
||||||
movs r1, 0x10
|
|
||||||
bl sub_811A5E4
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
ldrb r1, [r5, 0x12]
|
|
||||||
adds r1, 0x7
|
|
||||||
bl sub_811A084
|
|
||||||
strb r0, [r5, 0x11]
|
|
||||||
ldrb r0, [r5, 0x13]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081183EC
|
|
||||||
ldr r0, _081183F8 @ =gUnknown_8456D4C
|
|
||||||
ldr r1, [r0, 0x4]
|
|
||||||
ldr r0, [r0]
|
|
||||||
str r0, [sp]
|
|
||||||
str r1, [sp, 0x4]
|
|
||||||
bl GetMysteryGiftBaseBlock
|
|
||||||
lsls r0, 16
|
|
||||||
ldr r2, _081183FC @ =0x0000ffff
|
|
||||||
ldr r1, [sp, 0x4]
|
|
||||||
ands r1, r2
|
|
||||||
orrs r1, r0
|
|
||||||
str r1, [sp, 0x4]
|
|
||||||
mov r0, sp
|
|
||||||
bl AddWindow
|
|
||||||
strb r0, [r5, 0xB]
|
|
||||||
ldrb r0, [r5, 0xB]
|
|
||||||
bl MG_DrawTextBorder
|
|
||||||
ldr r0, _08118400 @ =gMultiuseListMenuTemplate
|
|
||||||
adds r2, r0, 0
|
|
||||||
ldr r1, _08118404 @ =gUnknown_8456DDC
|
|
||||||
ldm r1!, {r3,r4,r6}
|
|
||||||
stm r2!, {r3,r4,r6}
|
|
||||||
ldm r1!, {r3,r4,r6}
|
|
||||||
stm r2!, {r3,r4,r6}
|
|
||||||
ldrb r1, [r5, 0xB]
|
|
||||||
strb r1, [r0, 0x10]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl ListMenuInit
|
|
||||||
strb r0, [r5, 0xE]
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
_081183EC:
|
|
||||||
movs r0, 0
|
|
||||||
strb r0, [r5, 0xF]
|
|
||||||
movs r0, 0x3
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_081183F8: .4byte gUnknown_8456D4C
|
|
||||||
_081183FC: .4byte 0x0000ffff
|
|
||||||
_08118400: .4byte gMultiuseListMenuTemplate
|
|
||||||
_08118404: .4byte gUnknown_8456DDC
|
|
||||||
_08118408:
|
|
||||||
bl sub_8116FE4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0811842E
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0811841E
|
|
||||||
movs r0, 0x2
|
|
||||||
bl PlaySE
|
|
||||||
_0811841E:
|
|
||||||
ldrb r0, [r5, 0x13]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _08118426
|
|
||||||
b _08118604
|
|
||||||
_08118426:
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
bl RedrawListMenu
|
|
||||||
b _08118604
|
|
||||||
_0811842E:
|
|
||||||
ldrb r0, [r5, 0x13]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0811843A
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
bl ListMenu_ProcessInput
|
|
||||||
_0811843A:
|
|
||||||
ldrb r0, [r5, 0x14]
|
|
||||||
cmp r0, 0x78
|
|
||||||
bls _081184A8
|
|
||||||
ldr r2, [r5]
|
|
||||||
ldrb r1, [r2, 0x1A]
|
|
||||||
movs r0, 0x3
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _081184BC
|
|
||||||
ldrb r1, [r2, 0xA]
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
cmp r4, 0
|
|
||||||
bne _081184BC
|
|
||||||
ldrb r1, [r5, 0x12]
|
|
||||||
adds r1, 0x7
|
|
||||||
adds r0, r2, 0
|
|
||||||
bl sub_8119FB0
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0811849C
|
|
||||||
strb r4, [r5, 0xF]
|
|
||||||
strb r4, [r5, 0x14]
|
|
||||||
bl LoadWirelessStatusIndicatorSpriteGfx
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateWirelessStatusIndicatorSprite
|
|
||||||
ldr r0, [r5]
|
|
||||||
adds r4, r0, 0
|
|
||||||
adds r4, 0x10
|
|
||||||
adds r0, 0x2
|
|
||||||
bl sub_8118658
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r1, 16
|
|
||||||
lsrs r1, 16
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_80FBF54
|
|
||||||
movs r0, 0x67
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0x4
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _081184BC
|
|
||||||
_0811849C:
|
|
||||||
movs r0, 0x16
|
|
||||||
bl PlaySE
|
|
||||||
movs r0, 0xA
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _081184BC
|
|
||||||
_081184A8:
|
|
||||||
ldr r0, _081184C4 @ =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081184BC
|
|
||||||
movs r1, 0
|
|
||||||
movs r0, 0x6
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
strb r1, [r5, 0x14]
|
|
||||||
_081184BC:
|
|
||||||
ldrb r0, [r5, 0x14]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r5, 0x14]
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_081184C4: .4byte gMain
|
|
||||||
_081184C8:
|
|
||||||
ldr r0, _081184FC @ =gUnknown_845928C
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
ldr r4, _08118500 @ =gStringVar1
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
ldr r1, [r5]
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, 0x10
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl StringCopy
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r1, [r1]
|
|
||||||
lsls r1, 28
|
|
||||||
lsrs r1, 28
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl ConvertInternationalString
|
|
||||||
movs r0, 0x5
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_081184FC: .4byte gUnknown_845928C
|
|
||||||
_08118500: .4byte gStringVar1
|
|
||||||
_08118504:
|
|
||||||
ldr r0, _0811853C @ =gReceivedRemoteLinkPlayers
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118522
|
|
||||||
ldr r2, _08118540 @ =gUnknown_203B058
|
|
||||||
ldr r1, [r5]
|
|
||||||
ldrb r0, [r5, 0xF]
|
|
||||||
lsls r0, 5
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1, 0xA]
|
|
||||||
lsls r0, 25
|
|
||||||
lsrs r0, 25
|
|
||||||
strb r0, [r2]
|
|
||||||
movs r0, 0xC
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
_08118522:
|
|
||||||
bl sub_80FB9F4
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x5
|
|
||||||
beq _0811854E
|
|
||||||
cmp r0, 0x5
|
|
||||||
bgt _08118544
|
|
||||||
cmp r0, 0x2
|
|
||||||
bgt _08118604
|
|
||||||
cmp r0, 0x1
|
|
||||||
blt _08118604
|
|
||||||
b _08118548
|
|
||||||
.align 2, 0
|
|
||||||
_0811853C: .4byte gReceivedRemoteLinkPlayers
|
|
||||||
_08118540: .4byte gUnknown_203B058
|
|
||||||
_08118544:
|
|
||||||
cmp r0, 0x6
|
|
||||||
bne _08118604
|
|
||||||
_08118548:
|
|
||||||
movs r0, 0x8
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
_0811854E:
|
|
||||||
ldr r0, _08118560 @ =gUnknown_845777C
|
|
||||||
bl AddTextPrinterToWindow1
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0
|
|
||||||
bl sub_80FB9E4
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_08118560: .4byte gUnknown_845777C
|
|
||||||
_08118564:
|
|
||||||
ldrb r0, [r5, 0x13]
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118580
|
|
||||||
ldrb r0, [r5, 0xE]
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl DestroyListMenuTask
|
|
||||||
movs r0, 0
|
|
||||||
bl CopyBgTilemapBufferToVram
|
|
||||||
ldrb r0, [r5, 0xB]
|
|
||||||
bl RemoveWindow
|
|
||||||
_08118580:
|
|
||||||
ldrb r0, [r5, 0x11]
|
|
||||||
bl DestroyTask
|
|
||||||
ldr r0, [r5]
|
|
||||||
bl Free
|
|
||||||
ldr r0, [r5, 0x4]
|
|
||||||
bl Free
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
b _08118604
|
|
||||||
_0811859A:
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r0, 0x9
|
|
||||||
ldr r1, _081185A4 @ =gUnknown_84577BC
|
|
||||||
b _081185C2
|
|
||||||
.align 2, 0
|
|
||||||
_081185A4: .4byte gUnknown_84577BC
|
|
||||||
_081185A8:
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r0, 0x9
|
|
||||||
ldr r1, _081185B0 @ =gUnknown_84571E0
|
|
||||||
b _081185C2
|
|
||||||
.align 2, 0
|
|
||||||
_081185B0: .4byte gUnknown_84571E0
|
|
||||||
_081185B4:
|
|
||||||
adds r0, r5, 0
|
|
||||||
adds r0, 0x9
|
|
||||||
ldr r2, _081185E0 @ =gUnknown_845933C
|
|
||||||
ldrb r1, [r5, 0x12]
|
|
||||||
lsls r1, 2
|
|
||||||
adds r1, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
_081185C2:
|
|
||||||
bl MG_PrintTextOnWindow1AndWaitButton
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118604
|
|
||||||
bl DestroyWirelessStatusIndicatorSprite
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl DestroyTask
|
|
||||||
bl sub_80F8DC0
|
|
||||||
ldr r1, _081185E4 @ =gSpecialVar_Result
|
|
||||||
movs r0, 0x5
|
|
||||||
strh r0, [r1]
|
|
||||||
b _08118604
|
|
||||||
.align 2, 0
|
|
||||||
_081185E0: .4byte gUnknown_845933C
|
|
||||||
_081185E4: .4byte gSpecialVar_Result
|
|
||||||
_081185E8:
|
|
||||||
ldrb r0, [r5, 0x8]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r5, 0x8]
|
|
||||||
bl sub_800AB9C
|
|
||||||
b _08118604
|
|
||||||
_081185F4:
|
|
||||||
bl IsLinkTaskFinished
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _08118604
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl DestroyTask
|
|
||||||
_08118604:
|
|
||||||
add sp, 0x8
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_81182DC
|
|
||||||
|
|
||||||
thumb_func_start UnionRoomSpecial
|
|
||||||
UnionRoomSpecial: @ 811860C
|
|
||||||
push {r4,lr}
|
|
||||||
bl ClearAndInitHostRFUtgtGname
|
|
||||||
ldr r0, _08118648 @ =sub_81186E0
|
|
||||||
movs r1, 0xA
|
|
||||||
bl CreateTask
|
|
||||||
ldr r4, _0811864C @ =gUnknown_203B05C
|
|
||||||
movs r0, 0x96
|
|
||||||
lsls r0, 2
|
|
||||||
bl AllocZeroed
|
|
||||||
str r0, [r4]
|
|
||||||
ldr r1, _08118650 @ =gUnknown_300202C
|
|
||||||
str r0, [r1]
|
|
||||||
movs r1, 0
|
|
||||||
strb r1, [r0, 0x14]
|
|
||||||
strb r1, [r0, 0x16]
|
|
||||||
strh r1, [r0, 0x10]
|
|
||||||
strh r1, [r0, 0x12]
|
|
||||||
ldr r0, _08118654 @ =gSpecialVar_Result
|
|
||||||
strh r1, [r0]
|
|
||||||
movs r0, 0xD0
|
|
||||||
movs r1, 0x1
|
|
||||||
bl sub_8107D38
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08118648: .4byte sub_81186E0
|
|
||||||
_0811864C: .4byte gUnknown_203B05C
|
|
||||||
_08118650: .4byte gUnknown_300202C
|
|
||||||
_08118654: .4byte gSpecialVar_Result
|
|
||||||
thumb_func_end UnionRoomSpecial
|
|
||||||
|
|
||||||
thumb_func_start sub_8118658
|
|
||||||
sub_8118658: @ 8118658
|
|
||||||
ldrb r1, [r0, 0x1]
|
|
||||||
lsls r1, 8
|
|
||||||
ldrb r0, [r0]
|
|
||||||
orrs r0, r1
|
|
||||||
bx lr
|
|
||||||
thumb_func_end sub_8118658
|
|
||||||
|
|
||||||
thumb_func_start sub_8118664
|
|
||||||
sub_8118664: @ 8118664
|
|
||||||
push {lr}
|
|
||||||
adds r3, r1, 0
|
|
||||||
ldr r1, _08118684 @ =gUnknown_203B05C
|
|
||||||
ldr r2, [r1]
|
|
||||||
movs r1, 0x8
|
|
||||||
strb r1, [r2, 0x14]
|
|
||||||
strb r0, [r2, 0x15]
|
|
||||||
ldr r0, _08118688 @ =gStringVar4
|
|
||||||
cmp r3, r0
|
|
||||||
beq _0811867E
|
|
||||||
adds r1, r3, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
_0811867E:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_08118684: .4byte gUnknown_203B05C
|
|
||||||
_08118688: .4byte gStringVar4
|
|
||||||
thumb_func_end sub_8118664
|
|
||||||
|
|
||||||
thumb_func_start sub_811868C
|
|
||||||
sub_811868C: @ 811868C
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, 0
|
|
||||||
ldr r0, _081186A8 @ =gUnknown_203B05C
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r0, 0x1A
|
|
||||||
strb r0, [r1, 0x14]
|
|
||||||
ldr r0, _081186AC @ =gStringVar4
|
|
||||||
cmp r2, r0
|
|
||||||
beq _081186A4
|
|
||||||
adds r1, r2, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
_081186A4:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081186A8: .4byte gUnknown_203B05C
|
|
||||||
_081186AC: .4byte gStringVar4
|
|
||||||
thumb_func_end sub_811868C
|
|
||||||
|
|
||||||
thumb_func_start sub_81186B0
|
|
||||||
sub_81186B0: @ 81186B0
|
|
||||||
push {lr}
|
|
||||||
ldr r3, _081186C4 @ =gDecompressionBuffer + 0x3F00
|
|
||||||
ldr r1, [r0]
|
|
||||||
movs r2, 0x80
|
|
||||||
lsls r2, 1
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl memcpy
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081186C4: .4byte gDecompressionBuffer + 0x3F00
|
|
||||||
thumb_func_end sub_81186B0
|
|
||||||
|
|
||||||
thumb_func_start sub_81186C8
|
|
||||||
sub_81186C8: @ 81186C8
|
|
||||||
push {lr}
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _081186DC @ =gDecompressionBuffer + 0x3F00
|
|
||||||
movs r2, 0x80
|
|
||||||
lsls r2, 1
|
|
||||||
bl memcpy
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_081186DC: .4byte gDecompressionBuffer + 0x3F00
|
|
||||||
thumb_func_end sub_81186C8
|
|
||||||
|
|
||||||
thumb_func_start sub_81186E0
|
thumb_func_start sub_81186E0
|
||||||
sub_81186E0: @ 81186E0
|
sub_81186E0: @ 81186E0
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
@@ -3229,7 +2289,7 @@ _08119ACA:
|
|||||||
ldr r0, [r5]
|
ldr r0, [r5]
|
||||||
adds r0, r4
|
adds r0, r4
|
||||||
adds r0, 0x2
|
adds r0, 0x2
|
||||||
bl sub_8118658
|
bl ReadAsU16
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
mov r1, sp
|
mov r1, sp
|
||||||
@@ -5264,7 +4324,7 @@ sub_811AA24: @ 811AA24
|
|||||||
bl ConvertInternationalString
|
bl ConvertInternationalString
|
||||||
adds r4, 0x2
|
adds r4, 0x2
|
||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
bl sub_8118658
|
bl ReadAsU16
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
mov r1, sp
|
mov r1, sp
|
||||||
@@ -5302,7 +4362,7 @@ sub_811AA5C: @ 811AA5C
|
|||||||
adds r0, r4, 0
|
adds r0, r4, 0
|
||||||
bl ConvertInternationalString
|
bl ConvertInternationalString
|
||||||
adds r0, r5, 0x2
|
adds r0, r5, 0x2
|
||||||
bl sub_8118658
|
bl ReadAsU16
|
||||||
lsls r0, 16
|
lsls r0, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
|
|||||||
+3
-2
@@ -233,8 +233,8 @@ void MG_DrawCheckerboardPattern(void);
|
|||||||
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
|
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
|
||||||
bool8 IsLinkRfuTaskFinished(void);
|
bool8 IsLinkRfuTaskFinished(void);
|
||||||
void DestroyWirelessStatusIndicatorSprite(void);
|
void DestroyWirelessStatusIndicatorSprite(void);
|
||||||
void MEvent_CreateTask_CardOrNewsWithFriend(u8);
|
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
|
||||||
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
|
||||||
void MEvent_CreateTask_Leader(u32 arg0);
|
void MEvent_CreateTask_Leader(u32 arg0);
|
||||||
void sub_80F9E2C(void * data);
|
void sub_80F9E2C(void * data);
|
||||||
u8 sub_8116DE0(void);
|
u8 sub_8116DE0(void);
|
||||||
@@ -315,6 +315,7 @@ void RecordMixTrainerNames(void);
|
|||||||
void sub_80F8CFC();
|
void sub_80F8CFC();
|
||||||
void sub_80F8D14();
|
void sub_80F8D14();
|
||||||
void sub_80FAF74(bool32 a0, bool32 a1);
|
void sub_80FAF74(bool32 a0, bool32 a1);
|
||||||
|
void ClearAndInitHostRFUtgtGname(void);
|
||||||
|
|
||||||
#include "mevent_server.h"
|
#include "mevent_server.h"
|
||||||
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
|
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ struct UnkStruct_URoom
|
|||||||
struct UnkStruct_8019BA8 field_A0[8];
|
struct UnkStruct_8019BA8 field_A0[8];
|
||||||
u8 field_C0[12][15];
|
u8 field_C0[12][15];
|
||||||
u8 field_174[48];
|
u8 field_174[48];
|
||||||
u8 field_1A4[200];
|
u8 field_1A4[180];
|
||||||
};
|
};
|
||||||
|
|
||||||
union UnkUnion_Main
|
union UnkUnion_Main
|
||||||
|
|||||||
+441
-18
@@ -3,6 +3,7 @@
|
|||||||
#include "battle.h"
|
#include "battle.h"
|
||||||
#include "berry_crush.h"
|
#include "berry_crush.h"
|
||||||
#include "cable_club.h"
|
#include "cable_club.h"
|
||||||
|
#include "decompress.h"
|
||||||
#include "dodrio_berry_picking.h"
|
#include "dodrio_berry_picking.h"
|
||||||
#include "event_data.h"
|
#include "event_data.h"
|
||||||
#include "field_control_avatar.h"
|
#include "field_control_avatar.h"
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
#include "link_rfu.h"
|
#include "link_rfu.h"
|
||||||
#include "list_menu.h"
|
#include "list_menu.h"
|
||||||
#include "load_save.h"
|
#include "load_save.h"
|
||||||
|
#include "menu.h"
|
||||||
#include "mevent.h"
|
#include "mevent.h"
|
||||||
#include "mystery_gift_menu.h"
|
#include "mystery_gift_menu.h"
|
||||||
#include "new_menu_helpers.h"
|
#include "new_menu_helpers.h"
|
||||||
@@ -39,6 +41,7 @@ EWRAM_DATA struct UnionRoomTrade gUnknown_203B06C = {};
|
|||||||
|
|
||||||
IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024;
|
IWRAM_DATA struct UnkStruct_Leader * gUnknown_3002024;
|
||||||
IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028;
|
IWRAM_DATA struct UnkStruct_Group * gUnknown_3002028;
|
||||||
|
IWRAM_DATA struct UnkStruct_URoom * gUnknown_300202C;
|
||||||
|
|
||||||
void sub_8115A68(u8 taskId);
|
void sub_8115A68(u8 taskId);
|
||||||
void sub_81161E4(struct UnkStruct_Leader * leader);
|
void sub_81161E4(struct UnkStruct_Leader * leader);
|
||||||
@@ -53,8 +56,13 @@ u8 sub_8116FE4(void);
|
|||||||
void sub_8117990(void);
|
void sub_8117990(void);
|
||||||
void sub_81179A4(void);
|
void sub_81179A4(void);
|
||||||
void sub_8117A0C(u8 taskId);
|
void sub_8117A0C(u8 taskId);
|
||||||
u16 sub_8118658(const u8 *data);
|
void sub_8117F20(u8 taskId);
|
||||||
|
void sub_81182DC(u8 taskId);
|
||||||
|
void sub_81186E0(u8 taskId);
|
||||||
|
u16 ReadAsU16(const u8 *data);
|
||||||
|
bool32 sub_8119FB0(struct GFtgtGname *arg0, s16 arg1);
|
||||||
u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1);
|
u8 sub_811A054(struct UnkStruct_Main4 *arg0, u32 arg1);
|
||||||
|
u8 sub_811A084(struct UnkStruct_Main4 *arg0, u32 arg1);
|
||||||
bool8 sub_811A0F8(u8 *textState, const u8 *str);
|
bool8 sub_811A0F8(u8 *textState, const u8 *str);
|
||||||
s8 sub_811A14C(u8 *dest, bool32 arg1);
|
s8 sub_811A14C(u8 *dest, bool32 arg1);
|
||||||
void sub_811A41C(void);
|
void sub_811A41C(void);
|
||||||
@@ -83,6 +91,7 @@ extern const u8 *const gUnknown_8457094[13];
|
|||||||
extern const u8 gUnknown_84570C8[];
|
extern const u8 gUnknown_84570C8[];
|
||||||
extern const u8 gUnknown_84571B4[];
|
extern const u8 gUnknown_84571B4[];
|
||||||
extern const u8 gUnknown_84571B8[];
|
extern const u8 gUnknown_84571B8[];
|
||||||
|
extern const u8 gUnknown_84571E0[];
|
||||||
extern const u8 gUnknown_8457234[];
|
extern const u8 gUnknown_8457234[];
|
||||||
extern const u8 gUnknown_8457264[];
|
extern const u8 gUnknown_8457264[];
|
||||||
extern const u8 *const gUnknown_845742C[][5];
|
extern const u8 *const gUnknown_845742C[][5];
|
||||||
@@ -101,13 +110,20 @@ extern const u8 gUnknown_84576C4[];
|
|||||||
extern const u8 gUnknown_8457700[];
|
extern const u8 gUnknown_8457700[];
|
||||||
extern const u8 gUnknown_845771C[];
|
extern const u8 gUnknown_845771C[];
|
||||||
extern const u8 *const gUnknown_8457754[];
|
extern const u8 *const gUnknown_8457754[];
|
||||||
|
extern const u8 gUnknown_845777C[];
|
||||||
|
extern const u8 gUnknown_84577BC[];
|
||||||
extern const u8 gUnknown_84577F8[];
|
extern const u8 gUnknown_84577F8[];
|
||||||
|
extern const u8 *const gUnknown_8457838[];
|
||||||
extern const u8 gUnknown_8457E28[];
|
extern const u8 gUnknown_8457E28[];
|
||||||
extern const u8 gUnknown_8457E44[];
|
extern const u8 gUnknown_8457E44[];
|
||||||
extern const u8 gUnknown_8458FC8[];
|
extern const u8 gUnknown_8458FC8[];
|
||||||
|
extern const u8 gUnknown_8458FE4[];
|
||||||
|
extern const u8 gUnknown_84591DC[];
|
||||||
extern const u8 *const gUnknown_84591B8[];
|
extern const u8 *const gUnknown_84591B8[];
|
||||||
extern const u8 gUnknown_8459238[];
|
extern const u8 gUnknown_8459238[];
|
||||||
extern const u8 gUnknown_8459250[];
|
extern const u8 gUnknown_8459250[];
|
||||||
|
extern const u8 gUnknown_845928C[];
|
||||||
|
extern const u8 *const gUnknown_845933C[];
|
||||||
|
|
||||||
// These are functions in Emmerald but inlined in FireRed
|
// These are functions in Emmerald but inlined in FireRed
|
||||||
|
|
||||||
@@ -116,6 +132,11 @@ extern const u8 gUnknown_8459250[];
|
|||||||
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
|
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
#define sub_8018404_2(dest, arg1) ({ \
|
||||||
|
StringCopy(dest, (arg1).unk.playerName); \
|
||||||
|
ConvertInternationalString(dest, (arg1).unk.field_0.unk_00.unk_00_0); \
|
||||||
|
})
|
||||||
|
|
||||||
#define CopyTrainerCardData(dest, src, _version) ({ \
|
#define CopyTrainerCardData(dest, src, _version) ({ \
|
||||||
(dest) = *((struct TrainerCard *)(src)); \
|
(dest) = *((struct TrainerCard *)(src)); \
|
||||||
(dest).version = _version; \
|
(dest).version = _version; \
|
||||||
@@ -150,7 +171,7 @@ void sub_8115924(u8 windowId)
|
|||||||
|
|
||||||
sub_811A444(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, 0);
|
sub_811A444(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, 0);
|
||||||
StringCopy(text2, gUnknown_84571B4);
|
StringCopy(text2, gUnknown_84571B4);
|
||||||
ConvertIntToDecimalStringN(text, sub_8118658(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5);
|
ConvertIntToDecimalStringN(text, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5);
|
||||||
StringAppend(text2, text);
|
StringAppend(text2, text);
|
||||||
sub_811A444(windowId, 0, text2, 0, 0x10, 0);
|
sub_811A444(windowId, 0, text2, 0, 0x10, 0);
|
||||||
}
|
}
|
||||||
@@ -255,7 +276,7 @@ void sub_8115A68(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
sub_8116444(data, 7, 10);
|
sub_8116444(data, 7, 10);
|
||||||
if (gMain.newKeys & B_BUTTON)
|
if (JOY_NEW(B_BUTTON))
|
||||||
{
|
{
|
||||||
if (data->field_13 == 1)
|
if (data->field_13 == 1)
|
||||||
data->state = 23;
|
data->state = 23;
|
||||||
@@ -268,7 +289,7 @@ void sub_8115A68(u8 taskId)
|
|||||||
&& data->field_13 > (gUnknown_203B059 >> 4) - 1
|
&& data->field_13 > (gUnknown_203B059 >> 4) - 1
|
||||||
&& (gUnknown_203B059 & 0xF) != 0
|
&& (gUnknown_203B059 & 0xF) != 0
|
||||||
&& sub_80FC1CC()
|
&& sub_80FC1CC()
|
||||||
&& gMain.newKeys & START_BUTTON)
|
&& JOY_NEW(START_BUTTON))
|
||||||
{
|
{
|
||||||
data->state = 15;
|
data->state = 15;
|
||||||
sub_80F8F5C();
|
sub_80F8F5C();
|
||||||
@@ -308,19 +329,19 @@ void sub_8115A68(u8 taskId)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
switch (sub_811A14C(&data->textState, sub_80FA634(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName)))
|
switch (sub_811A14C(&data->textState, sub_80FA634(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName)))
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
LoadWirelessStatusIndicatorSpriteGfx();
|
LoadWirelessStatusIndicatorSpriteGfx();
|
||||||
CreateWirelessStatusIndicatorSprite(0, 0);
|
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||||
data->field_19 = 5;
|
data->field_19 = 5;
|
||||||
sub_80FA670(5, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
data->state = 12;
|
data->state = 12;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case -1:
|
case -1:
|
||||||
data->field_19 = 6;
|
data->field_19 = 6;
|
||||||
sub_80FA670(6, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
data->state = 12;
|
data->state = 12;
|
||||||
break;
|
break;
|
||||||
case -3:
|
case -3:
|
||||||
@@ -329,7 +350,7 @@ void sub_8115A68(u8 taskId)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
if (val == 1)
|
if (val == 1)
|
||||||
{
|
{
|
||||||
if (data->field_19 == 5)
|
if (data->field_19 == 5)
|
||||||
@@ -360,7 +381,7 @@ void sub_8115A68(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
|
sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
|
||||||
data->field_0->arr[data->field_13].field_1A_0 = 0;
|
data->field_0->arr[data->field_13].field_1A_0 = 0;
|
||||||
sub_81165E8(data->field_0);
|
sub_81165E8(data->field_0);
|
||||||
RedrawListMenu(data->listTaskId);
|
RedrawListMenu(data->listTaskId);
|
||||||
@@ -773,7 +794,7 @@ void sub_8116738(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
id = ListMenu_ProcessInput(data->listTaskId);
|
id = ListMenu_ProcessInput(data->listTaskId);
|
||||||
if (gMain.newKeys & A_BUTTON && id != -1)
|
if (JOY_NEW(A_BUTTON) && id != -1)
|
||||||
{
|
{
|
||||||
// this unused variable along with the assignment is needed to match
|
// this unused variable along with the assignment is needed to match
|
||||||
u32 unusedVar;
|
u32 unusedVar;
|
||||||
@@ -800,7 +821,7 @@ void sub_8116738(u8 taskId)
|
|||||||
PlaySE(SE_WALL_HIT);
|
PlaySE(SE_WALL_HIT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (JOY_NEW(B_BUTTON))
|
||||||
{
|
{
|
||||||
data->state = 10;
|
data->state = 10;
|
||||||
}
|
}
|
||||||
@@ -869,7 +890,7 @@ void sub_8116738(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!sub_80FB9F4() && gMain.newKeys & B_BUTTON)
|
if (!sub_80FB9F4() && JOY_NEW(B_BUTTON))
|
||||||
data->state = 7;
|
data->state = 7;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
@@ -985,7 +1006,7 @@ void sub_8116D60(struct UnkStruct_Group *data, s32 id)
|
|||||||
RedrawListMenu(data->listTaskId);
|
RedrawListMenu(data->listTaskId);
|
||||||
sub_8018404(gStringVar1, data->field_0->arr[data->field_F]);
|
sub_8018404(gStringVar1, data->field_0->arr[data->field_F]);
|
||||||
sub_80FB008(gUnknown_84570C8[gSpecialVar_0x8004], 0, 1);
|
sub_80FB008(gUnknown_84570C8[gSpecialVar_0x8004], 0, 1);
|
||||||
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, sub_8118658(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
|
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 sub_8116DE0(void)
|
u8 sub_8116DE0(void)
|
||||||
@@ -1536,7 +1557,7 @@ void sub_8117A0C(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
sub_8116444(data, 5, 6);
|
sub_8116444(data, 5, 6);
|
||||||
if (gMain.newKeys & B_BUTTON)
|
if (JOY_NEW(B_BUTTON))
|
||||||
{
|
{
|
||||||
data->state = 13;
|
data->state = 13;
|
||||||
DestroyWirelessStatusIndicatorSprite();
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
@@ -1562,19 +1583,19 @@ void sub_8117A0C(u8 taskId)
|
|||||||
data->field_0->arr[data->field_13].field_1B = 0;
|
data->field_0->arr[data->field_13].field_1B = 0;
|
||||||
RedrawListMenu(data->listTaskId);
|
RedrawListMenu(data->listTaskId);
|
||||||
data->field_19 = 5;
|
data->field_19 = 5;
|
||||||
sub_80FA670(5, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
sub_80FA670(5, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
data->state = 8;
|
data->state = 8;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
case -1:
|
case -1:
|
||||||
data->field_19 = 6;
|
data->field_19 = 6;
|
||||||
sub_80FA670(6, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
sub_80FA670(6, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
data->state = 8;
|
data->state = 8;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
val = sub_80FA6FC(sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
val = sub_80FA6FC(ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId), data->field_0->arr[data->field_13].unk.playerName);
|
||||||
if (val == 1)
|
if (val == 1)
|
||||||
{
|
{
|
||||||
if (data->field_19 == 5)
|
if (data->field_19 == 5)
|
||||||
@@ -1589,7 +1610,7 @@ void sub_8117A0C(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, sub_8118658(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
|
sub_80FBD4C(data->field_0->arr[data->field_13].unk.playerName, ReadAsU16(data->field_0->arr[data->field_13].unk.field_0.unk_00.playerTrainerId));
|
||||||
data->field_0->arr[data->field_13].field_1A_0 = 0;
|
data->field_0->arr[data->field_13].field_1A_0 = 0;
|
||||||
sub_81165E8(data->field_0);
|
sub_81165E8(data->field_0);
|
||||||
RedrawListMenu(data->listTaskId);
|
RedrawListMenu(data->listTaskId);
|
||||||
@@ -1674,3 +1695,405 @@ void sub_8117A0C(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0)
|
||||||
|
{
|
||||||
|
u8 taskId;
|
||||||
|
struct UnkStruct_Group *dataPtr;
|
||||||
|
|
||||||
|
taskId = CreateTask(sub_8117F20, 0);
|
||||||
|
gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data);
|
||||||
|
gUnknown_3002028 = dataPtr;
|
||||||
|
|
||||||
|
dataPtr->state = 0;
|
||||||
|
dataPtr->textState = 0;
|
||||||
|
dataPtr->field_12 = arg0 - 21;
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8117F20(u8 taskId)
|
||||||
|
{
|
||||||
|
s32 id;
|
||||||
|
struct WindowTemplate winTemplate1, winTemplate2;
|
||||||
|
struct UnkStruct_Group *data = gUnknown_203B05C.group;
|
||||||
|
|
||||||
|
switch (data->state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sub_80FAF58(data->field_12 + 21, 0, 0);
|
||||||
|
sub_800B1F4();
|
||||||
|
OpenLink();
|
||||||
|
sub_80FBBD8();
|
||||||
|
data->field_4 = AllocZeroed(0x70);
|
||||||
|
data->field_0 = AllocZeroed(0x200);
|
||||||
|
data->state = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_8458FE4);
|
||||||
|
data->state = 2;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sub_811A650(data->field_4, 4);
|
||||||
|
sub_811A5E4(data->field_0->arr, 16);
|
||||||
|
data->field_11 = sub_811A054(data->field_4, data->field_12 + 7);
|
||||||
|
|
||||||
|
winTemplate1 = gUnknown_8456D4C;
|
||||||
|
winTemplate1.baseBlock = GetMysteryGiftBaseBlock();
|
||||||
|
data->listWindowId = AddWindow(&winTemplate1);
|
||||||
|
|
||||||
|
data->field_D = AddWindow(&gUnknown_8456D54);
|
||||||
|
|
||||||
|
MG_DrawTextBorder(data->listWindowId);
|
||||||
|
gMultiuseListMenuTemplate = gUnknown_8456DDC;
|
||||||
|
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||||
|
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||||
|
|
||||||
|
MG_DrawTextBorder(data->field_D);
|
||||||
|
FillWindowPixelBuffer(data->field_D, PIXEL_FILL(1));
|
||||||
|
PutWindowTilemap(data->field_D);
|
||||||
|
sub_8115924(data->field_D);
|
||||||
|
CopyWindowToVram(data->field_D, 2);
|
||||||
|
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
data->field_F = 0;
|
||||||
|
data->state = 3;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
id = sub_8116FE4();
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
PlaySE(SE_PC_LOGIN);
|
||||||
|
default:
|
||||||
|
RedrawListMenu(data->listTaskId);
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
id = ListMenu_ProcessInput(data->listTaskId);
|
||||||
|
if (JOY_NEW(A_BUTTON) && id != -1)
|
||||||
|
{
|
||||||
|
// this unused variable along with the assignment is needed to match
|
||||||
|
u32 unusedVar;
|
||||||
|
unusedVar = data->field_0->arr[id].unk.field_0.unk_0a_0;
|
||||||
|
|
||||||
|
if (data->field_0->arr[id].field_1A_0 == 1 && !data->field_0->arr[id].unk.field_0.unk_0a_7)
|
||||||
|
{
|
||||||
|
data->field_F = id;
|
||||||
|
LoadWirelessStatusIndicatorSpriteGfx();
|
||||||
|
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||||
|
RedrawListMenu(data->listTaskId);
|
||||||
|
sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
|
||||||
|
sub_80FBF54(data->field_0->arr[data->field_F].unk.playerName, ReadAsU16(data->field_0->arr[data->field_F].unk.field_0.unk_00.playerTrainerId));
|
||||||
|
PlaySE(SE_PN_ON);
|
||||||
|
data->state = 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_WALL_HIT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (JOY_NEW(B_BUTTON))
|
||||||
|
{
|
||||||
|
data->state = 6;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_8459238);
|
||||||
|
sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
|
||||||
|
data->state = 5;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (gReceivedRemoteLinkPlayers != 0)
|
||||||
|
{
|
||||||
|
gUnknown_203B058 = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0;
|
||||||
|
data->state = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (sub_80FB9F4())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 6:
|
||||||
|
data->state = 8;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_84576AC);
|
||||||
|
sub_80FB9E4(0, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
case 8:
|
||||||
|
case 10:
|
||||||
|
DestroyListMenuTask(data->listTaskId, 0, 0);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
RemoveWindow(data->field_D);
|
||||||
|
RemoveWindow(data->listWindowId);
|
||||||
|
DestroyTask(data->field_11);
|
||||||
|
Free(data->field_0);
|
||||||
|
Free(data->field_4);
|
||||||
|
data->state++;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_8457838[sub_80FB9F4()]))
|
||||||
|
{
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
sub_80F8DC0();
|
||||||
|
gSpecialVar_Result = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
AddTextPrinterToWindow1(gUnknown_84571B8);
|
||||||
|
DestroyTask(taskId);
|
||||||
|
sub_80F8DC0();
|
||||||
|
gSpecialVar_Result = 5;
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
data->state++;
|
||||||
|
sub_800AB9C();
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
if (IsLinkTaskFinished())
|
||||||
|
DestroyTask(taskId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0)
|
||||||
|
{
|
||||||
|
u8 taskId;
|
||||||
|
struct UnkStruct_Group *dataPtr;
|
||||||
|
|
||||||
|
taskId = CreateTask(sub_81182DC, 0);
|
||||||
|
gUnknown_203B05C.group = dataPtr = (void*)(gTasks[taskId].data);
|
||||||
|
gUnknown_3002028 = dataPtr;
|
||||||
|
|
||||||
|
dataPtr->state = 0;
|
||||||
|
dataPtr->textState = 0;
|
||||||
|
dataPtr->field_12 = arg0 - 21;
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81182DC(u8 taskId)
|
||||||
|
{
|
||||||
|
s32 id;
|
||||||
|
struct WindowTemplate winTemplate;
|
||||||
|
struct UnkStruct_Group *data = gUnknown_203B05C.group;
|
||||||
|
|
||||||
|
switch (data->state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
sub_80FAF58(0, 0, 0);
|
||||||
|
sub_800B1F4();
|
||||||
|
OpenLink();
|
||||||
|
sub_80FBBD8();
|
||||||
|
data->field_4 = AllocZeroed(0x70);
|
||||||
|
data->field_0 = AllocZeroed(0x200);
|
||||||
|
data->state = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_84591DC);
|
||||||
|
data->state = 2;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
sub_811A650(data->field_4, 4);
|
||||||
|
sub_811A5E4(data->field_0->arr, 16);
|
||||||
|
data->field_11 = sub_811A084(data->field_4, data->field_12 + 7);
|
||||||
|
|
||||||
|
if (data->field_13 != 0)
|
||||||
|
{
|
||||||
|
winTemplate = gUnknown_8456D4C;
|
||||||
|
winTemplate.baseBlock = GetMysteryGiftBaseBlock();
|
||||||
|
data->listWindowId = AddWindow(&winTemplate);
|
||||||
|
|
||||||
|
MG_DrawTextBorder(data->listWindowId);
|
||||||
|
gMultiuseListMenuTemplate = gUnknown_8456DDC;
|
||||||
|
gMultiuseListMenuTemplate.windowId = data->listWindowId;
|
||||||
|
data->listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
|
||||||
|
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
data->field_F = 0;
|
||||||
|
data->state = 3;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
id = sub_8116FE4();
|
||||||
|
switch (id)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
PlaySE(SE_PC_LOGIN);
|
||||||
|
default:
|
||||||
|
if (data->field_13 != 0)
|
||||||
|
RedrawListMenu(data->listTaskId);
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
if (data->field_13 != 0)
|
||||||
|
id = ListMenu_ProcessInput(data->listTaskId);
|
||||||
|
if (data->field_14 > 120)
|
||||||
|
{
|
||||||
|
if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7)
|
||||||
|
{
|
||||||
|
if (sub_8119FB0(&data->field_0->arr[0].unk.field_0, data->field_12 + 7))
|
||||||
|
{
|
||||||
|
data->field_F = 0;
|
||||||
|
data->field_14 = 0;
|
||||||
|
LoadWirelessStatusIndicatorSpriteGfx();
|
||||||
|
CreateWirelessStatusIndicatorSprite(0, 0);
|
||||||
|
sub_80FBF54(data->field_0->arr[0].unk.playerName, ReadAsU16(data->field_0->arr[0].unk.field_0.unk_00.playerTrainerId));
|
||||||
|
PlaySE(SE_PN_ON);
|
||||||
|
data->state = 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_BOO);
|
||||||
|
data->state = 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
|
{
|
||||||
|
data->state = 6;
|
||||||
|
data->field_14 = 0;
|
||||||
|
}
|
||||||
|
data->field_14++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_845928C);
|
||||||
|
sub_8018404_2(gStringVar1, data->field_0->arr[data->field_F]);
|
||||||
|
data->state = 5;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (gReceivedRemoteLinkPlayers != 0)
|
||||||
|
{
|
||||||
|
gUnknown_203B058 = data->field_0->arr[data->field_F].unk.field_0.unk_0a_0;
|
||||||
|
data->state = 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (sub_80FB9F4())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
case 6:
|
||||||
|
data->state = 8;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
AddTextPrinterToWindow1(gUnknown_845777C);
|
||||||
|
sub_80FB9E4(0, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
case 8:
|
||||||
|
case 10:
|
||||||
|
case 12:
|
||||||
|
if (data->field_13 != 0)
|
||||||
|
{
|
||||||
|
DestroyListMenuTask(data->listTaskId, 0, 0);
|
||||||
|
CopyBgTilemapBufferToVram(0);
|
||||||
|
RemoveWindow(data->listWindowId);
|
||||||
|
}
|
||||||
|
DestroyTask(data->field_11);
|
||||||
|
Free(data->field_0);
|
||||||
|
Free(data->field_4);
|
||||||
|
data->state++;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577BC))
|
||||||
|
{
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
sub_80F8DC0();
|
||||||
|
gSpecialVar_Result = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571E0))
|
||||||
|
{
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
sub_80F8DC0();
|
||||||
|
gSpecialVar_Result = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_845933C[data->field_12]))
|
||||||
|
{
|
||||||
|
DestroyWirelessStatusIndicatorSprite();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
sub_80F8DC0();
|
||||||
|
gSpecialVar_Result = 5;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
data->state++;
|
||||||
|
sub_800AB9C();
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
if (IsLinkTaskFinished())
|
||||||
|
DestroyTask(taskId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UnionRoomSpecial(void)
|
||||||
|
{
|
||||||
|
struct UnkStruct_URoom *dataPtr;
|
||||||
|
|
||||||
|
ClearAndInitHostRFUtgtGname();
|
||||||
|
CreateTask(sub_81186E0, 10);
|
||||||
|
|
||||||
|
// dumb line needed to match
|
||||||
|
gUnknown_203B05C.uRoom = gUnknown_203B05C.uRoom;
|
||||||
|
|
||||||
|
dataPtr = AllocZeroed(sizeof(*gUnknown_203B05C.uRoom));
|
||||||
|
gUnknown_203B05C.uRoom = dataPtr;
|
||||||
|
gUnknown_300202C = dataPtr;
|
||||||
|
|
||||||
|
dataPtr->state = 0;
|
||||||
|
dataPtr->textState = 0;
|
||||||
|
dataPtr->field_10 = 0;
|
||||||
|
dataPtr->field_12 = 0;
|
||||||
|
|
||||||
|
gSpecialVar_Result = 0;
|
||||||
|
sub_8107D38(0xD0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
u16 ReadAsU16(const u8 *ptr)
|
||||||
|
{
|
||||||
|
return (ptr[1] << 8) | (ptr[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8118664(u32 nextState, const u8 *src)
|
||||||
|
{
|
||||||
|
struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom;
|
||||||
|
|
||||||
|
data->state = 8;
|
||||||
|
data->stateAfterPrint = nextState;
|
||||||
|
if (src != gStringVar4)
|
||||||
|
StringExpandPlaceholders(gStringVar4, src);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_811868C(const u8 *src)
|
||||||
|
{
|
||||||
|
struct UnkStruct_URoom *data = gUnknown_203B05C.uRoom;
|
||||||
|
|
||||||
|
data->state = 26;
|
||||||
|
if (src != gStringVar4)
|
||||||
|
StringExpandPlaceholders(gStringVar4, src);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81186B0(struct UnkStruct_URoom *data)
|
||||||
|
{
|
||||||
|
memcpy(&gDecompressionBuffer[0x3F00], data->field_0, sizeof(*data->field_0));
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81186C8(struct UnkStruct_URoom *data)
|
||||||
|
{
|
||||||
|
memcpy(data->field_0, &gDecompressionBuffer[0x3F00], sizeof(*data->field_0));
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user