summaryrefslogtreecommitdiff
path: root/src/mevent.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mevent.c')
-rw-r--r--src/mevent.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/mevent.c b/src/mevent.c
index c2a05f3c6..dd2891de0 100644
--- a/src/mevent.c
+++ b/src/mevent.c
@@ -9,6 +9,8 @@
#include "link.h"
#include "link_rfu_4.h"
#include "unk_815c27c.h"
+#include "util.h"
+#include "menews_jisan.h"
struct MEvent_Str_1
{
@@ -39,6 +41,7 @@ struct MEventTaskData1
};
void sub_8143910(u8 taskId);
+bool32 sub_8143E64(const u16 * src);
u8 sub_815D6B4(u8 *);
bool32 sub_815D794(u8 *);
void sub_81422FC(void);
@@ -492,3 +495,63 @@ void sub_8143DBC(void)
{
sub_8143E9C();
}
+
+bool32 sub_8143DC8(const u16 * src)
+{
+ if (!sub_8143E64(src))
+ return FALSE;
+ sub_8143E9C();
+ memcpy(gSaveBlock1Ptr->unk_3120.buffer_000.data, src, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
+ gSaveBlock1Ptr->unk_3120.buffer_000.crc = CalcCRC16WithTable((void *)gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
+ return TRUE;
+}
+
+bool32 sub_8143E1C(void)
+{
+ if (CalcCRC16WithTable((void *)gSaveBlock1Ptr->unk_3120.buffer_000.data, sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data)) != gSaveBlock1Ptr->unk_3120.buffer_000.crc)
+ return FALSE;
+ if (!sub_8143E64(gSaveBlock1Ptr->unk_3120.buffer_000.data))
+ return FALSE;
+ return TRUE;
+}
+
+bool32 sub_8143E64(const u16 * data)
+{
+ if (data[0] == 0)
+ return FALSE;
+ return TRUE;
+}
+
+bool32 sub_8143E78(void)
+{
+ u16 * data = gSaveBlock1Ptr->unk_3120.buffer_000.data;
+ if (*(u8 *)&data[1] == 0)
+ return FALSE;
+ return TRUE;
+}
+
+void sub_8143E9C(void)
+{
+ CpuFill32(0, sub_8143D58(), sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data));
+ gSaveBlock1Ptr->unk_3120.buffer_000.crc = 0;
+}
+
+void sub_8143ED0(void)
+{
+ CpuFill32(0, sub_8143D94(), sizeof(struct MysteryEventStruct));
+ sub_8146C88();
+}
+
+bool32 sub_8143EF4(const u8 * src)
+{
+ const u8 * r5 = (const u8 *)gSaveBlock1Ptr->unk_3120.buffer_000.data;
+ u32 i;
+ if (!sub_8143E1C())
+ return FALSE;
+ for (i = 0; i < sizeof(gSaveBlock1Ptr->unk_3120.buffer_000.data); i++)
+ {
+ if (r5[i] != src[i])
+ return FALSE;
+ }
+ return TRUE;
+}