summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-26 08:51:05 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-04-26 08:51:05 -0400
commit7b4e2ec05b269b2fa8b73ecf94bae1e63965fb43 (patch)
tree98db880eac1e19a3e0278da3f7d00623a3532263
parent76a421f6f1787c013e8f8ba4403f5b995c648c41 (diff)
through mevent_message
-rw-r--r--asm/mystery_gift_menu.s340
-rw-r--r--data/data_83FECCC.s44
-rw-r--r--data/specials.inc2
-rw-r--r--include/mevent.h8
-rw-r--r--src/menews_jisan.c2
-rw-r--r--src/mevent.c20
-rw-r--r--src/mevent_8145654.c8
-rw-r--r--src/mystery_gift_menu.c192
-rw-r--r--src/script.c4
9 files changed, 254 insertions, 366 deletions
diff --git a/asm/mystery_gift_menu.s b/asm/mystery_gift_menu.s
index 7a2fc20b1..092289daa 100644
--- a/asm/mystery_gift_menu.s
+++ b/asm/mystery_gift_menu.s
@@ -5,310 +5,6 @@
.text
- thumb_func_start sub_8142AB4
-sub_8142AB4: @ 8142AB4
- push {lr}
- cmp r0, 0
- bne _08142AC0
- bl sub_8143F38
- b _08142AC4
-_08142AC0:
- bl sub_8143DBC
-_08142AC4:
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8142AB4
-
- thumb_func_start sub_8142ACC
-sub_8142ACC: @ 8142ACC
- push {lr}
- cmp r0, 0
- bne _08142AE2
- adds r0, r1, 0
- bl sub_814593C
- cmp r0, 0
- beq _08142AEC
- bl sub_81456F0
- b _08142AF4
-_08142AE2:
- adds r0, r1, 0
- bl sub_8146604
- cmp r0, 0
- bne _08142AF0
-_08142AEC:
- movs r0, 0
- b _08142AF6
-_08142AF0:
- bl sub_81462EC
-_08142AF4:
- movs r0, 0x1
-_08142AF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8142ACC
-
- thumb_func_start sub_8142AFC
-sub_8142AFC: @ 8142AFC
- push {lr}
- cmp r2, 0
- beq _08142B0C
- ldr r3, _08142B08 @ =gUnknown_841ECD3
- b _08142B0E
- .align 2, 0
-_08142B08: .4byte gUnknown_841ECD3
-_08142B0C:
- ldr r3, _08142B1C @ =gUnknown_841EC99
-_08142B0E:
- movs r2, 0x1
- bl mevent_message_print_and_prompt_yes_no
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08142B1C: .4byte gUnknown_841EC99
- thumb_func_end sub_8142AFC
-
- thumb_func_start mevent_message_was_thrown_away
-mevent_message_was_thrown_away: @ 8142B20
- push {lr}
- cmp r1, 0
- beq _08142B30
- ldr r1, _08142B2C @ =gUnknown_841ED9C
- b _08142B32
- .align 2, 0
-_08142B2C: .4byte gUnknown_841ED9C
-_08142B30:
- ldr r1, _08142B3C @ =gUnknown_841ED7B
-_08142B32:
- bl MG_PrintTextOnWindow1AndWaitButton
- pop {r1}
- bx r1
- .align 2, 0
-_08142B3C: .4byte gUnknown_841ED7B
- thumb_func_end mevent_message_was_thrown_away
-
- thumb_func_start mevent_save_game
-mevent_save_game: @ 8142B40
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- cmp r0, 0x4
- bhi _08142BB0
- lsls r0, 2
- ldr r1, _08142B54 @ =_08142B58
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142B54: .4byte _08142B58
- .align 2, 0
-_08142B58:
- .4byte _08142B6C
- .4byte _08142B78
- .4byte _08142B80
- .4byte _08142B8C
- .4byte _08142BA4
-_08142B6C:
- ldr r0, _08142B74 @ =gUnknown_841ED2F
- bl AddTextPrinterToWindow1
- b _08142B98
- .align 2, 0
-_08142B74: .4byte gUnknown_841ED2F
-_08142B78:
- movs r0, 0
- bl TrySavingData
- b _08142B98
-_08142B80:
- ldr r0, _08142B88 @ =gUnknown_841ED50
- bl AddTextPrinterToWindow1
- b _08142B98
- .align 2, 0
-_08142B88: .4byte gUnknown_841ED50
-_08142B8C:
- ldr r0, _08142BA0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142BB0
-_08142B98:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08142BB0
- .align 2, 0
-_08142BA0: .4byte gMain
-_08142BA4:
- movs r0, 0
- strb r0, [r4]
- bl ClearTextWindow
- movs r0, 0x1
- b _08142BB2
-_08142BB0:
- movs r0, 0
-_08142BB2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mevent_save_game
-
- thumb_func_start mevent_message
-mevent_message: @ 8142BB8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r2, 0
- str r2, [r4]
- cmp r3, 0xE
- bls _08142BCE
- b _08142CE0
-_08142BCE:
- lsls r0, r3, 2
- ldr r1, _08142BD8 @ =_08142BDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08142BD8: .4byte _08142BDC
- .align 2, 0
-_08142BDC:
- .4byte _08142C18
- .4byte _08142C24
- .4byte _08142C30
- .4byte _08142C48
- .4byte _08142C60
- .4byte _08142C6C
- .4byte _08142C78
- .4byte _08142C84
- .4byte _08142C90
- .4byte _08142C9C
- .4byte _08142CA8
- .4byte _08142CC0
- .4byte _08142CCC
- .4byte _08142CD8
- .4byte _08142CDC
-_08142C18:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C20 @ =gUnknown_841EA6F
- b _08142CE0
- .align 2, 0
-_08142C20: .4byte gUnknown_841EA6F
-_08142C24:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C2C @ =gUnknown_841E9D3
- b _08142CE0
- .align 2, 0
-_08142C2C: .4byte gUnknown_841E9D3
-_08142C30:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C40 @ =gUnknown_841E866
- cmp r5, 0
- bne _08142CE0
- ldr r2, _08142C44 @ =gUnknown_841E8BD
- b _08142CE0
- .align 2, 0
-_08142C40: .4byte gUnknown_841E866
-_08142C44: .4byte gUnknown_841E8BD
-_08142C48:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C58 @ =gUnknown_841E88F
- cmp r5, 0
- bne _08142CE0
- ldr r2, _08142C5C @ =gUnknown_841E8E2
- b _08142CE0
- .align 2, 0
-_08142C58: .4byte gUnknown_841E88F
-_08142C5C: .4byte gUnknown_841E8E2
-_08142C60:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142C68 @ =gUnknown_841E90C
- b _08142CE0
- .align 2, 0
-_08142C68: .4byte gUnknown_841E90C
-_08142C6C:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C74 @ =gUnknown_841E946
- b _08142CE0
- .align 2, 0
-_08142C74: .4byte gUnknown_841E946
-_08142C78:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C80 @ =gUnknown_841E98F
- b _08142CE0
- .align 2, 0
-_08142C80: .4byte gUnknown_841E98F
-_08142C84:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C8C @ =gUnknown_841E968
- b _08142CE0
- .align 2, 0
-_08142C8C: .4byte gUnknown_841E968
-_08142C90:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142C98 @ =gUnknown_841E9AB
- b _08142CE0
- .align 2, 0
-_08142C98: .4byte gUnknown_841E9AB
-_08142C9C:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CA4 @ =gUnknown_841E7D1
- b _08142CE0
- .align 2, 0
-_08142CA4: .4byte gUnknown_841E7D1
-_08142CA8:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CB8 @ =gUnknown_841EA3F
- cmp r6, 0
- bne _08142CE0
- ldr r2, _08142CBC @ =gUnknown_841EA0D
- b _08142CE0
- .align 2, 0
-_08142CB8: .4byte gUnknown_841EA3F
-_08142CBC: .4byte gUnknown_841EA0D
-_08142CC0:
- movs r0, 0
- str r0, [r4]
- ldr r2, _08142CC8 @ =gUnknown_841E7BC
- b _08142CE0
- .align 2, 0
-_08142CC8: .4byte gUnknown_841E7BC
-_08142CCC:
- movs r0, 0x1
- str r0, [r4]
- ldr r2, _08142CD4 @ =gUnknown_841E92B
- b _08142CE0
- .align 2, 0
-_08142CD4: .4byte gUnknown_841E92B
-_08142CD8:
- movs r0, 0x1
- b _08142CDE
-_08142CDC:
- movs r0, 0
-_08142CDE:
- str r0, [r4]
-_08142CE0:
- adds r0, r2, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mevent_message
-
thumb_func_start mevent_08142CE8
mevent_08142CE8: @ 8142CE8
push {r4-r6,lr}
@@ -372,7 +68,7 @@ _08142D48:
mevent_message_stamp_card_etc_send_status: @ 8142D50
push {r4,lr}
adds r3, r0, 0
- ldr r1, _08142D6C @ =gUnknown_841E7BC
+ ldr r1, _08142D6C @ =gText_CommunicationError
movs r0, 0
str r0, [r3]
adds r4, r1, 0
@@ -384,7 +80,7 @@ mevent_message_stamp_card_etc_send_status: @ 8142D50
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08142D6C: .4byte gUnknown_841E7BC
+_08142D6C: .4byte gText_CommunicationError
_08142D70: .4byte _08142D74
.align 2, 0
_08142D74:
@@ -404,15 +100,15 @@ _08142D74:
.4byte _08142E08
.4byte _08142E10
_08142DB0:
- ldr r1, _08142DB4 @ =gUnknown_841EA6F
+ ldr r1, _08142DB4 @ =gText_NothingSentOver
b _08142E12
.align 2, 0
-_08142DB4: .4byte gUnknown_841EA6F
+_08142DB4: .4byte gText_NothingSentOver
_08142DB8:
- ldr r1, _08142DBC @ =gUnknown_841E9D3
+ ldr r1, _08142DBC @ =gText_RecordUploadedViaWireless
b _08142E12
.align 2, 0
-_08142DBC: .4byte gUnknown_841E9D3
+_08142DBC: .4byte gText_RecordUploadedViaWireless
_08142DC0:
ldr r1, _08142DC4 @ =gUnknown_841EB20
b _08142DCA
@@ -447,10 +143,10 @@ _08142DEC:
.align 2, 0
_08142DF0: .4byte gUnknown_841EBDE
_08142DF4:
- ldr r1, _08142DF8 @ =gUnknown_841E9AB
+ ldr r1, _08142DF8 @ =gText_NoMoreRoomForStamps
b _08142E12
.align 2, 0
-_08142DF8: .4byte gUnknown_841E9AB
+_08142DF8: .4byte gText_NoMoreRoomForStamps
_08142DFC:
ldr r1, _08142E00 @ =gUnknown_841EC40
b _08142E12
@@ -629,11 +325,11 @@ _08142F6A:
_08142F8A:
movs r0, 0
strb r0, [r5, 0xC]
- bl ValidateReceivedWonderNews
+ bl ValidateReceivedWonderCard
b _08142F9A
_08142F94:
strb r1, [r5, 0xC]
- bl ValidateReceivedWonderCard
+ bl ValidateReceivedWonderNews
_08142F9A:
cmp r0, 0x1
bne _08142FA0
@@ -1163,7 +859,7 @@ _081433A2:
adds r0, 0x9
ldrb r2, [r5, 0xC]
adds r1, r5, 0
- bl sub_8142AFC
+ bl mevent_message_prompt_discard
adds r1, r0, 0
cmp r1, 0
beq _081433BE
@@ -1214,13 +910,13 @@ _08143402:
_08143408:
ldrb r0, [r5, 0xC]
movs r1, 0x1
- bl sub_8142ACC
+ bl TearDownCardOrNews_ReturnToTopMenu
cmp r0, 0
bne _08143416
b _081435C6
_08143416:
ldrb r0, [r5, 0xC]
- bl sub_8142AB4
+ bl DestroyNewsOrCard
movs r0, 0x19
strb r0, [r5, 0x8]
b _081435C6
@@ -1244,7 +940,7 @@ _08143436:
_08143442:
ldrb r0, [r5, 0xC]
movs r1, 0
- bl sub_8142ACC
+ bl TearDownCardOrNews_ReturnToTopMenu
cmp r0, 0
bne _08143450
b _081435C6
@@ -1255,7 +951,7 @@ _08143450:
_08143456:
ldrb r0, [r5, 0xC]
movs r1, 0x1
- bl sub_8142ACC
+ bl TearDownCardOrNews_ReturnToTopMenu
cmp r0, 0
bne _08143464
b _081435C6
@@ -1266,7 +962,7 @@ _08143464:
_0814346A:
ldrb r0, [r5, 0xC]
movs r1, 0x1
- bl sub_8142ACC
+ bl TearDownCardOrNews_ReturnToTopMenu
cmp r0, 0
bne _08143478
b _081435C6
@@ -1404,7 +1100,7 @@ _08143588: .4byte 0x00030100
_0814358C:
adds r0, r5, 0
adds r0, 0x9
- ldr r1, _081435A8 @ =gUnknown_841E7BC
+ ldr r1, _081435A8 @ =gText_CommunicationError
bl MG_PrintTextOnWindow1AndWaitButton
_08143596:
cmp r0, 0
@@ -1417,7 +1113,7 @@ _0814359E:
bl PrintMysteryGiftOrEReaderTopMenu
b _081435C6
.align 2, 0
-_081435A8: .4byte gUnknown_841E7BC
+_081435A8: .4byte gText_CommunicationError
_081435AC:
bl sub_80098B8
bl sub_812B484
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 203b1ee9d..32e49ea60 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -2464,10 +2464,10 @@ gUnknown_841E794:: @ 841E794
gUnknown_841E7A3:: @ 841E7A3
.incbin "baserom.gba", 0x41E7A3, 0x19
-gUnknown_841E7BC:: @ 841E7BC
+gText_CommunicationError:: @ 841E7BC
.incbin "baserom.gba", 0x41E7BC, 0x15
-gUnknown_841E7D1:: @ 841E7D1
+gText_CommunicationCanceled:: @ 841E7D1
.incbin "baserom.gba", 0x41E7D1, 0x21
gUnknown_841E7F2:: @ 841E7F2
@@ -2476,46 +2476,46 @@ gUnknown_841E7F2:: @ 841E7F2
gUnknown_841E823:: @ 841E823
.incbin "baserom.gba", 0x41E823, 0x43
-gUnknown_841E866:: @ 841E866
+gText_WonderCardReceivedFrom:: @ 841E866
.incbin "baserom.gba", 0x41E866, 0x29
-gUnknown_841E88F:: @ 841E88F
+gText_WonderNewsReceivedFrom:: @ 841E88F
.incbin "baserom.gba", 0x41E88F, 0x2E
-gUnknown_841E8BD:: @ 841E8BD
+gText_WonderCardReceived:: @ 841E8BD
.incbin "baserom.gba", 0x41E8BD, 0x25
-gUnknown_841E8E2:: @ 841E8E2
+gText_WonderNewsReceived:: @ 841E8E2
.incbin "baserom.gba", 0x41E8E2, 0x2A
-gUnknown_841E90C:: @ 841E90C
+gText_NewStampReceived:: @ 841E90C
.incbin "baserom.gba", 0x41E90C, 0x1F
-gUnknown_841E92B:: @ 841E92B
+gText_NewTrainerReceived:: @ 841E92B
.incbin "baserom.gba", 0x41E92B, 0x1B
-gUnknown_841E946:: @ 841E946
+gText_AlreadyHadCard:: @ 841E946
.incbin "baserom.gba", 0x41E946, 0x22
-gUnknown_841E968:: @ 841E968
+gText_AlreadyHadNews:: @ 841E968
.incbin "baserom.gba", 0x41E968, 0x27
-gUnknown_841E98F:: @ 841E98F
+gText_AlreadyHadStamp:: @ 841E98F
.incbin "baserom.gba", 0x41E98F, 0x1C
-gUnknown_841E9AB:: @ 841E9AB
+gText_NoMoreRoomForStamps:: @ 841E9AB
.incbin "baserom.gba", 0x41E9AB, 0x28
-gUnknown_841E9D3:: @ 841E9D3
+gText_RecordUploadedViaWireless:: @ 841E9D3
.incbin "baserom.gba", 0x41E9D3, 0x3A
-gUnknown_841EA0D:: @ 841EA0D
+gText_CantAcceptCardFromTrainer:: @ 841EA0D
.incbin "baserom.gba", 0x41EA0D, 0x32
-gUnknown_841EA3F:: @ 841EA3F
+gText_CantAcceptNewsFromTrainer:: @ 841EA3F
.incbin "baserom.gba", 0x41EA3F, 0x30
-gUnknown_841EA6F:: @ 841EA6F
+gText_NothingSentOver:: @ 841EA6F
.incbin "baserom.gba", 0x41EA6F, 0x17
gText_WhatToDoWithCards:: @ 841EA86
@@ -2557,25 +2557,25 @@ gUnknown_841EC40:: @ 841EC40
gUnknown_841EC6A:: @ 841EC6A
.incbin "baserom.gba", 0x41EC6A, 0x2F
-gUnknown_841EC99:: @ 841EC99
+gText_IfThrowAwayCardEventWontHappen:: @ 841EC99
.incbin "baserom.gba", 0x41EC99, 0x3A
-gUnknown_841ECD3:: @ 841ECD3
+gText_OkayToDiscardNews:: @ 841ECD3
.incbin "baserom.gba", 0x41ECD3, 0x26
gUnknown_841ECF9:: @ 841ECF9
.incbin "baserom.gba", 0x41ECF9, 0x36
-gUnknown_841ED2F:: @ 841ED2F
+gText_DataWillBeSaved:: @ 841ED2F
.incbin "baserom.gba", 0x41ED2F, 0x21
-gUnknown_841ED50:: @ 841ED50
+gText_SaveCompletedPressA:: @ 841ED50
.incbin "baserom.gba", 0x41ED50, 0x2B
-gUnknown_841ED7B:: @ 841ED7B
+gText_WonderCardThrownAway:: @ 841ED7B
.incbin "baserom.gba", 0x41ED7B, 0x21
-gUnknown_841ED9C:: @ 841ED9C
+gText_WonderNewsThrownAway:: @ 841ED9C
.incbin "baserom.gba", 0x41ED9C, 0x21
gText_MysteryGift:: @ 841EDBD
diff --git a/data/specials.inc b/data/specials.inc
index cb39cae1e..6af1938e7 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -393,7 +393,7 @@ gSpecials:: @ 815FD60
def_special sub_812B220
def_special sub_812B234
def_special sub_812B248
- def_special ValidateReceivedWonderNews
+ def_special ValidateReceivedWonderCard
def_special sub_810B810
def_special sub_811999C
def_special sp182_move_string
diff --git a/include/mevent.h b/include/mevent.h
index 7f5206359..5c3bfe86d 100644
--- a/include/mevent.h
+++ b/include/mevent.h
@@ -38,8 +38,8 @@ 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 ValidateReceivedWonderCard(void);
bool32 ValidateReceivedWonderNews(void);
+bool32 ValidateReceivedWonderCard(void);
bool32 sub_8143EF4(const u8 * src);
bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data);
void sub_814410C(struct MEventBuffer_32E0_Sub * buffer);
@@ -54,5 +54,11 @@ bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventB
bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0);
s32 FadeToWonderCardMenu(void);
s32 FadeToWonderNewsMenu(void);
+void DestroyWonderCard(void);
+void DestroyWonderNews(void);
+void DestroyWonderCardResources(void);
+void DestroyWonderNewsResources(void);
+s32 FadeOutFromWonderCard(bool32 flag);
+s32 FadeOutFromWonderNews(bool32 flag);
#endif //GUARD_MEVENT_H
diff --git a/src/menews_jisan.c b/src/menews_jisan.c
index c6413b7b2..8231e770c 100644
--- a/src/menews_jisan.c
+++ b/src/menews_jisan.c
@@ -59,7 +59,7 @@ u16 sub_8146CE8(void)
struct MysteryEventStruct *r4 = sub_8143D94();
u16 r5;
- if (!sub_806E2BC() || !ValidateReceivedWonderCard())
+ if (!sub_806E2BC() || !ValidateReceivedWonderNews())
return 0;
r5 = sub_8146E0C(r4);
diff --git a/src/mevent.c b/src/mevent.c
index 9d110616f..d234a6fef 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -515,7 +515,7 @@ u16 * sub_8143DA8(void)
return gSaveBlock1Ptr->unk_3120.unk_338;
}
-void sub_8143DBC(void)
+void DestroyWonderNews(void)
{
sub_8143E9C();
}
@@ -530,7 +530,7 @@ bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src)
return TRUE;
}
-bool32 ValidateReceivedWonderCard(void)
+bool32 ValidateReceivedWonderNews(void)
{
if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc)
return FALSE;
@@ -570,7 +570,7 @@ bool32 sub_8143EF4(const u8 * src)
{
const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_3120.buffer_000.data;
u32 i;
- if (!ValidateReceivedWonderCard())
+ if (!ValidateReceivedWonderNews())
return FALSE;
for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++)
{
@@ -580,7 +580,7 @@ bool32 sub_8143EF4(const u8 * src)
return TRUE;
}
-void sub_8143F38(void)
+void DestroyWonderCard(void)
{
sub_814407C();
sub_81440B4();
@@ -597,7 +597,7 @@ bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data)
struct MEventBuffer_32E0_Sub * r1;
if (!sub_8144018(data))
return FALSE;
- sub_8143F38();
+ DestroyWonderCard();
memcpy(&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, data, sizeof(struct MEventBuffer_32E0_Sub));
gSaveBlock1Ptr->unk_3120.buffer_1c0.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub));
r2 = &gSaveBlock1Ptr->unk_3120.buffer_310.data;
@@ -606,7 +606,7 @@ bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data)
return TRUE;
}
-bool32 ValidateReceivedWonderNews(void)
+bool32 ValidateReceivedWonderCard(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 (ValidateReceivedWonderNews())
+ if (ValidateReceivedWonderCard())
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 (!ValidateReceivedWonderNews())
+ if (!ValidateReceivedWonderCard())
return 0;
data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data;
if (data->unk_08_0 != 1)
@@ -759,7 +759,7 @@ void sub_81442CC(struct MEventStruct_Unk1442CC * data)
data->unk_08 = 1;
data->unk_0C = 1;
data->unk_10 = 1;
- if (ValidateReceivedWonderNews())
+ if (ValidateReceivedWonderCard())
{
data->unk_14 = GetSavedWonderCard()->unk_00;
data->unk_20 = *sav1_get_mevent_buffer_2();
@@ -945,7 +945,7 @@ bool32 sub_81446D0(u16 a0)
gUnknown_203F3BC = FALSE;
if (a0 == 0)
return FALSE;
- if (!ValidateReceivedWonderNews())
+ if (!ValidateReceivedWonderCard())
return FALSE;
if (gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00 != a0)
return FALSE;
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index e17eda2c4..9436ef672 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -145,7 +145,7 @@ bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventB
return TRUE;
}
-void sub_81456F0(void)
+void DestroyWonderCardResources(void)
{
if (gUnknown_203F3C8 != NULL)
{
@@ -219,7 +219,7 @@ s32 FadeToWonderCardMenu(void)
return 0;
}
-s32 sub_814593C(bool32 flag)
+s32 FadeOutFromWonderCard(bool32 flag)
{
if (gUnknown_203F3C8 == NULL)
return -1;
@@ -523,7 +523,7 @@ bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0)
return TRUE;
}
-void sub_81462EC(void)
+void DestroyWonderNewsResources(void)
{
if (gUnknown_203F3CC != NULL)
{
@@ -608,7 +608,7 @@ s32 FadeToWonderNewsMenu(void)
return 0;
}
-s32 sub_8146604(bool32 flag)
+s32 FadeOutFromWonderNews(bool32 flag)
{
if (gUnknown_203F3CC == NULL)
return -1;
diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c
index 015865592..046ea2529 100644
--- a/src/mystery_gift_menu.c
+++ b/src/mystery_gift_menu.c
@@ -18,6 +18,7 @@
#include "link_rfu.h"
#include "string_util.h"
#include "mevent.h"
+#include "save.h"
#include "constants/songs.h"
EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {};
@@ -33,7 +34,12 @@ extern const u8 gJPText_MysteryGift[];
extern const u8 gJPText_DecideStop[];
extern const u8 gText_WhatToDoWithCards[];
extern const u8 gText_WhatToDoWithNews[];
-
+extern const u8 gText_OkayToDiscardNews[];
+extern const u8 gText_IfThrowAwayCardEventWontHappen[];
+extern const u8 gText_WonderCardThrownAway[];
+extern const u8 gText_WonderNewsThrownAway[];
+extern const u8 gText_DataWillBeSaved[];
+extern const u8 gText_SaveCompletedPressA[];
extern const u8 gText_WonderCards[];
extern const u8 gText_WonderNews[];
extern const u8 gText_Exit3[];
@@ -47,6 +53,22 @@ extern const u8 gText_VarietyOfEventsImportedWireless[];
extern const u8 gText_WonderCardsInPossession[];
extern const u8 gText_ReadNewsThatArrived[];
extern const u8 gText_ReturnToTitle[];
+extern const u8 gText_NothingSentOver[];
+extern const u8 gText_RecordUploadedViaWireless[];
+extern const u8 gText_WonderCardReceived[];
+extern const u8 gText_WonderCardReceivedFrom[];
+extern const u8 gText_WonderNewsReceived[];
+extern const u8 gText_WonderNewsReceivedFrom[];
+extern const u8 gText_NewStampReceived[];
+extern const u8 gText_AlreadyHadCard[];
+extern const u8 gText_AlreadyHadStamp[];
+extern const u8 gText_AlreadyHadNews[];
+extern const u8 gText_NoMoreRoomForStamps[];
+extern const u8 gText_CommunicationCanceled[];
+extern const u8 gText_CantAcceptCardFromTrainer[];
+extern const u8 gText_CantAcceptNewsFromTrainer[];
+extern const u8 gText_CommunicationError[];
+extern const u8 gText_NewTrainerReceived[];
const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal");
const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz");
@@ -806,11 +828,11 @@ bool32 ValidateCardOrNews(bool32 cardOrNews)
{
if (cardOrNews == 0)
{
- return ValidateReceivedWonderNews();
+ return ValidateReceivedWonderCard();
}
else
{
- return ValidateReceivedWonderCard();
+ return ValidateReceivedWonderNews();
}
}
@@ -855,4 +877,168 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews)
return FALSE;
}
+bool32 DestroyNewsOrCard(bool32 cardOrNews)
+{
+ if (cardOrNews == 0)
+ {
+ DestroyWonderCard();
+ }
+ else
+ {
+ DestroyWonderNews();
+ }
+ return TRUE;
+}
+
+bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1)
+{
+ if (cardOrNews == 0)
+ {
+ if (FadeOutFromWonderCard(arg1) != 0)
+ {
+ DestroyWonderCardResources();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+ else
+ {
+ if (FadeOutFromWonderNews(arg1) != 0)
+ {
+ DestroyWonderNewsResources();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+}
+
+s32 mevent_message_prompt_discard(u8 * textState, u16 * windowId, bool32 cardOrNews)
+{
+ if (cardOrNews == 0)
+ {
+ return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_IfThrowAwayCardEventWontHappen);
+ }
+ else
+ {
+ return mevent_message_print_and_prompt_yes_no(textState, windowId, TRUE, gText_OkayToDiscardNews);
+ }
+}
+
+bool32 mevent_message_was_thrown_away(u8 * textState, bool32 cardOrNews)
+{
+ if (cardOrNews == 0)
+ {
+ return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderCardThrownAway);
+ }
+ else
+ {
+ return MG_PrintTextOnWindow1AndWaitButton(textState, gText_WonderNewsThrownAway);
+ }
+}
+
+bool32 mevent_save_game(u8 * state)
+{
+ switch (*state)
+ {
+ case 0:
+ AddTextPrinterToWindow1(gText_DataWillBeSaved);
+ (*state)++;
+ break;
+ case 1:
+ TrySavingData(0);
+ (*state)++;
+ break;
+ case 2:
+ AddTextPrinterToWindow1(gText_SaveCompletedPressA);
+ (*state)++;
+ break;
+ case 3:
+ if (JOY_NEW(A_BUTTON | B_BUTTON))
+ {
+ (*state)++;
+ }
+ break;
+ case 4:
+ *state = 0;
+ ClearTextWindow();
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+const u8 * mevent_message(u32 * flag_p, u8 cardOrNews, u8 cardOrNewsSource, u32 msgId)
+{
+ const u8 * msg = NULL;
+ *flag_p = 0;
+ switch (msgId)
+ {
+ case 0:
+ *flag_p = 0;
+ msg = gText_NothingSentOver;
+ break;
+ case 1:
+ *flag_p = 0;
+ msg = gText_RecordUploadedViaWireless;
+ break;
+ case 2:
+ *flag_p = 1;
+ msg = cardOrNewsSource == 0 ? gText_WonderCardReceived : gText_WonderCardReceivedFrom;
+ break;
+ case 3:
+ *flag_p = 1;
+ msg = cardOrNewsSource == 0 ? gText_WonderNewsReceived : gText_WonderNewsReceivedFrom;
+ break;
+ case 4:
+ *flag_p = 1;
+ msg = gText_NewStampReceived;
+ break;
+ case 5:
+ *flag_p = 0;
+ msg = gText_AlreadyHadCard;
+ break;
+ case 6:
+ *flag_p = 0;
+ msg = gText_AlreadyHadStamp;
+ break;
+ case 7:
+ *flag_p = 0;
+ msg = gText_AlreadyHadNews;
+ break;
+ case 8:
+ *flag_p = 0;
+ msg = gText_NoMoreRoomForStamps;
+ break;
+ case 9:
+ *flag_p = 0;
+ msg = gText_CommunicationCanceled;
+ break;
+ case 10:
+ *flag_p = 0;
+ msg = cardOrNews == 0 ? gText_CantAcceptCardFromTrainer : gText_CantAcceptNewsFromTrainer;
+ break;
+ case 11:
+ *flag_p = 0;
+ msg = gText_CommunicationError;
+ break;
+ case 12:
+ *flag_p = 1;
+ msg = gText_NewTrainerReceived;
+ break;
+ case 13:
+ *flag_p = 1;
+ break;
+ case 14:
+ *flag_p = 0;
+ break;
+ }
+
+ return msg;
+}
diff --git a/src/script.c b/src/script.c
index c9e2d2c9d..608dc6ba0 100644
--- a/src/script.c
+++ b/src/script.c
@@ -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 ValidateReceivedWonderNews(void); // mevent
+extern bool32 ValidateReceivedWonderCard(void); // mevent
enum
{
@@ -525,7 +525,7 @@ bool32 sub_8069DFC(void)
u8 *sub_8069E48(void)
{
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
- if (!ValidateReceivedWonderNews())
+ if (!ValidateReceivedWonderCard())
return NULL;
if (scriptData->magic != RAM_SCRIPT_MAGIC)
return NULL;