diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-10 10:45:50 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-10 10:45:50 -0400 |
commit | dc37cd7de0d60727e4b45fd4c83301a59a194bdf (patch) | |
tree | 29f2bf52313aaa886c03c68cc256d7096156b7e1 | |
parent | b78aef06258d5bc6f44cdcc43987a5dd11f1d975 (diff) |
through sub_8110A3C
-rw-r--r-- | asm/quest_log.s | 158 | ||||
-rw-r--r-- | common_syms/quest_log.txt | 1 | ||||
-rw-r--r-- | include/quest_log.h | 2 | ||||
-rw-r--r-- | src/quest_log.c | 69 | ||||
-rw-r--r-- | sym_common.txt | 3 |
5 files changed, 72 insertions, 161 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index d1beeb0c4..880f6c290 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,164 +5,6 @@ .text - thumb_func_start sub_8110988 -sub_8110988: @ 8110988 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _081109BC @ =gSaveBlock1Ptr - ldr r0, _081109C0 @ =gUnknown_203ADF8 - ldrb r0, [r0] - movs r3, 0xCD - lsls r3, 3 - adds r2, r0, 0 - muls r2, r3 - movs r0, 0x98 - lsls r0, 5 - adds r2, r0 - ldr r0, [r4] - adds r0, r2 - movs r4, 0xAD - lsls r4, 3 - adds r2, r0, r4 - adds r0, r3 - subs r0, r1 - cmp r5, r2 - bcc _081109B6 - cmp r5, r0 - bls _081109C4 -_081109B6: - movs r0, 0 - b _081109C6 - .align 2, 0 -_081109BC: .4byte gSaveBlock1Ptr -_081109C0: .4byte gUnknown_203ADF8 -_081109C4: - movs r0, 0x1 -_081109C6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8110988 - - thumb_func_start sub_81109CC -sub_81109CC: @ 81109CC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081109E0 @ =gUnknown_203ADFA - strb r0, [r1] - cmp r0, 0x1 - bne _081109EC - ldr r1, _081109E4 @ =gUnknown_203AE8C - ldr r0, _081109E8 @ =sub_8110A00 - b _081109F0 - .align 2, 0 -_081109E0: .4byte gUnknown_203ADFA -_081109E4: .4byte gUnknown_203AE8C -_081109E8: .4byte sub_8110A00 -_081109EC: - ldr r1, _081109F8 @ =gUnknown_203AE8C - ldr r0, _081109FC @ =sub_8110A3C -_081109F0: - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081109F8: .4byte gUnknown_203AE8C -_081109FC: .4byte sub_8110A3C - thumb_func_end sub_81109CC - - thumb_func_start sub_8110A00 -sub_8110A00: @ 8110A00 - push {r4,lr} - ldr r0, _08110A2C @ =gUnknown_203AE98 - bl sub_8110E68 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08110A24 - ldr r0, _08110A30 @ =gUnknown_3005E88 - movs r4, 0 - strb r4, [r0] - bl sub_8110E3C - ldr r0, _08110A34 @ =gUnknown_203ADFA - strb r4, [r0] - ldr r1, _08110A38 @ =gUnknown_203AE8C - movs r0, 0 - str r0, [r1] -_08110A24: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08110A2C: .4byte gUnknown_203AE98 -_08110A30: .4byte gUnknown_3005E88 -_08110A34: .4byte gUnknown_203ADFA -_08110A38: .4byte gUnknown_203AE8C - thumb_func_end sub_8110A00 - - thumb_func_start sub_8110A3C -sub_8110A3C: @ 8110A3C - push {r4,lr} - ldr r1, _08110A8C @ =gUnknown_203AE94 - ldrb r2, [r1] - movs r4, 0xF - adds r0, r4, 0 - ands r0, r2 - adds r3, r1, 0 - cmp r0, 0x2 - bne _08110A56 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r3] -_08110A56: - ldrb r1, [r3] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _08110AAE - ldr r0, _08110A90 @ =gUnknown_3005E88 - ldrb r0, [r0] - cmp r0, 0 - bne _08110A84 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0x1 - beq _08110A84 - ldrb r0, [r3, 0x1] - cmp r0, 0x1F - bhi _08110A98 - ldr r0, _08110A94 @ =gUnknown_203AE0C - ldrb r1, [r3, 0x1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - beq _08110A98 -_08110A84: - bl sub_8111AD8 - b _08110AAE - .align 2, 0 -_08110A8C: .4byte gUnknown_203AE94 -_08110A90: .4byte gUnknown_3005E88 -_08110A94: .4byte gUnknown_203AE0C -_08110A98: - ldrb r0, [r3] - movs r1, 0x3F - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r3] - bl ScriptContext2_Enable - movs r0, 0 - bl sub_81118F4 -_08110AAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8110A3C - thumb_func_start sub_8110AB4 sub_8110AB4: @ 8110AB4 ldr r0, _08110AC0 @ =gUnknown_20370D0 diff --git a/common_syms/quest_log.txt b/common_syms/quest_log.txt new file mode 100644 index 000000000..4ecbf66a8 --- /dev/null +++ b/common_syms/quest_log.txt @@ -0,0 +1 @@ +gUnknown_3005E88 diff --git a/include/quest_log.h b/include/quest_log.h index 015f4966e..dfdd4bf41 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -1,4 +1,6 @@ #ifndef GUARD_QUEST_LOG_H #define GUARD_QUEST_LOG_H +extern u8 gUnknown_3005E88; + #endif //GUARD_QUEST_LOG_H diff --git a/src/quest_log.c b/src/quest_log.c index 4dc0a5719..0454dd7ad 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -1,13 +1,32 @@ #include "global.h" +#include "script.h" #include "quest_log.h" +u8 gUnknown_3005E88; + +struct UnkStruct_203AE94 +{ + u8 unk_0_0:4; + u8 unk_0_4:2; + u8 unk_0_6:2; + u8 unk_1; +}; + EWRAM_DATA u8 gUnknown_203ADF8 = 0; EWRAM_DATA u8 gUnknown_203ADFA = 0; EWRAM_DATA void * gUnknown_203AE04 = NULL; EWRAM_DATA void * gUnknown_203AE08 = NULL; EWRAM_DATA void * gUnknown_203AE0C[32] = {NULL}; EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0; +EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0}; +EWRAM_DATA u8 gUnknown_203AE98[0x100] = {0}; +void sub_8110A00(void); +u8 sub_8110E68(void *); +void sub_8110A3C(void); +void sub_8110E3C(void); +void sub_8111AD8(void); +void sub_81118F4(s8); void sub_8113BD8(void); void sub_81138F8(void); @@ -59,7 +78,17 @@ void sub_811092C(void) gUnknown_203AE8C(); } -bool8 sub_8110944(u8 * a0, s32 a1) +bool8 sub_8110944(u8 * a0, size_t a1) +{ + u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568; + u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end; + r0 -= a1; + if (a0 < r2 || a0 > r0) + return FALSE; + return TRUE; +} + +bool8 sub_8110988(u8 * a0, size_t a1) { u8 * r2 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].filler_568; u8 * r0 = gSaveBlock1Ptr->questLog[gUnknown_203ADF8].end; @@ -68,3 +97,41 @@ bool8 sub_8110944(u8 * a0, s32 a1) return FALSE; return TRUE; } + +void sub_81109CC(u8 a0) +{ + gUnknown_203ADFA = a0; + if (a0 == 1) + gUnknown_203AE8C = sub_8110A00; + else + gUnknown_203AE8C = sub_8110A3C; +} + +void sub_8110A00(void) +{ + if (sub_8110E68(gUnknown_203AE98) != 1) + { + gUnknown_3005E88 = 0; + sub_8110E3C(); + gUnknown_203ADFA = 0; + gUnknown_203AE8C = NULL; + } +} + +void sub_8110A3C(void) +{ + if (gUnknown_203AE94.unk_0_0 == 2) + gUnknown_203AE94.unk_0_0 = 0; + + if (gUnknown_203AE94.unk_0_6 == 0) + { + if (gUnknown_3005E88 || gUnknown_203AE94.unk_0_0 == 1 || (gUnknown_203AE94.unk_1 < 32 && gUnknown_203AE0C[gUnknown_203AE94.unk_1])) + sub_8111AD8(); + else + { + gUnknown_203AE94.unk_0_6 = 2; + ScriptContext2_Enable(); + sub_81118F4(0); + } + } +} diff --git a/sym_common.txt b/sym_common.txt index 4049c48f5..7c2f0ff7f 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -345,8 +345,7 @@ gUnknown_3005E60: @ 3005E60 gUnknown_3005E70: @ 3005E70 .space 0x18 -gUnknown_3005E88: @ 3005E88 - .space 0x4 + .include "quest_log.o" gUnknown_3005E8C: @ 3005E8C .space 0x4 |