summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-10 10:45:50 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-10 10:45:50 -0400
commitdc37cd7de0d60727e4b45fd4c83301a59a194bdf (patch)
tree29f2bf52313aaa886c03c68cc256d7096156b7e1
parentb78aef06258d5bc6f44cdcc43987a5dd11f1d975 (diff)
through sub_8110A3C
-rw-r--r--asm/quest_log.s158
-rw-r--r--common_syms/quest_log.txt1
-rw-r--r--include/quest_log.h2
-rw-r--r--src/quest_log.c69
-rw-r--r--sym_common.txt3
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