diff options
-rw-r--r-- | asm/quest_log.s | 83 | ||||
-rw-r--r-- | src/quest_log.c | 56 |
2 files changed, 46 insertions, 93 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index 553a50ace..e779da3f6 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,89 +5,6 @@ .text - thumb_func_start sub_8111AD8 -sub_8111AD8: @ 8111AD8 - push {r4,r5,lr} - ldr r4, _08111B58 @ =gUnknown_203AE94 - ldrb r1, [r4] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _08111B0A - ldrb r0, [r4, 0x2] - subs r0, 0x1 - strb r0, [r4, 0x2] - lsls r0, 24 - cmp r0, 0 - bne _08111B78 - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x31 - negs r1, r1 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x2 - bl sub_8112888 -_08111B0A: - ldrb r1, [r4] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0x10 - bne _08111B34 - ldrb r0, [r4, 0x3] - adds r0, 0x1 - strb r0, [r4, 0x3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _08111B34 - bl sub_8111E20 - ldrb r0, [r4] - movs r1, 0x31 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0 - strb r0, [r4, 0x3] -_08111B34: - ldr r4, _08111B58 @ =gUnknown_203AE94 - ldrb r0, [r4, 0x1] - cmp r0, 0x1F - bhi _08111B78 - ldr r5, _08111B5C @ =gUnknown_203AE0C - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - bl sub_8113B44 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08111B60 - bl sub_8111B80 - b _08111B78 - .align 2, 0 -_08111B58: .4byte gUnknown_203AE94 -_08111B5C: .4byte gUnknown_203AE0C -_08111B60: - ldrb r0, [r4, 0x1] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - bl sub_8113AE8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08111B78 - bl sub_8111B80 -_08111B78: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8111AD8 - thumb_func_start sub_8111B80 sub_8111B80: @ 8111B80 push {r4,lr} diff --git a/src/quest_log.c b/src/quest_log.c index c50771491..d1d0d341e 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -29,6 +29,8 @@ struct UnkStruct_203AE94 u8 unk_0_4:2; u8 unk_0_6:2; u8 unk_1; + u8 unk_2; + u8 unk_3; }; struct UnkStruct_203AE98 @@ -70,24 +72,29 @@ void sub_811175C(u8, struct UnkStruct_203AE98 *); void sub_81118F4(s8); void sub_8111914(void); void sub_8111984(void); -void sub_8112364(void); void sub_8111A34(u8); -bool8 sub_8111F60(void); -void * sub_8113D08(void *, struct UnkStruct_203AE98 *); -void * sub_8113D94(void *, struct UnkStruct_203AE98 *); -void * sub_8113C20(void *, struct UnkStruct_203AE98 *); -void * sub_8113C8C(void *, struct UnkStruct_203AE98 *); -void * sub_8113A78(void *, void **); -void sub_8113ABC(void *); -void sub_81138F8(void); void sub_8111AD8(void); +void sub_8111B80(void); +void sub_8111E20(void); +bool8 sub_8111F60(void); +void sub_8112364(void); +void sub_8112888(u8); void sub_8112940(u8, struct UnkStruct_203AE98 *, u16); void sub_811381C(void); +void sub_81138F8(void); +void * sub_8113A78(void *, void **); +void sub_8113ABC(void *); +bool8 sub_8113AE8(void *); +bool8 sub_8113B44(void *); void sub_8113B88(void); void sub_8113BD8(void); void * sub_8113BF4(void *); -void * sub_8113D48(void *, struct UnkStruct_203AE98 *); +void * sub_8113C20(void *, struct UnkStruct_203AE98 *); +void * sub_8113C8C(void *, struct UnkStruct_203AE98 *); void * sub_8113CC8(void *, struct UnkStruct_203AE98 *); +void * sub_8113D08(void *, struct UnkStruct_203AE98 *); +void * sub_8113D48(void *, struct UnkStruct_203AE98 *); +void * sub_8113D94(void *, struct UnkStruct_203AE98 *); extern const u8 gUnknown_841A155[]; @@ -980,3 +987,32 @@ void sub_8111A34(u8 taskId) break; } } + +void sub_8111AD8(void) +{ + if (gUnknown_203AE94.unk_0_0 == 1) + { + if (--gUnknown_203AE94.unk_2 != 0) + return; + gUnknown_203AE94.unk_0_0 = 0; + gUnknown_203AE94.unk_0_4 = 1; + sub_8112888(2); + } + + if (gUnknown_203AE94.unk_0_4 == 1) + { + if (++gUnknown_203AE94.unk_3 > 15) + { + sub_8111E20(); + gUnknown_203AE94.unk_0_4 = 0; + gUnknown_203AE94.unk_3 = 0; + } + } + if (gUnknown_203AE94.unk_1 < 32) + { + if (sub_8113B44(gUnknown_203AE0C[gUnknown_203AE94.unk_1]) == 1) + sub_8111B80(); + else if (sub_8113AE8(gUnknown_203AE0C[gUnknown_203AE94.unk_1]) == 1) + sub_8111B80(); + } +} |