diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-26 08:51:05 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-26 08:51:05 -0400 |
commit | 7b4e2ec05b269b2fa8b73ecf94bae1e63965fb43 (patch) | |
tree | 98db880eac1e19a3e0278da3f7d00623a3532263 | |
parent | 76a421f6f1787c013e8f8ba4403f5b995c648c41 (diff) |
through mevent_message
-rw-r--r-- | asm/mystery_gift_menu.s | 340 | ||||
-rw-r--r-- | data/data_83FECCC.s | 44 | ||||
-rw-r--r-- | data/specials.inc | 2 | ||||
-rw-r--r-- | include/mevent.h | 8 | ||||
-rw-r--r-- | src/menews_jisan.c | 2 | ||||
-rw-r--r-- | src/mevent.c | 20 | ||||
-rw-r--r-- | src/mevent_8145654.c | 8 | ||||
-rw-r--r-- | src/mystery_gift_menu.c | 192 | ||||
-rw-r--r-- | src/script.c | 4 |
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; |