diff options
-rw-r--r-- | asm/link_rfu.s | 2 | ||||
-rw-r--r-- | include/easy_chat.h | 2 | ||||
-rw-r--r-- | include/global.h | 22 | ||||
-rw-r--r-- | include/mevent.h | 30 | ||||
-rw-r--r-- | include/mevent_server.h | 6 | ||||
-rw-r--r-- | include/mystery_event_script.h | 4 | ||||
-rw-r--r-- | include/script.h | 2 | ||||
-rw-r--r-- | src/easy_chat.c | 4 | ||||
-rw-r--r-- | src/mevent.c | 170 | ||||
-rw-r--r-- | src/mevent_8145654.c | 8 | ||||
-rw-r--r-- | src/mevent_client.c | 12 | ||||
-rw-r--r-- | src/mevent_server.c | 14 | ||||
-rw-r--r-- | src/mystery_event_script.c | 8 | ||||
-rw-r--r-- | src/script.c | 2 |
14 files changed, 147 insertions, 139 deletions
diff --git a/asm/link_rfu.s b/asm/link_rfu.s index eac887f61..0ccbda9eb 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -3570,7 +3570,7 @@ _080FEED8: _080FEEE4: .4byte gSaveBlock1Ptr _080FEEE8: .4byte 0x00002cc4 _080FEEEC: - bl sub_8143DA8 + bl GetMEventProfileECWordsMaybe adds r1, r0, 0 b _080FEF08 _080FEEF4: diff --git a/include/easy_chat.h b/include/easy_chat.h index 6c3947ea9..765758035 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -34,7 +34,7 @@ void InitEasyChatPhrases(void); u8 *CopyEasyChatWord(u8 *dest, u16 word); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength); -void ResetSomeMEventECBuffer_3120_338(void); +void EC_ResetMEventProfileMaybe(void); void InitEasyChatPhrases(void); void EnableRareWord(u8); bool8 InitEasyChatSelection(void); diff --git a/include/global.h b/include/global.h index 22faa7b1c..2852ef9a4 100644 --- a/include/global.h +++ b/include/global.h @@ -636,7 +636,7 @@ 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 MEventBuffer_3120_Sub +struct MEWonderNewsData { u16 unk_00; u8 unk_02; @@ -645,13 +645,13 @@ struct MEventBuffer_3120_Sub u8 unk_2C[10][40]; }; -struct MEventBuffer_3120 +struct MEWonderNewsStruct { u32 crc; - struct MEventBuffer_3120_Sub data; + struct MEWonderNewsData data; }; -struct MEventBuffer_32E0_Sub +struct MEWonderCardData { u16 unk_00; u16 unk_02; @@ -667,10 +667,10 @@ struct MEventBuffer_32E0_Sub u8 unk_122[40]; }; -struct MEventBuffer_32E0 +struct MEWonderCardStruct { u32 crc; - struct MEventBuffer_32E0_Sub data; + struct MEWonderCardData data; }; struct MEventBuffer_3430_Sub @@ -690,11 +690,11 @@ struct MEventBuffer_3430 struct MEventBuffers { - /*0x000 0x3120*/ struct MEventBuffer_3120 buffer_000; - /*0x1c0 0x32e0*/ struct MEventBuffer_32E0 buffer_1c0; + /*0x000 0x3120*/ struct MEWonderNewsStruct menews; + /*0x1c0 0x32e0*/ struct MEWonderCardStruct mecard; /*0x310 0x3430*/ struct MEventBuffer_3430 buffer_310; - /*0x338 0x3458*/ u16 unk_338[4]; - /*0x340 0x3460*/ struct MENewsJisanStruct unk_340; + /*0x338 0x3458*/ u16 ec_profile_maybe[4]; + /*0x340 0x3460*/ struct MENewsJisanStruct mejisan; /*0x344 0x3464*/ u32 unk_344[2][5]; }; // 0x36C 0x348C @@ -766,7 +766,7 @@ struct SaveBlock1 /*0x309C*/ u8 giftRibbons[52]; /*0x30D0*/ struct Roamer roamer; /*0x30EC*/ struct EnigmaBerry enigmaBerry; - /*0x3120*/ struct MEventBuffers unk_3120; + /*0x3120*/ struct MEventBuffers mysteryEventBuffers; /*0x348C*/ u8 filler_348C[400]; /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[12]; diff --git a/include/mevent.h b/include/mevent.h index 88e779fbf..81caeb42f 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -3,7 +3,7 @@ #include "global.h" -struct MEventStruct_Unk1442CC +struct MEventClientHeaderStruct { u32 unk_00; u16 unk_04; @@ -33,25 +33,25 @@ struct MEvent_Str_2 u8 fill_00[0x40]; }; -struct MEventBuffer_3120_Sub * GetSavedWonderNews(void); -struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void); +struct MEWonderNewsData * GetSavedWonderNews(void); +struct MEWonderCardData * GetSavedWonderCard(void); struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void); struct MENewsJisanStruct * GetMENewsJisanStructPtr(void); -bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src); +bool32 sub_8143DC8(const struct MEWonderNewsData * src); 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); +bool32 sub_8143F68(const struct MEWonderCardData * data); +void sub_814410C(struct MEWonderCardData * buffer); bool32 sub_8144254(const u16 * data); -void sub_81442CC(struct MEventStruct_Unk1442CC * data); -bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data); -u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused); -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); +void BuildMEventClientHeader(struct MEventClientHeaderStruct * data); +bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data); +u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused); +u32 sub_8144434(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused); +bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); +u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); +bool32 InitWonderCardResources(struct MEWonderCardData * r5, struct MEventBuffer_3430_Sub * r6); +bool32 InitWonderNewsResources(const struct MEWonderNewsData * a0); s32 FadeToWonderCardMenu(void); s32 FadeToWonderNewsMenu(void); void DestroyWonderCard(void); @@ -69,6 +69,6 @@ u32 MENews_GetInput(u16 input); void sub_8143D24(void); u16 sub_81445C0(u32 command); void sub_8144714(u32 a0, u32 a1); -u16 *sub_8143DA8(void); +u16 *GetMEventProfileECWordsMaybe(void); #endif //GUARD_MEVENT_H diff --git a/include/mevent_server.h b/include/mevent_server.h index 3dafdff94..ddc00b978 100644 --- a/include/mevent_server.h +++ b/include/mevent_server.h @@ -66,9 +66,9 @@ struct mevent_srv_common u32 cmdidx; const struct mevent_server_cmd * cmdBuffer; void * recvBuffer; - struct MEventBuffer_32E0_Sub * card; - struct MEventBuffer_3120_Sub * news; - struct MEventStruct_Unk1442CC * mevent_unk1442cc; + struct MEWonderCardData * card; + struct MEWonderNewsData * news; + struct MEventClientHeaderStruct * mevent_unk1442cc; void * sendBuffer1; u32 sendBuffer1Size; void * sendBuffer2; diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h index be64663ed..8c59136c1 100644 --- a/include/mystery_event_script.h +++ b/include/mystery_event_script.h @@ -7,7 +7,7 @@ u32 RunMysteryEventScript(u8 *); void SetMysteryEventScriptStatus(u32 val); u16 GetRecordMixingGift(void); -void sub_80DA89C(u8 *); -bool32 sub_80DA8B0(u32 *); +void MEventScript_InitContext(u8 *); +bool32 MEventScript_Run(u32 *); #endif // GUARD_MYSTERY_EVENT_SCRIPT_H diff --git a/include/script.h b/include/script.h index 4e8b8c305..c0b23e248 100644 --- a/include/script.h +++ b/include/script.h @@ -63,7 +63,7 @@ bool32 sub_80991F8(void); u8 *sub_8099244(void); void sub_80992A0(u8 *script, u16 scriptSize); bool32 sub_8069DFC(void); -void sub_8069EA4(u8 * script, u16 scriptSize); +void MEventSetRamScript(u8 * script, u16 scriptSize); u8 * sub_8069E48(void); void sub_8069998(u8 var); void sub_80699F8(void); diff --git a/src/easy_chat.c b/src/easy_chat.c index fd96f6a30..be617133b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -485,10 +485,10 @@ void InitEasyChatPhrases(void) gSaveBlock1Ptr->additionalPhrases[i] = 0; } -void ResetSomeMEventECBuffer_3120_338(void) +void EC_ResetMEventProfileMaybe(void) { s32 i; - u16 *ptr = sub_8143DA8(); + u16 *ptr = GetMEventProfileECWordsMaybe(); for (i = 0; i < 4; i++) ptr[i] = EC_WORD_UNDEFINED; } diff --git a/src/mevent.c b/src/mevent.c index be8e3070a..2f74ff0b4 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -39,12 +39,12 @@ struct MEventTaskData1 }; void sub_8143910(u8 taskId); -bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * src); +bool32 sub_8143E64(const struct MEWonderNewsData * src); void sub_8143E9C(void); void sub_8143ED0(void); -bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * src); -void sub_814407C(void); -void sub_81440B4(void); +bool32 sub_8144018(const struct MEWonderCardData * src); +void BlankSavedWonderCard(void); +void BlankMEventBuffer2(void); void sub_8144824(u32, u32, u32 *, s32); void sub_8144790(void); @@ -485,34 +485,34 @@ void sub_8143910(u8 taskId) void sub_8143D24(void) { - CpuFill32(0, &gSaveBlock1Ptr->unk_3120, sizeof(gSaveBlock1Ptr->unk_3120)); + CpuFill32(0, &gSaveBlock1Ptr->mysteryEventBuffers, sizeof(gSaveBlock1Ptr->mysteryEventBuffers)); sub_8143ED0(); - ResetSomeMEventECBuffer_3120_338(); + EC_ResetMEventProfileMaybe(); } -struct MEventBuffer_3120_Sub * GetSavedWonderNews(void) +struct MEWonderNewsData * GetSavedWonderNews(void) { - return &gSaveBlock1Ptr->unk_3120.buffer_000.data; + return &gSaveBlock1Ptr->mysteryEventBuffers.menews.data; } -struct MEventBuffer_32E0_Sub * GetSavedWonderCard(void) +struct MEWonderCardData * GetSavedWonderCard(void) { - return &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + return &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; } struct MEventBuffer_3430_Sub * sav1_get_mevent_buffer_2(void) { - return &gSaveBlock1Ptr->unk_3120.buffer_310.data; + return &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data; } struct MENewsJisanStruct * GetMENewsJisanStructPtr(void) { - return &gSaveBlock1Ptr->unk_3120.unk_340; + return &gSaveBlock1Ptr->mysteryEventBuffers.mejisan; } -u16 * sub_8143DA8(void) +u16 * GetMEventProfileECWordsMaybe(void) { - return gSaveBlock1Ptr->unk_3120.unk_338; + return gSaveBlock1Ptr->mysteryEventBuffers.ec_profile_maybe; } void DestroyWonderNews(void) @@ -520,26 +520,26 @@ void DestroyWonderNews(void) sub_8143E9C(); } -bool32 sub_8143DC8(const struct MEventBuffer_3120_Sub * src) +bool32 sub_8143DC8(const struct MEWonderNewsData * src) { if (!sub_8143E64(src)) return FALSE; sub_8143E9C(); - gSaveBlock1Ptr->unk_3120.buffer_000.data = *src; - gSaveBlock1Ptr->unk_3120.buffer_000.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)); + gSaveBlock1Ptr->mysteryEventBuffers.menews.data = *src; + gSaveBlock1Ptr->mysteryEventBuffers.menews.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data, sizeof(struct MEWonderNewsData)); return TRUE; } bool32 ValidateReceivedWonderNews(void) { - if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(struct MEventBuffer_3120_Sub)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc) + if (CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data, sizeof(struct MEWonderNewsData)) != gSaveBlock1Ptr->mysteryEventBuffers.menews.crc) return FALSE; - if (!sub_8143E64(&gSaveBlock1Ptr->unk_3120.buffer_000.data)) + if (!sub_8143E64(&gSaveBlock1Ptr->mysteryEventBuffers.menews.data)) return FALSE; return TRUE; } -bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * data) +bool32 sub_8143E64(const struct MEWonderNewsData * data) { if (data->unk_00 == 0) return FALSE; @@ -548,7 +548,7 @@ bool32 sub_8143E64(const struct MEventBuffer_3120_Sub * data) bool32 WonderNews_Test_Unk_02(void) { - const struct MEventBuffer_3120_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_000.data; + const struct MEWonderNewsData * data = &gSaveBlock1Ptr->mysteryEventBuffers.menews.data; if (data->unk_02 == 0) return FALSE; return TRUE; @@ -556,8 +556,8 @@ bool32 WonderNews_Test_Unk_02(void) void sub_8143E9C(void) { - CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data)); - gSaveBlock1Ptr->unk_3120.buffer_000.crc = 0; + CpuFill32(0, GetSavedWonderNews(), sizeof(gSaveBlock1Ptr->mysteryEventBuffers.menews.data)); + gSaveBlock1Ptr->mysteryEventBuffers.menews.crc = 0; } void sub_8143ED0(void) @@ -568,11 +568,11 @@ void sub_8143ED0(void) bool32 sub_8143EF4(const u8 * src) { - const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->unk_3120.buffer_000.data; + const u8 * r5 = (const u8 *)&gSaveBlock1Ptr->mysteryEventBuffers.menews.data; u32 i; if (!ValidateReceivedWonderNews()) return FALSE; - for (i = 0; i < sizeof(struct MEventBuffer_3120_Sub); i++) + for (i = 0; i < sizeof(struct MEWonderNewsData); i++) { if (r5[i] != src[i]) return FALSE; @@ -582,8 +582,8 @@ bool32 sub_8143EF4(const u8 * src) void DestroyWonderCard(void) { - sub_814407C(); - sub_81440B4(); + BlankSavedWonderCard(); + BlankMEventBuffer2(); sub_8144790(); ClearRamScript(); sub_806E2D0(); @@ -591,33 +591,33 @@ void DestroyWonderCard(void) sub_80E7524(&gSaveBlock2Ptr->unk_B0.field_3F0); } -bool32 sub_8143F68(const struct MEventBuffer_32E0_Sub * data) +bool32 sub_8143F68(const struct MEWonderCardData * data) { struct MEventBuffer_3430_Sub * r2; - struct MEventBuffer_32E0_Sub * r1; + struct MEWonderCardData * r1; if (!sub_8144018(data)) return FALSE; 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; - r1 = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + memcpy(&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, data, sizeof(struct MEWonderCardData)); + gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc = CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData)); + r2 = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data; + r1 = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; r2->unk_06 = r1->unk_02; return TRUE; } bool32 ValidateReceivedWonderCard(void) { - if (gSaveBlock1Ptr->unk_3120.buffer_1c0.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub))) + if (gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc != CalcCRC16WithTable((void *)&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData))) return FALSE; - if (!sub_8144018(&gSaveBlock1Ptr->unk_3120.buffer_1c0.data)) + if (!sub_8144018(&gSaveBlock1Ptr->mysteryEventBuffers.mecard.data)) return FALSE; if (!sub_8069DFC()) return FALSE; return TRUE; } -bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * data) +bool32 sub_8144018(const struct MEWonderCardData * data) { if (data->unk_00 == 0) return FALSE; @@ -634,32 +634,32 @@ bool32 sub_8144018(const struct MEventBuffer_32E0_Sub * data) bool32 WonderCard_Test_Unk_08_6(void) { - const struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + const struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_6 == 0) return FALSE; return TRUE; } -void sub_814407C(void) +void BlankSavedWonderCard(void) { - CpuFill32(0, &gSaveBlock1Ptr->unk_3120.buffer_1c0.data, sizeof(struct MEventBuffer_32E0_Sub)); - gSaveBlock1Ptr->unk_3120.buffer_1c0.crc = 0; + CpuFill32(0, &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data, sizeof(struct MEWonderCardData)); + gSaveBlock1Ptr->mysteryEventBuffers.mecard.crc = 0; } -void sub_81440B4(void) +void BlankMEventBuffer2(void) { CpuFill32(0, sav1_get_mevent_buffer_2(), 18 * sizeof(u16)); - gSaveBlock1Ptr->unk_3120.buffer_310.crc = 0; + gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.crc = 0; } u16 sub_81440E8(void) { if (ValidateReceivedWonderCard()) - return gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00; + return gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.unk_00; return 0; } -void sub_814410C(struct MEventBuffer_32E0_Sub * buffer) +void sub_814410C(struct MEWonderCardData * buffer) { if (buffer->unk_08_6 == 1) buffer->unk_08_6 = 0; @@ -707,11 +707,11 @@ bool32 sub_81441AC(const struct MEventBuffer_3430_Sub * data1, const u16 * data2 return FALSE; } -bool32 sub_81441F0(const u16 * data) +static bool32 IsWonderCardSpeciesValid(const u16 * data) { if (data[1] == 0) return FALSE; - if (data[0] == 0) + if (data[0] == SPECIES_NONE) return FALSE; if (data[0] >= NUM_SPECIES) return FALSE; @@ -720,55 +720,63 @@ bool32 sub_81441F0(const u16 * data) s32 sub_8144218(void) { - struct MEventBuffer_32E0_Sub * data; + struct MEWonderCardData * data; if (!ValidateReceivedWonderCard()) return 0; - data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 != 1) return 0; - return sub_8144184(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data->unk_09); + return sub_8144184(&gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data, data->unk_09); } bool32 sub_8144254(const u16 * data) { - struct MEventBuffer_32E0_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; s32 size = buffer->unk_09; s32 i; - if (!sub_81441F0(data)) + if (!IsWonderCardSpeciesValid(data)) return FALSE; - if (sub_81441AC(&gSaveBlock1Ptr->unk_3120.buffer_310.data, data, size)) + if (sub_81441AC(&gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data, data, size)) return FALSE; for (i = 0; i < size; i++) { - if (gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[1][i] == 0 && gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[0][i] == 0) + if (gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_08[1][i] == 0 && gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_08[0][i] == 0) { - gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[1][i] = data[1]; - gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_08[0][i] = data[0]; + gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_08[1][i] = data[1]; + gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_08[0][i] = data[0]; return TRUE; } } return FALSE; } -void sub_81442CC(struct MEventStruct_Unk1442CC * data) +void BuildMEventClientHeader(struct MEventClientHeaderStruct * data) { s32 i; - CpuFill32(0, data, sizeof(struct MEventStruct_Unk1442CC)); + CpuFill32(0, data, sizeof(struct MEventClientHeaderStruct)); + // Magic data->unk_00 = 0x101; data->unk_04 = 1; data->unk_08 = 1; data->unk_0C = 1; data->unk_10 = 1; + + // Check whether a card already exists if (ValidateReceivedWonderCard()) { + // Populate fields data->id = GetSavedWonderCard()->unk_00; data->unk_20 = *sav1_get_mevent_buffer_2(); data->unk_44 = GetSavedWonderCard()->unk_09; } else data->id = 0; + + // Get something for (i = 0; i < 4; i++) - data->unk_16[i] = gSaveBlock1Ptr->unk_3120.unk_338[i]; + data->unk_16[i] = gSaveBlock1Ptr->mysteryEventBuffers.ec_profile_maybe[i]; + + // Get player ID CopyTrainerId(data->playerTrainerId, gSaveBlock2Ptr->playerTrainerId); StringCopy(data->playerName, gSaveBlock2Ptr->playerName); for (i = 0; i < 6; i++) @@ -777,7 +785,7 @@ void sub_81442CC(struct MEventStruct_Unk1442CC * data) data->version = RomHeaderSoftwareVersion; } -bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data) +bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data) { if (data->unk_00 != 0x101) return FALSE; @@ -792,7 +800,7 @@ bool32 sub_81443D4(const struct MEventStruct_Unk1442CC * data) return TRUE; } -u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused) { if (a1->id == 0) return 0; @@ -801,7 +809,7 @@ u32 sub_8144418(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * return 2; } -u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * unused) +u32 sub_8144434(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused) { s32 r4 = a1->unk_44 - sub_8144184(&a1->unk_20, a1->unk_44); if (r4 == 0) @@ -813,7 +821,7 @@ u32 sub_8144434(const u16 * a0, const struct MEventStruct_Unk1442CC * a1, void * return 2; } -bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1) +bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1) { s32 i; for (i = 0; i < 4; i++) @@ -824,12 +832,12 @@ bool32 sub_8144474(const struct MEventStruct_Unk1442CC * a0, const u16 * a1) return TRUE; } -s32 sub_814449C(const struct MEventStruct_Unk1442CC * a0) +s32 sub_814449C(const struct MEventClientHeaderStruct * a0) { return sub_8144184(&a0->unk_20, a0->unk_44); } -u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command) +u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command) { switch (command) { @@ -851,20 +859,20 @@ u16 sub_81444B0(const struct MEventStruct_Unk1442CC * a0, u32 command) void sub_814451C(u32 command) { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 2) { u16 * dest = NULL; switch (command) { case 0: - dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_00; + dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_00; break; case 1: - dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_02; + dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_02; break; case 2: - dest = &gSaveBlock1Ptr->unk_3120.buffer_310.data.unk_04; + dest = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data.unk_04; break; case 3: break; @@ -888,44 +896,44 @@ u16 sub_81445C0(u32 command) { case 0: { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data; + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data; return buffer->unk_00; } break; } case 1: { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data; + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data; return buffer->unk_02; } break; } case 2: { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 2) { - struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->unk_3120.buffer_310.data; + struct MEventBuffer_3430_Sub * buffer = &gSaveBlock1Ptr->mysteryEventBuffers.buffer_310.data; return buffer->unk_04; } break; } case 3: { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 1) return sub_8144218(); break; } case 4: { - struct MEventBuffer_32E0_Sub * data = &gSaveBlock1Ptr->unk_3120.buffer_1c0.data; + struct MEWonderCardData * data = &gSaveBlock1Ptr->mysteryEventBuffers.mecard.data; if (data->unk_08_0 == 1) return data->unk_09; break; @@ -947,7 +955,7 @@ bool32 sub_81446D0(u16 a0) return FALSE; if (!ValidateReceivedWonderCard()) return FALSE; - if (gSaveBlock1Ptr->unk_3120.buffer_1c0.data.unk_00 != a0) + if (gSaveBlock1Ptr->mysteryEventBuffers.mecard.data.unk_00 != a0) return FALSE; gUnknown_203F3BC = TRUE; return TRUE; @@ -960,13 +968,13 @@ void sub_8144714(u32 a0, u32 a1) switch (a0) { case 2: - sub_8144824(2, a1, gSaveBlock1Ptr->unk_3120.unk_344[1], 5); + sub_8144824(2, a1, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[1], 5); break; case 0: - sub_8144824(0, a1, gSaveBlock1Ptr->unk_3120.unk_344[0], 5); + sub_8144824(0, a1, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5); break; case 1: - sub_8144824(1, a1, gSaveBlock1Ptr->unk_3120.unk_344[0], 5); + sub_8144824(1, a1, gSaveBlock1Ptr->mysteryEventBuffers.unk_344[0], 5); break; default: AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent.c", 988); @@ -976,7 +984,7 @@ void sub_8144714(u32 a0, u32 a1) void sub_8144790(void) { - CpuFill32(0, gSaveBlock1Ptr->unk_3120.unk_344, sizeof(gSaveBlock1Ptr->unk_3120.unk_344)); + CpuFill32(0, gSaveBlock1Ptr->mysteryEventBuffers.unk_344, sizeof(gSaveBlock1Ptr->mysteryEventBuffers.unk_344)); } bool32 sub_81447BC(u32 a0, u32 * a1, s32 size) diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index e42b49627..44a40c6ec 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -34,7 +34,7 @@ struct UnkStruct_203F3C8_02DC struct UnkStruct_203F3C8 { - /*0000*/ struct MEventBuffer_32E0_Sub unk_0000; + /*0000*/ struct MEWonderCardData unk_0000; /*014c*/ struct MEventBuffer_3430_Sub unk_014C; /*0170*/ const struct UnkStruct_8467FB8 * unk_0170; /*0174*/ u8 unk_0174; @@ -127,7 +127,7 @@ const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = { {1, 0, 0, 7, gUnknown_8467A7C, gUnknown_8467CAC, gUnknown_846716C} }; -bool32 InitWonderCardResources(struct MEventBuffer_32E0_Sub * r5, struct MEventBuffer_3430_Sub * r6) +bool32 InitWonderCardResources(struct MEWonderCardData * r5, struct MEventBuffer_3430_Sub * r6) { if (r5 == NULL || r6 == NULL) return FALSE; @@ -446,7 +446,7 @@ void sub_81461D8(void) struct UnkStruct_203F3CC { - /*0000*/ struct MEventBuffer_3120_Sub unk_0000; + /*0000*/ struct MEWonderNewsData unk_0000; /*01bc*/ const struct UnkStruct_8467FB8 * unk_01BC; /*01c0*/ u8 unk_01C0_0:1; u8 unk_01C0_1:7; @@ -509,7 +509,7 @@ const struct UnkStruct_8467FB8 gUnknown_8468720[] = { {1, 0, 0, 0, gUnknown_84685B4, gUnknown_8468644, gUnknown_84680A0} }; -bool32 InitWonderNewsResources(const struct MEventBuffer_3120_Sub * a0) +bool32 InitWonderNewsResources(const struct MEWonderNewsData * a0) { if (a0 == NULL) return FALSE; diff --git a/src/mevent_client.c b/src/mevent_client.c index f411bd183..546fb310d 100644 --- a/src/mevent_client.c +++ b/src/mevent_client.c @@ -188,8 +188,8 @@ static u32 client_mainseq_4(struct mevent_client * svr) svr->flag = 0; return 4; case 8: - sub_81442CC(svr->sendBuffer); - mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventStruct_Unk1442CC)); + BuildMEventClientHeader(svr->sendBuffer); + mevent_srv_sub_init_send(&svr->manager, 0x11, svr->sendBuffer, sizeof(struct MEventClientHeaderStruct)); break; case 14: mevent_client_send_word(svr, 0x13, svr->param); @@ -214,7 +214,7 @@ static u32 client_mainseq_4(struct mevent_client * svr) sub_8144254(svr->recvBuffer); break; case 17: - sub_8069EA4(svr->recvBuffer, 1000); + MEventSetRamScript(svr->recvBuffer, 1000); break; case 18: memcpy(&gSaveBlock2Ptr->unk_B0.field_3F0, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer)); @@ -243,15 +243,15 @@ static u32 client_mainseq_5(struct mevent_client * svr) static u32 client_mainseq_6(struct mevent_client * svr) { - // ??? + // Run mevent buffer script switch (svr->flag) { case 0: - sub_80DA89C(svr->recvBuffer); + MEventScript_InitContext(svr->recvBuffer); ++svr->flag; break; case 1: - if (!sub_80DA8B0(&svr->param)) + if (!MEventScript_Run(&svr->param)) { svr->mainseqno = 4; svr->flag = 0; diff --git a/src/mevent_server.c b/src/mevent_server.c index a98216d93..252a8885f 100644 --- a/src/mevent_server.c +++ b/src/mevent_server.c @@ -49,10 +49,10 @@ static void mevent_srv_init_common(struct mevent_srv_common * svr, const void * { svr->unk_00 = 0; svr->mainseqno = 0; - svr->card = AllocZeroed(sizeof(struct MEventBuffer_32E0_Sub)); - svr->news = AllocZeroed(sizeof(struct MEventBuffer_3120_Sub)); + svr->card = AllocZeroed(sizeof(struct MEWonderCardData)); + svr->news = AllocZeroed(sizeof(struct MEWonderNewsData)); svr->recvBuffer = AllocZeroed(ME_SEND_BUF_SIZE); - svr->mevent_unk1442cc = AllocZeroed(sizeof(struct MEventStruct_Unk1442CC)); + svr->mevent_unk1442cc = AllocZeroed(sizeof(struct MEventClientHeaderStruct)); svr->cmdBuffer = cmdBuffer; svr->cmdidx = 0; mevent_srv_sub_init(&svr->manager, sendPlayerNo, recvPlayerNo); @@ -149,12 +149,12 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) case 5: AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 376); AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 377); - memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventStruct_Unk1442CC)); + memcpy(svr->mevent_unk1442cc, svr->recvBuffer, sizeof(struct MEventClientHeaderStruct)); break; case 6: AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 382); AGB_ASSERT_EX(cmd->parameter == NULL, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 383); - svr->param = sub_81443D4(svr->mevent_unk1442cc); + svr->param = ValidateMEventClientHeader(svr->mevent_unk1442cc); break; case 4: if (svr->param == cmd->flag) @@ -192,11 +192,11 @@ static u32 common_mainseq_4(struct mevent_srv_common * svr) break; case 14: AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 432); - mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct MEventBuffer_3120_Sub)); + mevent_srv_common_init_send(svr, 0x17, mevent_first_if_not_null_else_second(cmd->parameter, svr->news), sizeof(struct MEWonderNewsData)); break; case 13: AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 438); - mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct MEventBuffer_32E0_Sub)); + mevent_srv_common_init_send(svr, 0x16, mevent_first_if_not_null_else_second(cmd->parameter, svr->card), sizeof(struct MEWonderCardData)); break; case 16: AGB_ASSERT_EX(cmd->flag == FALSE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/mevent_server.c", 444); diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 146595272..68a045f2c 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -67,12 +67,12 @@ static bool32 RunMysteryEventScriptCommand(struct ScriptContext *ctx) return FALSE; } -void sub_80DA89C(u8 *script) +void MEventScript_InitContext(u8 *script) { InitMysteryEventScript(&sMysteryEventScriptContext, script); } -bool32 sub_80DA8B0(u32 *a0) +bool32 MEventScript_Run(u32 *a0) { bool32 ret = RunMysteryEventScriptCommand(&sMysteryEventScriptContext); *a0 = sMysteryEventScriptContext.data[2]; @@ -83,8 +83,8 @@ bool32 sub_80DA8B0(u32 *a0) u32 RunMysteryEventScript(u8 *script) { u32 ret; - sub_80DA89C(script); - while (sub_80DA8B0(&ret)); + MEventScript_InitContext(script); + while (MEventScript_Run(&ret)); return ret; } diff --git a/src/script.c b/src/script.c index 06418b8d0..f18a8568b 100644 --- a/src/script.c +++ b/src/script.c @@ -546,7 +546,7 @@ u8 *sub_8069E48(void) } } -void sub_8069EA4(u8 *script, u16 scriptSize) +void MEventSetRamScript(u8 *script, u16 scriptSize) { if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script)) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); |