summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-26 12:49:08 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-04-26 12:49:08 -0400
commit274151836b44d960ab357d861a4d79602a8722d5 (patch)
tree1381887937def8daa4cc9e9cc477a59e9ff74390
parent7b4e2ec05b269b2fa8b73ecf94bae1e63965fb43 (diff)
Finish mystery_gift_menu.c
-rw-r--r--asm/battle_2.s2
-rw-r--r--asm/cable_club.s6
-rw-r--r--asm/evolution_scene.s2
-rw-r--r--asm/link.s18
-rw-r--r--asm/link_rfu_2.s16
-rw-r--r--asm/link_rfu_3.s42
-rw-r--r--asm/mystery_gift_menu.s1143
-rw-r--r--asm/overworld.s2
-rw-r--r--asm/trade.s16
-rw-r--r--asm/unk_814D5C8.s2
-rw-r--r--data/data_83FECCC.s40
-rw-r--r--data/specials.inc2
-rw-r--r--include/link.h2
-rw-r--r--include/link_rfu.h6
-rw-r--r--include/menews_jisan.h2
-rw-r--r--include/mevent.h6
-rw-r--r--include/mevent_server.h18
-rw-r--r--ld_script.txt1
-rw-r--r--src/menews_jisan.c2
-rw-r--r--src/mevent.c24
-rw-r--r--src/mevent_8145654.c6
-rw-r--r--src/mevent_server.c88
-rw-r--r--src/mystery_gift_menu.c712
23 files changed, 869 insertions, 1289 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s
index ec9fa32a3..e1dd268aa 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -1645,7 +1645,7 @@ _08010B2A:
ldrb r0, [r0]
cmp r0, 0
beq _08010B64
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _08010B82
diff --git a/asm/cable_club.s b/asm/cable_club.s
index a403aa659..c7d8a86a6 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -765,7 +765,7 @@ _08080D3C:
cmp r2, 0x9
bne _08080D54
_08080D44:
- bl sub_80098B8
+ bl CloseLink
bl HideFieldMessageBox
ldr r0, _08080D50 @ =sub_8080F78
b _08080D72
@@ -860,7 +860,7 @@ _08080DF6:
cmp r0, 0x9
bne _08080E20
_08080DFE:
- bl sub_80098B8
+ bl CloseLink
_08080E02:
bl HideFieldMessageBox
ldr r0, _08080E18 @ =gTasks
@@ -2459,7 +2459,7 @@ sub_8081A90: @ 8081A90
lsls r0, 17
cmp r1, r0
ble _08081AC2
- bl sub_80098B8
+ bl CloseLink
ldr r0, _08081ADC @ =c2_800ACD4
bl SetMainCallback2
adds r0, r4, 0
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index c02eef927..f66a066ae 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -3691,7 +3691,7 @@ _080CFDBA:
ldrb r0, [r0]
cmp r0, 0
beq _080CFDC6
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_080CFDC6:
movs r0, 0x3
bl GetBgTilemapBuffer
diff --git a/asm/link.s b/asm/link.s
index 7130ce69d..4dd79efe1 100644
--- a/asm/link.s
+++ b/asm/link.s
@@ -29,7 +29,7 @@ _08009498:
cmp r0, r1
beq _080094C4
bl sub_800B210
- bl sub_80098B8
+ bl CloseLink
bl RestoreSerialTimer3IntrHandlers
movs r0, 0
b _080094CE
@@ -507,8 +507,8 @@ _080098B0: .4byte gUnknown_3003F30
_080098B4: .4byte gUnknown_3003F2C
thumb_func_end sub_8009804
- thumb_func_start sub_80098B8
-sub_80098B8: @ 80098B8
+ thumb_func_start CloseLink
+CloseLink: @ 80098B8
push {r4,lr}
ldr r0, _080098DC @ =gReceivedRemoteLinkPlayers
movs r4, 0
@@ -529,7 +529,7 @@ _080098CC:
_080098DC: .4byte gReceivedRemoteLinkPlayers
_080098E0: .4byte gWirelessCommType
_080098E4: .4byte gLinkOpen
- thumb_func_end sub_80098B8
+ thumb_func_end CloseLink
thumb_func_start TestBlockTransfer
TestBlockTransfer: @ 80098E8
@@ -1596,7 +1596,7 @@ _0800A100:
bne _0800A112
ldr r0, _0800A11C @ =gUnknown_3003EAC
strb r4, [r0]
- bl sub_80098B8
+ bl CloseLink
_0800A112:
movs r6, 0
ldr r4, _0800A120 @ =gLinkPlayers
@@ -2122,7 +2122,7 @@ sub_800A4BC: @ 800A4BC
ldrb r0, [r0]
cmp r0, 0x1
bne _0800A4D4
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
lsrs r0, 24
b _0800A4E2
@@ -2833,7 +2833,7 @@ _0800A9E6:
ldr r1, _0800AA1C @ =gUnknown_3003EAC
movs r0, 0x1
strb r0, [r1]
- bl sub_80098B8
+ bl CloseLink
ldr r0, _0800AA20 @ =c2_800ACD4
bl SetMainCallback2
_0800A9F6:
@@ -3045,7 +3045,7 @@ _0800AB5C:
ldr r0, _0800AB90 @ =gLinkVSyncDisabled
movs r4, 0x1
strb r4, [r0]
- bl sub_80098B8
+ bl CloseLink
ldr r1, _0800AB94 @ =gUnknown_3003F80
movs r0, 0
str r0, [r1]
@@ -3198,7 +3198,7 @@ _0800AC8E:
ldr r1, _0800ACB8 @ =gUnknown_3003EAC
movs r0, 0x1
strb r0, [r1]
- bl sub_80098B8
+ bl CloseLink
_0800AC98:
pop {r0}
bx r0
diff --git a/asm/link_rfu_2.s b/asm/link_rfu_2.s
index bad221798..e15838946 100644
--- a/asm/link_rfu_2.s
+++ b/asm/link_rfu_2.s
@@ -4012,8 +4012,8 @@ sub_80FA4EC: @ 80FA4EC
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end sub_80FA4EC
- thumb_func_start sub_80FA4F8
-sub_80FA4F8: @ 80FA4F8
+ thumb_func_start IsNoOneConnected
+IsNoOneConnected: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
@@ -4027,7 +4027,7 @@ _080FA506:
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
- thumb_func_end sub_80FA4F8
+ thumb_func_end IsNoOneConnected
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
@@ -5193,7 +5193,7 @@ _080FADF8:
ldrb r0, [r7]
movs r0, 0x2
strb r0, [r7]
- bl sub_80098B8
+ bl CloseLink
b _080FAE62
.align 2, 0
_080FAE10: .4byte gUnknown_3005450
@@ -9466,8 +9466,8 @@ _080FCE3C: .4byte 0x00001234
_080FCE40: .4byte gUnknown_843F274
thumb_func_end sub_80FCD74
- thumb_func_start sub_80FCE44
-sub_80FCE44: @ 80FCE44
+ thumb_func_start DestroyWirelessStatusIndicatorSprite
+DestroyWirelessStatusIndicatorSprite: @ 80FCE44
push {r4,lr}
ldr r4, _080FCE90 @ =gSprites
ldr r3, _080FCE94 @ =gUnknown_203ACE4
@@ -9512,7 +9512,7 @@ _080FCE98: .4byte 0x00001234
_080FCE9C: .4byte gMain
_080FCEA0: .4byte gDummyOamData
_080FCEA4: .4byte 0x070003e8
- thumb_func_end sub_80FCE44
+ thumb_func_end DestroyWirelessStatusIndicatorSprite
thumb_func_start sub_80FCEA8
sub_80FCEA8: @ 80FCEA8
@@ -9830,7 +9830,7 @@ _080FD072:
lsrs r0, 24
cmp r0, 0x1
bne _080FD106
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_080FD106:
pop {r3}
mov r8, r3
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index f78d77079..7e3718d18 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -1071,7 +1071,7 @@ _0811615C:
.align 2, 0
_08116164: .4byte gUnknown_8457610
_08116168:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
bl sub_80F8DC0
adds r0, r5, 0
bl sub_81161E4
@@ -2347,7 +2347,7 @@ _08116C10:
strb r0, [r6, 0x8]
b _08116D06
_08116C68:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r5, r6, 0
adds r5, 0x9
ldr r4, _08116C90 @ =gUnknown_8457754
@@ -2368,14 +2368,14 @@ _08116C68:
_08116C90: .4byte gUnknown_8457754
_08116C94: .4byte gSpecialVar_Result
_08116C98:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08116CA4 @ =gSpecialVar_Result
movs r1, 0x5
b _08116CDC
.align 2, 0
_08116CA4: .4byte gSpecialVar_Result
_08116CA8:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r5, r6, 0
adds r5, 0x9
ldr r4, _08116CC4 @ =gUnknown_8457754
@@ -3911,8 +3911,8 @@ _081179C4: .4byte sub_81175BC
_081179C8: .4byte gTasks
thumb_func_end sub_81179A4
- thumb_func_start sub_81179CC
-sub_81179CC: @ 81179CC
+ thumb_func_start MEvent_CreateTask_Leader
+MEvent_CreateTask_Leader: @ 81179CC
push {r4,lr}
adds r4, r0, 0
ldr r0, _081179FC @ =sub_8117A0C
@@ -3941,7 +3941,7 @@ _081179FC: .4byte sub_8117A0C
_08117A00: .4byte gUnknown_203B05C
_08117A04: .4byte gTasks+0x8
_08117A08: .4byte gSpecialVar_Result
- thumb_func_end sub_81179CC
+ thumb_func_end MEvent_CreateTask_Leader
thumb_func_start sub_8117A0C
sub_8117A0C: @ 8117A0C
@@ -4056,7 +4056,7 @@ _08117AB8:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _08117B70 @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -4134,7 +4134,7 @@ _08117BBC:
_08117BD4:
movs r0, 0xD
strb r0, [r5, 0xC]
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
b _08117ECA
.align 2, 0
_08117BE0: .4byte gMain
@@ -4393,7 +4393,7 @@ _08117DE8:
strb r0, [r5, 0xC]
b _08117ECA
_08117DEE:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
bl sub_80F8DC0
ldrb r0, [r5, 0x12]
movs r1, 0
@@ -4490,8 +4490,8 @@ _08117ECA:
bx r0
thumb_func_end sub_8117A0C
- thumb_func_start sub_8117ED4
-sub_8117ED4: @ 8117ED4
+ thumb_func_start MEvent_CreateTask_CardOrNewsWithFriend
+MEvent_CreateTask_CardOrNewsWithFriend: @ 8117ED4
push {r4,lr}
adds r4, r0, 0
ldr r0, _08117F0C @ =sub_8117F20
@@ -4524,7 +4524,7 @@ _08117F10: .4byte gUnknown_203B05C
_08117F14: .4byte gTasks+0x8
_08117F18: .4byte gUnknown_3002028
_08117F1C: .4byte gSpecialVar_Result
- thumb_func_end sub_8117ED4
+ thumb_func_end MEvent_CreateTask_CardOrNewsWithFriend
thumb_func_start sub_8117F20
sub_8117F20: @ 8117F20
@@ -4609,7 +4609,7 @@ _08117FC0:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _08118060 @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -4871,12 +4871,12 @@ _08118222:
bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118288
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
b _08118252
.align 2, 0
_08118244: .4byte gUnknown_8457838
_08118248:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _08118264 @ =gUnknown_84571B8
bl AddTextPrinterToWindow1
_08118252:
@@ -4910,8 +4910,8 @@ _08118288:
bx r0
thumb_func_end sub_8117F20
- thumb_func_start sub_8118290
-sub_8118290: @ 8118290
+ thumb_func_start MEvent_CreateTask_CardOrNewsOverWireless
+MEvent_CreateTask_CardOrNewsOverWireless: @ 8118290
push {r4,lr}
adds r4, r0, 0
ldr r0, _081182C8 @ =sub_81182DC
@@ -4944,7 +4944,7 @@ _081182CC: .4byte gUnknown_203B05C
_081182D0: .4byte gTasks+0x8
_081182D4: .4byte gUnknown_3002028
_081182D8: .4byte gSpecialVar_Result
- thumb_func_end sub_8118290
+ thumb_func_end MEvent_CreateTask_CardOrNewsOverWireless
thumb_func_start sub_81182DC
sub_81182DC: @ 81182DC
@@ -5030,7 +5030,7 @@ _08118380:
ldr r0, [r0]
str r0, [sp]
str r1, [sp, 0x4]
- bl sub_81435D4
+ bl GetMysteryGiftBaseBlock
lsls r0, 16
ldr r2, _081183FC @ =0x0000ffff
ldr r1, [sp, 0x4]
@@ -5284,7 +5284,7 @@ _081185C2:
bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118604
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r0, r4, 0
bl DestroyTask
bl sub_80F8DC0
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
deleted file mode 100644
index 092289daa..000000000
--- a/asm/mystery_gift_menu.s
+++ /dev/null
@@ -1,1143 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start mevent_08142CE8
-mevent_08142CE8: @ 8142CE8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0
- ldrb r4, [r6]
- cmp r4, 0x1
- beq _08142D1A
- cmp r4, 0x1
- bgt _08142D00
- cmp r4, 0
- beq _08142D06
- b _08142D46
-_08142D00:
- cmp r4, 0x2
- beq _08142D30
- b _08142D46
-_08142D06:
- cmp r0, 0
- beq _08142D0E
- bl AddTextPrinterToWindow1
-_08142D0E:
- movs r0, 0x81
- lsls r0, 1
- bl PlayFanfare
- strh r4, [r5]
- b _08142D28
-_08142D1A:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _08142D46
-_08142D28:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _08142D46
-_08142D30:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08142D46
- movs r0, 0
- strb r0, [r6]
- bl ClearTextWindow
- movs r0, 0x1
- b _08142D48
-_08142D46:
- movs r0, 0
-_08142D48:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mevent_08142CE8
-
- thumb_func_start mevent_message_stamp_card_etc_send_status
-mevent_message_stamp_card_etc_send_status: @ 8142D50
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _08142D6C @ =gText_CommunicationError
- movs r0, 0
- str r0, [r3]
- adds r4, r1, 0
- cmp r2, 0xE
- bhi _08142E12
- lsls r0, r2, 2
- ldr r1, _08142D70 @ =_08142D74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142D6C: .4byte gText_CommunicationError
-_08142D70: .4byte _08142D74
- .align 2, 0
-_08142D74:
- .4byte _08142DB0
- .4byte _08142DB8
- .4byte _08142DC0
- .4byte _08142DC8
- .4byte _08142DD4
- .4byte _08142DDC
- .4byte _08142DE4
- .4byte _08142DEC
- .4byte _08142DF4
- .4byte _08142DFC
- .4byte _08142E10
- .4byte _08142E04
- .4byte _08142E08
- .4byte _08142E08
- .4byte _08142E10
-_08142DB0:
- ldr r1, _08142DB4 @ =gText_NothingSentOver
- b _08142E12
- .align 2, 0
-_08142DB4: .4byte gText_NothingSentOver
-_08142DB8:
- ldr r1, _08142DBC @ =gText_RecordUploadedViaWireless
- b _08142E12
- .align 2, 0
-_08142DBC: .4byte gText_RecordUploadedViaWireless
-_08142DC0:
- ldr r1, _08142DC4 @ =gUnknown_841EB20
- b _08142DCA
- .align 2, 0
-_08142DC4: .4byte gUnknown_841EB20
-_08142DC8:
- ldr r1, _08142DD0 @ =gUnknown_841EB46
-_08142DCA:
- movs r0, 0x1
- str r0, [r3]
- b _08142E12
- .align 2, 0
-_08142DD0: .4byte gUnknown_841EB46
-_08142DD4:
- ldr r1, _08142DD8 @ =gUnknown_841EB71
- b _08142E12
- .align 2, 0
-_08142DD8: .4byte gUnknown_841EB71
-_08142DDC:
- ldr r1, _08142DE0 @ =gUnknown_841EBAA
- b _08142E12
- .align 2, 0
-_08142DE0: .4byte gUnknown_841EBAA
-_08142DE4:
- ldr r1, _08142DE8 @ =gUnknown_841EC12
- b _08142E12
- .align 2, 0
-_08142DE8: .4byte gUnknown_841EC12
-_08142DEC:
- ldr r1, _08142DF0 @ =gUnknown_841EBDE
- b _08142E12
- .align 2, 0
-_08142DF0: .4byte gUnknown_841EBDE
-_08142DF4:
- ldr r1, _08142DF8 @ =gText_NoMoreRoomForStamps
- b _08142E12
- .align 2, 0
-_08142DF8: .4byte gText_NoMoreRoomForStamps
-_08142DFC:
- ldr r1, _08142E00 @ =gUnknown_841EC40
- b _08142E12
- .align 2, 0
-_08142E00: .4byte gUnknown_841EC40
-_08142E04:
- adds r1, r4, 0
- b _08142E12
-_08142E08:
- ldr r1, _08142E0C @ =gUnknown_841EB8E
- b _08142E12
- .align 2, 0
-_08142E0C: .4byte gUnknown_841EB8E
-_08142E10:
- ldr r1, _08142E1C @ =gUnknown_841EC6A
-_08142E12:
- adds r0, r1, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08142E1C: .4byte gUnknown_841EC6A
- thumb_func_end mevent_message_stamp_card_etc_send_status
-
- thumb_func_start sub_8142E20
-sub_8142E20: @ 8142E20
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- adds r1, r2, 0
- adds r2, r3, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- bl mevent_message_stamp_card_etc_send_status
- adds r1, r0, 0
- ldr r0, [sp]
- cmp r0, 0
- bne _08142E46
- adds r0, r4, 0
- bl MG_PrintTextOnWindow1AndWaitButton
- b _08142E4E
-_08142E46:
- adds r0, r4, 0
- adds r2, r5, 0
- bl mevent_08142CE8
-_08142E4E:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8142E20
-
- thumb_func_start task_add_00_mystery_gift
-task_add_00_mystery_gift: @ 8142E58
- push {r4,lr}
- ldr r0, _08142E98 @ =sub_8142EA0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _08142E9C @ =gTasks+0x8
- adds r4, r0
- movs r0, 0
- strb r0, [r4, 0x8]
- strb r0, [r4, 0x9]
- strb r0, [r4, 0xA]
- strb r0, [r4, 0xB]
- strb r0, [r4, 0xC]
- strb r0, [r4, 0xD]
- movs r1, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- strh r0, [r4, 0x6]
- strb r1, [r4, 0xE]
- movs r0, 0x40
- bl AllocZeroed
- str r0, [r4, 0x10]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142E98: .4byte sub_8142EA0
-_08142E9C: .4byte gTasks+0x8
- thumb_func_end task_add_00_mystery_gift
-
- thumb_func_start sub_8142EA0
-sub_8142EA0: @ 8142EA0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08142EC4 @ =gTasks+0x8
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- cmp r0, 0x25
- bls _08142EBA
- b _081435C6
-_08142EBA:
- lsls r0, 2
- ldr r1, _08142EC8 @ =_08142ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142EC4: .4byte gTasks+0x8
-_08142EC8: .4byte _08142ECC
- .align 2, 0
-_08142ECC:
- .4byte _08142F64
- .4byte _08142F6A
- .4byte _08142FAC
- .4byte _08142FE4
- .4byte _08143008
- .4byte _08143058
- .4byte _081430B8
- .4byte _081430EC
- .4byte _081430FC
- .4byte _08143174
- .4byte _08143198
- .4byte _081431B0
- .4byte _081431E0
- .4byte _0814321C
- .4byte _08143232
- .4byte _08143264
- .4byte _0814358C
- .4byte _081432C2
- .4byte _081432CC
- .4byte _081435C6
- .4byte _081432DE
- .4byte _0814332C
- .4byte _081433A2
- .4byte _081433D2
- .4byte _08143408
- .4byte _08143422
- .4byte _08143436
- .4byte _08143442
- .4byte _08143456
- .4byte _0814346A
- .4byte _0814349C
- .4byte _081434D0
- .4byte _08143514
- .4byte _08143528
- .4byte _08143544
- .4byte _08143558
- .4byte _0814358C
- .4byte _081435AC
-_08142F64:
- movs r0, 0x1
- strb r0, [r5, 0x8]
- b _081435C6
-_08142F6A:
- adds r0, r5, 0
- adds r0, 0x9
- adds r1, r5, 0
- movs r2, 0
- bl MysteryGift_HandleThreeOptionMenu
- adds r1, r0, 0
- cmp r1, 0x1
- beq _08142F94
- cmp r1, 0x1
- bcc _08142F8A
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08142FA6
- b _081435C6
-_08142F8A:
- movs r0, 0
- strb r0, [r5, 0xC]
- bl ValidateReceivedWonderCard
- b _08142F9A
-_08142F94:
- strb r1, [r5, 0xC]
- bl ValidateReceivedWonderNews
-_08142F9A:
- cmp r0, 0x1
- bne _08142FA0
- b _081434C4
-_08142FA0:
- movs r0, 0x2
- strb r0, [r5, 0x8]
- b _081435C6
-_08142FA6:
- movs r0, 0x25
- strb r0, [r5, 0x8]
- b _081435C6
-_08142FAC:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08142FC0
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08142FBC @ =gUnknown_841E6A1
- b _08142FC6
- .align 2, 0
-_08142FBC: .4byte gUnknown_841E6A1
-_08142FC0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08142FE0 @ =gUnknown_841E6DC
-_08142FC6:
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- bne _08142FD0
- b _081435C6
-_08142FD0:
- movs r0, 0x3
- strb r0, [r5, 0x8]
- movs r0, 0
- movs r1, 0x1
- bl PrintMysteryGiftOrEReaderTopMenu
- b _081435C6
- .align 2, 0
-_08142FE0: .4byte gUnknown_841E6DC
-_08142FE4:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08142FF8
- ldr r0, _08142FF4 @ =gUnknown_841E717
- bl AddTextPrinterToWindow1
- b _08142FFE
- .align 2, 0
-_08142FF4: .4byte gUnknown_841E717
-_08142FF8:
- ldr r0, _08143004 @ =gUnknown_841E741
- bl AddTextPrinterToWindow1
-_08142FFE:
- movs r0, 0x4
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143004: .4byte gUnknown_841E741
-_08143008:
- adds r0, r5, 0
- adds r0, 0x9
- adds r1, r5, 0
- movs r2, 0x1
- bl MysteryGift_HandleThreeOptionMenu
- adds r4, r0, 0
- cmp r4, 0x1
- beq _08143036
- cmp r4, 0x1
- bcc _08143028
- movs r0, 0x2
- negs r0, r0
- cmp r4, r0
- beq _08143042
- b _081435C6
-_08143028:
- bl ClearTextWindow
- movs r1, 0
- movs r0, 0x5
- strb r0, [r5, 0x8]
- strb r1, [r5, 0xD]
- b _081435C6
-_08143036:
- bl ClearTextWindow
- movs r0, 0x5
- strb r0, [r5, 0x8]
- strb r4, [r5, 0xD]
- b _081435C6
-_08143042:
- bl ClearTextWindow
- ldrb r0, [r5, 0xC]
- bl ValidateCardOrNews
- cmp r0, 0
- beq _08143052
- b _081434C4
-_08143052:
- strb r0, [r5, 0x8]
- movs r0, 0
- b _0814359E
-_08143058:
- ldr r0, _08143074 @ =gStringVar1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _08143078 @ =gStringVar2
- strb r1, [r0]
- ldr r0, _0814307C @ =gStringVar3
- strb r1, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- beq _08143080
- cmp r0, 0x1
- beq _0814309A
- b _081430B2
- .align 2, 0
-_08143074: .4byte gStringVar1
-_08143078: .4byte gStringVar2
-_0814307C: .4byte gStringVar3
-_08143080:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _0814308E
- movs r0, 0x15
- bl sub_8117ED4
- b _081430B2
-_0814308E:
- cmp r0, 0
- bne _081430B2
- movs r0, 0x15
- bl sub_8118290
- b _081430B2
-_0814309A:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _081430A8
- movs r0, 0x16
- bl sub_8117ED4
- b _081430B2
-_081430A8:
- cmp r0, 0
- bne _081430B2
- movs r0, 0x16
- bl sub_8118290
-_081430B2:
- movs r0, 0x6
- strb r0, [r5, 0x8]
- b _081435C6
-_081430B8:
- ldr r0, _081430D0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081430D4
- movs r0, 0x1
- bl ClearScreenInBg0
- movs r0, 0x7
- strb r0, [r5, 0x8]
- bl mevent_srv_ish_do_init
- b _081435C6
- .align 2, 0
-_081430D0: .4byte gReceivedRemoteLinkPlayers
-_081430D4:
- ldr r0, _081430E8 @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _081430DE
- b _081435C6
-_081430DE:
- movs r0, 0x1
- bl ClearScreenInBg0
- b _08143464
- .align 2, 0
-_081430E8: .4byte gSpecialVar_Result
-_081430EC:
- ldr r0, _081430F8 @ =gUnknown_841E794
- bl AddTextPrinterToWindow1
- movs r0, 0x8
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081430F8: .4byte gUnknown_841E794
-_081430FC:
- adds r0, r5, 0
- bl mevent_srv_ish_do_exec
- subs r0, 0x2
- cmp r0, 0x4
- bls _0814310A
- b _081435C6
-_0814310A:
- lsls r0, 2
- ldr r1, _08143114 @ =_08143118
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08143114: .4byte _08143118
- .align 2, 0
-_08143118:
- .4byte _08143156
- .4byte _08143150
- .4byte _0814315C
- .4byte _0814313A
- .4byte _0814312C
-_0814312C:
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- ldrh r0, [r5]
- strb r0, [r5, 0xE]
- movs r0, 0xD
- strb r0, [r5, 0x8]
- b _081435C6
-_0814313A:
- ldr r4, [r5, 0x10]
- bl mevent_srv_ish_get_buffer
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x40
- bl memcpy
- bl mevent_srv_ish_inc_flag
- b _081435C6
-_08143150:
- movs r0, 0xA
- strb r0, [r5, 0x8]
- b _081435C6
-_08143156:
- movs r0, 0x9
- strb r0, [r5, 0x8]
- b _081435C6
-_0814315C:
- movs r0, 0xB
- strb r0, [r5, 0x8]
- ldr r0, _0814316C @ =gStringVar1
- ldr r1, _08143170 @ =gLinkPlayers + 8
- bl StringCopy
- b _081435C6
- .align 2, 0
-_0814316C: .4byte gStringVar1
-_08143170: .4byte gLinkPlayers + 8
-_08143174:
- adds r4, r5, 0
- adds r4, 0x9
- bl mevent_srv_ish_get_buffer
- adds r3, r0, 0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcs _081431FA
- movs r0, 0
- b _0814320E
-_08143198:
- adds r4, r5, 0
- adds r4, 0x9
- bl mevent_srv_ish_get_buffer
- adds r1, r0, 0
- adds r0, r4, 0
- bl MG_PrintTextOnWindow1AndWaitButton
- cmp r0, 0
- bne _081431AE
- b _081435C6
-_081431AE:
- b _08143212
-_081431B0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _081431D8 @ =gUnknown_841E7F2
- adds r1, r5, 0
- movs r2, 0
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcs _081431FA
- bl sub_8144144
- cmp r0, 0x1
- bne _081431DC
- movs r0, 0xC
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081431D8: .4byte gUnknown_841E7F2
-_081431DC:
- movs r0, 0
- b _0814320E
-_081431E0:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _08143204 @ =gUnknown_841E823
- adds r1, r5, 0
- movs r2, 0
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _0814320C
- cmp r1, 0x1
- bcc _08143208
-_081431FA:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814320C
- b _081435C6
- .align 2, 0
-_08143204: .4byte gUnknown_841E823
-_08143208:
- movs r0, 0
- b _0814320E
-_0814320C:
- movs r0, 0x1
-_0814320E:
- bl mevent_srv_ish_set_param
-_08143212:
- bl mevent_srv_ish_inc_flag
- movs r0, 0x7
- strb r0, [r5, 0x8]
- b _081435C6
-_0814321C:
- bl sub_80FA4F8
- lsls r0, 24
- cmp r0, 0
- bne _08143228
- b _081435C6
-_08143228:
- bl sub_80FCE44
- movs r0, 0xE
- strb r0, [r5, 0x8]
- b _081435C6
-_08143232:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _08143258 @ =gUnknown_841E7A3
- bl PrintStringAndWait2Seconds
- cmp r0, 0
- bne _08143242
- b _081435C6
-_08143242:
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _08143250
- ldr r0, _0814325C @ =gStringVar1
- ldr r1, _08143260 @ =gLinkPlayers + 8
- bl StringCopy
-_08143250:
- movs r0, 0xF
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143258: .4byte gUnknown_841E7A3
-_0814325C: .4byte gStringVar1
-_08143260: .4byte gLinkPlayers + 8
-_08143264:
- ldrb r1, [r5, 0xC]
- ldrb r2, [r5, 0xD]
- ldrb r3, [r5, 0xE]
- mov r0, sp
- bl mevent_message
- adds r1, r0, 0
- cmp r1, 0
- bne _08143278
- ldr r1, [r5, 0x10]
-_08143278:
- ldr r0, [sp]
- cmp r0, 0
- beq _0814328A
- adds r0, r5, 0
- adds r0, 0x9
- adds r2, r5, 0
- bl mevent_08142CE8
- b _08143292
-_0814328A:
- adds r0, r5, 0
- adds r0, 0x9
- bl MG_PrintTextOnWindow1AndWaitButton
-_08143292:
- adds r1, r0, 0
- cmp r1, 0
- bne _0814329A
- b _081435C6
-_0814329A:
- ldrb r0, [r5, 0xE]
- cmp r0, 0x3
- bne _081432B4
- ldrb r0, [r5, 0xD]
- cmp r0, 0x1
- bne _081432AE
- movs r0, 0x1
- bl sub_8146C30
- b _081432B4
-_081432AE:
- movs r0, 0x2
- bl sub_8146C30
-_081432B4:
- ldr r0, [sp]
- cmp r0, 0
- beq _081432BC
- b _0814357C
-_081432BC:
- strb r0, [r5, 0x8]
- movs r0, 0
- b _0814359E
-_081432C2:
- adds r0, r5, 0
- adds r0, 0x9
- bl mevent_save_game
- b _08143596
-_081432CC:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r1, [r5, 0xC]
- bl HandleLoadWonderCardOrNews
- cmp r0, 0
- bne _081432DC
- b _081435C6
-_081432DC:
- b _0814339C
-_081432DE:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143308
- ldr r2, _08143304 @ =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081432F4
- movs r0, 0x15
- strb r0, [r5, 0x8]
-_081432F4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08143300
- b _081435C6
-_08143300:
- b _08143326
- .align 2, 0
-_08143304: .4byte gMain
-_08143308:
- ldr r0, _0814331C @ =gMain
- ldrh r0, [r0, 0x2E]
- bl sub_8146884
- cmp r0, 0
- beq _08143320
- cmp r0, 0x1
- beq _08143326
- b _081435C6
- .align 2, 0
-_0814331C: .4byte gMain
-_08143320:
- bl sub_81467EC
- b _08143402
-_08143326:
- movs r0, 0x1B
- strb r0, [r5, 0x8]
- b _081435C6
-_0814332C:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143346
- bl sub_8144054
- cmp r0, 0
- beq _0814335A
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0
- b _08143364
-_08143346:
- bl sub_8143E78
- cmp r0, 0
- beq _0814335A
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0
- b _08143364
-_0814335A:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- movs r3, 0x1
-_08143364:
- bl HandleMysteryGiftListMenu
- adds r1, r0, 0
- cmp r1, 0x1
- beq _08143386
- cmp r1, 0x1
- bcc _08143380
- cmp r1, 0x2
- beq _0814338C
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08143392
- b _081435C6
-_08143380:
- movs r0, 0x1C
- strb r0, [r5, 0x8]
- b _081435C6
-_08143386:
- movs r0, 0x1D
- strb r0, [r5, 0x8]
- b _081435C6
-_0814338C:
- movs r0, 0x16
- strb r0, [r5, 0x8]
- b _081435C6
-_08143392:
- ldrb r0, [r5, 0xC]
- cmp r0, 0x1
- bne _0814339C
- bl sub_8146834
-_0814339C:
- movs r0, 0x14
- strb r0, [r5, 0x8]
- b _081435C6
-_081433A2:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xC]
- adds r1, r5, 0
- bl mevent_message_prompt_discard
- adds r1, r0, 0
- cmp r1, 0
- beq _081433BE
- cmp r1, 0
- ble _081433EC
- cmp r1, 0x1
- beq _08143402
- b _081435C6
-_081433BE:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _081433FC
- bl sub_8144144
- cmp r0, 0x1
- bne _081433FC
- movs r0, 0x17
- strb r0, [r5, 0x8]
- b _081435C6
-_081433D2:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r3, _081433F8 @ =gUnknown_841ECF9
- adds r1, r5, 0
- movs r2, 0x1
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0x1
- beq _08143402
- cmp r1, 0x1
- bcc _081433FC
-_081433EC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08143402
- b _081435C6
- .align 2, 0
-_081433F8: .4byte gUnknown_841ECF9
-_081433FC:
- movs r0, 0x18
- strb r0, [r5, 0x8]
- b _081435C6
-_08143402:
- movs r0, 0x15
- strb r0, [r5, 0x8]
- b _081435C6
-_08143408:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl TearDownCardOrNews_ReturnToTopMenu
- cmp r0, 0
- bne _08143416
- b _081435C6
-_08143416:
- ldrb r0, [r5, 0xC]
- bl DestroyNewsOrCard
- movs r0, 0x19
- strb r0, [r5, 0x8]
- b _081435C6
-_08143422:
- adds r0, r5, 0
- adds r0, 0x9
- bl mevent_save_game
- cmp r0, 0
- bne _08143430
- b _081435C6
-_08143430:
- movs r0, 0x1A
- strb r0, [r5, 0x8]
- b _081435C6
-_08143436:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r1, [r5, 0xC]
- bl mevent_message_was_thrown_away
- b _08143596
-_08143442:
- ldrb r0, [r5, 0xC]
- movs r1, 0
- bl TearDownCardOrNews_ReturnToTopMenu
- cmp r0, 0
- bne _08143450
- b _081435C6
-_08143450:
- movs r0, 0
- strb r0, [r5, 0x8]
- b _081435C6
-_08143456:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl TearDownCardOrNews_ReturnToTopMenu
- cmp r0, 0
- bne _08143464
- b _081435C6
-_08143464:
- movs r0, 0x3
- strb r0, [r5, 0x8]
- b _081435C6
-_0814346A:
- ldrb r0, [r5, 0xC]
- movs r1, 0x1
- bl TearDownCardOrNews_ReturnToTopMenu
- cmp r0, 0
- bne _08143478
- b _081435C6
-_08143478:
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- beq _08143484
- cmp r0, 0x1
- beq _0814348C
- b _08143492
-_08143484:
- movs r0, 0x15
- bl sub_81179CC
- b _08143492
-_0814348C:
- movs r0, 0x16
- bl sub_81179CC
-_08143492:
- movs r0, 0x1
- strb r0, [r5, 0xD]
- movs r0, 0x1E
- strb r0, [r5, 0x8]
- b _081435C6
-_0814349C:
- ldr r0, _081434B0 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _081434B4
- movs r0, 0x1
- bl ClearScreenInBg0
- movs r0, 0x1F
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081434B0: .4byte gReceivedRemoteLinkPlayers
-_081434B4:
- ldr r0, _081434CC @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x5
- beq _081434BE
- b _081435C6
-_081434BE:
- movs r0, 0x1
- bl ClearScreenInBg0
-_081434C4:
- movs r0, 0x12
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_081434CC: .4byte gSpecialVar_Result
-_081434D0:
- ldr r0, _081434F0 @ =gStringVar1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _081434F4 @ =gStringVar2
- strb r1, [r0]
- ldr r0, _081434F8 @ =gStringVar3
- strb r1, [r0]
- ldrb r0, [r5, 0xC]
- cmp r0, 0
- bne _08143500
- ldr r0, _081434FC @ =gUnknown_841EAE7
- bl AddTextPrinterToWindow1
- bl mevent_srv_common_do_init_2
- b _0814350A
- .align 2, 0
-_081434F0: .4byte gStringVar1
-_081434F4: .4byte gStringVar2
-_081434F8: .4byte gStringVar3
-_081434FC: .4byte gUnknown_841EAE7
-_08143500:
- ldr r0, _08143510 @ =gUnknown_841EB01
- bl AddTextPrinterToWindow1
- bl mevent_srv_common_do_init_1
-_0814350A:
- movs r0, 0x20
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143510: .4byte gUnknown_841EB01
-_08143514:
- adds r0, r5, 0
- bl mevent_srv_init_do_exec
- cmp r0, 0x3
- bne _081435C6
- ldrh r0, [r5]
- strb r0, [r5, 0xE]
- movs r0, 0x21
- strb r0, [r5, 0x8]
- b _081435C6
-_08143528:
- bl task_add_05_task_del_08FA224_when_no_RfuFunc
- ldr r0, _0814353C @ =gStringVar1
- ldr r1, _08143540 @ =gLinkPlayers + 0x24
- bl StringCopy
- movs r0, 0x22
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_0814353C: .4byte gStringVar1
-_08143540: .4byte gLinkPlayers + 0x24
-_08143544:
- bl sub_80FA4F8
- lsls r0, 24
- cmp r0, 0
- beq _081435C6
- bl sub_80FCE44
- movs r0, 0x23
- strb r0, [r5, 0x8]
- b _081435C6
-_08143558:
- adds r0, r5, 0
- adds r0, 0x9
- ldrb r2, [r5, 0xD]
- ldrb r3, [r5, 0xE]
- adds r1, r5, 0
- bl sub_8142E20
- cmp r0, 0
- beq _081435C6
- ldr r0, [r5, 0xC]
- ldr r1, _08143584 @ =0x00ffff00
- ands r0, r1
- ldr r1, _08143588 @ =0x00030100
- cmp r0, r1
- bne _0814359A
- movs r0, 0x3
- bl sub_8146C30
-_0814357C:
- movs r0, 0x11
- strb r0, [r5, 0x8]
- b _081435C6
- .align 2, 0
-_08143584: .4byte 0x00ffff00
-_08143588: .4byte 0x00030100
-_0814358C:
- adds r0, r5, 0
- adds r0, 0x9
- ldr r1, _081435A8 @ =gText_CommunicationError
- bl MG_PrintTextOnWindow1AndWaitButton
-_08143596:
- cmp r0, 0
- beq _081435C6
-_0814359A:
- movs r0, 0
- strb r0, [r5, 0x8]
-_0814359E:
- movs r1, 0
- bl PrintMysteryGiftOrEReaderTopMenu
- b _081435C6
- .align 2, 0
-_081435A8: .4byte gText_CommunicationError
-_081435AC:
- bl sub_80098B8
- bl sub_812B484
- ldr r0, [r5, 0x10]
- bl Free
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _081435D0 @ =MainCB_FreeAllBuffersAndReturnToInitTitleScreen
- bl SetMainCallback2
-_081435C6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081435D0: .4byte MainCB_FreeAllBuffersAndReturnToInitTitleScreen
- thumb_func_end sub_8142EA0
-
- thumb_func_start sub_81435D4
-sub_81435D4: @ 81435D4
- ldr r0, _081435D8 @ =0x0000019b
- bx lr
- .align 2, 0
-_081435D8: .4byte 0x0000019b
- thumb_func_end sub_81435D4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/overworld.s b/asm/overworld.s
index 0efea9307..d191a9009 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3890,7 +3890,7 @@ sub_80569BC: @ 80569BC
lsrs r0, 24
cmp r0, 0x1
bne _080569CE
- bl sub_80098B8
+ bl CloseLink
_080569CE:
ldr r0, _080569E4 @ =gWirelessCommType
ldrb r0, [r0]
diff --git a/asm/trade.s b/asm/trade.s
index 1e947870a..70ca6a736 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -422,7 +422,7 @@ _0804C9B0:
ldrb r0, [r0]
cmp r0, 0
beq _0804C9E8
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
bne _0804C9C4
@@ -1832,7 +1832,7 @@ sub_804D5A4: @ 804D5A4
ldrb r0, [r0]
cmp r0, 0
beq _0804D5FC
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _0804D620
@@ -1845,7 +1845,7 @@ sub_804D5A4: @ 804D5A4
bl Free
movs r0, 0
str r0, [r5]
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _0804D5F8 @ =sub_8050138
bl SetMainCallback2
b _0804D620
@@ -4296,7 +4296,7 @@ sub_804E944: @ 804E944
ldr r0, [r0]
bl Free
bl FreeAllWindowBuffers
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
ldr r0, _0804E984 @ =c2_8056854
bl SetMainCallback2
b _0804E9AA
@@ -7178,7 +7178,7 @@ _0804FF7A:
lsls r0, 1
cmp r1, r0
bls _0804FFAC
- bl sub_80098B8
+ bl CloseLink
ldr r0, _0804FFC0 @ =c2_800ACD4
bl SetMainCallback2
ldr r1, [r4]
@@ -7432,7 +7432,7 @@ _08050194:
ldr r2, _08050230 @ =0x00001144
adds r0, r2, 0
strh r0, [r1]
- bl sub_80098B8
+ bl CloseLink
_080501A8:
ldr r4, _08050234 @ =gUnknown_2031DAC
movs r0, 0x88
@@ -14745,7 +14745,7 @@ _0805434C:
ldr r0, _08054378 @ =sub_804C718
cmp r1, r0
bne _08054384
- bl sub_80FA4F8
+ bl IsNoOneConnected
lsls r0, 24
cmp r0, 0
beq _08054396
@@ -14819,7 +14819,7 @@ sub_80543C4: @ 80543C4
ldrb r0, [r0]
cmp r0, 0
beq _08054412
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
_08054412:
ldr r0, _0805443C @ =gMain
ldr r0, [r0, 0x8]
diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s
index 422d34f07..23968f655 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/unk_814D5C8.s
@@ -424,7 +424,7 @@ _0814D962:
bl ClearGpuRegBits
b _0814D9BA
_0814D9A2:
- bl sub_80FCE44
+ bl DestroyWirelessStatusIndicatorSprite
adds r0, r5, 0
bl sub_814EF10
bl sub_815C9F4
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 32e49ea60..211e435ef 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -2446,22 +2446,22 @@ gText_ReadNewsThatArrived:: @ 841E669
gText_ReturnToTitle:: @ 841E685
.string "Return to the title screen.$"
-gUnknown_841E6A1:: @ 841E6A1
+gText_DontHaveCardNewOneInput:: @ 841E6A1
.incbin "baserom.gba", 0x41E6A1, 0x3B
-gUnknown_841E6DC:: @ 841E6DC
+gText_DontHaveNewsNewOneInput:: @ 841E6DC
.incbin "baserom.gba", 0x41E6DC, 0x3B
-gUnknown_841E717:: @ 841E717
+gText_WhereShouldCardBeAccessed:: @ 841E717
.incbin "baserom.gba", 0x41E717, 0x2A
-gUnknown_841E741:: @ 841E741
+gText_WhereShouldNewsBeAccessed:: @ 841E741
.incbin "baserom.gba", 0x41E741, 0x53
-gUnknown_841E794:: @ 841E794
+gText_Communicating:: @ 841E794
.incbin "baserom.gba", 0x41E794, 0xF
-gUnknown_841E7A3:: @ 841E7A3
+gText_CommunicationCompleted:: @ 841E7A3
.incbin "baserom.gba", 0x41E7A3, 0x19
gText_CommunicationError:: @ 841E7BC
@@ -2470,10 +2470,10 @@ gText_CommunicationError:: @ 841E7BC
gText_CommunicationCanceled:: @ 841E7D1
.incbin "baserom.gba", 0x41E7D1, 0x21
-gUnknown_841E7F2:: @ 841E7F2
+gText_ThrowAwayWonderCard:: @ 841E7F2
.incbin "baserom.gba", 0x41E7F2, 0x31
-gUnknown_841E823:: @ 841E823
+gText_HaventReceivedCardsGift:: @ 841E823
.incbin "baserom.gba", 0x41E823, 0x43
gText_WonderCardReceivedFrom:: @ 841E866
@@ -2524,37 +2524,37 @@ gText_WhatToDoWithCards:: @ 841EA86
gText_WhatToDoWithNews:: @ 841EAB7
.incbin "baserom.gba", 0x41EAB7, 0x30
-gUnknown_841EAE7:: @ 841EAE7
+gText_SendingWonderCard:: @ 841EAE7
.incbin "baserom.gba", 0x41EAE7, 0x1A
-gUnknown_841EB01:: @ 841EB01
+gText_SendingWonderNews:: @ 841EB01
.incbin "baserom.gba", 0x41EB01, 0x1F
-gUnknown_841EB20:: @ 841EB20
+gText_WonderCardSentTo:: @ 841EB20
.incbin "baserom.gba", 0x41EB20, 0x26
-gUnknown_841EB46:: @ 841EB46
+gText_WonderNewsSentTo:: @ 841EB46
.incbin "baserom.gba", 0x41EB46, 0x2B
-gUnknown_841EB71:: @ 841EB71
+gText_StampSentTo:: @ 841EB71
.incbin "baserom.gba", 0x41EB71, 0x1D
-gUnknown_841EB8E:: @ 841EB8E
+gText_GiftSentTo:: @ 841EB8E
.incbin "baserom.gba", 0x41EB8E, 0x1C
-gUnknown_841EBAA:: @ 841EBAA
+gText_OtherTrainerHasCard:: @ 841EBAA
.incbin "baserom.gba", 0x41EBAA, 0x34
-gUnknown_841EBDE:: @ 841EBDE
+gText_OtherTrainerHasNews:: @ 841EBDE
.incbin "baserom.gba", 0x41EBDE, 0x34
-gUnknown_841EC12:: @ 841EC12
+gText_OtherTrainerHasStamp:: @ 841EC12
.incbin "baserom.gba", 0x41EC12, 0x2E
-gUnknown_841EC40:: @ 841EC40
+gText_OtherTrainerCanceled:: @ 841EC40
.incbin "baserom.gba", 0x41EC40, 0x2A
-gUnknown_841EC6A:: @ 841EC6A
+gText_CantSendGiftToTrainer:: @ 841EC6A
.incbin "baserom.gba", 0x41EC6A, 0x2F
gText_IfThrowAwayCardEventWontHappen:: @ 841EC99
@@ -2563,7 +2563,7 @@ gText_IfThrowAwayCardEventWontHappen:: @ 841EC99
gText_OkayToDiscardNews:: @ 841ECD3
.incbin "baserom.gba", 0x41ECD3, 0x26
-gUnknown_841ECF9:: @ 841ECF9
+gText_HaventReceivedGiftOkayToDiscard:: @ 841ECF9
.incbin "baserom.gba", 0x41ECF9, 0x36
gText_DataWillBeSaved:: @ 841ED2F
diff --git a/data/specials.inc b/data/specials.inc
index 6af1938e7..a610fcd6f 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -40,7 +40,7 @@ gSpecials:: @ 815FD60
def_special sub_8081064
def_special sub_80810CC
def_special sub_80810F4
- def_special sub_80098B8
+ def_special CloseLink
def_special sub_80819C8
def_special sub_8081978
def_special sub_80819B8
diff --git a/include/link.h b/include/link.h
index 93ad9dfe1..a875149aa 100644
--- a/include/link.h
+++ b/include/link.h
@@ -204,7 +204,7 @@ bool8 sub_800AA48(void);
void sub_800A5BC(void);
void sub_800AA80(u8);
void sub_80098D8(void);
-void sub_80098B8(void);
+void CloseLink(void);
bool8 sub_800A4BC(void);
#endif // GUARD_LINK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 9ce6f04bb..d076efae6 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -5,5 +5,11 @@ void AddTextPrinterToWindow1(const u8 *str);
bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
void sub_80FA190(void);
void MG_DrawCheckerboardPattern(void);
+void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
+bool8 IsNoOneConnected(void);
+void DestroyWirelessStatusIndicatorSprite(void);
+void MEvent_CreateTask_CardOrNewsWithFriend(u8);
+void MEvent_CreateTask_CardOrNewsOverWireless(u8);
+void MEvent_CreateTask_Leader(u8);
#endif //GUARD_LINK_RFU_H
diff --git a/include/menews_jisan.h b/include/menews_jisan.h
index 4db5a7be2..ca09d4347 100644
--- a/include/menews_jisan.h
+++ b/include/menews_jisan.h
@@ -3,7 +3,7 @@
#include "global.h"
-void sub_8146C30(u32 a0);
+void GenerateRandomNews(u32 a0);
void sub_8146C88(void);
void sub_8146CA4(void);
diff --git a/include/mevent.h b/include/mevent.h
index 5c3bfe86d..b9b17d8c0 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -60,5 +60,11 @@ void DestroyWonderCardResources(void);
void DestroyWonderNewsResources(void);
s32 FadeOutFromWonderCard(bool32 flag);
s32 FadeOutFromWonderNews(bool32 flag);
+bool32 CheckReceivedGiftFromWonderCard(void);
+void MENews_AddScrollIndicatorArrowPair(void);
+void MENews_RemoveScrollIndicatorArrowPair(void);
+bool32 WonderNews_Test_Unk_02(void);
+bool32 WonderCard_Test_Unk_08_6(void);
+u32 MENews_GetInput(u16 input);
#endif //GUARD_MEVENT_H
diff --git a/include/mevent_server.h b/include/mevent_server.h
index e593b5dbd..10ee96401 100644
--- a/include/mevent_server.h
+++ b/include/mevent_server.h
@@ -37,7 +37,7 @@ struct mevent_cmd_ish
u32 parameter;
};
-struct mevent_srv_ish
+struct mevent_client
{
u32 unk_00;
u32 param;
@@ -83,13 +83,13 @@ void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recv
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size);
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest);
-void mevent_srv_ish_do_init(void);
-u32 mevent_srv_ish_do_exec(u16 * a0);
-void mevent_srv_ish_inc_flag(void);
-void * mevent_srv_ish_get_buffer(void);
-void mevent_srv_ish_set_param(u32 a0);
-void mevent_srv_common_do_init_1(void);
-void mevent_srv_common_do_init_2(void);
-u32 mevent_srv_init_do_exec(u16 * a0);
+void mevent_client_do_init(void);
+u32 mevent_client_do_exec(u16 * a0);
+void mevent_client_inc_flag(void);
+void * mevent_client_get_buffer(void);
+void mevent_client_set_param(u32 a0);
+void mevent_srv_init_wnews(void);
+void mevent_srv_new_wcard(void);
+u32 mevent_srv_common_do_exec(u16 * a0);
#endif //GUARD_MEVENT_SERVER_H
diff --git a/ld_script.txt b/ld_script.txt
index fb24a9060..88c2c59bc 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -242,7 +242,6 @@ SECTIONS {
asm/slot_machine.o(.text);
src/roamer.o(.text);
src/mystery_gift_menu.o(.text);
- asm/mystery_gift_menu.o(.text);
src/mevent.o(.text);
src/mevent_server_helpers.o(.text);
src/mevent_server.o(.text);
diff --git a/src/menews_jisan.c b/src/menews_jisan.c
index 8231e770c..0d406e66a 100644
--- a/src/menews_jisan.c
+++ b/src/menews_jisan.c
@@ -10,7 +10,7 @@ static u32 sub_8146E0C(struct MysteryEventStruct *);
static void sub_8146DA0(struct MysteryEventStruct *);
static void sub_8146D94(struct MysteryEventStruct *);
-void sub_8146C30(u32 a0)
+void GenerateRandomNews(u32 a0)
{
struct MysteryEventStruct *r5 = sub_8143D94();
diff --git a/src/mevent.c b/src/mevent.c
index d234a6fef..4d625987e 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -294,7 +294,7 @@ void sub_8143910(u8 taskId)
case 3:
if (!sub_814374C())
{
- sub_80098B8();
+ CloseLink();
data->t08 = 4;
}
else
@@ -325,26 +325,26 @@ void sub_8143910(u8 taskId)
if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
- sub_80098B8();
+ CloseLink();
sub_81438E8(&data->t00);
data->t08 = 23;
}
else if (GetLinkPlayerCount_2() > 1)
{
sub_81438E8(&data->t00);
- sub_80098B8();
+ CloseLink();
data->t08 = 7;
}
else if (sub_81436EC())
{
PlaySE(SE_SELECT);
- sub_80098B8();
+ CloseLink();
sub_81438E8(&data->t00);
data->t08 = 8;
}
else if (sub_81438F0(&data->t00, 10))
{
- sub_80098B8();
+ CloseLink();
sub_81436BC();
sub_81438E8(&data->t00);
}
@@ -396,16 +396,16 @@ void sub_8143910(u8 taskId)
break;
case 1:
PlaySE(SE_SELECT);
- sub_80098B8();
+ CloseLink();
data->t08 = 23;
break;
case 5:
- sub_80098B8();
+ CloseLink();
data->t08 = 21;
break;
case 3:
case 4:
- sub_80098B8();
+ CloseLink();
data->t08 = 20;
break;
}
@@ -413,7 +413,7 @@ void sub_8143910(u8 taskId)
case 14:
if (HasLinkErrorOccurred())
{
- sub_80098B8();
+ CloseLink();
data->t08 = 20;
}
else if (GetBlockReceivedStatus())
@@ -546,7 +546,7 @@ bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * data)
return TRUE;
}
-bool32 sub_8143E78(void)
+bool32 WonderNews_Test_Unk_02(void)
{
const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_000.data;
if (data->unk_02 == 0)
@@ -632,7 +632,7 @@ bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * data)
return TRUE;
}
-bool32 sub_8144054(void)
+bool32 WonderCard_Test_Unk_08_6(void)
{
const struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_6 == 0)
@@ -672,7 +672,7 @@ bool32 sub_8144124(u16 a0)
return FALSE;
}
-bool32 sub_8144144(void)
+bool32 CheckReceivedGiftFromWonderCard(void)
{
u16 value = sub_81440E8();
if (!sub_8144124(value))
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 9436ef672..af3024bff 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -671,7 +671,7 @@ s32 FadeOutFromWonderNews(bool32 flag)
return 0;
}
-void sub_81467EC(void)
+void MENews_RemoveScrollIndicatorArrowPair(void)
{
if (!gUnknown_203F3CC->unk_01C0_0 && gUnknown_203F3CC->unk_01C1 != 0xFF)
{
@@ -682,7 +682,7 @@ void sub_81467EC(void)
}
-void sub_8146834(void)
+void MENews_AddScrollIndicatorArrowPair(void)
{
if (gUnknown_203F3CC->unk_01C0_0)
{
@@ -691,7 +691,7 @@ void sub_8146834(void)
}
}
-u8 sub_8146884(u16 input)
+u32 MENews_GetInput(u16 input)
{
if (gUnknown_203F3CC->unk_01C2_0)
{
diff --git a/src/mevent_server.c b/src/mevent_server.c
index 1443e7007..1c2dc4ced 100644
--- a/src/mevent_server.c
+++ b/src/mevent_server.c
@@ -11,12 +11,12 @@
#include "mevent.h"
#include "mevent_server.h"
-EWRAM_DATA struct mevent_srv_ish * s_mevent_srv_ish_ptr = NULL;
+EWRAM_DATA struct mevent_client * s_mevent_client_ptr = NULL;
EWRAM_DATA struct mevent_srv_common * s_mevent_srv_common_ptr = NULL;
-static void mevent_srv_ish_init(struct mevent_srv_ish *, u32, u32);
-static u32 mevent_srv_ish_exec(struct mevent_srv_ish *);
-static void mevent_srv_ish_free_resources(struct mevent_srv_ish *);
+static void mevent_client_init(struct mevent_client *, u32, u32);
+static u32 mevent_client_exec(struct mevent_client *);
+static void mevent_client_free_resources(struct mevent_client *);
static void mevent_srv_init_common(struct mevent_srv_common *, const void *, u32, u32);
static void mevent_srv_free_resources(struct mevent_srv_common *);
static u32 mevent_srv_exec_common(struct mevent_srv_common *);
@@ -25,44 +25,44 @@ extern const u8 gUnknown_84687E0[];
extern const struct mevent_cmd gUnknown_8468B6C[];
extern const struct mevent_cmd gUnknown_8468BCC[];
-void mevent_srv_ish_do_init(void)
+void mevent_client_do_init(void)
{
- s_mevent_srv_ish_ptr = AllocZeroed(sizeof(struct mevent_srv_ish));
- mevent_srv_ish_init(s_mevent_srv_ish_ptr, 1, 0);
+ s_mevent_client_ptr = AllocZeroed(sizeof(struct mevent_client));
+ mevent_client_init(s_mevent_client_ptr, 1, 0);
}
-u32 mevent_srv_ish_do_exec(u16 * a0)
+u32 mevent_client_do_exec(u16 * a0)
{
u32 result;
- if (s_mevent_srv_ish_ptr == NULL)
+ if (s_mevent_client_ptr == NULL)
return 6;
- result = mevent_srv_ish_exec(s_mevent_srv_ish_ptr);
+ result = mevent_client_exec(s_mevent_client_ptr);
if (result == 6)
{
- *a0 = s_mevent_srv_ish_ptr->param;
- mevent_srv_ish_free_resources(s_mevent_srv_ish_ptr);
- Free(s_mevent_srv_ish_ptr);
- s_mevent_srv_ish_ptr = NULL;
+ *a0 = s_mevent_client_ptr->param;
+ mevent_client_free_resources(s_mevent_client_ptr);
+ Free(s_mevent_client_ptr);
+ s_mevent_client_ptr = NULL;
}
return result;
}
-void mevent_srv_ish_inc_flag(void)
+void mevent_client_inc_flag(void)
{
- s_mevent_srv_ish_ptr->flag++;
+ s_mevent_client_ptr->flag++;
}
-void * mevent_srv_ish_get_buffer(void)
+void * mevent_client_get_buffer(void)
{
- return s_mevent_srv_ish_ptr->buffer;
+ return s_mevent_client_ptr->buffer;
}
-void mevent_srv_ish_set_param(u32 a0)
+void mevent_client_set_param(u32 a0)
{
- s_mevent_srv_ish_ptr->param = a0;
+ s_mevent_client_ptr->param = a0;
}
-static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u32 recvPlayerNo)
+static void mevent_client_init(struct mevent_client * svr, u32 sendPlayerNo, u32 recvPlayerNo)
{
svr->unk_00 = 0;
svr->mainseqno = 0;
@@ -74,7 +74,7 @@ static void mevent_srv_ish_init(struct mevent_srv_ish * svr, u32 sendPlayerNo, u
mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo);
}
-static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr)
+static void mevent_client_free_resources(struct mevent_client * svr)
{
Free(svr->sendBuffer);
Free(svr->recvBuffer);
@@ -82,20 +82,20 @@ static void mevent_srv_ish_free_resources(struct mevent_srv_ish * svr)
Free(svr->buffer);
}
-static void mevent_srv_ish_jmp_buffer(struct mevent_srv_ish * svr)
+static void mevent_client_jmp_buffer(struct mevent_client * svr)
{
memcpy(svr->cmdBuffer, svr->recvBuffer, ME_SEND_BUF_SIZE);
svr->cmdidx = 0;
}
-static void mevent_srv_ish_send_word(struct mevent_srv_ish * svr, u32 ident, u32 word)
+static void mevent_client_send_word(struct mevent_client * svr, u32 ident, u32 word)
{
CpuFill32(0, svr->sendBuffer, ME_SEND_BUF_SIZE);
*(u32 *)svr->sendBuffer = word;
mevent_srv_sub_init_send(&svr->manager, ident, svr->sendBuffer, sizeof(u32));
}
-static u32 ish_mainseq_0(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_0(struct mevent_client * svr)
{
// init
memcpy(svr->cmdBuffer, gUnknown_84687E0, ME_SEND_BUF_SIZE);
@@ -105,13 +105,13 @@ static u32 ish_mainseq_0(struct mevent_srv_ish * svr)
return 0;
}
-static u32 ish_mainseq_1(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_1(struct mevent_client * svr)
{
// done
return 6;
}
-static u32 ish_mainseq_2(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_2(struct mevent_client * svr)
{
// do recv
if (mevent_srv_sub_recv(&svr->manager))
@@ -122,7 +122,7 @@ static u32 ish_mainseq_2(struct mevent_srv_ish * svr)
return 1;
}
-static u32 ish_mainseq_3(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_3(struct mevent_client * svr)
{
// do send
if (mevent_srv_sub_send(&svr->manager))
@@ -133,7 +133,7 @@ static u32 ish_mainseq_3(struct mevent_srv_ish * svr)
return 1;
}
-static u32 ish_mainseq_4(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_4(struct mevent_client * svr)
{
// process command
struct mevent_cmd_ish * cmd = &svr->cmdBuffer[svr->cmdidx];
@@ -162,20 +162,20 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr)
svr->flag = 0;
break;
case 19:
- mevent_srv_ish_send_word(svr, 0x12, GetGameStat(cmd->parameter));
+ mevent_client_send_word(svr, 0x12, GetGameStat(cmd->parameter));
svr->mainseqno = 3;
svr->flag = 0;
break;
case 6:
if (svr->param == 0)
- mevent_srv_ish_jmp_buffer(svr);
+ mevent_client_jmp_buffer(svr);
break;
case 7:
if (svr->param == 1)
- mevent_srv_ish_jmp_buffer(svr);
+ mevent_client_jmp_buffer(svr);
break;
case 4:
- mevent_srv_ish_jmp_buffer(svr);
+ mevent_client_jmp_buffer(svr);
break;
case 5:
memcpy(svr->buffer, svr->recvBuffer, 0x40);
@@ -201,7 +201,7 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr)
mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC));
break;
case 14:
- mevent_srv_ish_send_word(svr, 0x13, svr->param);
+ mevent_client_send_word(svr, 0x13, svr->param);
break;
case 10:
sub_8143F68(svr->recvBuffer);
@@ -210,10 +210,10 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr)
if (!sub_8143EF4(svr->recvBuffer))
{
sub_8143DC8(svr->recvBuffer);
- mevent_srv_ish_send_word(svr, 0x13, 0);
+ mevent_client_send_word(svr, 0x13, 0);
}
else
- mevent_srv_ish_send_word(svr, 0x13, 1);
+ mevent_client_send_word(svr, 0x13, 1);
break;
case 15:
svr->mainseqno = 6;
@@ -239,7 +239,7 @@ static u32 ish_mainseq_4(struct mevent_srv_ish * svr)
return 1;
}
-static u32 ish_mainseq_5(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_5(struct mevent_client * svr)
{
// wait flag
if (svr->flag)
@@ -250,7 +250,7 @@ static u32 ish_mainseq_5(struct mevent_srv_ish * svr)
return 1;
}
-static u32 ish_mainseq_6(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_6(struct mevent_client * svr)
{
// ???
switch (svr->flag)
@@ -270,7 +270,7 @@ static u32 ish_mainseq_6(struct mevent_srv_ish * svr)
return 1;
}
-static u32 ish_mainseq_7(struct mevent_srv_ish * svr)
+static u32 ish_mainseq_7(struct mevent_client * svr)
{
// exec arbitrary code
u32 (*func)(u32 *, struct SaveBlock2 *, struct SaveBlock1 *) = (void *)gDecompressionBuffer;
@@ -282,9 +282,9 @@ static u32 ish_mainseq_7(struct mevent_srv_ish * svr)
return 1;
}
-static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr)
+static u32 mevent_client_exec(struct mevent_client * svr)
{
- u32 (*funcs[])(struct mevent_srv_ish *) = {
+ u32 (*funcs[])(struct mevent_client *) = {
ish_mainseq_0,
ish_mainseq_1,
ish_mainseq_2,
@@ -297,19 +297,19 @@ static u32 mevent_srv_ish_exec(struct mevent_srv_ish * svr)
return funcs[svr->mainseqno](svr);
}
-void mevent_srv_common_do_init_1(void)
+void mevent_srv_init_wnews(void)
{
s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common));
mevent_srv_init_common(s_mevent_srv_common_ptr, gUnknown_8468B6C, 0, 1);
}
-void mevent_srv_common_do_init_2(void)
+void mevent_srv_new_wcard(void)
{
s_mevent_srv_common_ptr = AllocZeroed(sizeof(struct mevent_srv_common));
mevent_srv_init_common(s_mevent_srv_common_ptr, gUnknown_8468BCC, 0, 1);
}
-u32 mevent_srv_init_do_exec(u16 * a0)
+u32 mevent_srv_common_do_exec(u16 * a0)
{
u32 result;
if (s_mevent_srv_common_ptr == NULL)
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index 046ea2529..0cbfb4be5 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -19,12 +19,18 @@
#include "string_util.h"
#include "mevent.h"
#include "save.h"
+#include "link.h"
+#include "event_data.h"
+#include "mevent_server.h"
+#include "menews_jisan.h"
+#include "help_system.h"
#include "constants/songs.h"
EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {};
EWRAM_DATA bool8 gGiftIsFromEReader = FALSE;
void task_add_00_mystery_gift(void);
+void task00_mystery_gift(u8 taskId);
void task_add_00_ereader(void);
extern const u8 gText_PickOKExit[];
@@ -69,6 +75,26 @@ extern const u8 gText_CantAcceptCardFromTrainer[];
extern const u8 gText_CantAcceptNewsFromTrainer[];
extern const u8 gText_CommunicationError[];
extern const u8 gText_NewTrainerReceived[];
+extern const u8 gText_WonderCardSentTo[];
+extern const u8 gText_WonderNewsSentTo[];
+extern const u8 gText_StampSentTo[];
+extern const u8 gText_OtherTrainerHasCard[];
+extern const u8 gText_OtherTrainerHasStamp[];
+extern const u8 gText_OtherTrainerHasNews[];
+extern const u8 gText_OtherTrainerCanceled[];
+extern const u8 gText_GiftSentTo[];
+extern const u8 gText_CantSendGiftToTrainer[];
+extern const u8 gText_DontHaveCardNewOneInput[];
+extern const u8 gText_DontHaveNewsNewOneInput[];
+extern const u8 gText_WhereShouldCardBeAccessed[];
+extern const u8 gText_WhereShouldNewsBeAccessed[];
+extern const u8 gText_Communicating[];
+extern const u8 gText_ThrowAwayWonderCard[];
+extern const u8 gText_HaventReceivedCardsGift[];
+extern const u8 gText_CommunicationCompleted[];
+extern const u8 gText_HaventReceivedGiftOkayToDiscard[];
+extern const u8 gText_SendingWonderCard[];
+extern const u8 gText_SendingWonderNews[];
const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal");
const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz");
@@ -1042,3 +1068,689 @@ const u8 * mevent_message(u32 * flag_p, u8 cardOrNews, u8 cardOrNewsSource, u32
return msg;
}
+
+bool32 PrintMGSuccessMessage(u8 * state, const u8 * arg1, u16 * arg2)
+{
+ switch (*state)
+ {
+ case 0:
+ if (arg1 != NULL)
+ {
+ AddTextPrinterToWindow1(arg1);
+ }
+ PlayFanfare(MUS_FANFA4);
+ *arg2 = 0;
+ (*state)++;
+ break;
+ case 1:
+ if (++(*arg2) > 0xF0)
+ {
+ (*state)++;
+ }
+ break;
+ case 2:
+ if (IsFanfareTaskInactive())
+ {
+ *state = 0;
+ ClearTextWindow();
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+const u8 * mevent_message_stamp_card_etc_send_status(u32 * a0, u8 unused, u32 msgId)
+{
+ const u8 * result = gText_CommunicationError;
+ *a0 = 0;
+ switch (msgId)
+ {
+ case 0:
+ result = gText_NothingSentOver;
+ break;
+ case 1:
+ result = gText_RecordUploadedViaWireless;
+ break;
+ case 2:
+ result = gText_WonderCardSentTo;
+ *a0 = 1;
+ break;
+ case 3:
+ result = gText_WonderNewsSentTo;
+ *a0 = 1;
+ break;
+ case 4:
+ result = gText_StampSentTo;
+ break;
+ case 5:
+ result = gText_OtherTrainerHasCard;
+ break;
+ case 6:
+ result = gText_OtherTrainerHasStamp;
+ break;
+ case 7:
+ result = gText_OtherTrainerHasNews;
+ break;
+ case 8:
+ result = gText_NoMoreRoomForStamps;
+ break;
+ case 9:
+ result = gText_OtherTrainerCanceled;
+ break;
+ case 10:
+ result = gText_CantSendGiftToTrainer;
+ break;
+ case 11:
+ result = gText_CommunicationError;
+ break;
+ case 12:
+ result = gText_GiftSentTo;
+ break;
+ case 13:
+ result = gText_GiftSentTo;
+ break;
+ case 14:
+ result = gText_CantSendGiftToTrainer;
+ break;
+ }
+ return result;
+}
+
+bool32 PrintMGSendStatus(u8 * state, u16 * arg1, u8 arg2, u32 msgId)
+{
+ u32 flag;
+ const u8 * str = mevent_message_stamp_card_etc_send_status(&flag, arg2, msgId);
+ if (flag)
+ {
+ return PrintMGSuccessMessage(state, str, arg1);
+ }
+ else
+ {
+ return MG_PrintTextOnWindow1AndWaitButton(state, str);
+ }
+}
+
+void task_add_00_mystery_gift(void)
+{
+ u8 taskId = CreateTask(task00_mystery_gift, 0);
+ struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data;
+ data->state = 0;
+ data->textState = 0;
+ data->unkA = 0;
+ data->unkB = 0;
+ data->IsCardOrNews = 0;
+ data->source = 0;
+ data->curPromptWindowId = 0;
+ data->unk2 = 0;
+ data->unk4 = 0;
+ data->unk6 = 0;
+ data->prevPromptWindowId = 0;
+ data->buffer = AllocZeroed(0x40);
+}
+
+void task00_mystery_gift(u8 taskId)
+{
+ struct MysteryGiftTaskData * data = (void *)gTasks[taskId].data;
+ u32 sp0;
+ const u8 * r1;
+
+ switch (data->state)
+ {
+ case 0:
+ data->state = 1;
+ break;
+ case 1:
+ switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, FALSE))
+ {
+ case 0:
+ data->IsCardOrNews = 0;
+ if (ValidateReceivedWonderCard() == TRUE)
+ {
+ data->state = 18;
+ }
+ else
+ {
+ data->state = 2;
+ }
+ break;
+ case 1:
+ data->IsCardOrNews = 1;
+ if (ValidateReceivedWonderNews() == TRUE)
+ {
+ data->state = 18;
+ }
+ else
+ {
+ data->state = 2;
+ }
+ break;
+ case -2u:
+ data->state = 37;
+ break;
+ }
+ break;
+ case 2:
+ {
+ if (data->IsCardOrNews == 0)
+ {
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveCardNewOneInput))
+ {
+ data->state = 3;
+ PrintMysteryGiftOrEReaderTopMenu(0, 1);
+ }
+ }
+ else
+ {
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_DontHaveNewsNewOneInput))
+ {
+ data->state = 3;
+ PrintMysteryGiftOrEReaderTopMenu(0, 1);
+ }
+ }
+ break;
+ }
+ case 3:
+ if (data->IsCardOrNews == 0)
+ {
+ AddTextPrinterToWindow1(gText_WhereShouldCardBeAccessed);
+ }
+ else
+ {
+ AddTextPrinterToWindow1(gText_WhereShouldNewsBeAccessed);
+ }
+ data->state = 4;
+ break;
+ case 4:
+ switch (MysteryGift_HandleThreeOptionMenu(&data->textState, &data->curPromptWindowId, TRUE))
+ {
+ case 0:
+ ClearTextWindow();
+ data->state = 5;
+ data->source = 0;
+ break;
+ case 1:
+ ClearTextWindow();
+ data->state = 5;
+ data->source = 1;
+ break;
+ case -2u:
+ ClearTextWindow();
+ if (ValidateCardOrNews(data->IsCardOrNews))
+ {
+ data->state = 18;
+ }
+ else
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ break;
+ }
+ break;
+ case 5:
+ {
+ register u8 eos asm("r1");
+ gStringVar1[0] = (eos = EOS);
+ gStringVar2[0] = eos;
+ gStringVar3[0] = eos;
+ }
+ switch (data->IsCardOrNews)
+ {
+ case 0:
+ if (data->source == 1)
+ {
+ MEvent_CreateTask_CardOrNewsWithFriend(0x15);
+ }
+ else if (data->source == 0)
+ {
+ MEvent_CreateTask_CardOrNewsOverWireless(0x15);
+ }
+ break;
+ case 1:
+ if (data->source == 1)
+ {
+ MEvent_CreateTask_CardOrNewsWithFriend(0x16);
+ }
+ else if (data->source == 0)
+ {
+ MEvent_CreateTask_CardOrNewsOverWireless(0x16);
+ }
+ break;
+ }
+ data->state = 6;
+ break;
+ case 6:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ ClearScreenInBg0(TRUE);
+ data->state = 7;
+ mevent_client_do_init();
+ }
+ else if (gSpecialVar_Result == 5)
+ {
+ ClearScreenInBg0(TRUE);
+ data->state = 3;
+ }
+ break;
+ case 7:
+ AddTextPrinterToWindow1(gText_Communicating);
+ data->state = 8;
+ break;
+ case 8:
+ switch (mevent_client_do_exec(&data->curPromptWindowId))
+ {
+ case 6:
+ task_add_05_task_del_08FA224_when_no_RfuFunc();
+ data->prevPromptWindowId = data->curPromptWindowId;
+ data->state = 13;
+ break;
+ case 5:
+ memcpy(data->buffer, mevent_client_get_buffer(), 0x40);
+ mevent_client_inc_flag();
+ break;
+ case 3:
+ data->state = 10;
+ break;
+ case 2:
+ data->state = 9;
+ break;
+ case 4:
+ data->state = 11;
+ StringCopy(gStringVar1, gLinkPlayers[0].name);
+ break;
+ }
+ break;
+ case 9:
+ switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, mevent_client_get_buffer()))
+ {
+ case 0:
+ mevent_client_set_param(0);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ case 1:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ case -1u:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ }
+ break;
+ case 10:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, mevent_client_get_buffer()))
+ {
+ mevent_client_inc_flag();
+ data->state = 7;
+ }
+ break;
+ case 11:
+ switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_ThrowAwayWonderCard))
+ {
+ case 0:
+ if (CheckReceivedGiftFromWonderCard() == TRUE)
+ {
+ data->state = 12;
+ }
+ else
+ {
+ mevent_client_set_param(0);
+ mevent_client_inc_flag();
+ data->state = 7;
+ }
+ break;
+ case 1:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ case -1u:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ }
+ break;
+ case 12:
+ switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, FALSE, gText_HaventReceivedCardsGift))
+ {
+ case 0:
+ mevent_client_set_param(0);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ case 1:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ case -1u:
+ mevent_client_set_param(1);
+ mevent_client_inc_flag();
+ data->state = 7;
+ break;
+ }
+ break;
+ case 13:
+ if (IsNoOneConnected())
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ data->state = 14;
+ }
+ break;
+ case 14:
+ if (PrintStringAndWait2Seconds(&data->textState, gText_CommunicationCompleted))
+ {
+ if (data->source == 1)
+ {
+ StringCopy(gStringVar1, gLinkPlayers[0].name);
+ }
+ data->state = 15;
+ }
+ break;
+ case 15:
+ {
+ register bool32 flag asm("r1");
+ r1 = mevent_message(&sp0, data->IsCardOrNews, data->source, data->prevPromptWindowId);
+ if (r1 == NULL)
+ {
+ r1 = data->buffer;
+ }
+ if (sp0)
+ {
+ flag = PrintMGSuccessMessage(&data->textState, r1, &data->curPromptWindowId);
+ }
+ else
+ {
+ flag = MG_PrintTextOnWindow1AndWaitButton(&data->textState, r1);
+ }
+ if (flag)
+ {
+ if (data->prevPromptWindowId == 3)
+ {
+ if (data->source == 1)
+ {
+ GenerateRandomNews(1);
+ }
+ else
+ {
+ GenerateRandomNews(2);
+ }
+ }
+ if (sp0 == 0)
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ else
+ {
+ data->state = 17;
+ }
+ }
+ break;
+ }
+ case 16:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError))
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ break;
+ case 17:
+ if (mevent_save_game(&data->textState))
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ break;
+ case 18:
+ if (HandleLoadWonderCardOrNews(&data->textState, data->IsCardOrNews))
+ {
+ data->state = 20;
+ }
+ break;
+ case 20:
+ if (data->IsCardOrNews == 0)
+ {
+ if (JOY_NEW(A_BUTTON))
+ {
+ data->state = 21;
+ }
+ if (JOY_NEW(B_BUTTON))
+ {
+ data->state = 27;
+ }
+ }
+ else
+ {
+ switch (MENews_GetInput(gMain.newKeys))
+ {
+ case 0:
+ MENews_RemoveScrollIndicatorArrowPair();
+ data->state = 21;
+ break;
+ case 1:
+ data->state = 27;
+ break;
+ }
+ }
+ break;
+ case 21:
+ {
+ u32 result;
+ if (data->IsCardOrNews == 0)
+ {
+ if (WonderCard_Test_Unk_08_6())
+ {
+ result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE);
+ }
+ else
+ {
+ result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE);
+ }
+ }
+ else
+ {
+ if (WonderNews_Test_Unk_02())
+ {
+ result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, FALSE);
+ }
+ else
+ {
+ result = HandleMysteryGiftListMenu(&data->textState, &data->curPromptWindowId, data->IsCardOrNews, TRUE);
+ }
+ }
+ switch (result)
+ {
+ case 0:
+ data->state = 28;
+ break;
+ case 1:
+ data->state = 29;
+ break;
+ case 2:
+ data->state = 22;
+ break;
+ case -2u:
+ if (data->IsCardOrNews == 1)
+ {
+ MENews_AddScrollIndicatorArrowPair();
+ }
+ data->state = 20;
+ break;
+ }
+ break;
+ }
+ case 22:
+ switch (mevent_message_prompt_discard(&data->textState, &data->curPromptWindowId, data->IsCardOrNews))
+ {
+ case 0:
+ if (data->IsCardOrNews == 0 && CheckReceivedGiftFromWonderCard() == TRUE)
+ {
+ data->state = 23;
+ }
+ else
+ {
+ data->state = 24;
+ }
+ break;
+ case 1:
+ data->state = 21;
+ break;
+ case -1:
+ data->state = 21;
+ break;
+ }
+ break;
+ case 23:
+ switch ((u32)mevent_message_print_and_prompt_yes_no(&data->textState, &data->curPromptWindowId, TRUE, gText_HaventReceivedGiftOkayToDiscard))
+ {
+ case 0:
+ data->state = 24;
+ break;
+ case 1:
+ data->state = 21;
+ break;
+ case -1u:
+ data->state = 21;
+ break;
+ }
+ break;
+ case 24:
+ if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1))
+ {
+ DestroyNewsOrCard(data->IsCardOrNews);
+ data->state = 25;
+ }
+ break;
+ case 25:
+ if (mevent_save_game(&data->textState))
+ {
+ data->state = 26;
+ }
+ break;
+ case 26:
+ if (mevent_message_was_thrown_away(&data->textState, data->IsCardOrNews))
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ break;
+ case 27:
+ if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 0))
+ {
+ data->state = 0;
+ }
+ break;
+ case 28:
+ if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1))
+ {
+ data->state = 3;
+ }
+ break;
+ case 29:
+ if (TearDownCardOrNews_ReturnToTopMenu(data->IsCardOrNews, 1))
+ {
+ switch (data->IsCardOrNews)
+ {
+ case 0:
+ MEvent_CreateTask_Leader(21);
+ break;
+ case 1:
+ MEvent_CreateTask_Leader(22);
+ break;
+ }
+ data->source = 1;
+ data->state = 30;
+ }
+ break;
+ case 30:
+ if (gReceivedRemoteLinkPlayers != 0)
+ {
+ ClearScreenInBg0(1);
+ data->state = 31;
+ }
+ else if (gSpecialVar_Result == 5)
+ {
+ ClearScreenInBg0(1);
+ data->state = 18;
+ }
+ break;
+ case 31:
+ {
+ register u8 eos asm("r1");
+ gStringVar1[0] = (eos = EOS);
+ gStringVar2[0] = eos;
+ gStringVar3[0] = eos;
+ }
+ if (data->IsCardOrNews == 0)
+ {
+ AddTextPrinterToWindow1(gText_SendingWonderCard);
+ mevent_srv_new_wcard();
+ }
+ else
+ {
+ AddTextPrinterToWindow1(gText_SendingWonderNews);
+ mevent_srv_init_wnews();
+ }
+ data->state = 32;
+ break;
+ case 32:
+ if (mevent_srv_common_do_exec(&data->curPromptWindowId) == 3)
+ {
+ data->prevPromptWindowId = data->curPromptWindowId;
+ data->state = 33;
+ }
+ break;
+ case 33:
+ task_add_05_task_del_08FA224_when_no_RfuFunc();
+ StringCopy(gStringVar1, gLinkPlayers[1].name);
+ data->state = 34;
+ break;
+ case 34:
+ if (IsNoOneConnected())
+ {
+ DestroyWirelessStatusIndicatorSprite();
+ data->state = 35;
+ }
+ break;
+ case 35:
+ if (PrintMGSendStatus(&data->textState, &data->curPromptWindowId, data->source, data->prevPromptWindowId))
+ {
+ if (data->source == 1 && data->prevPromptWindowId == 3)
+ {
+ GenerateRandomNews(3);
+ data->state = 17;
+ }
+ else
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ }
+ break;
+ case 36:
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_CommunicationError))
+ {
+ data->state = 0;
+ PrintMysteryGiftOrEReaderTopMenu(0, 0);
+ }
+ break;
+ case 37:
+ CloseLink();
+ sub_812B484();
+ Free(data->buffer);
+ DestroyTask(taskId);
+ SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen);
+ break;
+ }
+}
+
+u16 GetMysteryGiftBaseBlock(void)
+{
+ return 0x19B;
+}