summaryrefslogtreecommitdiff
path: root/arm9/src
diff options
context:
space:
mode:
authorAkira Akashi <rubenru09@aol.com>2021-06-11 03:03:57 +0100
committerGitHub <noreply@github.com>2021-06-11 03:03:57 +0100
commit889696a027ffc92f98155c0e5927ccb2ba5ddda8 (patch)
tree4f52ee21ffac8e86f5513d1fb62bd2daaa4af602 /arm9/src
parent46b72e9169cc912246f8c2483fb715c72ec4b063 (diff)
parent3dc03263f5a796901b7f68a970e9167f37259eaf (diff)
Merge pull request #404 from PikalaxALT/pikalax_work
Decompile unk_02085338
Diffstat (limited to 'arm9/src')
-rw-r--r--arm9/src/mail_message.c13
-rw-r--r--arm9/src/unk_02085338.c165
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;
+}