summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s77
-rw-r--r--data/quest_log.s3
-rw-r--r--src/quest_log.c29
3 files changed, 29 insertions, 80 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index c8f7f9a29..2f032248a 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,83 +5,6 @@
.text
- thumb_func_start sub_81131FC
-sub_81131FC: @ 81131FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- adds r0, r7, 0
- bl sub_81132A0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08113228
- movs r0, 0
- b _08113276
-_0811321C:
- lsls r4, r6
- ldrb r0, [r7, 0x1]
- eors r4, r0
- strb r4, [r7, 0x1]
- adds r0, r6, 0
- b _08113276
-_08113228:
- movs r5, 0
- movs r4, 0x1
-_0811322C:
- ldrb r1, [r7, 0x1]
- ldr r2, _08113284 @ =gUnknown_8456940
- adds r0, r5, r2
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0811324E
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0811321C
-_0811324E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0811322C
- ldrb r1, [r7, 0x1]
- mov r3, r8
- adds r0, r3, r2
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08113274
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strb r1, [r7, 0x1]
-_08113274:
- adds r0, r2, 0
-_08113276:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08113284: .4byte gUnknown_8456940
- thumb_func_end sub_81131FC
-
thumb_func_start sub_8113288
sub_8113288: @ 8113288
push {lr}
diff --git a/data/quest_log.s b/data/quest_log.s
index 839a9d9e5..527fadb75 100644
--- a/data/quest_log.s
+++ b/data/quest_log.s
@@ -1,9 +1,6 @@
.section .rodata
.align 2
-gUnknown_8456940:: @ 8456940
- .incbin "baserom.gba", 0x456940, 0x8
-
gUnknown_8456948:: @ 8456948
.incbin "baserom.gba", 0x456948, 0xAC
diff --git a/src/quest_log.c b/src/quest_log.c
index 30f529615..51ffaac11 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -2331,3 +2331,32 @@ u8 sub_8113194(struct Var4038Struct * a0)
a0->unk_1 |= 1 << gUnknown_8456938[retval];
return gUnknown_8456938[retval];
}
+
+const u8 gUnknown_8456940[] = {
+ 5, 6, 3, 7, 4, 1, 0, 2
+};
+
+u8 sub_81131FC(struct Var4038Struct * a0)
+{
+ u8 i;
+ u8 retval = 0;
+
+ if (sub_81132A0(a0) == 1)
+ return 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if ((a0->unk_1 >> gUnknown_8456940[i]) & 1)
+ {
+ retval = i;
+ if (Random() % 2)
+ {
+ a0->unk_1 ^= 1 << gUnknown_8456940[i];
+ return gUnknown_8456940[i];
+ }
+ }
+ }
+ if ((a0->unk_1 >> gUnknown_8456940[retval]) & 1)
+ a0->unk_1 ^= 1 << gUnknown_8456940[retval];
+ return gUnknown_8456940[retval];
+}