diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-25 16:52:29 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-25 16:52:29 -0400 |
commit | 6cebd1f85311b1aa7321eb141521686d21bd091c (patch) | |
tree | f452c85872b96e021f9021a3d6e95df6d0b6dca2 | |
parent | f95188d887ca8073347f13c56e5e7acf53a75ac2 (diff) |
through MysteryGift_HandleThreeOptionMenu
-rw-r--r-- | asm/bag.s | 2 | ||||
-rw-r--r-- | asm/learn_move.s | 2 | ||||
-rw-r--r-- | asm/link_rfu.s | 2 | ||||
-rw-r--r-- | asm/link_rfu_3.s | 36 | ||||
-rw-r--r-- | asm/list_menu.s | 2 | ||||
-rw-r--r-- | asm/map_name_popup.s | 2 | ||||
-rw-r--r-- | asm/mystery_gift_menu.s | 550 | ||||
-rw-r--r-- | asm/pokemon_special_anim.s | 4 | ||||
-rw-r--r-- | asm/pokemon_storage_system.s | 2 | ||||
-rw-r--r-- | asm/slot_machine.s | 2 | ||||
-rw-r--r-- | asm/start_menu.s | 2 | ||||
-rw-r--r-- | asm/text_window.s | 6 | ||||
-rw-r--r-- | asm/trade.s | 4 | ||||
-rw-r--r-- | asm/union_room_chat.s | 6 | ||||
-rw-r--r-- | asm/unk_8147AA8.s | 12 | ||||
-rw-r--r-- | asm/unk_81507FC.s | 2 | ||||
-rw-r--r-- | data/mystery_gift_menu.s | 12 | ||||
-rw-r--r-- | include/link_rfu.h | 6 | ||||
-rw-r--r-- | include/list_menu.h | 1 | ||||
-rw-r--r-- | include/text_window.h | 1 | ||||
-rw-r--r-- | src/mevent.c | 28 | ||||
-rw-r--r-- | src/mevent_8145654.c | 2 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 189 |
23 files changed, 284 insertions, 591 deletions
@@ -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; +} + + + |