diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/quest_log.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/quest_log.c b/src/quest_log.c index a1008aa06..1419ca8a0 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -52,11 +52,21 @@ struct UnkStruct_203AE98 u8 unk_6; }; +struct UnkStruct_300201C +{ + u16 unk_0_0:15; + u16 unk_0_f:1; + u16 unk_2; +}; + u8 gUnknown_3005E88; u16 gUnknown_3005E8C; struct UnkStruct_3005E90 gUnknown_3005E90; struct UnkStruct_203AE98 * gUnknown_3005E94; +IWRAM_DATA struct UnkStruct_300201C * gUnknown_300201C; +IWRAM_DATA u16 gUnknown_3002020; + EWRAM_DATA u8 gUnknown_203ADF8 = 0; EWRAM_DATA u8 gUnknown_203ADF9 = 0; EWRAM_DATA u8 gUnknown_203ADFA = 0; @@ -73,6 +83,7 @@ EWRAM_DATA u16 gUnknown_203AF98 = 0; EWRAM_DATA u8 gUnknown_203AF9A[64][2]; EWRAM_DATA u16 gUnknown_203B01A; EWRAM_DATA u16 gUnknown_203B01C; +EWRAM_DATA u16 gUnknown_203B01E; EWRAM_DATA u16 gUnknown_203B044[2] = {0}; @@ -1932,3 +1943,57 @@ void sub_8112B3C(void) "_08112C98: .4byte gUnknown_3005E88"); } #endif + +void sub_8112C9C(void) +{ + gUnknown_203B01A++; +} + +u8 sub_8112CAC(void) +{ + switch (gUnknown_3005E88) + { + case 0: + default: + return 0; + case 1: + case 3: + return 1; + case 2: + case 4: + return 2; + } +} + +bool8 sub_8112CEC(void) +{ + if (gUnknown_203AF98 >= gUnknown_3005E8C || ScriptContext2_IsEnabled() == TRUE) + return TRUE; + return FALSE; +} + +bool8 sub_8112D1C(void) +{ + if (gUnknown_203AF98 >= gUnknown_3005E8C) + return TRUE; + return FALSE; +} + +u16 * sub_8112D40(u8 a0, u16 a1) +{ + u16 * response; + if (gUnknown_203AF98 == 0) + return NULL; + if (gUnknown_203AF98 >= gUnknown_3005E8C) + return NULL; + if (gUnknown_203B01E >= gUnknown_3002020) + return NULL; + if (gUnknown_300201C[gUnknown_203B01E].unk_0_0 == a1 && gUnknown_300201C[gUnknown_203B01E].unk_0_f == a0) + { + response = &gUnknown_300201C[gUnknown_203B01E].unk_2; + gUnknown_203B01E++; + } + else + response = NULL; + return response; +} |