summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-11 11:06:25 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-11 11:06:25 -0400
commit0046efe86762b893b8bc688ff8172a071a952fac (patch)
tree3098d1f95cb8838a7d5ceb6bb9716ab60a16c167
parentc340377fe527fffd0df58cbe7c1d6b79d9f19827 (diff)
sub_8110E68
-rw-r--r--asm/quest_log.s87
-rw-r--r--include/unk_8159F40.h6
-rw-r--r--src/quest_log.c52
3 files changed, 53 insertions, 92 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 5f7b6b627..633a15489 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,93 +5,6 @@
.text
- thumb_func_start sub_8110E68
-sub_8110E68: @ 8110E68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldr r0, _08110EA0 @ =gUnknown_203ADFC
- ldrh r5, [r0]
- ldr r0, _08110EA4 @ =gUnknown_203AF98
- mov r8, r0
- ldrh r0, [r0]
- cmp r5, r0
- bcs _08110ECA
- ldr r6, _08110EA8 @ =gUnknown_203AE08
-_08110E80:
- ldr r4, [r6]
- cmp r4, 0
- beq _08110F02
- lsls r0, r5, 3
- adds r1, r0, r7
- ldrb r2, [r1, 0x6]
- adds r3, r0, 0
- cmp r2, 0x1
- bgt _08110EAC
- cmp r2, 0
- blt _08110EAC
- adds r0, r4, 0
- bl sub_8113D48
- b _08110EB4
- .align 2, 0
-_08110EA0: .4byte gUnknown_203ADFC
-_08110EA4: .4byte gUnknown_203AF98
-_08110EA8: .4byte gUnknown_203AE08
-_08110EAC:
- ldr r0, [r6]
- adds r1, r7, r3
- bl sub_8113CC8
-_08110EB4:
- str r0, [r6]
- ldr r1, [r6]
- cmp r1, 0
- beq _08110EEC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08110EE0 @ =gUnknown_203AF98
- ldrh r0, [r0]
- cmp r5, r0
- bcc _08110E80
-_08110ECA:
- ldr r0, _08110EE4 @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0
- beq _08110EF8
- ldr r1, _08110EE8 @ =gUnknown_203ADFC
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1]
- movs r0, 0x1
- b _08110F04
- .align 2, 0
-_08110EE0: .4byte gUnknown_203AF98
-_08110EE4: .4byte gUnknown_3005E88
-_08110EE8: .4byte gUnknown_203ADFC
-_08110EEC:
- ldr r0, _08110EF4 @ =gUnknown_3005E88
- strb r1, [r0]
- b _08110F02
- .align 2, 0
-_08110EF4: .4byte gUnknown_3005E88
-_08110EF8:
- ldr r4, _08110F10 @ =gUnknown_203AE08
- ldr r0, [r4]
- bl sub_8113BF4
- str r0, [r4]
-_08110F02:
- movs r0, 0
-_08110F04:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08110F10: .4byte gUnknown_203AE08
- thumb_func_end sub_8110E68
-
thumb_func_start sub_8110F14
sub_8110F14: @ 8110F14
push {r4-r7,lr}
diff --git a/include/unk_8159F40.h b/include/unk_8159F40.h
new file mode 100644
index 000000000..7343dc629
--- /dev/null
+++ b/include/unk_8159F40.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_UNK_8159F40_H
+#define GUARD_UNK_8159F40_H
+
+void sub_815A008(struct QuestLog *);
+
+#endif //GUARD_UNK_8159F40_H
diff --git a/src/quest_log.c b/src/quest_log.c
index 97313674e..c16f41236 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -13,6 +13,12 @@ struct UnkStruct_203AE94
u8 unk_1;
};
+struct UnkStruct_203AE98
+{
+ u8 filler_0[6];
+ u8 unk_6;
+};
+
EWRAM_DATA u8 gUnknown_203ADF8 = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
EWRAM_DATA u16 gUnknown_203ADFC = 0;
@@ -21,7 +27,8 @@ 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};
+EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
+EWRAM_DATA u16 gUnknown_203AF98 = 0;
void sub_8110A00(void);
void sub_8110A3C(void);
@@ -31,16 +38,17 @@ void sub_8110E3C(void);
void sub_8110D94(void);
void sub_8110E20(void);
void sub_8110D48(u8);
+u8 sub_8110E68(struct UnkStruct_203AE98 *);
void sub_81115E8(void);
-u8 sub_8110E68(void *);
void sub_81118F4(s8);
void sub_8111AD8(void);
+void sub_8112940(u8, struct UnkStruct_203AE98 *, u16);
void sub_8113B88(void);
void sub_8113BD8(void);
-void sub_8113BF4(void *);
-void sub_8112940(u8, u8 *, u16);
+void * sub_8113BF4(void *);
void sub_81138F8(void);
-void sub_815A008(struct QuestLog *);
+void * sub_8113D48(void *, struct UnkStruct_203AE98 *);
+void * sub_8113CC8(void *, struct UnkStruct_203AE98 *);
void sub_8110840(void * a0)
@@ -432,3 +440,37 @@ void sub_8110E3C(void)
if (++gUnknown_203ADF8 > 3)
gUnknown_203ADF8 = 0;
}
+
+bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
+{
+ u16 i;
+
+ for (i = gUnknown_203ADFC; i < gUnknown_203AF98; i++)
+ {
+ if (gUnknown_203AE08 == NULL)
+ return FALSE;
+ switch (a0[i].unk_6)
+ {
+ case 0:
+ case 1:
+ gUnknown_203AE08 = sub_8113D48(gUnknown_203AE08, &a0[i]);
+ break;
+ default:
+ gUnknown_203AE08 = sub_8113CC8(gUnknown_203AE08, &a0[i]);
+ break;
+ }
+ if (gUnknown_203AE08 == NULL)
+ {
+ gUnknown_3005E88 = 0;
+ return FALSE;
+ }
+ }
+
+ if (gUnknown_3005E88 == 0)
+ {
+ gUnknown_203AE08 = sub_8113BF4(gUnknown_203AE08);
+ return FALSE;
+ }
+ gUnknown_203ADFC = gUnknown_203AF98;
+ return TRUE;
+}