through MysteryGift_HandleThreeOptionMenu

This commit is contained in:
PikalaxALT
2019-04-25 16:52:29 -04:00
parent f95188d887
commit 6cebd1f853
23 changed files with 284 additions and 591 deletions
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+18 -18
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+32 -518
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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
+3 -3
View File
@@ -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
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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
+6 -6
View File
@@ -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
+3 -3
View File
@@ -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
+1
View File
@@ -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
+1
View File
@@ -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
+14 -14
View File
@@ -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:
+1 -1
View File
@@ -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);
+183 -6
View File
@@ -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;
}