diff --git a/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c b/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c index ba06748fb..11c9658f0 100644 --- a/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c +++ b/src/ov_SC05_005/ov_SC05_005_jr_8017D898.c @@ -4172,7 +4172,41 @@ void func_8017FF4C(s32 arg0) { } -INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_jr_8017D898", func_8017FFC8); + +extern s32 D_801AB144; +extern void func_8012A828(s32 a0, s32 a1); +extern void func_8012B2CC(s32 a0); +extern void func_8012B178(s32 a0, s32 a1); +extern void *D_801A6048; +extern u8 D_801A6100[]; + +void func_8017FFC8(s32 a0) { + s32 ptr; + u16 v0; + u16 f70; + + func_8012A828(a0, (s32)&D_801AB144); + + ptr = *(s32 *)(a0 + 0x20); + v0 = *(u16 *)(a0 + 0xDC); + *(u16 *)(ptr + 0x10) = v0; + + ptr = *(s32 *)(a0 + 0x20); + v0 = *(u16 *)(a0 + 0xDE); + *(u16 *)(ptr + 0x12) = v0; + + *(s32 *)(a0 + 0x58) = (s32)&D_801A6048 | 0x40000000 | 0x20000000; + + f70 = *(u16 *)(a0 + 0x70); + *(s32 *)(a0 + 0xCC) = (s32)D_801A6100 + ((f70 & 0xF0) << 1); + func_8012B2CC(a0); + + func_8012B178(a0, 0xFFF80000); + + *(u16 *)(a0 + 0x2) = 0xB; + *(u16 *)(a0 + 0x34) = 0; +} +