summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/bag.s2
-rw-r--r--asm/learn_move.s2
-rw-r--r--asm/link_rfu.s2
-rw-r--r--asm/link_rfu_3.s36
-rw-r--r--asm/list_menu.s2
-rw-r--r--asm/map_name_popup.s2
-rw-r--r--asm/mystery_gift_menu.s550
-rw-r--r--asm/pokemon_special_anim.s4
-rw-r--r--asm/pokemon_storage_system.s2
-rw-r--r--asm/slot_machine.s2
-rw-r--r--asm/start_menu.s2
-rw-r--r--asm/text_window.s6
-rw-r--r--asm/trade.s4
-rw-r--r--asm/union_room_chat.s6
-rw-r--r--asm/unk_8147AA8.s12
-rw-r--r--asm/unk_81507FC.s2
-rw-r--r--data/mystery_gift_menu.s12
-rw-r--r--include/link_rfu.h6
-rw-r--r--include/list_menu.h1
-rw-r--r--include/text_window.h1
-rw-r--r--src/mevent.c28
-rw-r--r--src/mevent_8145654.c2
-rw-r--r--src/mystery_gift_menu.c189
23 files changed, 284 insertions, 591 deletions
diff --git a/asm/bag.s b/asm/bag.s
index aeac17e69..702de4e4a 100644
--- a/asm/bag.s
+++ b/asm/bag.s
@@ -423,7 +423,7 @@ sub_810BB74: @ 810BB74
lsrs r0, 24
movs r1, 0x64
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
pop {r0}
bx r0
thumb_func_end sub_810BB74
diff --git a/asm/learn_move.s b/asm/learn_move.s
index db41257a2..3db64a899 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -1016,7 +1016,7 @@ _080E4EF4:
lsrs r0, 24
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r4, 0x1
cmp r4, 0x7
ble _080E4EF4
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
index 1fa1aab8f..3638e9e0a 100644
--- a/asm/link_rfu.s
+++ b/asm/link_rfu.s
@@ -7855,7 +7855,7 @@ sub_8100E34: @ 8100E34
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl sub_8100E7C
movs r0, 0x1
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 776b94c41..b112e2ac3 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -4067,7 +4067,7 @@ _08117AB8:
bl AddWindow
strb r0, [r5, 0xF]
ldrb r0, [r5, 0xF]
- bl sub_814240C
+ bl MG_DrawTextBorder
ldr r0, _08117B74 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08117B78 @ =gUnknown_8456D34
@@ -4113,7 +4113,7 @@ _08117BA4: .4byte gUnknown_203B058
_08117BA8: .4byte gStringVar4
_08117BAC:
ldr r0, _08117BB8 @ =gStringVar4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x4
strb r0, [r5, 0xC]
b _08117ECA
@@ -4142,7 +4142,7 @@ _08117BE4:
adds r0, r5, 0
adds r0, 0xD
ldr r1, _08117C08 @ =gUnknown_84577F8
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
bne _08117BF4
b _08117ECA
@@ -4346,7 +4346,7 @@ _08117D88:
b _08117ECA
_08117D94:
ldr r0, _08117DA0 @ =gStringVar4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0xA
strb r0, [r5, 0xC]
b _08117ECA
@@ -4416,7 +4416,7 @@ _08117E26:
adds r0, r5, 0
adds r0, 0xD
ldr r1, _08117E44 @ =gUnknown_84571B8
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08117ECA
adds r0, r4, 0
@@ -4585,7 +4585,7 @@ _08117F7C:
b _08118288
_08117FB0:
ldr r0, _08117FBC @ =gUnknown_8458FE4
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x2
strb r0, [r5, 0x8]
b _08118288
@@ -4623,7 +4623,7 @@ _08117FC0:
bl AddWindow
strb r0, [r5, 0xD]
ldrb r0, [r5, 0xB]
- bl sub_814240C
+ bl MG_DrawTextBorder
ldr r0, _08118068 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _0811806C @ =gUnknown_8456DDC
@@ -4638,7 +4638,7 @@ _08117FC0:
bl ListMenuInit
strb r0, [r5, 0xE]
ldrb r0, [r5, 0xD]
- bl sub_814240C
+ bl MG_DrawTextBorder
ldrb r0, [r5, 0xD]
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -4766,7 +4766,7 @@ _08118146:
_0811814C: .4byte gMain
_08118150:
ldr r0, _08118184 @ =gUnknown_8459238
- bl sub_8142504
+ bl AddTextPrinterToWindow1
ldr r4, _08118188 @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -4831,7 +4831,7 @@ _081181D0:
b _08118288
_081181D6:
ldr r0, _081181E8 @ =gUnknown_84576AC
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0
movs r1, 0
bl sub_80FB9E4
@@ -4868,7 +4868,7 @@ _08118222:
adds r0, r4
ldr r1, [r0]
adds r0, r5, 0
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118288
bl sub_80FCE44
@@ -4878,7 +4878,7 @@ _08118244: .4byte gUnknown_8457838
_08118248:
bl sub_80FCE44
ldr r0, _08118264 @ =gUnknown_84571B8
- bl sub_8142504
+ bl AddTextPrinterToWindow1
_08118252:
adds r0, r6, 0
bl DestroyTask
@@ -5004,7 +5004,7 @@ _08118340:
b _08118604
_0811836E:
ldr r0, _0811837C @ =gUnknown_84591DC
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x2
strb r0, [r5, 0x8]
b _08118604
@@ -5041,7 +5041,7 @@ _08118380:
bl AddWindow
strb r0, [r5, 0xB]
ldrb r0, [r5, 0xB]
- bl sub_814240C
+ bl MG_DrawTextBorder
ldr r0, _08118400 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
ldr r1, _08118404 @ =gUnknown_8456DDC
@@ -5163,7 +5163,7 @@ _081184BC:
_081184C4: .4byte gMain
_081184C8:
ldr r0, _081184FC @ =gUnknown_845928C
- bl sub_8142504
+ bl AddTextPrinterToWindow1
ldr r4, _08118500 @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@@ -5228,7 +5228,7 @@ _08118548:
b _08118604
_0811854E:
ldr r0, _08118560 @ =gUnknown_845777C
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0
movs r1, 0
bl sub_80FB9E4
@@ -5281,7 +5281,7 @@ _081185B4:
adds r1, r2
ldr r1, [r1]
_081185C2:
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
beq _08118604
bl sub_80FCE44
@@ -12797,7 +12797,7 @@ _0811C168:
movs r0, 0
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
str r5, [sp]
movs r0, 0
adds r1, r6, 0
diff --git a/asm/list_menu.s b/asm/list_menu.s
index 3119d53bd..ac7078053 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -60,7 +60,7 @@ _08106F24:
lsls r2, 24
lsrs r2, 24
ldr r1, [sp, 0x4]
- bl sub_8150048
+ bl DrawTextBorderOuter
_08106F34:
ldr r0, _08106F64 @ =gMultiuseListMenuTemplate
adds r2, r0, 0
diff --git a/asm/map_name_popup.s b/asm/map_name_popup.s
index b7e20c4bf..8df50601a 100644
--- a/asm/map_name_popup.s
+++ b/asm/map_name_popup.s
@@ -360,7 +360,7 @@ _080983C6:
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r5, 0
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
index e96bdf803..1a86b6797 100644
--- a/asm/mystery_gift_menu.s
+++ b/asm/mystery_gift_menu.s
@@ -5,492 +5,6 @@
.text
- thumb_func_start sub_814240C
-sub_814240C: @ 814240C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- pop {r0}
- bx r0
- thumb_func_end sub_814240C
-
- thumb_func_start sub_8142420
-sub_8142420: @ 8142420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0
- mov r8, r0
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x3
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r4, 0x1
- movs r1, 0x11
- mov r10, r1
-_0814244E:
- movs r7, 0
- mov r0, r8
- adds r0, 0x2
- movs r1, 0x1
- add r1, r8
- mov r9, r1
- lsls r5, r0, 24
- movs r6, 0
-_0814245E:
- mov r1, r8
- ands r1, r4
- adds r0, r7, 0
- ands r0, r4
- cmp r1, r0
- beq _08142480
- lsrs r2, r6, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r0, r10
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- lsrs r3, r5, 24
- bl FillBgTilemapBufferRect
- b _08142494
-_08142480:
- lsrs r2, r6, 24
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x2
- lsrs r3, r5, 24
- bl FillBgTilemapBufferRect
-_08142494:
- movs r0, 0x80
- lsls r0, 17
- adds r6, r0
- adds r7, 0x1
- cmp r7, 0x1F
- ble _0814245E
- mov r8, r9
- mov r1, r8
- cmp r1, 0x11
- ble _0814244E
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8142420
-
- thumb_func_start sub_81424B8
-sub_81424B8: @ 81424B8
- push {lr}
- sub sp, 0xC
- cmp r0, 0
- beq _081424C6
- cmp r0, 0x1
- beq _081424DE
- b _081424F6
-_081424C6:
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- b _081424F6
-_081424DE:
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0x1E
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x2
- bl FillBgTilemapBufferRect
-_081424F6:
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_81424B8
-
- thumb_func_start sub_8142504
-sub_8142504: @ 8142504
- push {r4,lr}
- sub sp, 0x14
- adds r1, r0, 0
- ldr r4, _08142558 @ =gStringVar4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- movs r1, 0x11
- bl FillWindowPixelBuffer
- movs r1, 0
- str r1, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- ldr r0, _0814255C @ =gUnknown_8466EF0
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r4, [sp, 0x10]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl AddTextPrinterParametrized2
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0xF
- bl sub_8150048
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142558: .4byte gStringVar4
-_0814255C: .4byte gUnknown_8466EF0
- thumb_func_end sub_8142504
-
- thumb_func_start sub_8142560
-sub_8142560: @ 8142560
- push {lr}
- movs r0, 0x1
- bl rbox_fill_rectangle
- movs r0, 0x1
- bl ClearWindowTilemap
- movs r0, 0x1
- movs r1, 0x1
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_8142560
-
- thumb_func_start mevent_0814257C
-mevent_0814257C: @ 814257C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r0, r1, 0
- ldrb r2, [r4]
- cmp r2, 0x1
- beq _081425A4
- cmp r2, 0x1
- bgt _08142594
- cmp r2, 0
- beq _0814259E
- b _08142604
-_08142594:
- cmp r2, 0x2
- beq _081425D8
- cmp r2, 0xFF
- beq _08142600
- b _08142604
-_0814259E:
- bl sub_8142504
- b _081425C8
-_081425A4:
- movs r0, 0
- str r0, [sp]
- ldr r0, _081425D0 @ =sDownArrowCounterAndYCoordIdx
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- ldr r0, _081425D4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142604
-_081425C8:
- ldrb r0, [r4]
- adds r0, 0x1
- b _08142602
- .align 2, 0
-_081425D0: .4byte sDownArrowCounterAndYCoordIdx
-_081425D4: .4byte gMain
-_081425D8:
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _081425FC @ =sDownArrowCounterAndYCoordIdx
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- movs r0, 0
- strb r0, [r4]
- bl sub_8142560
- movs r0, 0x1
- b _08142606
- .align 2, 0
-_081425FC: .4byte sDownArrowCounterAndYCoordIdx
-_08142600:
- movs r0, 0x2
-_08142602:
- strb r0, [r4]
-_08142604:
- movs r0, 0
-_08142606:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mevent_0814257C
-
- thumb_func_start sub_8142610
-sub_8142610: @ 8142610
- push {lr}
- sub sp, 0xC
- movs r0, 0
- str r0, [sp]
- ldr r0, _08142634 @ =sDownArrowCounterAndYCoordIdx
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_08142634: .4byte sDownArrowCounterAndYCoordIdx
- thumb_func_end sub_8142610
-
- thumb_func_start sub_8142638
-sub_8142638: @ 8142638
- push {lr}
- sub sp, 0xC
- movs r0, 0x1
- str r0, [sp]
- ldr r0, _0814265C @ =sDownArrowCounterAndYCoordIdx
- str r0, [sp, 0x4]
- adds r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0xD0
- movs r2, 0x14
- movs r3, 0x1
- bl DrawDownArrow
- add sp, 0xC
- pop {r0}
- bx r0
- .align 2, 0
-_0814265C: .4byte sDownArrowCounterAndYCoordIdx
- thumb_func_end sub_8142638
-
- thumb_func_start sub_8142660
-sub_8142660: @ 8142660
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08142670
- cmp r0, 0x1
- beq _0814268C
- b _08142698
-_08142670:
- bl sub_8142610
- ldr r0, _08142688 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142698
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08142698
- .align 2, 0
-_08142688: .4byte gMain
-_0814268C:
- bl sub_8142638
- movs r0, 0
- strb r0, [r4]
- movs r0, 0x1
- b _0814269A
-_08142698:
- movs r0, 0
-_0814269A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8142660
-
- thumb_func_start sub_81426A0
-sub_81426A0: @ 81426A0
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- bne _081426B0
- adds r0, r1, 0
- bl sub_8142504
-_081426B0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x78
- bhi _081426C2
- movs r0, 0
- b _081426CC
-_081426C2:
- movs r0, 0
- strb r0, [r4]
- bl sub_8142560
- movs r0, 0x1
-_081426CC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81426A0
-
- thumb_func_start sub_81426D4
-sub_81426D4: @ 81426D4
- push {r4-r7,lr}
- sub sp, 0x24
- lsls r2, 24
- add r1, sp, 0x4
- ldr r0, _081426F8 @ =gUnknown_8466E00
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldr r0, _081426FC @ =gUnknown_8466DA8
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- str r1, [sp, 0x20]
- cmp r2, 0
- bne _08142704
- ldr r0, _08142700 @ =gUnknown_8466DD0
- b _08142706
- .align 2, 0
-_081426F8: .4byte gUnknown_8466E00
-_081426FC: .4byte gUnknown_8466DA8
-_08142700: .4byte gUnknown_8466DD0
-_08142704:
- ldr r0, _08142794 @ =gUnknown_8466DE8
-_08142706:
- str r0, [sp, 0x4]
- movs r6, 0
- movs r4, 0
- add r0, sp, 0x4
- add r7, sp, 0x1C
- ldrh r0, [r0, 0xC]
- cmp r6, r0
- bcs _0814273A
- add r5, sp, 0x4
-_08142718:
- ldr r1, [sp, 0x4]
- lsls r0, r4, 3
- adds r0, r1
- ldr r1, [r0]
- ldrb r2, [r5, 0x16]
- lsls r2, 29
- lsrs r2, 29
- movs r0, 0x2
- bl GetStringWidth
- cmp r0, r6
- bls _08142732
- adds r6, r0, 0
-_08142732:
- adds r4, 0x1
- ldrh r0, [r5, 0xC]
- cmp r4, r0
- bcc _08142718
-_0814273A:
- adds r2, r6, 0
- adds r2, 0x9
- lsrs r2, 3
- adds r2, 0x2
- movs r0, 0x2
- negs r0, r0
- ands r2, r0
- lsls r3, r2, 24
- ldr r0, _08142798 @ =0x00ffffff
- ldr r1, [sp, 0x1C]
- ands r1, r0
- orrs r1, r3
- movs r0, 0x1E
- subs r0, r2
- lsls r0, 23
- lsrs r0, 16
- ldr r2, _0814279C @ =0xffff00ff
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x1C]
- movs r0, 0xE0
- str r0, [sp]
- adds r0, r7, 0
- add r1, sp, 0x4
- movs r2, 0x1
- movs r3, 0xA
- bl DoMysteryGiftListMenu
- adds r4, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0814278A
- movs r0, 0x2
- bl ClearWindowTilemap
- movs r0, 0x2
- movs r1, 0x1
- bl CopyWindowToVram
-_0814278A:
- adds r0, r4, 0
- add sp, 0x24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08142794: .4byte gUnknown_8466DE8
-_08142798: .4byte 0x00ffffff
-_0814279C: .4byte 0xffff00ff
- thumb_func_end sub_81426D4
-
thumb_func_start sub_81427A0
sub_81427A0: @ 81427A0
push {r4-r6,lr}
@@ -539,7 +53,7 @@ _081427E2:
str r2, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
- ldr r1, _0814282C @ =gUnknown_8466EF0
+ ldr r1, _0814282C @ =sMG_Ereader_TextColor_2
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r1, _08142830 @ =gStringVar4
@@ -550,7 +64,7 @@ _081427E2:
ldrb r0, [r4]
movs r1, 0x1
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
ldrb r0, [r4]
movs r1, 0x2
bl CopyWindowToVram
@@ -559,7 +73,7 @@ _081427E2:
b _0814287E
.align 2, 0
_08142828: .4byte gUnknown_8466D98
-_0814282C: .4byte gUnknown_8466EF0
+_0814282C: .4byte sMG_Ereader_TextColor_2
_08142830: .4byte gStringVar4
_08142834:
ldr r0, _08142850 @ =gUnknown_8466DB0
@@ -700,7 +214,7 @@ _08142934:
str r2, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
- ldr r1, _08142990 @ =gUnknown_8466EF0
+ ldr r1, _08142990 @ =sMG_Ereader_TextColor_2
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r1, _08142984 @ =gStringVar4
@@ -711,7 +225,7 @@ _08142934:
ldrb r0, [r5]
movs r1, 0x1
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
ldrb r0, [r5]
movs r1, 0x2
bl CopyWindowToVram
@@ -725,7 +239,7 @@ _08142934:
_08142984: .4byte gStringVar4
_08142988: .4byte gUnknown_841EAB7
_0814298C: .4byte gUnknown_8466DA0
-_08142990: .4byte gUnknown_8466EF0
+_08142990: .4byte sMG_Ereader_TextColor_2
_08142994:
cmp r3, 0
beq _081429BC
@@ -951,7 +465,7 @@ _08142B2C: .4byte gUnknown_841ED9C
_08142B30:
ldr r1, _08142B3C @ =gUnknown_841ED7B
_08142B32:
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
pop {r1}
bx r1
.align 2, 0
@@ -981,7 +495,7 @@ _08142B58:
.4byte _08142BA4
_08142B6C:
ldr r0, _08142B74 @ =gUnknown_841ED2F
- bl sub_8142504
+ bl AddTextPrinterToWindow1
b _08142B98
.align 2, 0
_08142B74: .4byte gUnknown_841ED2F
@@ -991,7 +505,7 @@ _08142B78:
b _08142B98
_08142B80:
ldr r0, _08142B88 @ =gUnknown_841ED50
- bl sub_8142504
+ bl AddTextPrinterToWindow1
b _08142B98
.align 2, 0
_08142B88: .4byte gUnknown_841ED50
@@ -1012,7 +526,7 @@ _08142BA0: .4byte gMain
_08142BA4:
movs r0, 0
strb r0, [r4]
- bl sub_8142560
+ bl ClearTextWindow
movs r0, 0x1
b _08142BB2
_08142BB0:
@@ -1199,7 +713,7 @@ _08142D00:
_08142D06:
cmp r0, 0
beq _08142D0E
- bl sub_8142504
+ bl AddTextPrinterToWindow1
_08142D0E:
movs r0, 0x81
lsls r0, 1
@@ -1226,7 +740,7 @@ _08142D30:
beq _08142D46
movs r0, 0
strb r0, [r6]
- bl sub_8142560
+ bl ClearTextWindow
movs r0, 0x1
b _08142D48
_08142D46:
@@ -1361,7 +875,7 @@ sub_8142E20: @ 8142E20
cmp r0, 0
bne _08142E46
adds r0, r4, 0
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
b _08142E4E
_08142E46:
adds r0, r4, 0
@@ -1484,7 +998,7 @@ _08142F6A:
adds r0, 0x9
adds r1, r5, 0
movs r2, 0
- bl sub_81426D4
+ bl MysteryGift_HandleThreeOptionMenu
adds r1, r0, 0
cmp r1, 0x1
beq _08142F94
@@ -1530,7 +1044,7 @@ _08142FC0:
adds r0, 0x9
ldr r1, _08142FE0 @ =gUnknown_841E6DC
_08142FC6:
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
bne _08142FD0
b _081435C6
@@ -1548,13 +1062,13 @@ _08142FE4:
cmp r0, 0
bne _08142FF8
ldr r0, _08142FF4 @ =gUnknown_841E717
- bl sub_8142504
+ bl AddTextPrinterToWindow1
b _08142FFE
.align 2, 0
_08142FF4: .4byte gUnknown_841E717
_08142FF8:
ldr r0, _08143004 @ =gUnknown_841E741
- bl sub_8142504
+ bl AddTextPrinterToWindow1
_08142FFE:
movs r0, 0x4
strb r0, [r5, 0x8]
@@ -1566,7 +1080,7 @@ _08143008:
adds r0, 0x9
adds r1, r5, 0
movs r2, 0x1
- bl sub_81426D4
+ bl MysteryGift_HandleThreeOptionMenu
adds r4, r0, 0
cmp r4, 0x1
beq _08143036
@@ -1578,20 +1092,20 @@ _08143008:
beq _08143042
b _081435C6
_08143028:
- bl sub_8142560
+ bl ClearTextWindow
movs r1, 0
movs r0, 0x5
strb r0, [r5, 0x8]
strb r1, [r5, 0xD]
b _081435C6
_08143036:
- bl sub_8142560
+ bl ClearTextWindow
movs r0, 0x5
strb r0, [r5, 0x8]
strb r4, [r5, 0xD]
b _081435C6
_08143042:
- bl sub_8142560
+ bl ClearTextWindow
ldrb r0, [r5, 0xC]
bl sub_8142A44
cmp r0, 0
@@ -1654,7 +1168,7 @@ _081430B8:
cmp r0, 0
beq _081430D4
movs r0, 0x1
- bl sub_81424B8
+ bl ClearScreenInBg0
movs r0, 0x7
strb r0, [r5, 0x8]
bl mevent_srv_ish_do_init
@@ -1669,13 +1183,13 @@ _081430D4:
b _081435C6
_081430DE:
movs r0, 0x1
- bl sub_81424B8
+ bl ClearScreenInBg0
b _08143464
.align 2, 0
_081430E8: .4byte gSpecialVar_Result
_081430EC:
ldr r0, _081430F8 @ =gUnknown_841E794
- bl sub_8142504
+ bl AddTextPrinterToWindow1
movs r0, 0x8
strb r0, [r5, 0x8]
b _081435C6
@@ -1760,7 +1274,7 @@ _08143198:
bl mevent_srv_ish_get_buffer
adds r1, r0, 0
adds r0, r4, 0
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
cmp r0, 0
bne _081431AE
b _081435C6
@@ -1838,7 +1352,7 @@ _08143232:
adds r0, r5, 0
adds r0, 0x9
ldr r1, _08143258 @ =gUnknown_841E7A3
- bl sub_81426A0
+ bl PrintStringAndWait2Seconds
cmp r0, 0
bne _08143242
b _081435C6
@@ -1879,7 +1393,7 @@ _08143278:
_0814328A:
adds r0, r5, 0
adds r0, 0x9
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
_08143292:
adds r1, r0, 0
cmp r1, 0
@@ -2165,7 +1679,7 @@ _0814349C:
cmp r0, 0
beq _081434B4
movs r0, 0x1
- bl sub_81424B8
+ bl ClearScreenInBg0
movs r0, 0x1F
strb r0, [r5, 0x8]
b _081435C6
@@ -2179,7 +1693,7 @@ _081434B4:
b _081435C6
_081434BE:
movs r0, 0x1
- bl sub_81424B8
+ bl ClearScreenInBg0
_081434C4:
movs r0, 0x12
strb r0, [r5, 0x8]
@@ -2198,7 +1712,7 @@ _081434D0:
cmp r0, 0
bne _08143500
ldr r0, _081434FC @ =gUnknown_841EAE7
- bl sub_8142504
+ bl AddTextPrinterToWindow1
bl mevent_srv_common_do_init_2
b _0814350A
.align 2, 0
@@ -2208,7 +1722,7 @@ _081434F8: .4byte gStringVar3
_081434FC: .4byte gUnknown_841EAE7
_08143500:
ldr r0, _08143510 @ =gUnknown_841EB01
- bl sub_8142504
+ bl AddTextPrinterToWindow1
bl mevent_srv_common_do_init_1
_0814350A:
movs r0, 0x20
@@ -2274,7 +1788,7 @@ _0814358C:
adds r0, r5, 0
adds r0, 0x9
ldr r1, _081435A8 @ =gUnknown_841E7BC
- bl mevent_0814257C
+ bl MG_PrintTextOnWindow1AndWaitButton
_08143596:
cmp r0, 0
beq _081435C6
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index 33f64b00b..20ed51bda 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1688,7 +1688,7 @@ sub_811D2A8: @ 811D2A8
movs r0, 0
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -2285,7 +2285,7 @@ sub_811D764: @ 811D764
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x2
str r0, [sp]
movs r0, 0x3
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 826e2f9e4..8b8407ce0 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -8311,7 +8311,7 @@ _0808FC7C:
movs r0, 0x1
movs r1, 0x2
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index 48cb65638..8d4b0cd9e 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -4215,7 +4215,7 @@ sub_81417E4: @ 81417E4
movs r0, 0
movs r1, 0x1
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r1, 0x2
str r1, [sp]
movs r0, 0xFF
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 65a1e4402..e73315789 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -1912,7 +1912,7 @@ _0806FC14:
movs r0, 0
movs r1, 0x8
movs r2, 0xF
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl PutWindowTilemap
movs r0, 0
diff --git a/asm/text_window.s b/asm/text_window.s
index df5c80739..02a6efcfe 100644
--- a/asm/text_window.s
+++ b/asm/text_window.s
@@ -440,8 +440,8 @@ sub_815001C: @ 815001C
_08150044: .4byte gSaveBlock2Ptr
thumb_func_end sub_815001C
- thumb_func_start sub_8150048
-sub_8150048: @ 8150048
+ thumb_func_start DrawTextBorderOuter
+DrawTextBorderOuter: @ 8150048
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -625,7 +625,7 @@ sub_8150048: @ 8150048
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8150048
+ thumb_func_end DrawTextBorderOuter
thumb_func_start sub_81501D0
sub_81501D0: @ 81501D0
diff --git a/asm/trade.s b/asm/trade.s
index ea2221aa1..1e947870a 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -3369,7 +3369,7 @@ _0804E208:
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -5876,7 +5876,7 @@ sub_804F5BC: @ 804F5BC
movs r0, 0
movs r1, 0x14
movs r2, 0xC
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl PutWindowTilemap
movs r0, 0
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index fcf0ceb19..6826bdb77 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -4288,7 +4288,7 @@ sub_812A424: @ 812A424
ldrb r0, [r0, 0x18]
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
ldr r0, [r6]
ldrb r0, [r0, 0x18]
movs r1, 0xE
@@ -4524,7 +4524,7 @@ _0812A6B0:
adds r0, r5, 0
movs r1, 0xA
movs r2, 0x2
- bl sub_8150048
+ bl DrawTextBorderOuter
ldrb r3, [r4, 0x5]
ldrb r0, [r4, 0x6]
str r0, [sp]
@@ -4980,7 +4980,7 @@ sub_812AA10: @ 812AA10
movs r0, 0x3
movs r1, 0x1
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
ldr r0, _0812AA60 @ =gUnknown_845ABEC
str r0, [sp]
movs r0, 0x3
diff --git a/asm/unk_8147AA8.s b/asm/unk_8147AA8.s
index 36b8940ab..c0451378c 100644
--- a/asm/unk_8147AA8.s
+++ b/asm/unk_8147AA8.s
@@ -5179,7 +5179,7 @@ _0814A124:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0x17
movs r1, 0x7
movs r2, 0
@@ -5265,7 +5265,7 @@ _0814A1D0:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A1F4:
@@ -5386,7 +5386,7 @@ _0814A2C0:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A2E4:
@@ -5468,7 +5468,7 @@ _0814A364:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814A388:
@@ -5839,7 +5839,7 @@ _0814A652:
ldrb r0, [r0, 0x12]
movs r1, 0x1
movs r2, 0xE
- bl sub_8150048
+ bl DrawTextBorderOuter
movs r0, 0
bl CopyBgTilemapBufferToVram
ldr r1, [r4]
@@ -7934,7 +7934,7 @@ sub_814B5C4: @ 814B5C4
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index 324a6b48c..19b2b2c43 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -6478,7 +6478,7 @@ sub_81538D0: @ 81538D0
adds r0, r7, 0
adds r1, r4, 0
movs r2, 0xD
- bl sub_8150048
+ bl DrawTextBorderOuter
adds r0, r7, 0
movs r1, 0x11
bl FillWindowPixelBuffer
diff --git a/data/mystery_gift_menu.s b/data/mystery_gift_menu.s
index 20f235a80..0b7046eb1 100644
--- a/data/mystery_gift_menu.s
+++ b/data/mystery_gift_menu.s
@@ -11,7 +11,7 @@ gUnknown_8466D98:: @ 8466D98
gUnknown_8466DA0:: @ 8466DA0
.incbin "baserom.gba", 0x466DA0, 0x8
-gUnknown_8466DA8:: @ 8466DA8
+sWindowTemplate_ThreeOptions:: @ 8466DA8
.incbin "baserom.gba", 0x466DA8, 0x8
gUnknown_8466DB0:: @ 8466DB0
@@ -26,13 +26,13 @@ gUnknown_8466DC0:: @ 8466DC0
gUnknown_8466DC8:: @ 8466DC8
.incbin "baserom.gba", 0x466DC8, 0x8
-gUnknown_8466DD0:: @ 8466DD0
+sListMenuItems_CardsOrNews:: @ 8466DD0
.incbin "baserom.gba", 0x466DD0, 0x18
-gUnknown_8466DE8:: @ 8466DE8
+sListMenuItems_WirelessOrFriend:: @ 8466DE8
.incbin "baserom.gba", 0x466DE8, 0x18
-gUnknown_8466E00:: @ 8466E00
+sListMenuTemplate_ThreeOptions:: @ 8466E00
.incbin "baserom.gba", 0x466E00, 0x78
gUnknown_8466E78:: @ 8466E78
@@ -47,8 +47,8 @@ gUnknown_8466EA8:: @ 8466EA8
gUnknown_8466EC0:: @ 8466EC0
.incbin "baserom.gba", 0x466EC0, 0x28
-gUnknown_8466EE8:: @ 8466EE8
+sMG_Ereader_TextColor_1:: @ 8466EE8
.incbin "baserom.gba", 0x466EE8, 0x8
-gUnknown_8466EF0:: @ 8466EF0
+sMG_Ereader_TextColor_2:: @ 8466EF0
.incbin "baserom.gba", 0x466EF0, 0x10
diff --git a/include/link_rfu.h b/include/link_rfu.h
index 6e54fcc6c..9ce6f04bb 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -1,9 +1,9 @@
#ifndef GUARD_LINK_RFU_H
#define GUARD_LINK_RFU_H
-void sub_8142504(const u8 *str);
-bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src);
+void AddTextPrinterToWindow1(const u8 *str);
+bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
void sub_80FA190(void);
-void sub_8142420(void);
+void MG_DrawCheckerboardPattern(void);
#endif //GUARD_LINK_RFU_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 3fd54d0d1..393872017 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -59,5 +59,6 @@ void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
void DestroyListMenu(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
+s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
#endif //GUARD_LIST_MENU_H
diff --git a/include/text_window.h b/include/text_window.h
index 2afc52a08..9fbc90799 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -25,5 +25,6 @@ void sub_814FF2C(u8 windowId, u16 tileStart, u8 palette);
void sub_815001C(u8 windowId, u16 tileStart, u8 palette);
void sub_814FE40(u8 windowId, u16 tileStart, u8 palette);
void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette);
+void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/src/mevent.c b/src/mevent.c
index 564df6c7a..9ea4714ee 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -279,7 +279,7 @@ void sub_8143910(u8 taskId)
switch (data->t08)
{
case 0:
- if (mevent_0814257C(&data->t09, gUnknown_841DE52))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE52))
data->t08 = 1;
break;
case 1:
@@ -301,9 +301,9 @@ void sub_8143910(u8 taskId)
data->t08 = 13;
break;
case 4:
- if (mevent_0814257C(&data->t09, gUnknown_841DE53))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE53))
{
- sub_8142504(gUnknown_841DE54);
+ AddTextPrinterToWindow1(gUnknown_841DE54);
sub_81438E8(&data->t00);
data->t08 = 5;
}
@@ -350,11 +350,11 @@ void sub_8143910(u8 taskId)
}
break;
case 7:
- if (mevent_0814257C(&data->t09, gUnknown_841DE7C))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE7C))
data->t08 = 4;
break;
case 8:
- sub_8142504(gUnknown_841DE95);
+ AddTextPrinterToWindow1(gUnknown_841DE95);
sub_81435DC(&gUnknown_3005ED0, gUnknownSerialData_End - gUnknownSerialData_Start, gUnknownSerialData_Start);
data->t08 = 9;
break;
@@ -370,7 +370,7 @@ void sub_8143910(u8 taskId)
else if (data->t0E == 1)
{
sub_81438E8(&data->t00);
- sub_8142504(gUnknown_841DE9B);
+ AddTextPrinterToWindow1(gUnknown_841DE9B);
data->t08 = 11;
}
else
@@ -382,7 +382,7 @@ void sub_8143910(u8 taskId)
break;
case 12:
sub_81436BC();
- sub_8142504(gUnknown_841DE98);
+ AddTextPrinterToWindow1(gUnknown_841DE98);
data->t08 = 13;
break;
case 13:
@@ -391,7 +391,7 @@ void sub_8143910(u8 taskId)
case 0:
break;
case 2:
- sub_8142504(gUnknown_841DE95);
+ AddTextPrinterToWindow1(gUnknown_841DE95);
data->t08 = 14;
break;
case 1:
@@ -439,7 +439,7 @@ void sub_8143910(u8 taskId)
case 17:
if (sub_815D794(gDecompressionBuffer))
{
- sub_8142504(gUnknown_841DE99);
+ AddTextPrinterToWindow1(gUnknown_841DE99);
sub_81438E8(&data->t00);
data->t08 = 18;
}
@@ -449,7 +449,7 @@ void sub_8143910(u8 taskId)
case 18:
if (sub_81438F0(&data->t00, 120))
{
- sub_8142504(gUnknown_841DE9A);
+ AddTextPrinterToWindow1(gUnknown_841DE9A);
PlayFanfare(258);
data->t08 = 19;
}
@@ -459,19 +459,19 @@ void sub_8143910(u8 taskId)
data->t08 = 26;
break;
case 23:
- if (mevent_0814257C(&data->t09, gUnknown_841DE7D))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE7D))
data->t08 = 26;
break;
case 20:
- if (mevent_0814257C(&data->t09, gUnknown_841DE96))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE96))
data->t08 = 0;
break;
case 21:
- if (mevent_0814257C(&data->t09, gUnknown_841DE97))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE97))
data->t08 = 0;
break;
case 22:
- if (mevent_0814257C(&data->t09, gUnknown_841DE9C))
+ if (MG_PrintTextOnWindow1AndWaitButton(&data->t09, gUnknown_841DE9C))
data->t08 = 0;
break;
case 26:
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index 7695f18ce..7d5cc8897 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -656,7 +656,7 @@ s32 sub_8146604(bool32 flag)
PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag);
break;
case 6:
- sub_8142420();
+ MG_DrawCheckerboardPattern();
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(3);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index 0085786c3..b0d00035c 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -14,10 +14,17 @@
#include "sound.h"
#include "mystery_gift_menu.h"
#include "title_screen.h"
+#include "list_menu.h"
#include "link_rfu.h"
+#include "string_util.h"
#include "constants/songs.h"
-extern const struct TextColor gUnknown_8466EE8;
+extern const struct WindowTemplate sWindowTemplate_ThreeOptions;
+extern const struct ListMenuItem sListMenuItems_CardsOrNews[];
+extern const struct ListMenuItem sListMenuItems_WirelessOrFriend[];
+extern const struct ListMenuTemplate sListMenuTemplate_ThreeOptions;
+extern const struct TextColor sMG_Ereader_TextColor_1;
+extern const struct TextColor sMG_Ereader_TextColor_2;
EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {};
EWRAM_DATA bool8 gGiftIsFromEReader = FALSE;
@@ -170,7 +177,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader)
FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
- sub_8142420();
+ MG_DrawCheckerboardPattern();
PrintMysteryGiftOrEReaderTopMenu(mg_or_ereader, 0);
gMain.state++;
break;
@@ -238,16 +245,186 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCance
if (!mg_or_ereader)
{
src = usePickOkCancel == TRUE ? gUnknown_8415F51 : gUnknown_841EDCA;
- AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841EDBD);
+ AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gUnknown_841EDBD);
width = 222 - GetStringWidth(0, src, 0);
- AddTextPrinterParametrized2(0, 0, width, 2, 0, 0, &gUnknown_8466EE8, 0, src);
+ AddTextPrinterParametrized2(0, 0, width, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, src);
}
else
{
- AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841DE50);
- AddTextPrinterParametrized2(0, 0, 0x78, 2, 0, 0, &gUnknown_8466EE8, 0, gUnknown_841DE51);
+ AddTextPrinterParametrized2(0, 2, 2, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gUnknown_841DE50);
+ AddTextPrinterParametrized2(0, 0, 0x78, 2, 0, 0, &sMG_Ereader_TextColor_1, 0, gUnknown_841DE51);
}
CopyWindowToVram(0, 2);
PutWindowTilemap(0);
}
+void MG_DrawTextBorder(u8 windowId)
+{
+ DrawTextBorderOuter(windowId, 0x01, 0xF);
+}
+
+void MG_DrawCheckerboardPattern(void)
+{
+ s32 i = 0, j;
+
+ FillBgTilemapBufferRect(3, 0x003, 0, 0, 32, 2, 0x11);
+
+ for (i = 0; i < 18; i++)
+ {
+ for (j = 0; j < 32; j++)
+ {
+ if ((i & 1) != (j & 1))
+ {
+ FillBgTilemapBufferRect(3, 1, j, i + 2, 1, 1, 0x11);
+ }
+ else
+ {
+ FillBgTilemapBufferRect(3, 2, j, i + 2, 1, 1, 0x11);
+ }
+ }
+ }
+}
+
+void ClearScreenInBg0(bool32 ignoreTopTwoRows)
+{
+ switch (ignoreTopTwoRows)
+ {
+ case 0:
+ FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0x11);
+ break;
+ case 1:
+ FillBgTilemapBufferRect(0, 0, 0, 2, 32, 30, 0x11);
+ break;
+ }
+ CopyBgTilemapBufferToVram(0);
+}
+
+void AddTextPrinterToWindow1(const u8 *str)
+{
+ StringExpandPlaceholders(gStringVar4, str);
+ FillWindowPixelBuffer(1, 0x11);
+ AddTextPrinterParametrized2(1, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4);
+ DrawTextBorderOuter(1, 0x001, 0xF);
+ PutWindowTilemap(1);
+ CopyWindowToVram(1, 3);
+}
+
+void ClearTextWindow(void)
+{
+ rbox_fill_rectangle(1);
+ ClearWindowTilemap(1);
+ CopyWindowToVram(1, 1);
+}
+
+bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str)
+{
+ switch (*textState)
+ {
+ case 0:
+ AddTextPrinterToWindow1(str);
+ goto inc;
+ case 1:
+ DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]);
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ inc:
+ (*textState)++;
+ }
+ break;
+ case 2:
+ DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]);
+ *textState = 0;
+ ClearTextWindow();
+ return TRUE;
+ case 0xFF:
+ *textState = 2;
+ break;
+ }
+ return FALSE;
+}
+
+void HideDownArrow(void)
+{
+ DrawDownArrow(1, 0xD0, 0x14, 1, FALSE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]);
+}
+
+void ShowDownArrow(void)
+{
+ DrawDownArrow(1, 0xD0, 0x14, 1, TRUE, &sDownArrowCounterAndYCoordIdx[0], &sDownArrowCounterAndYCoordIdx[1]);
+}
+
+bool32 unref_HideDownArrowAndWaitButton(u8 * textState)
+{
+ switch (*textState)
+ {
+ case 0:
+ HideDownArrow();
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ (*textState)++;
+ }
+ break;
+ case 1:
+ ShowDownArrow();
+ *textState = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool32 PrintStringAndWait2Seconds(u8 * counter, const u8 * str)
+{
+ if (*counter == 0)
+ {
+ AddTextPrinterToWindow1(str);
+ }
+ if (++(*counter) > 120)
+ {
+ *counter = 0;
+ ClearTextWindow();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu)
+{
+ struct ListMenuTemplate listMenuTemplate = sListMenuTemplate_ThreeOptions;
+ struct WindowTemplate windowTemplate = sWindowTemplate_ThreeOptions;
+ u32 width;
+ s32 finalWidth;
+ s32 response;
+ u32 i;
+
+ if (whichMenu == 0)
+ {
+ listMenuTemplate.items = sListMenuItems_CardsOrNews;
+ }
+ else
+ {
+ listMenuTemplate.items = sListMenuItems_WirelessOrFriend;
+ }
+ width = 0;
+ for (i = 0; i < listMenuTemplate.totalItems; i++)
+ {
+ u32 curWidth = GetStringWidth(2, listMenuTemplate.items[i].unk_00, listMenuTemplate.lettersSpacing);
+ if (curWidth > width)
+ width = curWidth;
+ }
+ finalWidth = (((width + 9) / 8) + 2) & ~1;
+ windowTemplate.width = finalWidth;
+ windowTemplate.tilemapLeft = (30 - finalWidth) / 2;
+ response = DoMysteryGiftListMenu(&windowTemplate, &listMenuTemplate, 1, 0x00A, 0xE0);
+ if (response != -1)
+ {
+ ClearWindowTilemap(2);
+ CopyWindowToVram(2, 1);
+ }
+ return response;
+}
+
+
+