diff options
-rw-r--r-- | asm/mevent.s | 92 | ||||
-rw-r--r-- | include/easy_chat.h | 1 | ||||
-rw-r--r-- | include/global.h | 29 | ||||
-rw-r--r-- | include/link_rfu_4.h | 1 | ||||
-rw-r--r-- | src/mevent.c | 43 |
5 files changed, 65 insertions, 101 deletions
diff --git a/asm/mevent.s b/asm/mevent.s index dbee188ee..d2f093a4b 100644 --- a/asm/mevent.s +++ b/asm/mevent.s @@ -5,98 +5,6 @@ .text - thumb_func_start sub_8143D24 -sub_8143D24: @ 8143D24 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r0, _08143D4C @ =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, _08143D50 @ =0x00003120 - adds r1, r0 - ldr r2, _08143D54 @ =0x050000db - mov r0, sp - bl CpuSet - bl sub_8143ED0 - bl sub_80BDE28 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08143D4C: .4byte gSaveBlock1Ptr -_08143D50: .4byte 0x00003120 -_08143D54: .4byte 0x050000db - thumb_func_end sub_8143D24 - - thumb_func_start sub_8143D58 -sub_8143D58: @ 8143D58 - ldr r0, _08143D64 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08143D68 @ =0x00003124 - adds r0, r1 - bx lr - .align 2, 0 -_08143D64: .4byte gSaveBlock1Ptr -_08143D68: .4byte 0x00003124 - thumb_func_end sub_8143D58 - - thumb_func_start sav1_get_mevent_buffer_1 -sav1_get_mevent_buffer_1: @ 8143D6C - ldr r0, _08143D78 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08143D7C @ =0x000032e4 - adds r0, r1 - bx lr - .align 2, 0 -_08143D78: .4byte gSaveBlock1Ptr -_08143D7C: .4byte 0x000032e4 - thumb_func_end sav1_get_mevent_buffer_1 - - thumb_func_start sav1_get_mevent_buffer_2 -sav1_get_mevent_buffer_2: @ 8143D80 - ldr r0, _08143D8C @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08143D90 @ =0x00003434 - adds r0, r1 - bx lr - .align 2, 0 -_08143D8C: .4byte gSaveBlock1Ptr -_08143D90: .4byte 0x00003434 - thumb_func_end sav1_get_mevent_buffer_2 - - thumb_func_start sub_8143D94 -sub_8143D94: @ 8143D94 - ldr r0, _08143DA0 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08143DA4 @ =0x00003460 - adds r0, r1 - bx lr - .align 2, 0 -_08143DA0: .4byte gSaveBlock1Ptr -_08143DA4: .4byte 0x00003460 - thumb_func_end sub_8143D94 - - thumb_func_start sub_8143DA8 -sub_8143DA8: @ 8143DA8 - ldr r0, _08143DB4 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08143DB8 @ =0x00003458 - adds r0, r1 - bx lr - .align 2, 0 -_08143DB4: .4byte gSaveBlock1Ptr -_08143DB8: .4byte 0x00003458 - thumb_func_end sub_8143DA8 - - thumb_func_start sub_8143DBC -sub_8143DBC: @ 8143DBC - push {lr} - bl sub_8143E9C - pop {r0} - bx r0 - thumb_func_end sub_8143DBC - thumb_func_start sub_8143DC8 sub_8143DC8: @ 8143DC8 push {r4-r7,lr} diff --git a/include/easy_chat.h b/include/easy_chat.h index 2b5664420..78e371cbb 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -37,5 +37,6 @@ bool32 sub_811F8D8(u16 word); void InitializeEasyChatWordArray(u16 *words, u16 length); void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); +void sub_80BDE28(void); #endif // GUARD_EASYCHAT_H diff --git a/include/global.h b/include/global.h index 899508993..456f2c083 100644 --- a/include/global.h +++ b/include/global.h @@ -591,18 +591,34 @@ struct FameCheckerSaveData #define NUM_EASY_CHAT_EXTRA_PHRASES 33 #define EASY_CHAT_EXTRA_PHRASES_SIZE ((NUM_EASY_CHAT_EXTRA_PHRASES >> 3) + (NUM_EASY_CHAT_EXTRA_PHRASES % 8 ? 1 : 0)) -struct MEventBuffer1 +struct MEventBuffer_3120 { u32 crc; - u8 data[0x1bc]; + u16 data[222]; }; -struct MEventBuffer2 +struct MEventBuffer_32E0 { u32 crc; - u8 data[0x14c]; + u16 data[166]; }; +struct MEventBuffer_3430 +{ + u32 crc; + u16 data[18]; +}; + +struct MEventBuffers +{ + /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; + /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; + /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; + /*0x338 0x3458*/ u16 unk_338[4]; + /*0x340 0x3460*/ struct MysteryEventStruct unk_340; + /*0x344 0x3464*/ u8 filler_344[0x28]; +}; // 0x36C 0x348C + struct SaveBlock1 { /*0x0000*/ struct Coords16 pos; @@ -650,9 +666,8 @@ struct SaveBlock1 /*0x309C*/ u8 giftRibbons[52]; /*0x30D0*/ struct Roamer roamer; /*0x30EC*/ struct EnigmaBerry enigmaBerry; - /*0x3120*/ u8 filler3120[0x340]; - /*0x3460*/ struct MysteryEventStruct unk_3460; - /*0x3464*/ u8 filler_3464[0x1b8]; + /*0x3120*/ struct MEventBuffers unk_3120; + /*0x348C*/ u8 filler_3464[0x190]; /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[12]; /*0x3A14*/ u8 seen2[DEX_FLAGS_NO]; diff --git a/include/link_rfu_4.h b/include/link_rfu_4.h index 08bb3d7c5..91ae86e4c 100644 --- a/include/link_rfu_4.h +++ b/include/link_rfu_4.h @@ -1,6 +1,7 @@ #ifndef GUARD_LINK_RFU_4_H #define GUARD_LINK_RFU_4_H +void sub_8142504(const u8 *str); bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src); #endif //GUARD_LINK_RFU_4_H diff --git a/src/mevent.c b/src/mevent.c index b2d8ba3f4..c2a05f3c6 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -2,6 +2,7 @@ #include "constants/songs.h" #include "malloc.h" #include "sound.h" +#include "easy_chat.h" #include "main.h" #include "task.h" #include "decompress.h" @@ -38,11 +39,12 @@ struct MEventTaskData1 }; void sub_8143910(u8 taskId); -void sub_8142504(const u8 *str); u8 sub_815D6B4(u8 *); bool32 sub_815D794(u8 *); -void sub_812B484(void); void sub_81422FC(void); +void sub_812B484(void); +void sub_8143E9C(void); +void sub_8143ED0(void); extern const u8 gUnknown_841DE52[]; extern const u8 gUnknown_841DE53[]; @@ -453,3 +455,40 @@ void sub_8143910(u8 taskId) break; } } + +void sub_8143D24(void) +{ + CpuFill32(0, &gSaveBlock1Ptr->unk_3120, sizeof(gSaveBlock1Ptr->unk_3120)); + sub_8143ED0(); + sub_80BDE28(); +} + +u16 * sub_8143D58(void) +{ + return gSaveBlock1Ptr->unk_3120.buffer_000.data; +} + +u16 * sav1_get_mevent_buffer_1(void) +{ + return gSaveBlock1Ptr->unk_3120.buffer_1c0.data; +} + +u16 * sav1_get_mevent_buffer_2(void) +{ + return gSaveBlock1Ptr->unk_3120.buffer_310.data; +} + +struct MysteryEventStruct * sub_8143D94(void) +{ + return &gSaveBlock1Ptr->unk_3120.unk_340; +} + +u16 * sub_8143DA8(void) +{ + return gSaveBlock1Ptr->unk_3120.unk_338; +} + +void sub_8143DBC(void) +{ + sub_8143E9C(); +} |