through HandleLoadWonderCardOrNews

This commit is contained in:
PikalaxALT
2019-04-25 17:44:25 -04:00
parent 6cebd1f853
commit d3057e7ae6
12 changed files with 258 additions and 439 deletions
+1 -1
View File
@@ -4169,7 +4169,7 @@ _08117C12:
adds r1, 0x14
ldr r3, _08117C38 @ =gStringVar4
movs r2, 0
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r4, r0, 24
cmp r4, 0
+10 -393
View File
@@ -5,389 +5,6 @@
.text
thumb_func_start sub_81427A0
sub_81427A0: @ 81427A0
push {r4-r6,lr}
sub sp, 0x1C
adds r5, r0, 0
adds r4, r1, 0
adds r1, r3, 0
lsls r2, 24
lsrs r6, r2, 24
ldrb r0, [r5]
cmp r0, 0x1
beq _08142834
cmp r0, 0x1
bgt _081427BE
cmp r0, 0
beq _081427CA
b _081428E6
_081427BE:
cmp r0, 0x2
beq _0814288C
cmp r0, 0xFF
bne _081427C8
b _081428C2
_081427C8:
b _081428E6
_081427CA:
ldr r0, _081427D8 @ =gStringVar4
bl StringExpandPlaceholders
cmp r6, 0
bne _081427E0
ldr r0, _081427DC @ =gUnknown_8466D90
b _081427E2
.align 2, 0
_081427D8: .4byte gStringVar4
_081427DC: .4byte gUnknown_8466D90
_081427E0:
ldr r0, _08142828 @ =gUnknown_8466D98
_081427E2:
bl AddWindow
strh r0, [r4]
ldrb r0, [r4]
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r4]
movs r2, 0
str r2, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
ldr r1, _0814282C @ =sMG_Ereader_TextColor_2
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r1, _08142830 @ =gStringVar4
str r1, [sp, 0x10]
movs r1, 0x2
movs r3, 0x2
bl AddTextPrinterParametrized2
ldrb r0, [r4]
movs r1, 0x1
movs r2, 0xF
bl DrawTextBorderOuter
ldrb r0, [r4]
movs r1, 0x2
bl CopyWindowToVram
ldrb r0, [r4]
bl PutWindowTilemap
b _0814287E
.align 2, 0
_08142828: .4byte gUnknown_8466D98
_0814282C: .4byte sMG_Ereader_TextColor_2
_08142830: .4byte gStringVar4
_08142834:
ldr r0, _08142850 @ =gUnknown_8466DB0
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [sp, 0x14]
str r1, [sp, 0x18]
cmp r6, 0
bne _08142858
ldr r0, _08142854 @ =0xff00ffff
ldr r1, [sp, 0x14]
ands r1, r0
movs r0, 0x90
lsls r0, 12
b _08142862
.align 2, 0
_08142850: .4byte gUnknown_8466DB0
_08142854: .4byte 0xff00ffff
_08142858:
ldr r0, _08142888 @ =0xff00ffff
ldr r1, [sp, 0x14]
ands r1, r0
movs r0, 0xF0
lsls r0, 12
_08142862:
orrs r1, r0
str r1, [sp, 0x14]
movs r0, 0xA
str r0, [sp]
movs r0, 0xE
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
add r0, sp, 0x14
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl sub_810FF60
_0814287E:
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _081428E6
.align 2, 0
_08142888: .4byte 0xff00ffff
_0814288C:
bl ProcessMenuInputNoWrap_
lsls r0, 24
asrs r6, r0, 24
movs r1, 0x80
lsls r1, 17
adds r0, r1
lsrs r0, 24
cmp r0, 0x2
bhi _081428E6
movs r0, 0
strb r0, [r5]
ldrb r0, [r4]
bl rbox_fill_rectangle
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
movs r1, 0x1
bl CopyWindowToVram
ldrb r0, [r4]
bl RemoveWindow
adds r0, r6, 0
b _081428EA
_081428C2:
movs r0, 0
strb r0, [r5]
ldrb r0, [r4]
bl rbox_fill_rectangle
ldrb r0, [r4]
bl ClearWindowTilemap
ldrb r0, [r4]
movs r1, 0x1
bl CopyWindowToVram
ldrb r0, [r4]
bl RemoveWindow
movs r0, 0x1
negs r0, r0
b _081428EA
_081428E6:
movs r0, 0x2
negs r0, r0
_081428EA:
add sp, 0x1C
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81427A0
thumb_func_start sub_81428F4
sub_81428F4: @ 81428F4
push {r4-r6,lr}
sub sp, 0x14
adds r6, r0, 0
adds r5, r1, 0
ldrb r0, [r6]
cmp r0, 0x1
beq _08142994
cmp r0, 0x1
bgt _0814290C
cmp r0, 0
beq _08142914
b _08142A38
_0814290C:
cmp r0, 0xFF
bne _08142912
b _08142A14
_08142912:
b _08142A38
_08142914:
cmp r2, 0
bne _0814292C
ldr r0, _08142924 @ =gStringVar4
ldr r1, _08142928 @ =gUnknown_841EA86
bl StringExpandPlaceholders
b _08142934
.align 2, 0
_08142924: .4byte gStringVar4
_08142928: .4byte gUnknown_841EA86
_0814292C:
ldr r0, _08142984 @ =gStringVar4
ldr r1, _08142988 @ =gUnknown_841EAB7
bl StringExpandPlaceholders
_08142934:
ldr r0, _0814298C @ =gUnknown_8466DA0
bl AddWindow
strh r0, [r5]
lsls r0, 24
lsrs r0, 24
movs r1, 0x11
bl FillWindowPixelBuffer
ldrb r0, [r5]
movs r2, 0
str r2, [sp]
movs r1, 0x2
str r1, [sp, 0x4]
ldr r1, _08142990 @ =sMG_Ereader_TextColor_2
str r1, [sp, 0x8]
str r2, [sp, 0xC]
ldr r1, _08142984 @ =gStringVar4
str r1, [sp, 0x10]
movs r1, 0x2
movs r3, 0x2
bl AddTextPrinterParametrized2
ldrb r0, [r5]
movs r1, 0x1
movs r2, 0xF
bl DrawTextBorderOuter
ldrb r0, [r5]
movs r1, 0x2
bl CopyWindowToVram
ldrb r0, [r5]
bl PutWindowTilemap
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _08142A38
.align 2, 0
_08142984: .4byte gStringVar4
_08142988: .4byte gUnknown_841EAB7
_0814298C: .4byte gUnknown_8466DA0
_08142990: .4byte sMG_Ereader_TextColor_2
_08142994:
cmp r3, 0
beq _081429BC
cmp r2, 0
bne _081429AC
ldr r0, _081429A4 @ =gUnknown_8466DC0
ldr r1, _081429A8 @ =gUnknown_8466E90
b _081429D4
.align 2, 0
_081429A4: .4byte gUnknown_8466DC0
_081429A8: .4byte gUnknown_8466E90
_081429AC:
ldr r0, _081429B4 @ =gUnknown_8466DC8
ldr r1, _081429B8 @ =gUnknown_8466EC0
b _081429D4
.align 2, 0
_081429B4: .4byte gUnknown_8466DC8
_081429B8: .4byte gUnknown_8466EC0
_081429BC:
cmp r2, 0
bne _081429D0
ldr r0, _081429C8 @ =gUnknown_8466DB8
ldr r1, _081429CC @ =gUnknown_8466E78
b _081429D4
.align 2, 0
_081429C8: .4byte gUnknown_8466DB8
_081429CC: .4byte gUnknown_8466E78
_081429D0:
ldr r0, _08142A0C @ =gUnknown_8466DC0
ldr r1, _08142A10 @ =gUnknown_8466EA8
_081429D4:
movs r2, 0xE0
str r2, [sp]
movs r2, 0x1
movs r3, 0xA
bl DoMysteryGiftListMenu
adds r4, r0, 0
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _08142A38
movs r0, 0
strb r0, [r6]
ldrb r0, [r5]
bl rbox_fill_rectangle
ldrb r0, [r5]
bl ClearWindowTilemap
ldrb r0, [r5]
movs r1, 0x1
bl CopyWindowToVram
ldrb r0, [r5]
bl RemoveWindow
adds r0, r4, 0
b _08142A3C
.align 2, 0
_08142A0C: .4byte gUnknown_8466DC0
_08142A10: .4byte gUnknown_8466EA8
_08142A14:
movs r0, 0
strb r0, [r6]
ldrb r0, [r5]
bl rbox_fill_rectangle
ldrb r0, [r5]
bl ClearWindowTilemap
ldrb r0, [r5]
movs r1, 0x1
bl CopyWindowToVram
ldrb r0, [r5]
bl RemoveWindow
movs r0, 0x2
negs r0, r0
b _08142A3C
_08142A38:
movs r0, 0x1
negs r0, r0
_08142A3C:
add sp, 0x14
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81428F4
thumb_func_start sub_8142A44
sub_8142A44: @ 8142A44
push {lr}
cmp r0, 0
beq _08142A50
bl sub_8143E1C
b _08142A54
_08142A50:
bl sub_8143FC8
_08142A54:
pop {r1}
bx r1
thumb_func_end sub_8142A44
thumb_func_start sub_8142A58
sub_8142A58: @ 8142A58
push {r4,r5,lr}
adds r5, r0, 0
ldrb r0, [r5]
cmp r0, 0
beq _08142A68
cmp r0, 0x1
beq _08142A90
b _08142AAC
_08142A68:
cmp r1, 0
bne _08142A80
bl sav1_get_mevent_buffer_1
adds r4, r0, 0
bl sav1_get_mevent_buffer_2
adds r1, r0, 0
adds r0, r4, 0
bl sub_8145654
b _08142A88
_08142A80:
bl sub_8143D58
bl sub_8146288
_08142A88:
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
b _08142AAC
_08142A90:
cmp r1, 0
bne _08142A9E
bl sub_814571C
_08142A98:
cmp r0, 0
bne _08142AA4
b _08142AAC
_08142A9E:
bl sub_8146318
b _08142A98
_08142AA4:
movs r0, 0
strb r0, [r5]
movs r0, 0x1
b _08142AAE
_08142AAC:
movs r0, 0
_08142AAE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8142A58
thumb_func_start sub_8142AB4
sub_8142AB4: @ 8142AB4
push {lr}
@@ -444,7 +61,7 @@ _08142B0C:
ldr r3, _08142B1C @ =gUnknown_841EC99
_08142B0E:
movs r2, 0x1
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r0, 24
pop {r1}
@@ -1012,11 +629,11 @@ _08142F6A:
_08142F8A:
movs r0, 0
strb r0, [r5, 0xC]
bl sub_8143FC8
bl ValidateReceivedWonderNews
b _08142F9A
_08142F94:
strb r1, [r5, 0xC]
bl sub_8143E1C
bl ValidateReceivedWonderCard
_08142F9A:
cmp r0, 0x1
bne _08142FA0
@@ -1107,7 +724,7 @@ _08143036:
_08143042:
bl ClearTextWindow
ldrb r0, [r5, 0xC]
bl sub_8142A44
bl ValidateCardOrNews
cmp r0, 0
beq _08143052
b _081434C4
@@ -1259,7 +876,7 @@ _08143174:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
@@ -1286,7 +903,7 @@ _081431B0:
ldr r3, _081431D8 @ =gUnknown_841E7F2
adds r1, r5, 0
movs r2, 0
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
@@ -1310,7 +927,7 @@ _081431E0:
ldr r3, _08143204 @ =gUnknown_841E823
adds r1, r5, 0
movs r2, 0
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
@@ -1430,7 +1047,7 @@ _081432CC:
adds r0, r5, 0
adds r0, 0x9
ldrb r1, [r5, 0xC]
bl sub_8142A58
bl HandleLoadWonderCardOrNews
cmp r0, 0
bne _081432DC
b _081435C6
@@ -1507,7 +1124,7 @@ _0814335A:
adds r1, r5, 0
movs r3, 0x1
_08143364:
bl sub_81428F4
bl HandleMysteryGiftListMenu
adds r1, r0, 0
cmp r1, 0x1
beq _08143386
@@ -1571,7 +1188,7 @@ _081433D2:
ldr r3, _081433F8 @ =gUnknown_841ECF9
adds r1, r5, 0
movs r2, 0x1
bl sub_81427A0
bl mevent_message_print_and_prompt_yes_no
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0x1
+2 -2
View File
@@ -2516,10 +2516,10 @@ gUnknown_841EA3F:: @ 841EA3F
gUnknown_841EA6F:: @ 841EA6F
.incbin "baserom.gba", 0x41EA6F, 0x17
gUnknown_841EA86:: @ 841EA86
gText_WhatToDoWithCards:: @ 841EA86
.incbin "baserom.gba", 0x41EA86, 0x31
gUnknown_841EAB7:: @ 841EAB7
gText_WhatToDoWithNews:: @ 841EAB7
.incbin "baserom.gba", 0x41EAB7, 0x30
gUnknown_841EAE7:: @ 841EAE7
+11 -11
View File
@@ -2,28 +2,28 @@
.align 2
gUnknown_8466D90:: @ 8466D90
sWindowTemplate_PromptYesOrNo_Width28:: @ 8466D90
.incbin "baserom.gba", 0x466D90, 0x8
gUnknown_8466D98:: @ 8466D98
sWindowTemplate_PromptYesOrNo_Width20:: @ 8466D98
.incbin "baserom.gba", 0x466D98, 0x8
gUnknown_8466DA0:: @ 8466DA0
sMysteryGiftMenuWindowTemplate:: @ 8466DA0
.incbin "baserom.gba", 0x466DA0, 0x8
sWindowTemplate_ThreeOptions:: @ 8466DA8
.incbin "baserom.gba", 0x466DA8, 0x8
gUnknown_8466DB0:: @ 8466DB0
sWindowTemplate_YesNoBox:: @ 8466DB0
.incbin "baserom.gba", 0x466DB0, 0x8
gUnknown_8466DB8:: @ 8466DB8
sWindowTemplate_7by8:: @ 8466DB8
.incbin "baserom.gba", 0x466DB8, 0x8
gUnknown_8466DC0:: @ 8466DC0
sWindowTemplate_7by6:: @ 8466DC0
.incbin "baserom.gba", 0x466DC0, 0x8
gUnknown_8466DC8:: @ 8466DC8
sWindowTemplate_7by4:: @ 8466DC8
.incbin "baserom.gba", 0x466DC8, 0x8
sListMenuItems_CardsOrNews:: @ 8466DD0
@@ -35,16 +35,16 @@ sListMenuItems_WirelessOrFriend:: @ 8466DE8
sListMenuTemplate_ThreeOptions:: @ 8466E00
.incbin "baserom.gba", 0x466E00, 0x78
gUnknown_8466E78:: @ 8466E78
sListMenu_ReceiveSendToss:: @ 8466E78
.incbin "baserom.gba", 0x466E78, 0x18
gUnknown_8466E90:: @ 8466E90
sListMenu_ReceiveToss:: @ 8466E90
.incbin "baserom.gba", 0x466E90, 0x18
gUnknown_8466EA8:: @ 8466EA8
sListMenu_ReceiveSend:: @ 8466EA8
.incbin "baserom.gba", 0x466EA8, 0x18
gUnknown_8466EC0:: @ 8466EC0
sListMenu_Receive:: @ 8466EC0
.incbin "baserom.gba", 0x466EC0, 0x28
sMG_Ereader_TextColor_1:: @ 8466EE8
+1 -1
View File
@@ -393,7 +393,7 @@ gSpecials:: @ 815FD60
def_special sub_812B220
def_special sub_812B234
def_special sub_812B248
def_special sub_8143FC8
def_special ValidateReceivedWonderNews
def_special sub_810B810
def_special sub_811999C
def_special sp182_move_string
+8 -3
View File
@@ -33,12 +33,13 @@ struct MEvent_Str_2
u8 fill_00[0x40];
};
struct MEventBuffer_3120_Sub * sub_8143D58(void);
struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void);
struct MEventBuffer_3120_Sub * GetSavedWonderNews(void);
struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void);
struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void);
struct MysteryEventStruct * sub_8143D94(void);
bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src);
bool32 sub_8143E1C(void);
bool32 ValidateReceivedWonderCard(void);
bool32 ValidateReceivedWonderNews(void);
bool32 sub_8143EF4(const u8 * src);
bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data);
void sub_814410C(struct MEventBuffer_32E0_Sub * buffer);
@@ -49,5 +50,9 @@ u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void *
u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused);
bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1);
u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command);
bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6);
bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0);
s32 FadeToWonderCardMenu(void);
s32 FadeToWonderNewsMenu(void);
#endif //GUARD_MEVENT_H
+1 -1
View File
@@ -59,7 +59,7 @@ u16 sub_8146CE8(void)
struct MysteryEventStruct *r4 = sub_8143D94();
u16 r5;
if (!sub_806E2BC() || !sub_8143E1C())
if (!sub_806E2BC() || !ValidateReceivedWonderCard())
return 0;
r5 = sub_8146E0C(r4);
+12 -12
View File
@@ -490,12 +490,12 @@ void sub_8143D24(void)
sub_80BDE28();
}
struct MEventBuffer_3120_Sub * sub_8143D58(void)
struct MEventBuffer_3120_Sub * GetSavedWonderNews(void)
{
return &gSaveBlock1Ptr->unk_3120.buffer_000.data;
}
struct MEventBuffer_32E0_Sub * sav1_get_mevent_buffer_1(void)
struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void)
{
return &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
}
@@ -530,7 +530,7 @@ bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src)
return TRUE;
}
bool32 sub_8143E1C(void)
bool32 ValidateReceivedWonderCard(void)
{
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc)
return FALSE;
@@ -556,7 +556,7 @@ bool32 sub_8143E78(void)
void sub_8143E9C(void)
{
CpuFill32(0, sub_8143D58(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
gSaveBlock1Ptr->unk_3120.buffer_000.crc = 0;
}
@@ -570,7 +570,7 @@ bool32 sub_8143EF4(const u8 * src)
{
const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_3120.buffer_000.data;
u32 i;
if (!sub_8143E1C())
if (!ValidateReceivedWonderCard())
return FALSE;
for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++)
{
@@ -606,7 +606,7 @@ bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data)
return TRUE;
}
bool32 sub_8143FC8(void)
bool32 ValidateReceivedWonderNews(void)
{
if (gSaveBlock1Ptr->unk_3120.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)))
return FALSE;
@@ -654,7 +654,7 @@ void sub_81440B4(void)
u16 sub_81440E8(void)
{
if (sub_8143FC8())
if (ValidateReceivedWonderNews())
return gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00;
return 0;
}
@@ -721,7 +721,7 @@ bool32 sub_81441F0(const u16 * data)
s32 sub_8144218(void)
{
struct MEventBuffer_32E0_Sub * data;
if (!sub_8143FC8())
if (!ValidateReceivedWonderNews())
return 0;
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 != 1)
@@ -759,11 +759,11 @@ void sub_81442CC(struct MEventStruct_Unk1442CC * data)
data->unk_08 = 1;
data->unk_0C = 1;
data->unk_10 = 1;
if (sub_8143FC8())
if (ValidateReceivedWonderNews())
{
data->unk_14 = sav1_get_mevent_buffer_1()->unk_00;
data->unk_14 = GetSavedWonderCard()->unk_00;
data->unk_20 = *sav1_get_mevent_buffer_2();
data->unk_44 = sav1_get_mevent_buffer_1()->unk_09;
data->unk_44 = GetSavedWonderCard()->unk_09;
}
else
data->unk_14 = 0;
@@ -945,7 +945,7 @@ bool32 sub_81446D0(u16 a0)
gUnknown_203F3BC = FALSE;
if (a0 == 0)
return FALSE;
if (!sub_8143FC8())
if (!ValidateReceivedWonderNews())
return FALSE;
if (gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00 != a0)
return FALSE;
+4 -4
View File
@@ -126,7 +126,7 @@ const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = {
{1, 0, 0, 7, gUnknown_8467A7C, gUnknown_8467CAC, gUnknown_846716C}
};
bool32 sub_8145654(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6)
{
if (r5 == NULL || r6 == NULL)
return FALSE;
@@ -155,7 +155,7 @@ void sub_81456F0(void)
}
}
s32 sub_814571C(void)
s32 FadeToWonderCardMenu(void)
{
if (gUnknown_203F3C8 == NULL)
return -1;
@@ -508,7 +508,7 @@ const struct UnkStruct_8467FB8 gUnknown_8468720[] = {
{1, 0, 0, 0, gUnknown_84685B4, gUnknown_8468644, gUnknown_84680A0}
};
bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0)
bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0)
{
if (a0 == NULL)
return FALSE;
@@ -533,7 +533,7 @@ void sub_81462EC(void)
}
}
s32 sub_8146318(void)
s32 FadeToWonderNewsMenu(void)
{
if (gUnknown_203F3CC == NULL)
return -1;
+2 -2
View File
@@ -526,12 +526,12 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr)
break;
case 26:
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 506);
memcpy(svr->mevent_32e0, sav1_get_mevent_buffer_1(), 332);
memcpy(svr->mevent_32e0, GetSavedWonderCard(), 332);
sub_814410C(svr->mevent_32e0);
break;
case 27:
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 512);
memcpy(svr->mevent_3120, sub_8143D58(), 444);
memcpy(svr->mevent_3120, GetSavedWonderNews(), 444);
break;
case 28:
AGB_ASSERT_EX(cmd->flag == FALSE && cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 517);
+204 -7
View File
@@ -17,15 +17,9 @@
#include "list_menu.h"
#include "link_rfu.h"
#include "string_util.h"
#include "mevent.h"
#include "constants/songs.h"
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;
@@ -117,6 +111,24 @@ static const struct WindowTemplate sMainWindows[] = {
}
};
extern const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width28;
extern const struct WindowTemplate sWindowTemplate_PromptYesOrNo_Width20;
extern const struct WindowTemplate sMysteryGiftMenuWindowTemplate;
extern const struct WindowTemplate sWindowTemplate_ThreeOptions;
extern const struct WindowTemplate sWindowTemplate_YesNoBox;
extern const struct WindowTemplate sWindowTemplate_7by8;
extern const struct WindowTemplate sWindowTemplate_7by6;
extern const struct WindowTemplate sWindowTemplate_7by4;
extern const struct ListMenuItem sListMenuItems_CardsOrNews[];
extern const struct ListMenuItem sListMenuItems_WirelessOrFriend[];
extern const struct ListMenuTemplate sListMenuTemplate_ThreeOptions;
extern const struct ListMenuTemplate sListMenu_ReceiveSendToss;
extern const struct ListMenuTemplate sListMenu_ReceiveToss;
extern const struct ListMenuTemplate sListMenu_ReceiveSend;
extern const struct ListMenuTemplate sListMenu_Receive;
extern const struct TextColor sMG_Ereader_TextColor_1;
extern const struct TextColor sMG_Ereader_TextColor_2;
void vblankcb_mystery_gift_e_reader_run(void)
{
ProcessSpriteCopyRequests();
@@ -236,6 +248,8 @@ extern const u8 gUnknown_841EDCA[];
extern const u8 gUnknown_841EDBD[];
extern const u8 gUnknown_841DE50[];
extern const u8 gUnknown_841DE51[];
extern const u8 gText_WhatToDoWithCards[];
extern const u8 gText_WhatToDoWithNews[];
void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCancel)
{
@@ -426,5 +440,188 @@ u32 MysteryGift_HandleThreeOptionMenu(u8 * unused0, u16 * unused1, u8 whichMenu)
return response;
}
s8 mevent_message_print_and_prompt_yes_no(u8 * textState, u16 * windowId, bool8 yesNoBoxPlacement, const u8 * str)
{
struct WindowTemplate windowTemplate;
s8 input;
switch (*textState)
{
case 0:
StringExpandPlaceholders(gStringVar4, str);
if (yesNoBoxPlacement == 0)
{
*windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width28);
}
else
{
*windowId = AddWindow(&sWindowTemplate_PromptYesOrNo_Width20);
}
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParametrized2(*windowId, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
CopyWindowToVram(*windowId, 2);
PutWindowTilemap(*windowId);
(*textState)++;
break;
case 1:
windowTemplate = sWindowTemplate_YesNoBox;
if (yesNoBoxPlacement == 0)
{
windowTemplate.tilemapTop = 9;
}
else
{
windowTemplate.tilemapTop = 15;
}
sub_810FF60(&windowTemplate, 2, 0, 2, 10, 14, 0);
(*textState)++;
break;
case 2:
input = ProcessMenuInputNoWrap_();
if (input == -1 || input == 0 || input == 1)
{
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1);
RemoveWindow(*windowId);
return input;
}
break;
case 0xFF:
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1);
RemoveWindow(*windowId);
return -1;
}
return -2;
}
s32 HandleMysteryGiftListMenu(u8 * textState, u16 * windowId, bool32 cannotToss, bool32 cannotSend)
{
struct WindowTemplate windowTemplate;
s32 input;
switch (*textState)
{
case 0:
if (cannotToss == 0)
{
StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithCards);
}
else
{
StringExpandPlaceholders(gStringVar4, gText_WhatToDoWithNews);
}
*windowId = AddWindow(&sMysteryGiftMenuWindowTemplate);
FillWindowPixelBuffer(*windowId, 0x11);
AddTextPrinterParametrized2(*windowId, 2, 0, 2, 0, 2, &sMG_Ereader_TextColor_2, 0, gStringVar4);
DrawTextBorderOuter(*windowId, 0x001, 0x0F);
CopyWindowToVram(*windowId, 2);
PutWindowTilemap(*windowId);
(*textState)++;
break;
case 1:
windowTemplate = sWindowTemplate_YesNoBox;
if (cannotSend)
{
if (cannotToss == 0)
{
input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveToss, 1, 0x00A, 0xE0);
}
else
{
input = DoMysteryGiftListMenu(&sWindowTemplate_7by4, &sListMenu_Receive, 1, 0x00A, 0xE0);
}
}
else
{
if (cannotToss == 0)
{
input = DoMysteryGiftListMenu(&sWindowTemplate_7by8, &sListMenu_ReceiveSendToss, 1, 0x00A, 0xE0);
}
else
{
input = DoMysteryGiftListMenu(&sWindowTemplate_7by6, &sListMenu_ReceiveSend, 1, 0x00A, 0xE0);
}
}
if (input != -1)
{
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1);
RemoveWindow(*windowId);
return input;
}
break;
case 0xFF:
*textState = 0;
rbox_fill_rectangle(*windowId);
ClearWindowTilemap(*windowId);
CopyWindowToVram(*windowId, 1);
RemoveWindow(*windowId);
return -2;
}
return -1;
}
bool32 ValidateCardOrNews(bool32 cardOrNews)
{
if (cardOrNews == 0)
{
return ValidateReceivedWonderNews();
}
else
{
return ValidateReceivedWonderCard();
}
}
bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews)
{
s32 v0;
switch (*state)
{
case 0:
if (cardOrNews == 0)
{
InitWonderCardResources(GetSavedWonderCard(), sav1_get_mevent_buffer_2());
}
else
{
InitWonderNewsResources(GetSavedWonderNews());
}
(*state)++;
break;
case 1:
if (cardOrNews == 0)
{
v0 = FadeToWonderCardMenu();
check:
if (v0 != 0)
{
goto done;
}
break;
}
else
{
v0 = FadeToWonderNewsMenu();
goto check;
}
done:
*state = 0;
return TRUE;
}
return FALSE;
}
+2 -2
View File
@@ -9,7 +9,7 @@ extern u8 gUnknown_203ADFA;
extern void sub_80CBDE8(void); // field_specials
extern u16 CalcCRC16WithTable(u8 *data, int length); // util
extern bool32 sub_8143FC8(void); // mevent
extern bool32 ValidateReceivedWonderNews(void); // mevent
enum
{
@@ -525,7 +525,7 @@ bool32 sub_8069DFC(void)
u8 *sub_8069E48(void)
{
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
if (!sub_8143FC8())
if (!ValidateReceivedWonderNews())
return NULL;
if (scriptData->magic != RAM_SCRIPT_MAGIC)
return NULL;