diff options
-rw-r--r-- | asm/quest_log.s | 196 | ||||
-rw-r--r-- | src/quest_log.c | 81 |
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); +} |