summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-10-12 21:31:25 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-10-12 21:31:25 -0400
commitef81b5a2372911c1ab65f87c8a8633862d59d682 (patch)
tree1bd37998a5143c5c2b49fbbd6a4796ab25fd69e1
parent6c52f7ce04ea37ae6a1854521f0e312d39e86ecb (diff)
sub_8112450
-rw-r--r--asm/quest_log.s90
-rw-r--r--include/menu_helpers.h1
-rw-r--r--src/quest_log.c32
3 files changed, 33 insertions, 90 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 8e71786c8..505e60275 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,96 +5,6 @@
.text
- thumb_func_start sub_81123BC
-sub_81123BC: @ 81123BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0xCD
- lsls r0, 5
- bl AllocZeroed
- mov r8, r0
- ldr r0, _08112448 @ =gUnknown_203ADF8
- ldrb r4, [r0]
- movs r5, 0
- movs r6, 0
-_081123D6:
- cmp r4, 0x3
- bls _081123DC
- movs r4, 0
-_081123DC:
- ldr r3, _0811244C @ =gSaveBlock1Ptr
- ldr r0, [r3]
- movs r2, 0xCD
- lsls r2, 3
- adds r1, r4, 0
- muls r1, r2
- adds r0, r1
- movs r7, 0x98
- lsls r7, 5
- adds r1, r0, r7
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811240A
- adds r0, r5, 0
- muls r0, r2
- add r0, r8
- str r3, [sp]
- bl memcpy
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, [sp]
-_0811240A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _081123D6
- ldr r1, _08112448 @ =gUnknown_203ADF8
- movs r0, 0x3
- ands r5, r0
- strb r5, [r1]
- ldr r1, [r3]
- movs r0, 0x98
- lsls r0, 5
- adds r1, r0
- movs r2, 0xCD
- lsls r2, 4
- mov r0, r8
- bl CpuSet
- mov r0, r8
- bl Free
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112448: .4byte gUnknown_203ADF8
-_0811244C: .4byte gSaveBlock1Ptr
- thumb_func_end sub_81123BC
-
- thumb_func_start sub_8112450
-sub_8112450: @ 8112450
- push {lr}
- bl sub_80BF708
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08112466
- bl sub_8112364
- bl sub_81123BC
-_08112466:
- pop {r0}
- bx r0
- thumb_func_end sub_8112450
-
thumb_func_start sub_811246C
sub_811246C: @ 811246C
push {r4-r6,lr}
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index f083a10e2..e88385f94 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -16,5 +16,6 @@ void sub_812225C(u16 *, u16 *, u8, u8);
void sub_8122298(u16 *, u16 *, u8, u8, u8);
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
bool8 sub_81221AC(void);
+bool8 sub_80BF708(void);
#endif //GUARD_MENU_HELPERS_H
diff --git a/src/quest_log.c b/src/quest_log.c
index 391a760ba..0fdedde97 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -5,6 +5,7 @@
#include "task.h"
#include "palette.h"
#include "menu.h"
+#include "menu_helpers.h"
#include "window.h"
#include "text_window.h"
#include "event_data.h"
@@ -1382,3 +1383,34 @@ void sub_8112364(void)
gUnknown_203AE04 = NULL;
gUnknown_203AE08 = NULL;
}
+
+void sub_81123BC(void)
+{
+ struct QuestLog * buffer = AllocZeroed(4 * sizeof(struct QuestLog));
+ u8 i;
+ u8 r4 = gUnknown_203ADF8;
+ u8 count = 0;
+ for (i = 0; i < 4; i++)
+ {
+ if (r4 > 3)
+ r4 = 0;
+ if (gSaveBlock1Ptr->questLog[r4].unk_000)
+ {
+ buffer[count] = gSaveBlock1Ptr->questLog[r4];
+ count++;
+ }
+ r4++;
+ }
+ gUnknown_203ADF8 = count % 4;
+ CpuCopy16(buffer, gSaveBlock1Ptr->questLog, 4 * sizeof(struct QuestLog));
+ Free(buffer);
+}
+
+void sub_8112450(void)
+{
+ if (sub_80BF708() != 1)
+ {
+ sub_8112364();
+ sub_81123BC();
+ }
+}