summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s83
-rw-r--r--src/quest_log.c56
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();
+ }
+}