diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-30 22:05:07 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-30 22:05:07 -0500 |
commit | 9f4ecadbfa514a3620dd7e4ddadf0b55e30a9900 (patch) | |
tree | 95935de8109d4246f0b0f7bbd5d8814a108274e3 | |
parent | f974812e9bc4358642098f24ecbe2224c9cca54d (diff) |
through sub_800D658
-rw-r--r-- | asm/link_rfu.s | 100 | ||||
-rw-r--r-- | src/link_rfu.c | 57 |
2 files changed, 54 insertions, 103 deletions
diff --git a/asm/link_rfu.s b/asm/link_rfu.s index 8718810ff..f187207cb 100644 --- a/asm/link_rfu.s +++ b/asm/link_rfu.s @@ -5,106 +5,6 @@ .text - thumb_func_start sub_800D610 -sub_800D610: @ 800D610 - push {lr} - ldr r1, =gUnknown_03004140 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _0800D628 - ldrb r0, [r1, 0x2] - movs r0, 0 - strb r0, [r1, 0x2] - movs r0, 0x45 - movs r1, 0 - bl sub_800D30C -_0800D628: - pop {r0} - bx r0 - .pool - thumb_func_end sub_800D610 - - thumb_func_start sub_800D630 -sub_800D630: @ 800D630 - push {lr} - ldr r1, =gUnknown_03004140 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _0800D648 - movs r0, 0x45 - movs r1, 0 - bl sub_800D30C - b _0800D654 - .pool -_0800D648: - ldrb r0, [r1, 0x2] - cmp r0, 0x1 - bne _0800D654 - ldrb r0, [r1, 0x2] - movs r0, 0x2 - strb r0, [r1, 0x2] -_0800D654: - pop {r0} - bx r0 - thumb_func_end sub_800D630 - - thumb_func_start sub_800D658 -sub_800D658: @ 800D658 - push {lr} - ldr r0, =gUnknown_03004140 - ldrb r1, [r0, 0x7] - adds r2, r0, 0 - cmp r1, 0 - beq _0800D6C2 - ldrb r0, [r2, 0x4] - subs r0, 0x5 - cmp r0, 0x6 - bhi _0800D6C2 - lsls r0, 2 - ldr r1, =_0800D680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0800D680: - .4byte _0800D69C - .4byte _0800D6A4 - .4byte _0800D6AE - .4byte _0800D6AE - .4byte _0800D6B4 - .4byte _0800D6B4 - .4byte _0800D6BA -_0800D69C: - movs r0, 0x3 - strb r0, [r2, 0x7] - movs r0, 0x9 - b _0800D6C0 -_0800D6A4: - movs r0, 0x2 - strb r0, [r2, 0x7] - movs r0, 0x1 - strh r0, [r2, 0x1A] - b _0800D6C2 -_0800D6AE: - movs r0, 0x2 - strb r0, [r2, 0x7] - b _0800D6C2 -_0800D6B4: - movs r0, 0x28 - strh r0, [r2, 0x1A] - b _0800D6C2 -_0800D6BA: - movs r0, 0x28 - strh r0, [r2, 0x1A] - movs r0, 0xA -_0800D6C0: - strb r0, [r2, 0x4] -_0800D6C2: - pop {r0} - bx r0 - thumb_func_end sub_800D658 - @ file boundary? thumb_func_start sub_800D6C8 diff --git a/src/link_rfu.c b/src/link_rfu.c index 5eecb57d6..704f272a3 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -32,11 +32,11 @@ static void sub_800D158(void); static void sub_800D20C(void); static void sub_800D268(void); static u8 sub_800D294(void); -void sub_800D30C(u8 a0, u8 a1); +static void sub_800D30C(u8 a0, u8 a1); static void sub_800D334(u8 a0); static void sub_800D358(u8 a0); static void sub_800D434(void); -void sub_800D610(void); +static void sub_800D610(void); void sub_800D630(void); // .rodata @@ -1209,7 +1209,7 @@ static u8 sub_800D294(void) return flags; } -void sub_800D30C(u8 a0, u8 a1) +static void sub_800D30C(u8 a0, u8 a1) { if (gUnknown_03004140.unk_40 != NULL) { @@ -1362,3 +1362,54 @@ u8 sub_800D5D0(u8 a0) } return 0; } + +static void sub_800D610(void) +{ + if (gUnknown_03004140.unk_02) + { + gUnknown_03004140.unk_02 = 0; + sub_800D30C(0x45, 0x00); + } +} + +void sub_800D630(void) +{ + if (gUnknown_03004140.unk_02 == 0) + { + sub_800D30C(0x45, 0x00); + } + else if (gUnknown_03004140.unk_02 == 1) + { + gUnknown_03004140.unk_02 = 2; + } +} + +void sub_800D658(void) +{ + if (gUnknown_03004140.unk_07) + { + switch (gUnknown_03004140.unk_04) + { + case 5: + gUnknown_03004140.unk_07 = 3; + gUnknown_03004140.unk_04 = 9; + break; + case 6: + gUnknown_03004140.unk_07 = 2; + gUnknown_03004140.unk_1a = 1; + break; + case 7: + case 8: + gUnknown_03004140.unk_07 = 2; + break; + case 9: + case 10: + gUnknown_03004140.unk_1a = 40; + break; + case 11: + gUnknown_03004140.unk_1a = 40; + gUnknown_03004140.unk_04 = 10; + break; + } + } +} |