summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-09 21:28:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-09 21:28:20 -0400
commitf5964c58bd51718381c5492c063662354a86309e (patch)
treeebd5b1dd6b97001562ff71cd589608159fe21959
parentd1381d8b77ee691cc5dc1fe1fdcb158e7524283a (diff)
through sub_811092C
-rw-r--r--asm/quest_log.s51
-rw-r--r--include/global.h4
-rw-r--r--src/quest_log.c21
3 files changed, 21 insertions, 55 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index cc5c32e64..bad86c36d 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,57 +5,6 @@
.text
- thumb_func_start sub_81108F0
-sub_81108F0: @ 81108F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08110918 @ =gSaveBlock1Ptr
- ldr r1, [r1]
- movs r2, 0xCD
- lsls r2, 3
- muls r0, r2
- adds r0, r1
- movs r1, 0x98
- lsls r1, 5
- adds r0, r1
- movs r1, 0
- bl memset
- ldr r1, _0811091C @ =gUnknown_203AE04
- movs r0, 0
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08110918: .4byte gSaveBlock1Ptr
-_0811091C: .4byte gUnknown_203AE04
- thumb_func_end sub_81108F0
-
- thumb_func_start sub_8110920
-sub_8110920: @ 8110920
- ldr r1, _08110928 @ =gUnknown_203AE04
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08110928: .4byte gUnknown_203AE04
- thumb_func_end sub_8110920
-
- thumb_func_start sub_811092C
-sub_811092C: @ 811092C
- push {lr}
- ldr r0, _08110940 @ =gUnknown_203AE8C
- ldr r0, [r0]
- cmp r0, 0
- beq _0811093A
- bl _call_via_r0
-_0811093A:
- pop {r0}
- bx r0
- .align 2, 0
-_08110940: .4byte gUnknown_203AE8C
- thumb_func_end sub_811092C
-
thumb_func_start sub_8110944
sub_8110944: @ 8110944
push {r4,r5,lr}
diff --git a/include/global.h b/include/global.h
index 791eb2dbf..e1b6ff579 100644
--- a/include/global.h
+++ b/include/global.h
@@ -476,7 +476,7 @@ struct MysteryEventStruct
struct QuestLog
{
- /*0x0000*/ u8 filler_0000[0x19a0];
+ /*0x0000*/ u8 filler_000[0x668];
};
#define MAP_OBJECTS_COUNT 16
@@ -500,7 +500,7 @@ struct SaveBlock1
/*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64];
/*0x0EE0*/ u8 fillerEE0[0x420];
- /*0x1300*/ struct QuestLog questLog;
+ /*0x1300*/ struct QuestLog questLog[4];
/*0x2ca0*/ u8 filler2CA0[0x7c0];
/*0x3460*/ struct MysteryEventStruct unk_3460;
/*0x3464*/ u8 filler_3464[0x1b8];
diff --git a/src/quest_log.c b/src/quest_log.c
index 00b79516d..c59de93db 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -6,7 +6,7 @@ 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 u32 gUnknown_203AE8C = 0;
+EWRAM_DATA void (* gUnknown_203AE8C)(void) = 0;
void sub_8113BD8(void);
void sub_81138F8(void);
@@ -32,7 +32,7 @@ void sub_8110840(void * a0)
void sub_811089C(void)
{
- gSaveBlock1Ptr->questLog = (struct QuestLog){};
+ memset(gSaveBlock1Ptr->questLog, 0, sizeof(gSaveBlock1Ptr->questLog));
gUnknown_203ADF8 = 0;
gUnknown_203ADFA = 0;
gUnknown_203AE8C = 0;
@@ -41,3 +41,20 @@ void sub_811089C(void)
sub_8113BD8();
sub_81138F8();
}
+
+void sub_81108F0(u8 a0)
+{
+ memset(gSaveBlock1Ptr->questLog + a0, 0, sizeof(struct QuestLog));
+ gUnknown_203AE04 = NULL;
+}
+
+void sub_8110920(void)
+{
+ gUnknown_203AE04 = NULL;
+}
+
+void sub_811092C(void)
+{
+ if (gUnknown_203AE8C)
+ gUnknown_203AE8C();
+}