summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/quest_log.s196
-rw-r--r--src/quest_log.c81
2 files changed, 81 insertions, 196 deletions
diff --git a/asm/quest_log.s b/asm/quest_log.s
index 164fdc06c..95cd834b7 100644
--- a/asm/quest_log.s
+++ b/asm/quest_log.s
@@ -5,202 +5,6 @@
.text
- thumb_func_start sub_8113C8C
-sub_8113C8C: @ 8113C8C
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _08113CBC @ =gUnknown_8456AA0
- adds r0, 0x29
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8110988
- lsls r0, 24
- cmp r0, 0
- beq _08113CC0
- movs r0, 0xFE
- strb r0, [r4, 0x6]
- ldrh r1, [r5, 0x2]
- movs r0, 0
- strh r1, [r4, 0x4]
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r0, r5, 0x4
- b _08113CC2
- .align 2, 0
-_08113CBC: .4byte gUnknown_8456AA0
-_08113CC0:
- movs r0, 0
-_08113CC2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8113C8C
-
- thumb_func_start sub_8113CC8
-sub_8113CC8: @ 8113CC8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r4, 0x4
- ldr r0, _08113CFC @ =gUnknown_8456AA0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8110988
- lsls r0, 24
- cmp r0, 0
- beq _08113D00
- movs r0, 0
- strh r0, [r4]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2]
- ldrb r0, [r5]
- strb r0, [r4, 0x4]
- ldrb r0, [r5, 0x1]
- strb r0, [r6, 0x1]
- ldrb r0, [r5, 0x2]
- strb r0, [r6, 0x2]
- ldrb r0, [r5, 0x3]
- strb r0, [r6, 0x3]
- adds r0, r6, 0x4
- b _08113D02
- .align 2, 0
-_08113CFC: .4byte gUnknown_8456AA0
-_08113D00:
- movs r0, 0
-_08113D02:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8113CC8
-
- thumb_func_start sub_8113D08
-sub_8113D08: @ 8113D08
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r5, 0x4
- ldr r0, _08113D3C @ =gUnknown_8456AA0
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8110988
- lsls r0, 24
- cmp r0, 0
- beq _08113D40
- movs r0, 0x2
- strb r0, [r4, 0x6]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x4]
- ldrb r0, [r5, 0x4]
- strb r0, [r4]
- ldrb r0, [r6, 0x1]
- strb r0, [r4, 0x1]
- ldrb r0, [r6, 0x2]
- strb r0, [r4, 0x2]
- ldrb r0, [r6, 0x3]
- strb r0, [r4, 0x3]
- adds r0, r6, 0x4
- b _08113D42
- .align 2, 0
-_08113D3C: .4byte gUnknown_8456AA0
-_08113D40:
- movs r0, 0
-_08113D42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8113D08
-
- thumb_func_start sub_8113D48
-sub_8113D48: @ 8113D48
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r0, 0
- adds r6, r4, 0x4
- ldr r0, _08113D64 @ =gUnknown_8456AA0
- ldrb r1, [r0, 0x2]
- adds r0, r4, 0
- bl sub_8110988
- lsls r0, 24
- cmp r0, 0
- bne _08113D68
- movs r0, 0
- b _08113D8C
- .align 2, 0
-_08113D64: .4byte gUnknown_8456AA0
-_08113D68:
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- bne _08113D72
- movs r0, 0x2
- b _08113D74
-_08113D72:
- movs r0, 0x1
-_08113D74:
- strh r0, [r4]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0x2]
- ldrb r0, [r5]
- strb r0, [r6]
- ldrb r0, [r5, 0x1]
- strb r0, [r6, 0x1]
- ldrb r0, [r5, 0x2]
- strb r0, [r6, 0x2]
- ldrb r0, [r5, 0x3]
- strb r0, [r6, 0x3]
- adds r0, r6, 0x4
-_08113D8C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8113D48
-
- thumb_func_start sub_8113D94
-sub_8113D94: @ 8113D94
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r5, r0, 0
- adds r6, r5, 0x4
- ldr r0, _08113DB0 @ =gUnknown_8456AA0
- ldrb r1, [r0, 0x2]
- adds r0, r5, 0
- bl sub_8110988
- lsls r0, 24
- cmp r0, 0
- bne _08113DB4
- movs r0, 0
- b _08113DD8
- .align 2, 0
-_08113DB0: .4byte gUnknown_8456AA0
-_08113DB4:
- ldrh r0, [r5]
- cmp r0, 0x2
- bne _08113DBE
- movs r0, 0
- b _08113DC0
-_08113DBE:
- movs r0, 0x1
-_08113DC0:
- strb r0, [r4, 0x6]
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r6, 0x1]
- strb r0, [r4, 0x1]
- ldrb r0, [r6, 0x2]
- strb r0, [r4, 0x2]
- ldrb r0, [r6, 0x3]
- strb r0, [r4, 0x3]
- adds r0, r6, 0x4
-_08113DD8:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8113D94
-
thumb_func_start sub_8113DE0
sub_8113DE0: @ 8113DE0
push {r4-r7,lr}
diff --git a/src/quest_log.c b/src/quest_log.c
index fe1ca9e18..1d6951485 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -3383,3 +3383,84 @@ u16 * sub_8113C5C(u16 * a0, u16 a1)
a0[1] = a1;
return a0 + 2;
}
+
+u16 * sub_8113C8C(u16 * a0, struct UnkStruct_203AE98 * a1)
+{
+ if (!sub_8110988(a0, gUnknown_8456AA0[41]))
+ return NULL;
+ a1->unk_6 = 0xFE;
+ a1->unk_4 = a0[1];
+ a1->unk_0 = 0;
+ a1->unk_1 = 0;
+ a1->unk_2 = 0;
+ a1->unk_3 = 0;
+ return a0 + 2;
+}
+
+u16 * sub_8113CC8(u16 * a0, struct UnkStruct_203AE98 * a1)
+{
+ u8 * r6 = (u8 *)a0 + 4;
+
+ if (!sub_8110988(a0, gUnknown_8456AA0[0]))
+ return NULL;
+ a0[0] = 0;
+ a0[1] = a1->unk_4;
+ r6[0] = a1->unk_0;
+ r6[1] = a1->unk_1;
+ r6[2] = a1->unk_2;
+ r6[3] = a1->unk_3;
+ return (u16 *)(r6 + 4);
+}
+
+u16 * sub_8113D08(u16 * a0, struct UnkStruct_203AE98 * a1)
+{
+ u8 * r6 = (u8 *)a0 + 4;
+
+ if (!sub_8110988(a0, gUnknown_8456AA0[0]))
+ return NULL;
+ a1->unk_6 = 2;
+ a1->unk_4 = a0[1];
+ a1->unk_0 = r6[0];
+ a1->unk_1 = r6[1];
+ a1->unk_2 = r6[2];
+ a1->unk_3 = r6[3];
+ return (u16 *)(r6 + 4);
+}
+
+u16 * sub_8113D48(u16 * a0, struct UnkStruct_203AE98 * a1)
+{
+ u16 * r4 = a0;
+ u8 * r6 = (u8 *)a0 + 4;
+
+ if (!sub_8110988(r4, gUnknown_8456AA0[2]))
+ return NULL;
+ if (a1->unk_6 == 0)
+ r4[0] = 2;
+ else
+ r4[0] = 1;
+ r4[1] = a1->unk_4;
+ r6[0] = a1->unk_0;
+ r6[1] = a1->unk_1;
+ r6[2] = a1->unk_2;
+ r6[3] = a1->unk_3;
+ return (u16 *)(r6 + 4);
+}
+
+u16 * sub_8113D94(u16 * a0, struct UnkStruct_203AE98 * a1)
+{
+ u16 * r5 = a0;
+ u8 * r6 = (u8 *)a0 + 4;
+
+ if (!sub_8110988(r5, gUnknown_8456AA0[2]))
+ return NULL;
+ if (r5[0] == 2)
+ a1->unk_6 = 0;
+ else
+ a1->unk_6 = 1;
+ a1->unk_4 = r5[1];
+ a1->unk_0 = r6[0];
+ a1->unk_1 = r6[1];
+ a1->unk_2 = r6[2];
+ a1->unk_3 = r6[3];
+ return (u16 *)(r6 + 4);
+}