diff --git a/src/ov_SC01_000/ov_SC01_000_o0c.c b/src/ov_SC01_000/ov_SC01_000_o0c.c index e9b4800887..431fcca485 100644 --- a/src/ov_SC01_000/ov_SC01_000_o0c.c +++ b/src/ov_SC01_000/ov_SC01_000_o0c.c @@ -870,7 +870,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_000/nonmatchings/ov_SC01_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_001/ov_SC01_001_o0c.c b/src/ov_SC01_001/ov_SC01_001_o0c.c index f0e168e9bf..5dc46493bb 100644 --- a/src/ov_SC01_001/ov_SC01_001_o0c.c +++ b/src/ov_SC01_001/ov_SC01_001_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_004/ov_SC01_004_o0c.c b/src/ov_SC01_004/ov_SC01_004_o0c.c index 337c924b77..7f0d9af4c9 100644 --- a/src/ov_SC01_004/ov_SC01_004_o0c.c +++ b/src/ov_SC01_004/ov_SC01_004_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_005/ov_SC01_005_o0c.c b/src/ov_SC01_005/ov_SC01_005_o0c.c index e09e047b16..f3249a94dd 100644 --- a/src/ov_SC01_005/ov_SC01_005_o0c.c +++ b/src/ov_SC01_005/ov_SC01_005_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_006/ov_SC01_006_o0c.c b/src/ov_SC01_006/ov_SC01_006_o0c.c index 6aa82f60ee..be826b47d4 100644 --- a/src/ov_SC01_006/ov_SC01_006_o0c.c +++ b/src/ov_SC01_006/ov_SC01_006_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_008/ov_SC01_008_o0c.c b/src/ov_SC01_008/ov_SC01_008_o0c.c index eae34f1580..7331a860fc 100644 --- a/src/ov_SC01_008/ov_SC01_008_o0c.c +++ b/src/ov_SC01_008/ov_SC01_008_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_009/ov_SC01_009_o0c.c b/src/ov_SC01_009/ov_SC01_009_o0c.c index aef5d1c6c0..6127368bc8 100644 --- a/src/ov_SC01_009/ov_SC01_009_o0c.c +++ b/src/ov_SC01_009/ov_SC01_009_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_074/ov_SC01_074_o0c.c b/src/ov_SC01_074/ov_SC01_074_o0c.c index 8985cb417d..fcb0c882ea 100644 --- a/src/ov_SC01_074/ov_SC01_074_o0c.c +++ b/src/ov_SC01_074/ov_SC01_074_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_077/ov_SC01_077_o0.c b/src/ov_SC01_077/ov_SC01_077_o0.c index 5256848c88..d7d183a605 100644 --- a/src/ov_SC01_077/ov_SC01_077_o0.c +++ b/src/ov_SC01_077/ov_SC01_077_o0.c @@ -130,13 +130,21 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_o0", func_8013BD74); extern void func_8013C0F8(s32 a0); -typedef struct { - u8 pad0[8]; - void *f8; - void *fC; -} E_13C08C; - void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C; + void *p = a1; ((E_13C08C *)a0)->f8 = a1; diff --git a/src/ov_SC01_080/ov_SC01_080_o0c.c b/src/ov_SC01_080/ov_SC01_080_o0c.c index 18ff336464..3bfd6ae3a3 100644 --- a/src/ov_SC01_080/ov_SC01_080_o0c.c +++ b/src/ov_SC01_080/ov_SC01_080_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC01_084/ov_SC01_084_o0c.c b/src/ov_SC01_084/ov_SC01_084_o0c.c index efe3c3c0a4..ffe4cf18ac 100644 --- a/src/ov_SC01_084/ov_SC01_084_o0c.c +++ b/src/ov_SC01_084/ov_SC01_084_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_000/ov_SC02_000_o0c.c b/src/ov_SC02_000/ov_SC02_000_o0c.c index 8ec2e4efc3..3e3cbda2ff 100644 --- a/src/ov_SC02_000/ov_SC02_000_o0c.c +++ b/src/ov_SC02_000/ov_SC02_000_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_000/nonmatchings/ov_SC02_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_003/ov_SC02_003_o0c.c b/src/ov_SC02_003/ov_SC02_003_o0c.c index 6af0ff33a8..16fcaaa35e 100644 --- a/src/ov_SC02_003/ov_SC02_003_o0c.c +++ b/src/ov_SC02_003/ov_SC02_003_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_003/nonmatchings/ov_SC02_003_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_004/ov_SC02_004_o0c.c b/src/ov_SC02_004/ov_SC02_004_o0c.c index 45e6b38515..7a739b5982 100644 --- a/src/ov_SC02_004/ov_SC02_004_o0c.c +++ b/src/ov_SC02_004/ov_SC02_004_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_004/nonmatchings/ov_SC02_004_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_005/ov_SC02_005_o0c.c b/src/ov_SC02_005/ov_SC02_005_o0c.c index 5549d412f4..d0609323ea 100644 --- a/src/ov_SC02_005/ov_SC02_005_o0c.c +++ b/src/ov_SC02_005/ov_SC02_005_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_011/ov_SC02_011_o0c.c b/src/ov_SC02_011/ov_SC02_011_o0c.c index 37366d3fee..90b66e3ec6 100644 --- a/src/ov_SC02_011/ov_SC02_011_o0c.c +++ b/src/ov_SC02_011/ov_SC02_011_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_015/ov_SC02_015_o0c.c b/src/ov_SC02_015/ov_SC02_015_o0c.c index 74885d7a44..0b666ae875 100644 --- a/src/ov_SC02_015/ov_SC02_015_o0c.c +++ b/src/ov_SC02_015/ov_SC02_015_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_015/nonmatchings/ov_SC02_015_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_016/ov_SC02_016_o0c.c b/src/ov_SC02_016/ov_SC02_016_o0c.c index a5dfbe92cf..36e68471f5 100644 --- a/src/ov_SC02_016/ov_SC02_016_o0c.c +++ b/src/ov_SC02_016/ov_SC02_016_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_016/nonmatchings/ov_SC02_016_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_017/ov_SC02_017_o0c.c b/src/ov_SC02_017/ov_SC02_017_o0c.c index e693d80579..3bcfbcd863 100644 --- a/src/ov_SC02_017/ov_SC02_017_o0c.c +++ b/src/ov_SC02_017/ov_SC02_017_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_017/nonmatchings/ov_SC02_017_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_021/ov_SC02_021_o0c.c b/src/ov_SC02_021/ov_SC02_021_o0c.c index 4afda5881f..f1959cbbee 100644 --- a/src/ov_SC02_021/ov_SC02_021_o0c.c +++ b/src/ov_SC02_021/ov_SC02_021_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_021/nonmatchings/ov_SC02_021_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_026/ov_SC02_026_o0c.c b/src/ov_SC02_026/ov_SC02_026_o0c.c index 6ec32773ab..bd38c614bc 100644 --- a/src/ov_SC02_026/ov_SC02_026_o0c.c +++ b/src/ov_SC02_026/ov_SC02_026_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_026/nonmatchings/ov_SC02_026_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_027/ov_SC02_027_o0c.c b/src/ov_SC02_027/ov_SC02_027_o0c.c index 2202213998..6200e6b552 100644 --- a/src/ov_SC02_027/ov_SC02_027_o0c.c +++ b/src/ov_SC02_027/ov_SC02_027_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_027/nonmatchings/ov_SC02_027_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_028/ov_SC02_028_o0c.c b/src/ov_SC02_028/ov_SC02_028_o0c.c index 67283d0e69..25e9b9a271 100644 --- a/src/ov_SC02_028/ov_SC02_028_o0c.c +++ b/src/ov_SC02_028/ov_SC02_028_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_028/nonmatchings/ov_SC02_028_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_031/ov_SC02_031_o0c.c b/src/ov_SC02_031/ov_SC02_031_o0c.c index 762e66808a..6358088a11 100644 --- a/src/ov_SC02_031/ov_SC02_031_o0c.c +++ b/src/ov_SC02_031/ov_SC02_031_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_031/nonmatchings/ov_SC02_031_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_035/ov_SC02_035_o0c.c b/src/ov_SC02_035/ov_SC02_035_o0c.c index fec16776d0..b03b28bdb9 100644 --- a/src/ov_SC02_035/ov_SC02_035_o0c.c +++ b/src/ov_SC02_035/ov_SC02_035_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_035/nonmatchings/ov_SC02_035_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_039/ov_SC02_039_o0c.c b/src/ov_SC02_039/ov_SC02_039_o0c.c index 116ff07388..5d96a4b3a8 100644 --- a/src/ov_SC02_039/ov_SC02_039_o0c.c +++ b/src/ov_SC02_039/ov_SC02_039_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_039/nonmatchings/ov_SC02_039_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC02_041/ov_SC02_041_o0c.c b/src/ov_SC02_041/ov_SC02_041_o0c.c index 6f4943ad47..c58669b522 100644 --- a/src/ov_SC02_041/ov_SC02_041_o0c.c +++ b/src/ov_SC02_041/ov_SC02_041_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_001/ov_SC03_001_o0c.c b/src/ov_SC03_001/ov_SC03_001_o0c.c index 01a7b722e5..b50c66bd6e 100644 --- a/src/ov_SC03_001/ov_SC03_001_o0c.c +++ b/src/ov_SC03_001/ov_SC03_001_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_002/ov_SC03_002_o0c.c b/src/ov_SC03_002/ov_SC03_002_o0c.c index 3c9e83f013..8f62141ca2 100644 --- a/src/ov_SC03_002/ov_SC03_002_o0c.c +++ b/src/ov_SC03_002/ov_SC03_002_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_003/ov_SC03_003_o0c.c b/src/ov_SC03_003/ov_SC03_003_o0c.c index 5403a7672e..fef3a31db0 100644 --- a/src/ov_SC03_003/ov_SC03_003_o0c.c +++ b/src/ov_SC03_003/ov_SC03_003_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_003/nonmatchings/ov_SC03_003_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_006/ov_SC03_006_o0c.c b/src/ov_SC03_006/ov_SC03_006_o0c.c index 0b8b6dded1..6df95dac44 100644 --- a/src/ov_SC03_006/ov_SC03_006_o0c.c +++ b/src/ov_SC03_006/ov_SC03_006_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_007/ov_SC03_007_o0c.c b/src/ov_SC03_007/ov_SC03_007_o0c.c index 5b4e1954e6..7672a4670f 100644 --- a/src/ov_SC03_007/ov_SC03_007_o0c.c +++ b/src/ov_SC03_007/ov_SC03_007_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_007/nonmatchings/ov_SC03_007_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_010/ov_SC03_010_o0c.c b/src/ov_SC03_010/ov_SC03_010_o0c.c index 01b439e97c..ce81164d2c 100644 --- a/src/ov_SC03_010/ov_SC03_010_o0c.c +++ b/src/ov_SC03_010/ov_SC03_010_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_010/nonmatchings/ov_SC03_010_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_011/ov_SC03_011_o0c.c b/src/ov_SC03_011/ov_SC03_011_o0c.c index 09b52b7631..d80e3670be 100644 --- a/src/ov_SC03_011/ov_SC03_011_o0c.c +++ b/src/ov_SC03_011/ov_SC03_011_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_011/nonmatchings/ov_SC03_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_012/ov_SC03_012_o0c.c b/src/ov_SC03_012/ov_SC03_012_o0c.c index 012b4f4917..16d7b0b5dd 100644 --- a/src/ov_SC03_012/ov_SC03_012_o0c.c +++ b/src/ov_SC03_012/ov_SC03_012_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_012/nonmatchings/ov_SC03_012_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_013/ov_SC03_013_o0c.c b/src/ov_SC03_013/ov_SC03_013_o0c.c index aaacc55bc8..74bdecb5cc 100644 --- a/src/ov_SC03_013/ov_SC03_013_o0c.c +++ b/src/ov_SC03_013/ov_SC03_013_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_013/nonmatchings/ov_SC03_013_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_014/ov_SC03_014_o0e.c b/src/ov_SC03_014/ov_SC03_014_o0e.c index 97a4b21e53..ff943dfe05 100644 --- a/src/ov_SC03_014/ov_SC03_014_o0e.c +++ b/src/ov_SC03_014/ov_SC03_014_o0e.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_o0e", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_014/nonmatchings/ov_SC03_014_o0e", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_015/ov_SC03_015_o0e.c b/src/ov_SC03_015/ov_SC03_015_o0e.c index 78e01ead93..d257434320 100644 --- a/src/ov_SC03_015/ov_SC03_015_o0e.c +++ b/src/ov_SC03_015/ov_SC03_015_o0e.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_o0e", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_015/nonmatchings/ov_SC03_015_o0e", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_023/ov_SC03_023_o0c.c b/src/ov_SC03_023/ov_SC03_023_o0c.c index 9117ccaef7..4ad0a8ad60 100644 --- a/src/ov_SC03_023/ov_SC03_023_o0c.c +++ b/src/ov_SC03_023/ov_SC03_023_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_023/nonmatchings/ov_SC03_023_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_024/ov_SC03_024_o0c.c b/src/ov_SC03_024/ov_SC03_024_o0c.c index be1798cb92..de627ec71d 100644 --- a/src/ov_SC03_024/ov_SC03_024_o0c.c +++ b/src/ov_SC03_024/ov_SC03_024_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_028/ov_SC03_028_o0c.c b/src/ov_SC03_028/ov_SC03_028_o0c.c index d2d2434968..1e2a32efa5 100644 --- a/src/ov_SC03_028/ov_SC03_028_o0c.c +++ b/src/ov_SC03_028/ov_SC03_028_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_028/nonmatchings/ov_SC03_028_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_029/ov_SC03_029_o0c.c b/src/ov_SC03_029/ov_SC03_029_o0c.c index eb77765a1c..71a60f1124 100644 --- a/src/ov_SC03_029/ov_SC03_029_o0c.c +++ b/src/ov_SC03_029/ov_SC03_029_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_029/nonmatchings/ov_SC03_029_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_030/ov_SC03_030_o0c.c b/src/ov_SC03_030/ov_SC03_030_o0c.c index 9dca803f6c..d8c03e490b 100644 --- a/src/ov_SC03_030/ov_SC03_030_o0c.c +++ b/src/ov_SC03_030/ov_SC03_030_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_030/nonmatchings/ov_SC03_030_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_031/ov_SC03_031_o0c.c b/src/ov_SC03_031/ov_SC03_031_o0c.c index b8b6cbe206..3f72845a93 100644 --- a/src/ov_SC03_031/ov_SC03_031_o0c.c +++ b/src/ov_SC03_031/ov_SC03_031_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_031/nonmatchings/ov_SC03_031_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_089/ov_SC03_089_o0c.c b/src/ov_SC03_089/ov_SC03_089_o0c.c index a3632eb15d..bb8c5fa765 100644 --- a/src/ov_SC03_089/ov_SC03_089_o0c.c +++ b/src/ov_SC03_089/ov_SC03_089_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_089/nonmatchings/ov_SC03_089_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_090/ov_SC03_090_o0c.c b/src/ov_SC03_090/ov_SC03_090_o0c.c index 7fa714d157..51526f4881 100644 --- a/src/ov_SC03_090/ov_SC03_090_o0c.c +++ b/src/ov_SC03_090/ov_SC03_090_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_090/nonmatchings/ov_SC03_090_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_091/ov_SC03_091_o0c.c b/src/ov_SC03_091/ov_SC03_091_o0c.c index adc4e1bfbb..f2f6a429b2 100644 --- a/src/ov_SC03_091/ov_SC03_091_o0c.c +++ b/src/ov_SC03_091/ov_SC03_091_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_092/ov_SC03_092_o0c.c b/src/ov_SC03_092/ov_SC03_092_o0c.c index d2117b580d..ac755b505d 100644 --- a/src/ov_SC03_092/ov_SC03_092_o0c.c +++ b/src/ov_SC03_092/ov_SC03_092_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_092/nonmatchings/ov_SC03_092_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_093/ov_SC03_093_o0c.c b/src/ov_SC03_093/ov_SC03_093_o0c.c index 911012d34c..843e06813e 100644 --- a/src/ov_SC03_093/ov_SC03_093_o0c.c +++ b/src/ov_SC03_093/ov_SC03_093_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_093/nonmatchings/ov_SC03_093_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_094/ov_SC03_094_o0c.c b/src/ov_SC03_094/ov_SC03_094_o0c.c index 5438f518a7..93206eecfd 100644 --- a/src/ov_SC03_094/ov_SC03_094_o0c.c +++ b/src/ov_SC03_094/ov_SC03_094_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_094/nonmatchings/ov_SC03_094_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_095/ov_SC03_095_o0c.c b/src/ov_SC03_095/ov_SC03_095_o0c.c index 434688ac4b..bd7ff148cb 100644 --- a/src/ov_SC03_095/ov_SC03_095_o0c.c +++ b/src/ov_SC03_095/ov_SC03_095_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_095/nonmatchings/ov_SC03_095_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_096/ov_SC03_096_o0c.c b/src/ov_SC03_096/ov_SC03_096_o0c.c index 0e71c6ef70..b09b3d7c2c 100644 --- a/src/ov_SC03_096/ov_SC03_096_o0c.c +++ b/src/ov_SC03_096/ov_SC03_096_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_096/nonmatchings/ov_SC03_096_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_097/ov_SC03_097_o0c.c b/src/ov_SC03_097/ov_SC03_097_o0c.c index 56ea24e299..8a233db7fe 100644 --- a/src/ov_SC03_097/ov_SC03_097_o0c.c +++ b/src/ov_SC03_097/ov_SC03_097_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_097/nonmatchings/ov_SC03_097_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_098/ov_SC03_098_o0c.c b/src/ov_SC03_098/ov_SC03_098_o0c.c index 122d6536d3..9a5f2648c3 100644 --- a/src/ov_SC03_098/ov_SC03_098_o0c.c +++ b/src/ov_SC03_098/ov_SC03_098_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_098/nonmatchings/ov_SC03_098_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_099/ov_SC03_099_o0c.c b/src/ov_SC03_099/ov_SC03_099_o0c.c index 28276e06d0..d50cc4b0d0 100644 --- a/src/ov_SC03_099/ov_SC03_099_o0c.c +++ b/src/ov_SC03_099/ov_SC03_099_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_099/nonmatchings/ov_SC03_099_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_100/ov_SC03_100_o0c.c b/src/ov_SC03_100/ov_SC03_100_o0c.c index 8cc76505a1..48a906fcfa 100644 --- a/src/ov_SC03_100/ov_SC03_100_o0c.c +++ b/src/ov_SC03_100/ov_SC03_100_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_100/nonmatchings/ov_SC03_100_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_101/ov_SC03_101_o0c.c b/src/ov_SC03_101/ov_SC03_101_o0c.c index 56f2ee9f9d..52e6130614 100644 --- a/src/ov_SC03_101/ov_SC03_101_o0c.c +++ b/src/ov_SC03_101/ov_SC03_101_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_101/nonmatchings/ov_SC03_101_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_102/ov_SC03_102_o0c.c b/src/ov_SC03_102/ov_SC03_102_o0c.c index da837a0980..7915f75282 100644 --- a/src/ov_SC03_102/ov_SC03_102_o0c.c +++ b/src/ov_SC03_102/ov_SC03_102_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_102/nonmatchings/ov_SC03_102_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_103/ov_SC03_103_o0c.c b/src/ov_SC03_103/ov_SC03_103_o0c.c index ed3b86a309..bd6420707e 100644 --- a/src/ov_SC03_103/ov_SC03_103_o0c.c +++ b/src/ov_SC03_103/ov_SC03_103_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_103/nonmatchings/ov_SC03_103_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_104/ov_SC03_104_o0c.c b/src/ov_SC03_104/ov_SC03_104_o0c.c index 08dbaa4fff..cc26f3cad9 100644 --- a/src/ov_SC03_104/ov_SC03_104_o0c.c +++ b/src/ov_SC03_104/ov_SC03_104_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_105/ov_SC03_105_o0c.c b/src/ov_SC03_105/ov_SC03_105_o0c.c index d68a6c3bc4..db902aadf0 100644 --- a/src/ov_SC03_105/ov_SC03_105_o0c.c +++ b/src/ov_SC03_105/ov_SC03_105_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_105/nonmatchings/ov_SC03_105_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_108/ov_SC03_108_o0c.c b/src/ov_SC03_108/ov_SC03_108_o0c.c index dfeee12658..ac852b9321 100644 --- a/src/ov_SC03_108/ov_SC03_108_o0c.c +++ b/src/ov_SC03_108/ov_SC03_108_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_108/nonmatchings/ov_SC03_108_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_109/ov_SC03_109_o0c.c b/src/ov_SC03_109/ov_SC03_109_o0c.c index 11819f16cb..414fdc6d8f 100644 --- a/src/ov_SC03_109/ov_SC03_109_o0c.c +++ b/src/ov_SC03_109/ov_SC03_109_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_109/nonmatchings/ov_SC03_109_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_110/ov_SC03_110_o0c.c b/src/ov_SC03_110/ov_SC03_110_o0c.c index c6414cc031..0e911b59ca 100644 --- a/src/ov_SC03_110/ov_SC03_110_o0c.c +++ b/src/ov_SC03_110/ov_SC03_110_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_110/nonmatchings/ov_SC03_110_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_111/ov_SC03_111_o0c.c b/src/ov_SC03_111/ov_SC03_111_o0c.c index be2138f68e..9fb29e398e 100644 --- a/src/ov_SC03_111/ov_SC03_111_o0c.c +++ b/src/ov_SC03_111/ov_SC03_111_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_111/nonmatchings/ov_SC03_111_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_112/ov_SC03_112_o0c.c b/src/ov_SC03_112/ov_SC03_112_o0c.c index 8e68cebbd3..8161a97261 100644 --- a/src/ov_SC03_112/ov_SC03_112_o0c.c +++ b/src/ov_SC03_112/ov_SC03_112_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_112/nonmatchings/ov_SC03_112_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_113/ov_SC03_113_o0c.c b/src/ov_SC03_113/ov_SC03_113_o0c.c index 95b889365e..fc2117c556 100644 --- a/src/ov_SC03_113/ov_SC03_113_o0c.c +++ b/src/ov_SC03_113/ov_SC03_113_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_113/nonmatchings/ov_SC03_113_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_114/ov_SC03_114_o0c.c b/src/ov_SC03_114/ov_SC03_114_o0c.c index c4e2f7491f..0b50dfabcf 100644 --- a/src/ov_SC03_114/ov_SC03_114_o0c.c +++ b/src/ov_SC03_114/ov_SC03_114_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_114/nonmatchings/ov_SC03_114_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_115/ov_SC03_115_o0c.c b/src/ov_SC03_115/ov_SC03_115_o0c.c index 71aed5a60e..8c19f1cd33 100644 --- a/src/ov_SC03_115/ov_SC03_115_o0c.c +++ b/src/ov_SC03_115/ov_SC03_115_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_115/nonmatchings/ov_SC03_115_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_116/ov_SC03_116_o0c.c b/src/ov_SC03_116/ov_SC03_116_o0c.c index 62acab04dd..793d88e846 100644 --- a/src/ov_SC03_116/ov_SC03_116_o0c.c +++ b/src/ov_SC03_116/ov_SC03_116_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_116/nonmatchings/ov_SC03_116_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_117/ov_SC03_117_o0c.c b/src/ov_SC03_117/ov_SC03_117_o0c.c index 3e62a2353b..c9d1d76523 100644 --- a/src/ov_SC03_117/ov_SC03_117_o0c.c +++ b/src/ov_SC03_117/ov_SC03_117_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_117/nonmatchings/ov_SC03_117_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_118/ov_SC03_118_o0c.c b/src/ov_SC03_118/ov_SC03_118_o0c.c index a2a043458b..10480f3a3d 100644 --- a/src/ov_SC03_118/ov_SC03_118_o0c.c +++ b/src/ov_SC03_118/ov_SC03_118_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_118/nonmatchings/ov_SC03_118_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_119/ov_SC03_119_o0c.c b/src/ov_SC03_119/ov_SC03_119_o0c.c index 4bcf95b048..f4d446d14d 100644 --- a/src/ov_SC03_119/ov_SC03_119_o0c.c +++ b/src/ov_SC03_119/ov_SC03_119_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_119/nonmatchings/ov_SC03_119_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_121/ov_SC03_121_o0c.c b/src/ov_SC03_121/ov_SC03_121_o0c.c index 50d074184b..0bfb3039f3 100644 --- a/src/ov_SC03_121/ov_SC03_121_o0c.c +++ b/src/ov_SC03_121/ov_SC03_121_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_121/nonmatchings/ov_SC03_121_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_124/ov_SC03_124_o0c.c b/src/ov_SC03_124/ov_SC03_124_o0c.c index a072f04fb1..c1a59f5ae0 100644 --- a/src/ov_SC03_124/ov_SC03_124_o0c.c +++ b/src/ov_SC03_124/ov_SC03_124_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_125/ov_SC03_125_o0c.c b/src/ov_SC03_125/ov_SC03_125_o0c.c index 69975a22de..e018c8878f 100644 --- a/src/ov_SC03_125/ov_SC03_125_o0c.c +++ b/src/ov_SC03_125/ov_SC03_125_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_125/nonmatchings/ov_SC03_125_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC03_126/ov_SC03_126_o0c.c b/src/ov_SC03_126/ov_SC03_126_o0c.c index 2ec9f7388f..645b4cf37b 100644 --- a/src/ov_SC03_126/ov_SC03_126_o0c.c +++ b/src/ov_SC03_126/ov_SC03_126_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC03_126/nonmatchings/ov_SC03_126_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_000/ov_SC04_000_o0c.c b/src/ov_SC04_000/ov_SC04_000_o0c.c index 56bc694d04..2b7788419d 100644 --- a/src/ov_SC04_000/ov_SC04_000_o0c.c +++ b/src/ov_SC04_000/ov_SC04_000_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_002/ov_SC04_002_o0c.c b/src/ov_SC04_002/ov_SC04_002_o0c.c index d9334a64f7..ac0defa2ba 100644 --- a/src/ov_SC04_002/ov_SC04_002_o0c.c +++ b/src/ov_SC04_002/ov_SC04_002_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_002/nonmatchings/ov_SC04_002_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_003/ov_SC04_003_o0c.c b/src/ov_SC04_003/ov_SC04_003_o0c.c index 733f763649..40caf65da7 100644 --- a/src/ov_SC04_003/ov_SC04_003_o0c.c +++ b/src/ov_SC04_003/ov_SC04_003_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_003/nonmatchings/ov_SC04_003_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_004/ov_SC04_004_o0c.c b/src/ov_SC04_004/ov_SC04_004_o0c.c index b2bc70ed6c..5131bcfaab 100644 --- a/src/ov_SC04_004/ov_SC04_004_o0c.c +++ b/src/ov_SC04_004/ov_SC04_004_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_004/nonmatchings/ov_SC04_004_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_005/ov_SC04_005_o0c.c b/src/ov_SC04_005/ov_SC04_005_o0c.c index 4ce72f51a7..868dbef5b6 100644 --- a/src/ov_SC04_005/ov_SC04_005_o0c.c +++ b/src/ov_SC04_005/ov_SC04_005_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_005/nonmatchings/ov_SC04_005_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_006/ov_SC04_006_o0c.c b/src/ov_SC04_006/ov_SC04_006_o0c.c index 2961934257..df55f982e6 100644 --- a/src/ov_SC04_006/ov_SC04_006_o0c.c +++ b/src/ov_SC04_006/ov_SC04_006_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_006/nonmatchings/ov_SC04_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_007/ov_SC04_007_o0c.c b/src/ov_SC04_007/ov_SC04_007_o0c.c index d98f3b2783..6d151b06df 100644 --- a/src/ov_SC04_007/ov_SC04_007_o0c.c +++ b/src/ov_SC04_007/ov_SC04_007_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_007/nonmatchings/ov_SC04_007_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_008/ov_SC04_008_o0c.c b/src/ov_SC04_008/ov_SC04_008_o0c.c index 269622c3b7..de833a62b2 100644 --- a/src/ov_SC04_008/ov_SC04_008_o0c.c +++ b/src/ov_SC04_008/ov_SC04_008_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_008/nonmatchings/ov_SC04_008_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_009/ov_SC04_009_o0c.c b/src/ov_SC04_009/ov_SC04_009_o0c.c index bbe5f9beba..ef91f6de6c 100644 --- a/src/ov_SC04_009/ov_SC04_009_o0c.c +++ b/src/ov_SC04_009/ov_SC04_009_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_009/nonmatchings/ov_SC04_009_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_010/ov_SC04_010_o0c.c b/src/ov_SC04_010/ov_SC04_010_o0c.c index c919e44d96..df836602d8 100644 --- a/src/ov_SC04_010/ov_SC04_010_o0c.c +++ b/src/ov_SC04_010/ov_SC04_010_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_010/nonmatchings/ov_SC04_010_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_011/ov_SC04_011_o0c.c b/src/ov_SC04_011/ov_SC04_011_o0c.c index 9bcbd766c3..a5f40419a3 100644 --- a/src/ov_SC04_011/ov_SC04_011_o0c.c +++ b/src/ov_SC04_011/ov_SC04_011_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_012/ov_SC04_012_o0c.c b/src/ov_SC04_012/ov_SC04_012_o0c.c index 9bf1a668a0..e589551798 100644 --- a/src/ov_SC04_012/ov_SC04_012_o0c.c +++ b/src/ov_SC04_012/ov_SC04_012_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_012/nonmatchings/ov_SC04_012_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_015/ov_SC04_015_o0c.c b/src/ov_SC04_015/ov_SC04_015_o0c.c index 7027e8e99a..2d6b7156d8 100644 --- a/src/ov_SC04_015/ov_SC04_015_o0c.c +++ b/src/ov_SC04_015/ov_SC04_015_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_015/nonmatchings/ov_SC04_015_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_016/ov_SC04_016_o0c.c b/src/ov_SC04_016/ov_SC04_016_o0c.c index 79de91791b..9fd724e9c1 100644 --- a/src/ov_SC04_016/ov_SC04_016_o0c.c +++ b/src/ov_SC04_016/ov_SC04_016_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_016/nonmatchings/ov_SC04_016_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_018/ov_SC04_018_o0c.c b/src/ov_SC04_018/ov_SC04_018_o0c.c index 51d914d397..6f2ff5e74a 100644 --- a/src/ov_SC04_018/ov_SC04_018_o0c.c +++ b/src/ov_SC04_018/ov_SC04_018_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_018/nonmatchings/ov_SC04_018_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_019/ov_SC04_019_o0c.c b/src/ov_SC04_019/ov_SC04_019_o0c.c index a391f6bd8e..752b5bdd23 100644 --- a/src/ov_SC04_019/ov_SC04_019_o0c.c +++ b/src/ov_SC04_019/ov_SC04_019_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_020/ov_SC04_020_o0c.c b/src/ov_SC04_020/ov_SC04_020_o0c.c index 7b6aefb834..ac790b0737 100644 --- a/src/ov_SC04_020/ov_SC04_020_o0c.c +++ b/src/ov_SC04_020/ov_SC04_020_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_020/nonmatchings/ov_SC04_020_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC04_021/ov_SC04_021_o0c.c b/src/ov_SC04_021/ov_SC04_021_o0c.c index 7d517675fa..a29433c37e 100644 --- a/src/ov_SC04_021/ov_SC04_021_o0c.c +++ b/src/ov_SC04_021/ov_SC04_021_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC04_021/nonmatchings/ov_SC04_021_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_000/ov_SC05_000_o0c.c b/src/ov_SC05_000/ov_SC05_000_o0c.c index f47f3e4519..fa52718a4b 100644 --- a/src/ov_SC05_000/ov_SC05_000_o0c.c +++ b/src/ov_SC05_000/ov_SC05_000_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_000/nonmatchings/ov_SC05_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_001/ov_SC05_001_o0c.c b/src/ov_SC05_001/ov_SC05_001_o0c.c index ce621a03dd..25658d4f48 100644 --- a/src/ov_SC05_001/ov_SC05_001_o0c.c +++ b/src/ov_SC05_001/ov_SC05_001_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_001/nonmatchings/ov_SC05_001_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_002/ov_SC05_002_o0c.c b/src/ov_SC05_002/ov_SC05_002_o0c.c index c139b64026..a3728f3b15 100644 --- a/src/ov_SC05_002/ov_SC05_002_o0c.c +++ b/src/ov_SC05_002/ov_SC05_002_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_002/nonmatchings/ov_SC05_002_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_003/ov_SC05_003_o0c.c b/src/ov_SC05_003/ov_SC05_003_o0c.c index 87b6ef3e36..7760900808 100644 --- a/src/ov_SC05_003/ov_SC05_003_o0c.c +++ b/src/ov_SC05_003/ov_SC05_003_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_003/nonmatchings/ov_SC05_003_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_004/ov_SC05_004_o0c.c b/src/ov_SC05_004/ov_SC05_004_o0c.c index 5b4eed5741..2f3936c615 100644 --- a/src/ov_SC05_004/ov_SC05_004_o0c.c +++ b/src/ov_SC05_004/ov_SC05_004_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_004/nonmatchings/ov_SC05_004_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_005/ov_SC05_005_o0c.c b/src/ov_SC05_005/ov_SC05_005_o0c.c index 2f9d6d0819..fa285472c4 100644 --- a/src/ov_SC05_005/ov_SC05_005_o0c.c +++ b/src/ov_SC05_005/ov_SC05_005_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_005/nonmatchings/ov_SC05_005_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_006/ov_SC05_006_o0c.c b/src/ov_SC05_006/ov_SC05_006_o0c.c index 4fbc76bb0c..3da1ad835b 100644 --- a/src/ov_SC05_006/ov_SC05_006_o0c.c +++ b/src/ov_SC05_006/ov_SC05_006_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_006/nonmatchings/ov_SC05_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_007/ov_SC05_007_o0c.c b/src/ov_SC05_007/ov_SC05_007_o0c.c index 9cbbd7bd7e..cc99028279 100644 --- a/src/ov_SC05_007/ov_SC05_007_o0c.c +++ b/src/ov_SC05_007/ov_SC05_007_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_007/nonmatchings/ov_SC05_007_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_008/ov_SC05_008_o0c.c b/src/ov_SC05_008/ov_SC05_008_o0c.c index c840af1b96..f460d9e68e 100644 --- a/src/ov_SC05_008/ov_SC05_008_o0c.c +++ b/src/ov_SC05_008/ov_SC05_008_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_009/ov_SC05_009_o0c.c b/src/ov_SC05_009/ov_SC05_009_o0c.c index 4e1fefbb41..27741f5597 100644 --- a/src/ov_SC05_009/ov_SC05_009_o0c.c +++ b/src/ov_SC05_009/ov_SC05_009_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_009/nonmatchings/ov_SC05_009_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_010/ov_SC05_010_o0c.c b/src/ov_SC05_010/ov_SC05_010_o0c.c index 33d7a40090..3ab25c2413 100644 --- a/src/ov_SC05_010/ov_SC05_010_o0c.c +++ b/src/ov_SC05_010/ov_SC05_010_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_010/nonmatchings/ov_SC05_010_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_011/ov_SC05_011_o0c.c b/src/ov_SC05_011/ov_SC05_011_o0c.c index a991e3e9aa..4bc21f747d 100644 --- a/src/ov_SC05_011/ov_SC05_011_o0c.c +++ b/src/ov_SC05_011/ov_SC05_011_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_011/nonmatchings/ov_SC05_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_017/ov_SC05_017_o0c.c b/src/ov_SC05_017/ov_SC05_017_o0c.c index 0bea894372..e485f0a963 100644 --- a/src/ov_SC05_017/ov_SC05_017_o0c.c +++ b/src/ov_SC05_017/ov_SC05_017_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_018/ov_SC05_018_o0c.c b/src/ov_SC05_018/ov_SC05_018_o0c.c index 60d5fac393..14ace9082a 100644 --- a/src/ov_SC05_018/ov_SC05_018_o0c.c +++ b/src/ov_SC05_018/ov_SC05_018_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_018/nonmatchings/ov_SC05_018_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC05_019/ov_SC05_019_o0c.c b/src/ov_SC05_019/ov_SC05_019_o0c.c index 24343ac2b4..de4bcac11c 100644 --- a/src/ov_SC05_019/ov_SC05_019_o0c.c +++ b/src/ov_SC05_019/ov_SC05_019_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC05_019/nonmatchings/ov_SC05_019_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_000/ov_SC06_000_o0c.c b/src/ov_SC06_000/ov_SC06_000_o0c.c index ca6d65da97..678519f909 100644 --- a/src/ov_SC06_000/ov_SC06_000_o0c.c +++ b/src/ov_SC06_000/ov_SC06_000_o0c.c @@ -874,7 +874,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_006/ov_SC06_006_o0c.c b/src/ov_SC06_006/ov_SC06_006_o0c.c index 7d7f469ecb..84272f76f8 100644 --- a/src/ov_SC06_006/ov_SC06_006_o0c.c +++ b/src/ov_SC06_006/ov_SC06_006_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_006/nonmatchings/ov_SC06_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_008/ov_SC06_008_o0c.c b/src/ov_SC06_008/ov_SC06_008_o0c.c index accbf5010b..55ff69c9bf 100644 --- a/src/ov_SC06_008/ov_SC06_008_o0c.c +++ b/src/ov_SC06_008/ov_SC06_008_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_008/nonmatchings/ov_SC06_008_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_010/ov_SC06_010_o0c.c b/src/ov_SC06_010/ov_SC06_010_o0c.c index e5e097d2b7..4b55b2e5ca 100644 --- a/src/ov_SC06_010/ov_SC06_010_o0c.c +++ b/src/ov_SC06_010/ov_SC06_010_o0c.c @@ -872,7 +872,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_011/ov_SC06_011_o0c.c b/src/ov_SC06_011/ov_SC06_011_o0c.c index 5ff77af5fc..bf7717e7aa 100644 --- a/src/ov_SC06_011/ov_SC06_011_o0c.c +++ b/src/ov_SC06_011/ov_SC06_011_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_011/nonmatchings/ov_SC06_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_013/ov_SC06_013_o0c.c b/src/ov_SC06_013/ov_SC06_013_o0c.c index 98b5bdb1a0..dfc95c37a7 100644 --- a/src/ov_SC06_013/ov_SC06_013_o0c.c +++ b/src/ov_SC06_013/ov_SC06_013_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_013/nonmatchings/ov_SC06_013_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_014/ov_SC06_014_o0c.c b/src/ov_SC06_014/ov_SC06_014_o0c.c index bf3d36791f..f5203bb931 100644 --- a/src/ov_SC06_014/ov_SC06_014_o0c.c +++ b/src/ov_SC06_014/ov_SC06_014_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_014/nonmatchings/ov_SC06_014_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_015/ov_SC06_015_o0c.c b/src/ov_SC06_015/ov_SC06_015_o0c.c index 714a8f9755..e0ea533e82 100644 --- a/src/ov_SC06_015/ov_SC06_015_o0c.c +++ b/src/ov_SC06_015/ov_SC06_015_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_015/nonmatchings/ov_SC06_015_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_016/ov_SC06_016_o0c.c b/src/ov_SC06_016/ov_SC06_016_o0c.c index 9e1011c7ee..803e733d90 100644 --- a/src/ov_SC06_016/ov_SC06_016_o0c.c +++ b/src/ov_SC06_016/ov_SC06_016_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_016/nonmatchings/ov_SC06_016_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_018/ov_SC06_018_o0c.c b/src/ov_SC06_018/ov_SC06_018_o0c.c index fca7053380..7fa280bfcf 100644 --- a/src/ov_SC06_018/ov_SC06_018_o0c.c +++ b/src/ov_SC06_018/ov_SC06_018_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_018/nonmatchings/ov_SC06_018_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_020/ov_SC06_020_o0c.c b/src/ov_SC06_020/ov_SC06_020_o0c.c index eb852355f6..1a00ae069b 100644 --- a/src/ov_SC06_020/ov_SC06_020_o0c.c +++ b/src/ov_SC06_020/ov_SC06_020_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_020/nonmatchings/ov_SC06_020_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_022/ov_SC06_022_o0c.c b/src/ov_SC06_022/ov_SC06_022_o0c.c index bb1644defb..015b724891 100644 --- a/src/ov_SC06_022/ov_SC06_022_o0c.c +++ b/src/ov_SC06_022/ov_SC06_022_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_024/ov_SC06_024_o0c.c b/src/ov_SC06_024/ov_SC06_024_o0c.c index dbb95ee022..a4908ed079 100644 --- a/src/ov_SC06_024/ov_SC06_024_o0c.c +++ b/src/ov_SC06_024/ov_SC06_024_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_025/ov_SC06_025_o0c.c b/src/ov_SC06_025/ov_SC06_025_o0c.c index 3cef64852c..59feff7642 100644 --- a/src/ov_SC06_025/ov_SC06_025_o0c.c +++ b/src/ov_SC06_025/ov_SC06_025_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_025/nonmatchings/ov_SC06_025_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_027/ov_SC06_027_o0c.c b/src/ov_SC06_027/ov_SC06_027_o0c.c index 6349c97918..69a4299755 100644 --- a/src/ov_SC06_027/ov_SC06_027_o0c.c +++ b/src/ov_SC06_027/ov_SC06_027_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_027/nonmatchings/ov_SC06_027_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_029/ov_SC06_029_o0c.c b/src/ov_SC06_029/ov_SC06_029_o0c.c index 77aaa25e3c..2052744785 100644 --- a/src/ov_SC06_029/ov_SC06_029_o0c.c +++ b/src/ov_SC06_029/ov_SC06_029_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_030/ov_SC06_030_o0c.c b/src/ov_SC06_030/ov_SC06_030_o0c.c index 7722179dff..371c42b553 100644 --- a/src/ov_SC06_030/ov_SC06_030_o0c.c +++ b/src/ov_SC06_030/ov_SC06_030_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_030/nonmatchings/ov_SC06_030_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_032/ov_SC06_032_o0c.c b/src/ov_SC06_032/ov_SC06_032_o0c.c index ec04084611..404c0f23a2 100644 --- a/src/ov_SC06_032/ov_SC06_032_o0c.c +++ b/src/ov_SC06_032/ov_SC06_032_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_032/nonmatchings/ov_SC06_032_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC06_033/ov_SC06_033_o0c.c b/src/ov_SC06_033/ov_SC06_033_o0c.c index fb99268584..a20aa8db9e 100644 --- a/src/ov_SC06_033/ov_SC06_033_o0c.c +++ b/src/ov_SC06_033/ov_SC06_033_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_000/ov_SC07_000_o0c.c b/src/ov_SC07_000/ov_SC07_000_o0c.c index c44c703f29..362cdcea25 100644 --- a/src/ov_SC07_000/ov_SC07_000_o0c.c +++ b/src/ov_SC07_000/ov_SC07_000_o0c.c @@ -871,7 +871,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_000/nonmatchings/ov_SC07_000_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_001/ov_SC07_001_o0c.c b/src/ov_SC07_001/ov_SC07_001_o0c.c index 8e8d854bc7..c8cd620234 100644 --- a/src/ov_SC07_001/ov_SC07_001_o0c.c +++ b/src/ov_SC07_001/ov_SC07_001_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_001/nonmatchings/ov_SC07_001_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_002/ov_SC07_002_o0c.c b/src/ov_SC07_002/ov_SC07_002_o0c.c index 4fbef3a65d..29b3da065d 100644 --- a/src/ov_SC07_002/ov_SC07_002_o0c.c +++ b/src/ov_SC07_002/ov_SC07_002_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_006/ov_SC07_006_o0c.c b/src/ov_SC07_006/ov_SC07_006_o0c.c index 300d7cc01b..41aae55cef 100644 --- a/src/ov_SC07_006/ov_SC07_006_o0c.c +++ b/src/ov_SC07_006/ov_SC07_006_o0c.c @@ -823,7 +823,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_006/nonmatchings/ov_SC07_006_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_007/ov_SC07_007_o0c.c b/src/ov_SC07_007/ov_SC07_007_o0c.c index 00020dba63..91d2d83300 100644 --- a/src/ov_SC07_007/ov_SC07_007_o0c.c +++ b/src/ov_SC07_007/ov_SC07_007_o0c.c @@ -823,7 +823,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_007/nonmatchings/ov_SC07_007_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_008/ov_SC07_008_o0c.c b/src/ov_SC07_008/ov_SC07_008_o0c.c index bebc6b52ea..0863341c63 100644 --- a/src/ov_SC07_008/ov_SC07_008_o0c.c +++ b/src/ov_SC07_008/ov_SC07_008_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_008/nonmatchings/ov_SC07_008_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_009/ov_SC07_009_o0c.c b/src/ov_SC07_009/ov_SC07_009_o0c.c index b627a97a85..dbfdc0d79d 100644 --- a/src/ov_SC07_009/ov_SC07_009_o0c.c +++ b/src/ov_SC07_009/ov_SC07_009_o0c.c @@ -869,7 +869,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_009/nonmatchings/ov_SC07_009_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_010/ov_SC07_010_o0.c b/src/ov_SC07_010/ov_SC07_010_o0.c index 3911f5fdc2..62659f3852 100644 --- a/src/ov_SC07_010/ov_SC07_010_o0.c +++ b/src/ov_SC07_010/ov_SC07_010_o0.c @@ -129,7 +129,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_o0", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_010/nonmatchings/ov_SC07_010_o0", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) { diff --git a/src/ov_SC07_011/ov_SC07_011_o0c.c b/src/ov_SC07_011/ov_SC07_011_o0c.c index 4ffe1b07f9..f95e3a256a 100644 --- a/src/ov_SC07_011/ov_SC07_011_o0c.c +++ b/src/ov_SC07_011/ov_SC07_011_o0c.c @@ -823,7 +823,31 @@ void func_8013BD34(s32 a0) { INCLUDE_ASM("asm/ov_SC07_011/nonmatchings/ov_SC07_011_o0c", func_8013BD74); -INCLUDE_ASM("asm/ov_SC07_011/nonmatchings/ov_SC07_011_o0c", func_8013C08C); + +extern void func_8013C0F8(s32 a0); + +void func_8013C08C(void *a0, void *a1) { + /* SS100 DRAFT-LOCAL type: only this function uses E_13C08C_8013C08C, so it lives in the BODY, not at + * file scope. At file scope extract_unit's preceding-decl backscan cannot carry it: the scan + * walks back over extern/comment/blank/typedef lines, and a MULTI-LINE typedef presents its + * CLOSING line first, which matches none of those prefixes. Every templated sibling therefore + * got the body without the type and the family swept 0/137 (SS94: a family 0/N is a type-carry + * failure until proven otherwise). Declared here, it is part of the unit by construction. + * NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does + * not strip comments, so a brace in a comment truncates the extracted unit. */ + typedef struct { + u8 pad0[8]; + void *f8; + void *fC; + } E_13C08C_8013C08C; + + void *p = a1; + + ((E_13C08C_8013C08C *)a0)->f8 = a1; + ((E_13C08C_8013C08C *)a0)->fC = (u8 *)p + 0x14; + func_8013C0F8((s32)a1); +} + void func_8013C0F8(int param_1) {