diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-21 07:55:42 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-11-21 07:55:42 -0500 |
commit | eb98d02443e7433dd594e35e92edda3b8fa5d499 (patch) | |
tree | b3bfe14993fdab797e096e0c59354ff32432fe50 /src | |
parent | 374352c3cf1c307ecd7d4cedcd1b7815a3e9e4bf (diff) |
through sub_8115518; finish quest_log rodata
Diffstat (limited to 'src')
-rw-r--r-- | src/quest_log.c | 122 |
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 +}; |