diff --git a/src/md_SC04_026/md_SC04_026.c b/src/md_SC04_026/md_SC04_026.c index 32a6c7f32..55012a30d 100644 --- a/src/md_SC04_026/md_SC04_026.c +++ b/src/md_SC04_026/md_SC04_026.c @@ -219,7 +219,12 @@ void func_801E7FF8(void *a0) { } -INCLUDE_ASM("asm/md_SC04_026/nonmatchings/md_SC04_026", func_801E8034); +void func_801E8034(void *a0) { + extern s16 D_801274E8; + extern void func_801E805C(s32 a0, s16 *a1); + func_801E805C((s32)a0, &D_801274E8); +} + /* MATRIX 0x20: short m[3][3] @0x00 (18B) + 2B pad, long t[3] @0x14 (PsyQ layout) */ diff --git a/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c b/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c index f60f908ec..7ffebaf46 100644 --- a/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c +++ b/src/ov_SC04_011/ov_SC04_011_jr_8017D494.c @@ -5514,126 +5514,7 @@ void func_801826E4(s32 param_1) } -void func_801827DC(s32 param_1) -{ - extern void func_80186C1C(void); - extern void func_80183F10(void); - extern void func_8018BA9C(void); - extern void func_80183EA8(void); - extern void func_8018BAC4(void); - extern void func_80182D34(s32 a0); - extern void func_8018AC00(void *a0); - extern void func_8012BEE8(u8 *a0); - extern void func_8013C9C4(void *a0); - extern void func_8018637C(s32 arg0, s32 arg1); - extern void func_8002D4C8(s32 a0, s32 a1); - extern void func_8018B9D4(); - extern void func_80182AF8(); - extern void *D_80194500[][3]; - extern s32 aFC4C[] __asm__("D_801EFC4C"); - extern s32 D_801EFC54; - extern s32 D_801EFC5C; - extern s32 D_801EFC60; - extern s32 D_801EFC64[]; - extern s32 D_801EFC68; - extern s32 D_801EFD28; - extern u16 D_801EFD40; - extern u8 D_80190B88[]; - s32 r; - s32 obj; - u16 t; - u16 f; - - switch (*(u16 *)(param_1 + 0x34)) { - case 0: - case 1: - if (*(s16 *)(param_1 + 0x98) == 0) { - func_8018637C(param_1, (s32)D_80194500[*(s16 *)(param_1 + 0xE2)][*(u16 *)(param_1 + 0x34) + 1]); - goto incr; - } - goto draw; - case 2: - if (*(s32 *)(param_1 + 0x94) != 0xB) { - goto draw; - } - func_80186C1C(); - *(s16 *)(param_1 + 0x76) = 0x64; - *(s32 *)(param_1 + 0x1C) = 0x80; - *(s16 *)(param_1 + 0xF2) = 1; - *(s16 *)(param_1 + 0xE2) = (s16)*(u16 *)(param_1 + 0xE2) >> 1; - func_8013C9C4(D_80190B88); - func_8018AC00((void *)aFC4C[0]); - func_8018AC00((void *)D_801EFC54); - func_8018AC00((void *)D_801EFC5C); - func_8018AC00((void *)D_801EFC60); - func_8018AC00((void *)D_801EFC64[0]); - func_8018AC00((void *)D_801EFC68); - func_8002D4C8(0x907, 0); -incr: - *(u16 *)(param_1 + 0x34) = *(u16 *)(param_1 + 0x34) + 1; -draw: - func_8018B9D4(D_801EFC54, *(s32 *)(param_1 + 0xD0)); - return; - case 3: - if (*(s16 *)(param_1 + 0x76) == 0) { - t = *(u16 *)(param_1 + 0xF6) - 1; - *(u16 *)(param_1 + 0xF6) = t; - *(s16 *)&D_801EFD28 = (s16)t * 100; - func_80183F10(); - obj = *(s32 *)(param_1 + 0xD0); - if (obj != 0) { - *(u16 *)(obj + 0x1A) = 0x800; - *(u16 *)(obj + 0x18) = 0x800; - } - func_8018BA9C(); - *(u16 *)(param_1 + 0x34) = *(u16 *)(param_1 + 0x34) + 1; - if (*(s16 *)(param_1 + 0xF6) == 0) { - f = D_801EFD40; - *(s32 *)(param_1 + 0x1C) = 8; - D_801EFD40 = f | 0x100; - return; - } - *(s32 *)(param_1 + 0x1C) = 0x10; - return; - } - r = ((s32 (*)(s32))func_8012BEE8)((s32)param_1); - if (r == 0) { - if (((*(s32 *)(param_1 + 0x1C) & 0xF) == 0) && (*(s16 *)(param_1 + 0xF2) != 0)) { - *(s16 *)(param_1 + 0xF2) = *(s16 *)(param_1 + 0xF2) - 1; - func_8013C9C4(D_80190B88); - } - func_8018B9D4(D_801EFC54, *(s32 *)(param_1 + 0xD0)); - if ((*(s32 *)(param_1 + 0x1C) & 1) != 0) { - return; - } - func_80183EA8(); - return; - } - goto L_af8; - case 4: - r = ((s32 (*)(s32))func_8012BEE8)((s32)param_1); - if (r != 0) { - if (*(s16 *)(param_1 + 0xF6) == 0) { - func_80182D34(param_1); - return; - } -L_af8: - func_80182AF8(param_1); - return; - } - obj = *(s32 *)(param_1 + 0xD0); - if (obj != 0) { - t = *(u16 *)(obj + 0x18) + 0x600; - *(u16 *)(obj + 0x18) = t; - *(u16 *)(obj + 0x1A) = t; - } - func_8018BAC4(); - return; - default: - return; - } -} - +INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_801827DC); INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_jr_8017D494", func_80182AF8);