summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-15 10:07:39 -0500
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-15 10:07:39 -0500
commit1c90805498f7a03d415d74bfe3b380396b81e14f (patch)
treecd5b94f3f0fa1b77cd84d70198d2745ad60c8d2f
parentf07f73e188f0ff81f313e74230d5ad055461966f (diff)
through sub_8112D40
-rw-r--r--asm/quest_log.s154
-rw-r--r--include/save.h1
-rw-r--r--src/quest_log.c65
3 files changed, 65 insertions, 155 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 2bfc14dd1..22a28b96f 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,160 +5,6 @@
.text
- thumb_func_start sub_8112C9C
-sub_8112C9C: @ 8112C9C
- ldr r1, _08112CA8 @ =gUnknown_203B01A
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08112CA8: .4byte gUnknown_203B01A
- thumb_func_end sub_8112C9C
-
- thumb_func_start sub_8112CAC
-sub_8112CAC: @ 8112CAC
- push {lr}
- ldr r0, _08112CC0 @ =gUnknown_3005E88
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08112CDC
- lsls r0, 2
- ldr r1, _08112CC4 @ =_08112CC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112CC0: .4byte gUnknown_3005E88
-_08112CC4: .4byte _08112CC8
- .align 2, 0
-_08112CC8:
- .4byte _08112CDC
- .4byte _08112CE0
- .4byte _08112CE4
- .4byte _08112CE0
- .4byte _08112CE4
-_08112CDC:
- movs r0, 0
- b _08112CE6
-_08112CE0:
- movs r0, 0x1
- b _08112CE6
-_08112CE4:
- movs r0, 0x2
-_08112CE6:
- pop {r1}
- bx r1
- thumb_func_end sub_8112CAC
-
- thumb_func_start sub_8112CEC
-sub_8112CEC: @ 8112CEC
- push {lr}
- ldr r0, _08112D0C @ =gUnknown_203AF98
- ldr r1, _08112D10 @ =gUnknown_3005E8C
- ldrh r0, [r0]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _08112D06
- bl ScriptContext2_IsEnabled
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08112D14
-_08112D06:
- movs r0, 0x1
- b _08112D16
- .align 2, 0
-_08112D0C: .4byte gUnknown_203AF98
-_08112D10: .4byte gUnknown_3005E8C
-_08112D14:
- movs r0, 0
-_08112D16:
- pop {r1}
- bx r1
- thumb_func_end sub_8112CEC
-
- thumb_func_start sub_8112D1C
-sub_8112D1C: @ 8112D1C
- push {lr}
- ldr r0, _08112D30 @ =gUnknown_203AF98
- ldr r1, _08112D34 @ =gUnknown_3005E8C
- ldrh r0, [r0]
- ldrh r1, [r1]
- cmp r0, r1
- bcs _08112D38
- movs r0, 0
- b _08112D3A
- .align 2, 0
-_08112D30: .4byte gUnknown_203AF98
-_08112D34: .4byte gUnknown_3005E8C
-_08112D38:
- movs r0, 0x1
-_08112D3A:
- pop {r1}
- bx r1
- thumb_func_end sub_8112D1C
-
- thumb_func_start sub_8112D40
-sub_8112D40: @ 8112D40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _08112D6C @ =gUnknown_203AF98
- ldrh r1, [r0]
- cmp r1, 0
- beq _08112D66
- ldr r0, _08112D70 @ =gUnknown_3005E8C
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08112D66
- ldr r4, _08112D74 @ =gUnknown_203B01E
- ldr r1, _08112D78 @ =gUnknown_3002020
- ldrh r0, [r4]
- ldrh r1, [r1]
- cmp r0, r1
- bcc _08112D7C
-_08112D66:
- movs r0, 0
- b _08112DA8
- .align 2, 0
-_08112D6C: .4byte gUnknown_203AF98
-_08112D70: .4byte gUnknown_3005E8C
-_08112D74: .4byte gUnknown_203B01E
-_08112D78: .4byte gUnknown_3002020
-_08112D7C:
- ldrh r3, [r4]
- ldr r0, _08112DA0 @ =gUnknown_300201C
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r2, r0, r1
- ldr r1, [r2]
- lsls r0, r1, 17
- lsrs r0, 17
- cmp r0, r5
- bne _08112DA4
- lsls r0, r1, 16
- lsrs r0, 31
- cmp r0, r6
- bne _08112DA4
- adds r1, r2, 0x2
- adds r0, r3, 0x1
- strh r0, [r4]
- b _08112DA6
- .align 2, 0
-_08112DA0: .4byte gUnknown_300201C
-_08112DA4:
- movs r1, 0
-_08112DA6:
- adds r0, r1, 0
-_08112DA8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8112D40
-
thumb_func_start sub_8112DB0
sub_8112DB0: @ 8112DB0
push {r4-r7,lr}
diff --git a/include/save.h b/include/save.h
index 5a502e1fc..29524a7e2 100644
--- a/include/save.h
+++ b/include/save.h
@@ -119,7 +119,6 @@ u8 Save_LoadGameData(u8 a1);
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
u32 sub_8153634(u8 sector, u8* src);
void sub_8153688(u8 taskId);
-//void Save_LoadGameData(u8);
u32 sub_80DA5E0(u8 sector, u8* src);
void sub_80DA634(u8 taskId);
diff --git a/src/quest_log.c b/src/quest_log.c
index a1008aa06..1419ca8a0 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -52,11 +52,21 @@ struct UnkStruct_203AE98
u8 unk_6;
};
+struct UnkStruct_300201C
+{
+ u16 unk_0_0:15;
+ u16 unk_0_f:1;
+ u16 unk_2;
+};
+
u8 gUnknown_3005E88;
u16 gUnknown_3005E8C;
struct UnkStruct_3005E90 gUnknown_3005E90;
struct UnkStruct_203AE98 * gUnknown_3005E94;
+IWRAM_DATA struct UnkStruct_300201C * gUnknown_300201C;
+IWRAM_DATA u16 gUnknown_3002020;
+
EWRAM_DATA u8 gUnknown_203ADF8 = 0;
EWRAM_DATA u8 gUnknown_203ADF9 = 0;
EWRAM_DATA u8 gUnknown_203ADFA = 0;
@@ -73,6 +83,7 @@ EWRAM_DATA u16 gUnknown_203AF98 = 0;
EWRAM_DATA u8 gUnknown_203AF9A[64][2];
EWRAM_DATA u16 gUnknown_203B01A;
EWRAM_DATA u16 gUnknown_203B01C;
+EWRAM_DATA u16 gUnknown_203B01E;
EWRAM_DATA u16 gUnknown_203B044[2] = {0};
@@ -1932,3 +1943,57 @@ void sub_8112B3C(void)
"_08112C98: .4byte gUnknown_3005E88");
}
#endif
+
+void sub_8112C9C(void)
+{
+ gUnknown_203B01A++;
+}
+
+u8 sub_8112CAC(void)
+{
+ switch (gUnknown_3005E88)
+ {
+ case 0:
+ default:
+ return 0;
+ case 1:
+ case 3:
+ return 1;
+ case 2:
+ case 4:
+ return 2;
+ }
+}
+
+bool8 sub_8112CEC(void)
+{
+ if (gUnknown_203AF98 >= gUnknown_3005E8C || ScriptContext2_IsEnabled() == TRUE)
+ return TRUE;
+ return FALSE;
+}
+
+bool8 sub_8112D1C(void)
+{
+ if (gUnknown_203AF98 >= gUnknown_3005E8C)
+ return TRUE;
+ return FALSE;
+}
+
+u16 * sub_8112D40(u8 a0, u16 a1)
+{
+ u16 * response;
+ if (gUnknown_203AF98 == 0)
+ return NULL;
+ if (gUnknown_203AF98 >= gUnknown_3005E8C)
+ return NULL;
+ if (gUnknown_203B01E >= gUnknown_3002020)
+ return NULL;
+ if (gUnknown_300201C[gUnknown_203B01E].unk_0_0 == a1 && gUnknown_300201C[gUnknown_203B01E].unk_0_f == a0)
+ {
+ response = &gUnknown_300201C[gUnknown_203B01E].unk_2;
+ gUnknown_203B01E++;
+ }
+ else
+ response = NULL;
+ return response;
+}