diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-16 12:56:37 -0700 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-16 12:56:37 -0700 |
commit | 11066dc88f55c32ec1877c2f7e995412c4a07318 (patch) | |
tree | 8fbd84a8df24576a6471a809e2fc26d2e752374b | |
parent | 6d31e24cba449b856f63c8279339bf1406013b83 (diff) |
sub_8113194
-rw-r--r-- | asm/quest_log.s | 58 | ||||
-rw-r--r-- | data/quest_log.s | 3 | ||||
-rw-r--r-- | src/quest_log.c | 29 |
3 files changed, 28 insertions, 62 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s index fa9018ce5..c8f7f9a29 100644 --- a/asm/quest_log.s +++ b/asm/quest_log.s @@ -5,64 +5,6 @@ .text - thumb_func_start sub_8113194 -sub_8113194: @ 8113194 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - movs r6, 0 - movs r7, 0x1 -_081131A4: - ldrb r1, [r5, 0x1] - ldr r0, _081131D0 @ =gUnknown_8456938 - adds r0, r6, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r7 - cmp r1, 0 - bne _081131D4 - mov r8, r6 - bl Random - adds r1, r7, 0 - ands r1, r0 - cmp r1, 0 - beq _081131D4 - adds r0, r7, 0 - lsls r0, r4 - ldrb r1, [r5, 0x1] - orrs r0, r1 - strb r0, [r5, 0x1] - adds r0, r4, 0 - b _081131EE - .align 2, 0 -_081131D0: .4byte gUnknown_8456938 -_081131D4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _081131A4 - ldr r0, _081131F8 @ =gUnknown_8456938 - add r0, r8 - ldrb r0, [r0] - movs r1, 0x1 - lsls r1, r0 - ldrb r2, [r5, 0x1] - orrs r1, r2 - strb r1, [r5, 0x1] -_081131EE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081131F8: .4byte gUnknown_8456938 - thumb_func_end sub_8113194 - thumb_func_start sub_81131FC sub_81131FC: @ 81131FC push {r4-r7,lr} diff --git a/data/quest_log.s b/data/quest_log.s index 4cbfdbd28..839a9d9e5 100644 --- a/data/quest_log.s +++ b/data/quest_log.s @@ -1,9 +1,6 @@ .section .rodata .align 2 -gUnknown_8456938:: @ 8456938 - .incbin "baserom.gba", 0x456938, 0x8 - gUnknown_8456940:: @ 8456940 .incbin "baserom.gba", 0x456940, 0x8 diff --git a/src/quest_log.c b/src/quest_log.c index 36de09ca7..30f529615 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 "random.h" #include "menu_helpers.h" #include "window.h" #include "text_window.h" @@ -36,6 +37,7 @@ struct Var4038Struct { u8 unk_0_0:7; u8 unk_0_7:1; + u8 unk_1; }; struct UnkStruct_203AE94 @@ -139,7 +141,7 @@ bool8 sub_8112D1C(void); void sub_8113078(struct Var4038Struct *); void sub_81130BC(struct Var4038Struct *); u16 sub_81132A0(struct Var4038Struct *); -void sub_8113194(struct Var4038Struct *); +u8 sub_8113194(struct Var4038Struct *); void sub_81132E0(struct Var4038Struct *); bool8 sub_8113508(void); void sub_8113524(struct Var4038Struct *); @@ -2304,3 +2306,28 @@ u8 sub_8113114(struct Var4038Struct * a0, u8 a1) return a0->unk_0_0; } + +const u8 gUnknown_8456938[] = { + 1, 3, 5, 0, 7, 6, 4, 2 +}; + +u8 sub_8113194(struct Var4038Struct * a0) +{ + u8 i; + u8 retval = 0; + + for (i = 0; i < 8; i++) + { + if (!((a0->unk_1 >> gUnknown_8456938[i]) & 1)) + { + retval = i; + if (Random() % 2) + { + a0->unk_1 |= 1 << gUnknown_8456938[i]; + return gUnknown_8456938[i]; + } + } + } + a0->unk_1 |= 1 << gUnknown_8456938[retval]; + return gUnknown_8456938[retval]; +} |