summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-11-21 07:55:42 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-11-21 07:55:42 -0500
commiteb98d02443e7433dd594e35e92edda3b8fa5d499 (patch)
treeb3bfe14993fdab797e096e0c59354ff32432fe50 /src
parent374352c3cf1c307ecd7d4cedcd1b7815a3e9e4bf (diff)
through sub_8115518; finish quest_log rodata
Diffstat (limited to 'src')
-rw-r--r--src/quest_log.c122
1 files changed, 120 insertions, 2 deletions
diff --git a/src/quest_log.c b/src/quest_log.c
index d88bc04a4..eac9486d2 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -272,8 +272,8 @@ const u16 * sub_8115700(const u16 *);
u16 * sub_81157DC(u16 *, const u16 *);
const u16 * sub_8115800(const u16 *);
void sub_8115834(u8 *);
-bool8 sub_81153A8(u16, void*);
-bool8 sub_81153E4(u16, void*);
+bool8 sub_81153A8(u16, u16 *);
+bool8 sub_81153E4(u16, u16 *);
extern const u8 gUnknown_841A155[];
extern const u8 gUnknown_841A16F[];
@@ -400,6 +400,7 @@ extern const u8 gUnknown_841B246[];
extern const u8 gUnknown_841B25B[];
extern const u8 gUnknown_841B268[];
extern const u8 gUnknown_841B277[];
+extern const u8 gUnknown_8418C1B[];
const struct WindowTemplate gUnknown_845661C[3] = {
@@ -4730,3 +4731,120 @@ const u16 * sub_81152BC(const u16 * a0)
return (const u16 *)(r5_2 + 2);
}
+
+void sub_811539C(void)
+{
+ gUnknown_203B04B = TRUE;
+}
+
+bool8 sub_81153A8(u16 a0, u16 * a1)
+{
+ if (a0 != 35)
+ {
+ gUnknown_203B04A = 0;
+ return TRUE;
+ }
+ if (gUnknown_203B04A == *((u8 *)a1 + 1) + 1)
+ return FALSE;
+ gUnknown_203B04A = *((u8 *)a1 + 1) + 1;
+ return TRUE;
+}
+
+bool8 sub_81153E4(u16 a0, u16 * a1)
+{
+ if (a0 != 35)
+ return TRUE;
+ if (*((u8 *)a1 + 1) == 32 && gUnknown_203B04B == 0)
+ return FALSE;
+ gUnknown_203B04B = 0;
+ return TRUE;
+}
+
+u16 * sub_8115410(u16 * a0, const u16 * a1)
+{
+ u8 * r3;
+ a0 = sub_8113DE0(36, a0);
+ if (a0 == NULL)
+ return NULL;
+ a0[0] = a1[0];
+ r3 = (u8 *)a0 + 2;
+ r3[0] = *((const u8 *)a1 + 2);
+ r3[1] = *((const u8 *)a1 + 3);
+ if (r3[0] == 7 || r3[0] == 8)
+ gUnknown_203B048 = 2;
+ else
+ gUnknown_203B048 = 1;
+ return (u16 *)(r3 + 2);
+}
+
+const u16 * sub_8115460(const u16 * a0)
+{
+ const u16 * r4 = sub_8113E88(36, a0);
+ const u8 * r5 = (const u8 *)r4 + 2;
+ QuestLog_AutoGetSpeciesName(r4[0], gStringVar1, 0);
+ if (r5[1] != 0xFF)
+ sub_80C4DF8(gStringVar2, r5[1]);
+ if (r5[0] == 7)
+ {
+ if (r5[1] == 0x58)
+ StringCopy(gStringVar3, gUnknown_841B09F);
+ else
+ StringCopy(gStringVar3, gUnknown_8418C1B);
+ }
+ StringExpandPlaceholders(gStringVar4, gUnknown_8456C20[r5[0]]);
+ return (const u16 *)(r5 + 2);
+}
+
+u16 * sub_81154DC(u16 * a0, const u16 * a1)
+{
+ a0 = sub_8113DE0(37, a0);
+ if (a0 == NULL)
+ return NULL;
+ a0[0] = a1[2];
+ a0[1] = a1[3];
+ a0[2] = *((const u32 *)a1) >> 16;
+ a0[3] = *((const u32 *)a1);
+ *((u8 *)a0 + 8) = *((const u8 *)a1 + 8);
+ *((u8 *)a0 + 9) = 1;
+ return a0 + 5;
+}
+
+const u16 * sub_8115518(const u16 * a0)
+{
+ const u16 * r4 = sub_8113E88(37, a0);
+ const u8 * r7 = (const u8 *)r4 + 8;
+ u32 r6 = (r4[2] << 16) + r4[3];
+ UnkTextUtil_Reset();
+ sub_80C4DF8(gStringVar1, r7[0]);
+ UnkTextUtil_SetPtrI(0, gStringVar1);
+ UnkTextUtil_SetPtrI(1, ItemId_GetItem(r4[0])->name);
+ if (r4[1] < 2)
+ UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
+ else
+ {
+ ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
+ UnkTextUtil_SetPtrI(2, gStringVar2);
+ UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A810);
+ }
+ return (const u16 *)(r7 + 2);
+}
+
+const u16 gUnknown_8456C50[] = {
+ 0x0891,
+ 0x0892,
+ 0x0893,
+ 0x0894,
+ 0x0895,
+ 0x0896,
+ 0x0897,
+ 0x0898,
+ 0x0899,
+ 0x089a,
+ 0x089b,
+ 0x089c,
+ 0x089d,
+ 0x089e,
+ 0x089f,
+ 0x08a0,
+ 0x08a1
+};