diff options
author | Akira Akashi <rubenru09@aol.com> | 2021-06-11 03:03:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-11 03:03:57 +0100 |
commit | 889696a027ffc92f98155c0e5927ccb2ba5ddda8 (patch) | |
tree | 4f52ee21ffac8e86f5513d1fb62bd2daaa4af602 /arm9/src | |
parent | 46b72e9169cc912246f8c2483fb715c72ec4b063 (diff) | |
parent | 3dc03263f5a796901b7f68a970e9167f37259eaf (diff) |
Merge pull request #404 from PikalaxALT/pikalax_work
Decompile unk_02085338
Diffstat (limited to 'arm9/src')
-rw-r--r-- | arm9/src/mail_message.c | 13 | ||||
-rw-r--r-- | arm9/src/unk_02085338.c | 165 |
2 files changed, 172 insertions, 6 deletions
diff --git a/arm9/src/mail_message.c b/arm9/src/mail_message.c index a5837d89..751a3ff0 100644 --- a/arm9/src/mail_message.c +++ b/arm9/src/mail_message.c @@ -3,6 +3,7 @@ #include "script_buffers.h" #include "unk_0201B8B8.h" #include "mail_message.h" +#include "msgdata/msg.naix" #pragma thumb on @@ -19,11 +20,11 @@ struct UnkStruct_020ED556 extern u16 GetECWordIndexByPair(s16 bank, u16 num); const u16 UNK_020ED54C[] = { - 397, - 399, - 395, - 396, - 398 + NARC_msg_narc_0397_bin, + NARC_msg_narc_0399_bin, + NARC_msg_narc_0395_bin, + NARC_msg_narc_0396_bin, + NARC_msg_narc_0398_bin }; const struct UnkStruct_020ED556 UNK_020ED556[] = { @@ -155,7 +156,7 @@ u16 MailMsg_GetMsgNo(struct MailMessage * mailMsg) return mailMsg->msg_no; } -BOOL MailMsg_compare(struct MailMessage * mailMsg, struct MailMessage * a1) +BOOL MailMsg_compare(const struct MailMessage *mailMsg, const struct MailMessage *a1) { s32 i; if (mailMsg->msg_bank != a1->msg_bank || mailMsg->msg_no != a1->msg_no) diff --git a/arm9/src/unk_02085338.c b/arm9/src/unk_02085338.c new file mode 100644 index 00000000..b22b3974 --- /dev/null +++ b/arm9/src/unk_02085338.c @@ -0,0 +1,165 @@ +#include "global.h"
+#include "heap.h"
+#include "event_data.h"
+#include "unk_02085338.h"
+
+extern BOOL FUN_0205ED0C(struct ScriptState * state);
+
+THUMB_FUNC struct UnkStruct_02085338 * FUN_02085338(u8 r5, u8 r7, struct SaveBlock2 * sav2, u32 heap_id)
+{
+ struct UnkStruct_02085338 * ret = (struct UnkStruct_02085338 *) AllocFromHeap(heap_id, sizeof(struct UnkStruct_02085338));
+ ret->unk_00 = r5;
+ ret->unk_01 = r7;
+ ret->unk_0c = Sav2_Pokedex_get(sav2);
+ ret->unk_10 = FUN_02013B5C(sav2);
+ ret->unk_04 = (u8)FUN_0205ED0C(SavArray_Flags_get(sav2));
+ ret->unk_05 = 0;
+ ret->unk_02 = 1;
+ ret->unk_03 = 0;
+ ret->unk_08 = Options_GetFrame(Sav2_PlayerData_GetOptionsAddr(sav2));
+ if (r5 == 2)
+ {
+ MailMsg_init_withBank(&ret->unk_14, 3);
+ }
+ else
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ ret->unk_1c[i] = 0xFFFF;
+ }
+ }
+ return ret;
+}
+
+THUMB_FUNC void FUN_020853A8(struct UnkStruct_02085338 * ptr)
+{
+ FreeToHeap(ptr);
+}
+
+THUMB_FUNC void FUN_020853B0(struct UnkStruct_02085338 * ptr, u16 a1)
+{
+ ptr->unk_1c[0] = a1;
+}
+
+THUMB_FUNC void FUN_020853B4(struct UnkStruct_02085338 * ptr, u16 a1, u16 a2)
+{
+ ptr->unk_1c[0] = a1;
+ ptr->unk_1c[1] = a2;
+}
+
+THUMB_FUNC void FUN_020853BC(struct UnkStruct_02085338 * ptr, const struct MailMessage * a1)
+{
+ ptr->unk_14 = *a1;
+}
+
+THUMB_FUNC void FUN_020853D0(struct UnkStruct_02085338 * ptr)
+{
+ ptr->unk_02 = 1;
+ ptr->unk_03 = 0;
+}
+
+THUMB_FUNC void FUN_020853DC(struct UnkStruct_02085338 * ptr)
+{
+ ptr->unk_05 = 1;
+}
+
+THUMB_FUNC u8 FUN_020853E4(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_02;
+}
+
+THUMB_FUNC u8 FUN_020853E8(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_03;
+}
+
+THUMB_FUNC u16 FUN_020853EC(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_1c[0];
+}
+
+THUMB_FUNC void FUN_020853F0(struct UnkStruct_02085338 * ptr, u16 * a1)
+{
+ a1[0] = ptr->unk_1c[0];
+ a1[1] = ptr->unk_1c[1];
+}
+
+THUMB_FUNC void FUN_020853FC(struct UnkStruct_02085338 * ptr, struct MailMessage * a1)
+{
+ return MailMsg_copy(a1, &ptr->unk_14);
+}
+
+THUMB_FUNC u8 FUN_0208540C(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_00;
+}
+
+THUMB_FUNC u8 FUN_02085410(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_01;
+}
+
+THUMB_FUNC u32 FUN_02085414(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_08;
+}
+
+THUMB_FUNC struct Pokedex * FUN_02085418(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_0c;
+}
+
+THUMB_FUNC struct UnkStruct_02013B28 * FUN_0208541C(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_10;
+}
+
+THUMB_FUNC u8 FUN_02085420(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_04;
+}
+
+THUMB_FUNC u8 FUN_02085424(struct UnkStruct_02085338 * ptr)
+{
+ return ptr->unk_05;
+}
+
+THUMB_FUNC void FUN_02085428(struct UnkStruct_02085338 * ptr, u16 * a1, struct MailMessage * a2)
+{
+ switch (ptr->unk_00)
+ {
+ case 0:
+ a1[0] = ptr->unk_1c[0];
+ break;
+ case 1:
+ a1[0] = ptr->unk_1c[0];
+ a1[1] = ptr->unk_1c[1];
+ break;
+ case 2:
+ *a2 = ptr->unk_14;
+ break;
+ }
+}
+
+THUMB_FUNC BOOL FUN_0208545C(struct UnkStruct_02085338 * ptr, const u16 * a1, const struct MailMessage * a2)
+{
+ switch (ptr->unk_00)
+ {
+ case 0:
+ return a1[0] == ptr->unk_1c[0];
+ case 1:
+ return a1[0] == ptr->unk_1c[0] && a1[1] == ptr->unk_1c[1];
+ case 2:
+ default:
+ return MailMsg_compare(&ptr->unk_14, a2);
+ }
+}
+
+THUMB_FUNC void FUN_020854A0(struct UnkStruct_02085338 * r5, u16 * r4, struct MailMessage * r6)
+{
+ r5->unk_03 = (u8)(!FUN_0208545C(r5, r4, r6) ? 1 : 0);
+ r5->unk_02 = 0;
+ for (int i = 0; i < 2; i++)
+ r5->unk_1c[i] = r4[i];
+ r5->unk_14 = *r6;
+}
|