diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-12 21:31:25 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-12 21:31:25 -0400 |
commit | ef81b5a2372911c1ab65f87c8a8633862d59d682 (patch) | |
tree | 1bd37998a5143c5c2b49fbbd6a4796ab25fd69e1 | |
parent | 6c52f7ce04ea37ae6a1854521f0e312d39e86ecb (diff) |
sub_8112450
-rw-r--r-- | asm/quest_log.s | 90 | ||||
-rw-r--r-- | include/menu_helpers.h | 1 | ||||
-rw-r--r-- | src/quest_log.c | 32 |
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(); + } +} |